Function at 0x401830
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1438
call fcn.004cb9b0
push ebx
push ebp
push esi
push edi
mov ebp, edx
mov dword [esp + 0xb8], ebp
mov ebx, ecx
mov dword [esp + 0x80], ebx
mov byte [esp + 0x51], 0
cmp ebp, 2
jne 0x401881
cmp byte [0x4f98a7], 0
mov ebp, 1
mov dword [esp + 0xb8], ebp
jne 0x401881
mov byte [0x4f98a7], 1
mov byte [esp + 0x51], 1
cmp dword [0x4fc6f0], 0
je 0x4018c3
cmp dword [0x4fc6e0], 0
je 0x4018a9
push dword [0x4fc6d8]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4fc6e0], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4fc6f0], 0
mov dword [0x4fc6d8], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x14], eax
cmp ebx, 0x8000012f
jne 0x4018f2
mov ebx, 0xa
mov byte [esp + 0x23], 1
mov dword [esp + 0x80], ebx
mov dword [esp + 0xa4], 0
jmp 0x401912
cmp ebx, 5
setle byte [esp + 0x23]
jg 0x401909
mov dword [esp + 0xa4], 0
jmp 0x401912
call eax
mov dword [esp + 0xa4], eax
cmp dword [0x4fa548], 0
je 0x401920
call fcn.00404730
cmp dword [0x4fc63c], 0
mov esi, 1
mov byte [esp + 0x74], 0
je 0x401948
call fcn.004043b0
mov ecx, dword [esp + 0x74]
test al, al
movzx ecx, cl
cmovne ecx, esi
mov dword [esp + 0x74], ecx
test ebx, ebx
jle 0x401982
cmp ebp, 1
jne 0x401982
inc dword [0x4f99ec]
cmp byte [0x4f98a6], 0
mov byte [esp + 0x52], 1
jne 0x401987
push 0
push 0xa
push 9
push dword [0x4f99e8]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4f98a6]
jmp 0x401987
mov byte [esp + 0x52], 0
mov eax, dword [sym.imp.USER32.dll_GetMessageW]
mov dword [esp + 0x128], eax
mov eax, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [esp + 0xe8], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [esp + 0xec], eax
mov eax, dword [sym.imp.USER32.dll_GetClassNameW]
mov dword [esp + 0xbc], eax
mov eax, dword [sym.imp.USER32.dll_GetFocus]
mov dword [esp + 0xf8], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov dword [esp + 0x12c], eax
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0xc0], eax
mov eax, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov dword [esp + 0xf4], eax
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [esp + 0xc4], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x7c], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov dword [esp + 0x130], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x2c], eax
mov eax, dword [sym.imp.USER32.dll_WindowFromPoint]
mov dword [esp + 0x108], eax
mov eax, dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x60], eax
mov eax, dword [sym.imp.USER32.dll_IsDialogMessageW]
mov dword [esp + 0xf0], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [esp + 0x10c], eax
mov eax, dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [esp + 0xa0], eax
mov eax, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [esp + 0x114], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowLongW]
mov dword [esp + 0xe0], eax
mov eax, dword [sym.imp.USER32.dll_CountClipboardFormats]
mov dword [esp + 0x11c], eax
mov eax, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov dword [esp + 0xb0], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [esp + 0xac], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [esp + 0x120], eax
mov eax, dword [sym.imp.USER32.dll_TranslateMessage]
mov dword [esp + 0x124], eax
mov eax, dword [sym.imp.USER32.dll_DispatchMessageW]
mov dword [esp + 0x58], eax
mov eax, dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov ebp, dword [sym.imp.USER32.dll_PeekMessageW]
mov edi, dword [esp + 0x58]
mov dword [esp + 0xa8], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [esp + 0x134], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0xfc], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x9c], eax
mov eax, dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x110], eax
mov eax, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x98], eax
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x58]
mov byte [esp + 0x53], 0
mov byte [esp + 0x50], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x53]
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x22], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x84], edi
mov dword [esp + 0xb4], eax
jmp 0x401bb8
mov ecx, ebp
call fcn.00497f90
nop
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
call ebx
cmp dword [esp + 0x80], 0
mov ebx, eax
jle 0x401d54
cmp byte [esp + 0x50], 0
jne 0x401d54
cmp byte [0x4f98a7], 0
jne 0x401d61
cmp dword [0x4f70ec], 0
je 0x401c3f
cmp dword [0x4f99b8], 0
jne 0x401c3f
mov ecx, dword [0x4f70f4]
mov esi, dword [esp + 0x14]
cmp byte [ecx + 0xec], 0
jne 0x401c36
cmp byte [ecx + 0xee], 0
jne 0x401c36
cmp dword [ecx + 0xe0], 0xffffffff
jle 0x401c36
call esi
mov ecx, dword [0x4f70f4]
sub eax, dword [ecx + 0xdc]
cmp eax, dword [ecx + 0xe0]
jb 0x401c36
mov byte [ecx + 0xec], 1
movzx ecx, byte [ecx + 0xec]
jmp 0x401c45
mov esi, dword [esp + 0x14]
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
cmovne eax, edx
push eax
push edx
push edx
lea eax, [esp + 0x40]
push eax
call dword [esp + 0x138]
cmp eax, 0xffffffff
je 0x402786
call esi
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x401c79
mov dword [0x4fc690], eax
inc dword [esp + 0x94]
cmp dword [0x4fbb70], 0
je 0x401cb6
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x20c]
mov ecx, dword [esp + 0x34]
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.00404800
add esp, 0x10
test al, al
jne 0x402786
mov edx, dword [0x4f99e0]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
test edx, edx
je 0x4025fb
test ecx, ecx
je 0x4025fb
cmp ecx, dword [0x4f99e8]
je 0x4025fb
cmp ebp, 0x414
je 0x4025fb
cmp ebp, 0x402
je 0x4025fb
lea eax, [ebp - 0x100]
cmp eax, 9
ja 0x4023b8
call dword [esp + 0xf8]
mov ebx, eax
mov dword [esp + 0x78], ebx
test ebx, ebx
je 0x4023aa
mov ebp, dword [esp + 0x7c]
mov esi, ebx
push 0xfffffffffffffff0
push ebx
call ebp
test eax, 0x40000000
je 0x402034
push esi
mov edi, esi
call dword [esp + 0x64]
mov esi, eax
test esi, esi
je 0x40202a
push 0xfffffffffffffff0
push esi
call ebp
test eax, 0x40000000
jne 0x401d32
jmp 0x402034
cmp byte [0x4f98a7], 0
je 0x401f07
call dword [esp + 0xe8]
mov esi, eax
test esi, esi
je 0x401f07
push 0
push esi
call dword [esp + 0xf4]
cmp eax, dword [0x4fb2ec]
jne 0x401f07
cmp dword [0x4f99e4], 0
je 0x401de2
push 0x20
lea eax, [esp + 0x254]
push eax
push esi
mov esi, dword [esp + 0xc8]
call esi
mov ecx, str.32770
lea eax, [esp + 0x250]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401dd7
test dx, dx
je 0x401dd3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401dd7
add eax, 4
add ecx, 4
test dx, dx
jne 0x401db1
xor eax, eax
jmp 0x401ddc
sbb eax, eax
or eax, 1
test eax, eax
je 0x401e3c
jmp 0x401de9
mov esi, dword [esp + 0xbc]
call dword [esp + 0xf8]
test eax, eax
je 0x401f07
push 0x20
lea ecx, [esp + 0x254]
push ecx
push eax
call esi
mov esi, dword [esp + 0x12c]
lea eax, [esp + 0x250]
push str.SysTreeView32
push eax
call esi
add esp, 8
test eax, eax
je 0x401e3c
lea eax, [esp + 0x250]
push str.SysListView32
push eax
call esi
add esp, 8
test eax, eax
jne 0x401f07
cmp dword [0x4f70ec], 0
je 0x401e99
cmp dword [0x4f99b8], 0
jne 0x401e99
mov ecx, dword [0x4f70f4]
cmp byte [ecx + 0xec], 0
jne 0x401e90
cmp byte [ecx + 0xee], 0
jne 0x401e90
cmp dword [ecx + 0xe0], 0xffffffff
jle 0x401e90
mov esi, dword [esp + 0x14]
call esi
mov ecx, dword [0x4f70f4]
sub eax, dword [ecx + 0xdc]
cmp eax, dword [ecx + 0xe0]
jb 0x401e90
mov byte [ecx + 0xec], 1
movzx eax, byte [ecx + 0xec]
jmp 0x401e9b
xor eax, eax
push 0
test eax, eax
mov esi, 0x311
push 0x1ff
mov eax, 0xffffffff
push 0
cmovne esi, eax
lea eax, [esp + 0x40]
push 0
push eax
call ebp
test eax, eax
lea eax, [esp + 0x34]
jne 0x401ed1
push 1
push esi
push 0x20e
jmp 0x401f7b
mov edi, dword [esp + 0x44]
push 0
push esi
push 0x20e
push 0
push eax
call ebp
push 1
test eax, eax
jne 0x401ef2
push 0x1ff
jmp 0x401f75
mov eax, dword [esp + 0x48]
sub eax, edi
test eax, eax
lea eax, [esp + 0x38]
jle 0x401ec6
push 0x1ff
jmp 0x401f79
cmp dword [0x4f70ec], 0
je 0x401f64
cmp dword [0x4f99b8], 0
jne 0x401f64
mov ecx, dword [0x4f70f4]
cmp byte [ecx + 0xec], 0
jne 0x401f5b
cmp byte [ecx + 0xee], 0
jne 0x401f5b
cmp dword [ecx + 0xe0], 0xffffffff
jle 0x401f5b
mov esi, dword [esp + 0x14]
call esi
mov ecx, dword [0x4f70f4]
sub eax, dword [ecx + 0xdc]
cmp eax, dword [ecx + 0xe0]
jb 0x401f5b
mov byte [ecx + 0xec], 1
movzx ecx, byte [ecx + 0xec]
jmp 0x401f66
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
push 1
cmovne eax, edx
push eax
lea eax, [esp + 0x3c]
push 0
push 0
push eax
call ebp
test eax, eax
jne 0x401c79
mov ebp, dword [esp + 0x14]
call ebp
mov edx, dword [0x4fc690]
mov ecx, eax
sub ecx, ebx
mov ebx, dword [esp + 0x80]
cmp ecx, 3
cmova edx, eax
mov dword [0x4fc690], edx
test ebx, ebx
jne 0x401fc9
cmp byte [esp + 0x53], bl
jne 0x401fc9
push ebx
call dword [esp + 0xc4]
mov byte [esp + 0x53], 1
mov ebx, ebp
jmp 0x401bb4
cmp dword [esp + 0x94], 0
jne 0x401ff9
cmp byte [esp + 0x23], 0
je 0x401ff9
test ebx, ebx
jle 0x401fe7
push 5
call dword [esp + 0xc4]
mov dword [esp + 0x94], 1
mov ebx, ebp
jmp 0x401bb4
call ebp
cmp byte [esp + 0x23], 0
jne 0x4041b8
mov ecx, dword [esp + 0xa4]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jle 0x4041b8
push 5
call dword [esp + 0xc4]
mov ebx, ebp
jmp 0x401bb4
mov esi, edi
test edi, edi
je 0x4023aa
mov ecx, ebx
call fcn.00487090
mov ebp, eax
mov dword [esp + 0x24], ebp
test ebp, ebp
je 0x4023aa
mov ecx, dword [ebp + 0x74]
test ecx, ecx
je 0x40206a
lea eax, [esp + 0x34]
push eax
push ecx
push esi
call dword [esp + 0x100]
mov ebp, dword [esp + 0x18]
test eax, eax
jne 0x402786
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
cmp ebp, 0x100
jne 0x40235d
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xc0], 0
je 0x40224f
cmp edi, 0x22
je 0x4020ac
cmp edi, 0x21
je 0x4020ac
cmp edi, 9
je 0x4020ac
cmp edi, 0x25
je 0x4020ac
cmp edi, 0x27
jne 0x40224f
push ebx
mov edi, ebx
call dword [esp + 0xac]
mov ebp, dword [esp + 0x24]
lea esi, [eax - 3]
cmp esi, dword [ebp + 0x10]
jb 0x4020e1
push ebx
call dword [esp + 0x64]
mov edi, eax
test edi, edi
je 0x4020d8
push edi
call dword [esp + 0xac]
lea esi, [eax - 3]
cmp esi, dword [ebp + 0x10]
jae 0x40222f
mov ebx, esi
shl ebx, 6
add ebx, dword [ebp + 0x18]
mov dword [esp + 0x54], ebx
cmp dword [ebx], edi
jne 0x40222f
cmp esi, 0x2af8
je 0x40222f
test ebx, ebx
je 0x402237
mov al, byte [ebx + 4]
cmp al, 0xf
je 0x402237
mov edi, dword [esp + 0x3c]
xor esi, esi
cmp al, 0x13
jne 0x40213e
mov esi, ebx
cmp edi, 0x25
je 0x40212a
cmp edi, 0x27
jne 0x40213e
cmp edi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ebx
jmp 0x401ba7
cmp edi, 0x25
je 0x40223b
cmp edi, 0x27
je 0x40223b
push 0x11
call dword [esp + 0xc8]
bt ax, 0xf
jae 0x402237
mov edi, dword [esp + 0x3c]
cmp edi, 9
jne 0x40218a
cmp byte [ebx + 4], 0xc
jne 0x40218a
push 0xfffffffffffffff0
push dword [ebx]
call dword [esp + 0x84]
test al, 4
jne 0x402237
mov edi, dword [esp + 0x3c]
test esi, esi
jne 0x4021ea
mov bl, byte [ebx + 6]
cmp bl, 0xff
je 0x4021c2
mov edx, dword [ebp + 0x10]
xor al, al
xor ecx, ecx
test edx, edx
je 0x4021c2
mov esi, dword [ebp + 0x18]
cmp byte [esi + 4], 0x13
jne 0x4021b0
cmp al, bl
je 0x4021be
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x4021a4
xor al, al
xor ecx, ecx
jmp 0x4021cd
test esi, esi
jne 0x4021ea
mov edx, dword [ebp + 0x10]
xor al, al
xor ecx, ecx
test edx, edx
je 0x40223b
mov esi, dword [ebp + 0x18]
cmp byte [esi + 4], 0x13
jne 0x4021dc
test al, al
je 0x4021e6
inc al
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x4021d0
jmp 0x40223b
test esi, esi
je 0x40223b
push dword [esi]
call dword [esp + 0x134]
test eax, eax
je 0x402237
mov eax, dword [esp + 0x3c]
cmp eax, 0x22
je 0x402222
cmp eax, 9
jne 0x402215
push 0x10
call dword [esp + 0xc8]
bt ax, 0xf
jae 0x402222
push 1
push 1
xor al, al
push eax
push esi
jmp 0x401ba7
push 1
push 1
mov al, 1
push eax
push esi
jmp 0x401ba7
mov dword [esp + 0x54], 0
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
cmp ebp, 0x100
jne 0x40235d
mov ebx, dword [esp + 0x78]
cmp edi, 0x1b
je 0x40228a
cmp edi, 9
je 0x40228a
cmp edi, 0x41
jne 0x40235d
mov ebp, dword [esp + 0xc4]
push 0x11
call ebp
bt ax, 0xf
jae 0x402355
push 0xa5
call ebp
bt ax, 0xf
jb 0x402355
mov edi, dword [esp + 0xa8]
push ebx
call edi
mov ebp, dword [esp + 0x24]
lea esi, [eax - 3]
cmp esi, dword [ebp + 0x10]
jb 0x4022ba
push ebx
call dword [esp + 0x64]
mov ebx, eax
test ebx, ebx
je 0x4022b1
push ebx
call edi
lea esi, [eax - 3]
cmp esi, dword [ebp + 0x10]
jae 0x40234d
mov eax, dword [ebp + 0x18]
mov ecx, esi
shl ecx, 6
add eax, ecx
mov dword [esp + 0x54], eax
mov ecx, dword [eax]
cmp ecx, ebx
jne 0x40234d
cmp esi, 0x2af8
je 0x40234d
mov esi, eax
test esi, esi
je 0x402355
cmp byte [esi + 4], 0xc
jne 0x402355
mov edi, dword [esp + 0x3c]
cmp edi, 0x1b
je 0x402324
mov al, byte [esi + 5]
cmp edi, 0x41
je 0x40230d
test al, al
jns 0x402359
push 0x4cdcb4
push 1
push 0xc2
push ecx
call dword [esp + 0x3c]
jmp 0x401bb0
test al, 2
jne 0x402359
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call dword [esp + 0x3c]
jmp 0x401bb0
cmp dword [ebp + 0x28], 0
mov ebx, dword [esp + 0x14]
je 0x401bb4
push 0
push 0x2af80007
push 0x414
push dword [ebp + 4]
call dword [esp + 0x144]
jmp 0x401bb4
mov dword [esp + 0x54], 0
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov eax, dword [0x4fb2b8]
test eax, eax
je 0x40256e
cmp ebp, 0x100
jne 0x40256e
cmp edi, 0xd
jne 0x40238e
push 0
push 0
push 0x1116
push eax
call dword [esp + 0x3c]
jmp 0x401bb0
cmp edi, 0x1b
jne 0x40256e
push 0
push 1
push 0x1116
push eax
call dword [esp + 0x3c]
jmp 0x401bb0
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [0x4f99e0]
cmp ebp, 0x20a
je 0x4023d1
cmp ebp, 0x20e
je 0x4023d1
mov edi, dword [esp + 0x3c]
jmp 0x402578
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call dword [esp + 0x110]
mov esi, eax
push 0xfffffffffffffff0
push esi
call dword [esp + 0x84]
mov edi, dword [esp + 0x60]
mov ebp, eax
push esi
call edi
mov edx, dword [0x4f99e0]
xor ecx, ecx
mov ebx, eax
test edx, edx
jle 0x402421
mov edi, dword [0x4f99dc]
nop dword [eax]
mov eax, dword [edi + ecx*4]
cmp dword [eax + 4], ebx
je 0x40248d
inc ecx
cmp ecx, edx
jl 0x402410
mov edi, dword [esp + 0x60]
push dword [esp + 0x3c]
push 0xfffffffffffffff0
push dword [esp + 0x3c]
call dword [esp + 0x88]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
call fcn.00401760
add esp, 8
test eax, eax
jne 0x402566
push dword [esp + 0x34]
call edi
mov edx, dword [0x4f99e0]
xor ecx, ecx
mov esi, dword [0x4f99dc]
test edx, edx
jle 0x402474
mov ebp, dword [esi + ecx*4]
mov dword [esp + 0x24], ebp
cmp dword [ebp + 4], eax
je 0x4024ed
inc ecx
cmp ecx, edx
jl 0x402463
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x40257e
test eax, eax
je 0x40241d
cmp esi, dword [esp + 0x34]
jne 0x4024bc
push dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov ecx, esi
push ebp
call fcn.00401760
add esp, 8
test eax, eax
jne 0x40241d
cmp esi, dword [esp + 0x34]
je 0x40241d
push dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov ecx, esi
push ebp
call fcn.00401760
add esp, 8
test eax, eax
je 0x40241d
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x40]
push esi
call dword [esp + 0x3c]
jmp 0x401bb0
test ebp, ebp
je 0x40247c
push dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 4]
call fcn.00401760
add esp, 8
test eax, eax
jne 0x40254e
push dword [ebp + 4]
call edi
mov edx, dword [0x4f99e0]
xor ecx, ecx
mov esi, dword [0x4f99dc]
test edx, edx
jle 0x402474
mov ebp, dword [esi + ecx*4]
mov dword [esp + 0x24], ebp
cmp dword [ebp + 4], eax
je 0x40253c
inc ecx
cmp ecx, edx
jl 0x402526
jmp 0x402474
test ebp, ebp
jne 0x4024f1
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x40257e
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [ebp + 4]
call dword [esp + 0x3c]
jmp 0x401bb0
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edx, dword [0x4f99e0]
mov ecx, dword [esp + 0x34]
mov esi, dword [0x4f99dc]
xor ebx, ebx
test edx, edx
jle 0x402605
nop dword [eax + eax]
mov eax, dword [esi + ebx*4]
lea edi, [esi + ebx*4]
cmp dword [eax + 0x10], 0
jne 0x4025a4
cmp ebp, 0x106
je 0x4025f0
mov ecx, dword [0x4f70f4]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x34]
push eax
mov eax, dword [edi]
push dword [eax + 4]
call dword [esp + 0xf8]
test eax, eax
jne 0x404129
mov eax, dword [0x4f70f4]
mov edx, dword [0x4f99e0]
mov esi, dword [0x4f99dc]
mov byte [eax + 0xe8], 0
mov ebp, dword [esp + 0x38]
inc ebx
cmp ebx, edx
jl 0x402590
mov ecx, dword [esp + 0x34]
jmp 0x402601
mov esi, dword [0x4f99dc]
mov edi, dword [esp + 0x3c]
cmp ebp, 0x400
ja 0x40278f
je case.0x4027a5.1025
cmp ebp, 0x100
ja 0x402673
je 0x402652
cmp ebp, 0x12
je 0x40263f
cmp ebp, 0x4b
jne case.0x4027a5.1027
mov dword [0x4f99c8], 0
mov byte [esp + 0x50], 1
jmp 0x401bb0
push 0
push 4
mov ecx, 0x4fbb78
call fcn.0042dfd0
jmp 0x401bb0
cmp ecx, dword [0x4f99c4]
jne case.0x4027a5.1027
cmp edi, 0x1b
jne case.0x4027a5.1027
push 0
push dword [0x4f99e8]
call dword [esp + 0xb4]
jmp 0x401bb0
cmp ebp, 0x113
je 0x402701
cmp ebp, 0x312
je case.0x4027a5.1026
call dword [esp + 0xe8]
mov esi, eax
test esi, esi
je 0x404149
push 0
push esi
call dword [esp + 0xf4]
cmp eax, dword [0x4fb2ec]
jne 0x404149
push 0x20
lea eax, [esp + 0x254]
push eax
push esi
call dword [esp + 0xc8]
mov ecx, str.32770
lea eax, [esp + 0x250]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4040d2
test dx, dx
je 0x4026fa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4040d2
add eax, 4
add ecx, 4
test dx, dx
jne 0x4026d0
xor eax, eax
jmp 0x4040d7
cmp dword [esp + 0x40], 0
jne case.0x4027a5.1027
cmp ecx, dword [0x4f99e8]
jne case.0x4027a5.1027
cmp dword [0x4fa548], 0
je 0x402726
call fcn.00404730
cmp dword [0x4fc63c], 0
je 0x402749
call fcn.004043b0
mov edx, dword [esp + 0x74]
test al, al
movzx ecx, dl
mov eax, 1
cmovne ecx, eax
mov byte [esp + 0x74], cl
cmp dword [esp + 0xb8], 0
mov ebp, dword [esp + 0x18]
je 0x402786
mov ebx, dword [esp + 0x80]
cmp ebx, 1
jl 0x402786
call dword [esp + 0x14]
cmp byte [esp + 0x23], 0
jne 0x404208
mov ecx, dword [esp + 0xa4]
sub ecx, eax
add ecx, ebx
cmp ecx, 5
jle 0x404208
mov ebx, dword [esp + 0x14]
jmp 0x401bb8
lea eax, [ebp - 0x401]
cmp eax, 0x1d
ja case.0x4027a5.1027
movzx eax, byte [eax + 0x404298]
jmp dword [eax*4 + 0x40428c]
test ecx, ecx
je case.0x4027a5.1026
cmp ecx, dword [0x4f99e8]
jne case.0x4027a5.1027
lea eax, [ebp - 0x401]
mov dword [esp + 0x88], 0
cmp eax, 0x1d
ja case.0x4027dd.1027
movzx eax, byte [eax + 0x4042d4]
jmp dword [eax*4 + 0x4042b8]
xor eax, eax
test edx, edx
jle 0x402803
nop word [eax + eax]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x24], ebx
mov ebx, dword [ebx + 4]
cmp ebx, ecx
je 0x402810
inc eax
cmp eax, edx
jl 0x4027f0
mov dword [esp + 0x24], 0
jmp case.0x4027a5.1027
cmp dword [esp + 0x24], 0
je case.0x4027a5.1027
mov ecx, dword [esp + 0x24]
mov eax, 0x2af8
movzx edx, di
shr edi, 0x10
cmp edx, 8
mov esi, edi
mov dword [esp + 0x5c], edx
cmove esi, eax
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x40]
cmovne eax, dword [esp + 0x30]
mov edx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
cmp eax, 8
mov dword [esp + 0xdc], esi
cmovne edi, dword [esp + 0x40]
mov dword [esp + 0x78], edx
cmp esi, dword [ecx + 0x10]
jae 0x402871
shl esi, 6
add esi, dword [ecx + 0x18]
jmp 0x402873
xor esi, esi
add eax, 0xfffffffb
mov dword [esp + 0x54], esi
mov dword [esp + 0x84], 0
mov byte [esp + 0x22], 0
cmp eax, 4
ja case.default.0x402893
jmp dword [eax*4 + 0x4042f4]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x1c], edi
test esi, esi
je 0x401bb0
lea eax, [ecx + 0x3a]
jmp 0x4028e4
mov esi, dword [ecx + 0x24]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
test esi, esi
je 0x401bb0
lea eax, [ecx + 0x38]
jmp 0x4028e4
mov esi, dword [ecx + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
test esi, esi
je 0x401bb0
lea eax, [ecx + 0x39]
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], edi
test eax, eax
je 0x402a02
cmp byte [eax], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edi
jne 0x401bb0
xor ebx, ebx
mov dword [esp + 0x30], edx
jmp 0x402d4e
mov esi, dword [ecx + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
test esi, esi
je 0x401bb0
mov dword [esp + 0x1c], edi
xor ebx, ebx
mov dword [esp + 0x30], edx
jmp 0x402d4e
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x1c], edi
mov esi, dword [ebp + 0x30]
mov ebx, dword [ebp + 0x68]
mov dword [esp + 0x88], ebx
test esi, esi
je 0x402985
mov dword [esp + 0x1c], edi
test ebx, ebx
je 0x402998
push 0
push 0
push 0xffffffffffffffff
push ebx
call dword [esp + 0x11c]
mov edi, eax
mov dword [esp + 0x1c], edi
test edi, edi
je 0x402985
mov edx, dword [esp + 0x78]
xor ebx, ebx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x30], edx
jmp 0x402d4e
test ebx, ebx
je 0x402998
push ebx
call dword [esp + 0xa4]
mov dword [ebp + 0x68], 0
mov esi, dword [esp + 0x78]
mov dword [esp + 0x30], esi
jmp 0x401bb0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
test esi, esi
je 0x401bb0
mov eax, dword [esp + 0x54]
mov esi, dword [esi + 0xc]
mov al, byte [eax + 5]
test esi, esi
jne 0x4029e9
test al, 1
je 0x4029dc
test ebx, ebx
je 0x4029dc
push esi
push ebx
call dword [esp + 0xb4]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edx
jmp 0x401bb0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edx
test al, 4
jne 0x401bb0
mov byte [esp + 0x22], 1
mov dword [esp + 0x1c], edi
xor ebx, ebx
mov dword [esp + 0x30], edx
jmp 0x402d4e
test edi, edi
je 0x402a51
xor eax, eax
test edx, edx
jle 0x402a31
nop word [eax + eax]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x24], ebx
cmp dword [ebx + 4], edi
je 0x402a4b
inc eax
cmp eax, edx
jl 0x402a20
mov dword [esp + 0x24], 0
test ecx, ecx
je 0x402a59
cmp ecx, dword [0x4f99e8]
jne case.0x4027a5.1027
jmp 0x402a59
test ebx, ebx
jne 0x402a59
jmp 0x402a39
mov dword [esp + 0x24], 0
mov ecx, dword [0x4fc640]
test ecx, ecx
je 0x402a89
mov eax, dword [esp + 0x40]
mov edi, dword [ecx + 4]
mov dword [esp + 0x64], edi
test edi, edi
je 0x402a82
cmp dword [edi + 0x14], eax
je 0x402a94
mov edi, dword [edi + 0x20]
mov dword [esp + 0x64], edi
test edi, edi
jne 0x402a72
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x402a67
xor eax, eax
mov dword [esp + 0x64], eax
jmp 0x401bb0
mov esi, dword [edi + 8]
test esi, esi
je 0x401bb0
mov ebx, dword [edi + 0x18]
jmp 0x402d52
mov ebp, dword [esp + 0x18]
cmp edi, dword [0x4fa544]
jae 0x402786
mov eax, dword [0x4fa540]
mov esi, dword [eax + edi*4]
mov dword [esp + 0x8c], esi
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x402af6
mov edx, dword [esi + 4]
call fcn.004142f0
mov edi, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
test edi, edi
je 0x402786
mov ecx, dword [esi + 0x10]
mov cl, byte [ecx]
cmp cl, 1
je 0x402b00
cmp cl, 3
je 0x402b00
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], edi
push dword [esp + 0x40]
mov ecx, esi
call fcn.00417090
cmp dword [esi + 0xc], 0
mov ebp, dword [esp + 0x18]
jne 0x402786
cmp byte [esi + 0x2a], 0
je 0x402b26
mov ax, word [esp + 0x40]
jmp 0x402b28
xor eax, eax
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x38]
mov word [0x4fc654], ax
mov ebx, dword [ebx + 0x14]
jmp 0x402d4c
cmp byte [0x4fc628], 0
jne 0x401bb0
mov esi, dword [0x4fc61c]
test esi, esi
cmove esi, dword [0x4fc1c8]
xor ebx, ebx
jmp 0x402d4e
mov ecx, edi
call fcn.004534d0
mov ebp, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x70], esi
test esi, esi
je 0x402786
mov esi, dword [esi + 8]
xor ebx, ebx
mov ebp, dword [esp + 0x38]
mov esi, dword [esi + 0x35c]
jmp 0x402d4e
mov esi, dword [0x4f99d8]
mov dword [esp + 0x70], esi
test esi, esi
je 0x401bb0
cmp esi, edi
je 0x402bb7
mov esi, dword [esi + 4]
mov dword [esp + 0x70], esi
test esi, esi
jne 0x402ba3
jmp 0x401bb0
mov esi, dword [esi + 8]
cmp ebp, 0x41c
jne 0x402bca
mov esi, dword [esi + 0x360]
jmp 0x402be0
cmp ebp, 0x41e
jne 0x402bda
mov esi, dword [esi + 0x368]
jmp 0x402be0
mov esi, dword [esi + 0x364]
test esi, esi
je 0x401bb0
xor ebx, ebx
jmp 0x402d4e
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4fa55c]
jae 0x401bb0
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x4fa54c]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0xb4], edx
test di, di
je 0x402c4a
mov esi, dword [edx + 0x20]
add edi, 0xffff
mov dword [esp + 0x90], esi
test di, di
je 0x402c46
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402c31
mov dword [esp + 0x90], esi
test esi, esi
jne 0x402c90
cmp ebp, 0x400
jne 0x402c62
mov eax, dword [esp + 0x40]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x402c64
xor ecx, ecx
push 0
push ecx
lea eax, [esp + 0x74]
mov ecx, edx
push eax
call fcn.00414c40
mov edi, dword [esp + 0x6c]
mov esi, eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x68], edi
test esi, esi
je 0x401bb0
mov ebp, dword [esp + 0x38]
mov eax, dword [0x4fe09c]
mov edx, dword [esi]
test al, 1
jne 0x402cb4
or dword [0x4fe09c], 1
mov ecx, 0x4fe0a0
push 0
push 0
call fcn.0042c300
mov ebp, dword [esp + 0x38]
mov eax, dword [0x4fc1c8]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x402cc7
cmp ecx, dword [0x4fe0a0]
jne 0x402cd2
mov eax, dword [edx + 8]
test eax, eax
je 0x402cd2
mov cl, byte [eax]
jmp 0x402cd4
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402d1c
cmp cl, 0xe2
je 0x402d1c
cmp cl, 0xce
je 0x402d1c
cmp cl, 0xdc
je 0x402d1c
cmp cl, 0xdd
je 0x402d1c
cmp cl, 0xd8
je 0x402d1c
cmp cl, 0xd9
je 0x402d1c
cmp cl, 0xda
je 0x402d1c
cmp cl, 0xdb
je 0x402d1c
cmp byte [esi + 0x1a], 0
je 0x402d0e
mov byte [esi + 0x1b], 1
mov ebx, dword [esp + 0x14]
call ebx
mov dword [esi + 0xc], eax
jmp 0x401bb4
mov eax, dword [esi + 4]
test eax, eax
je 0x402d38
mov al, byte [eax]
cmp al, 2
je 0x402d38
cmp al, 4
je 0x402d38
cmp al, 5
jb 0x402d42
mov eax, dword [0x4f99d4]
jmp 0x402d3a
xor eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov ebx, dword [esp + 0x90]
mov ebx, dword [ebx + 0x10]
mov esi, dword [esi]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov eax, dword [0x4fe09c]
test al, 1
jne 0x402d7c
or dword [0x4fe09c], 1
mov ecx, 0x4fe0a0
push 0
push 0
call fcn.0042c300
mov ebp, dword [esp + 0x38]
mov eax, dword [0x4fc1c8]
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x402d8f
cmp ecx, dword [0x4fe0a0]
jne 0x402d9c
mov eax, esi
mov eax, dword [eax + 8]
test eax, eax
je 0x402d9c
mov cl, byte [eax]
jmp 0x402d9e
xor cl, cl
mov edx, dword [0x4f99d0]
mov eax, dword [0x4f70f0]
mov byte [esp + 0xd8], cl
cmp edx, eax
jl 0x402e2b
add eax, 2
cmp edx, eax
jge 0x402de3
cmp cl, 0xe2
je 0x402e2b
cmp cl, 0xce
je 0x402e2b
cmp cl, 0xdc
je 0x402e2b
cmp cl, 0xdd
je 0x402e2b
cmp cl, 0xd8
je 0x402e2b
cmp cl, 0xd9
je 0x402e2b
cmp cl, 0xda
je 0x402e2b
cmp cl, 0xdb
je 0x402e2b
mov eax, dword [esp + 0x88]
test eax, eax
je 0x402e05
push eax
call dword [esp + 0xa4]
mov edi, dword [esp + 0x24]
mov dword [edi + 0x68], 0
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
cmp ebp, 0x41b
mov ebp, dword [esp + 0x18]
jne 0x401bb8
mov ebp, dword [esp + 0x70]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401bb4
mov eax, dword [0x4f70f4]
cmp ebx, dword [eax + 0x2c]
jge 0x402e7d
mov eax, dword [esp + 0x88]
test eax, eax
je 0x402e57
push eax
call dword [esp + 0xa4]
mov edi, dword [esp + 0x24]
mov dword [edi + 0x68], 0
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
cmp ebp, 0x41b
mov ebp, dword [esp + 0x18]
jne 0x401bb8
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401bb8
lea eax, [ebp - 0x402]
mov byte [esp + 0x74], 1
cmp eax, 0x1c
ja case.0x402e94.1027
movzx eax, byte [eax + 0x404314]
jmp dword [eax*4 + 0x404308]
mov ebp, dword [esp + 0xfc]
push 0x104
push dword [edi]
push 0x4fc1d0
call ebp
xor eax, eax
add esp, 0xc
mov word [0x4fc3d8], ax
mov eax, dword [edi + 0x10]
push 0x104
push dword [eax]
push 0x4fc3da
call ebp
add esp, 0xc
mov dword [0x4fc1cc], edi
xor eax, eax
mov word [0x4fc5e2], ax
jmp case.0x402e94.1044
mov eax, dword [0x4fc5e4]
mov dword [0x4fc5e8], eax
mov eax, dword [0x4fc64c]
mov dword [0x4fc650], eax
cmp ebp, 0x401
jne 0x402f07
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 4]
jmp 0x402f11
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + 0x1c]
mov dword [0x4fc5e4], eax
call dword [esp + 0x14]
mov dword [0x4fc64c], eax
mov edi, dword [0x4f99cc]
cmp byte [edi + 0x17], 0
jne 0x402f2e
mov edi, dword [edi + 0xc]
test byte [edi + 0x15], 8
je 0x402f3b
mov ecx, edi
call fcn.00401460
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x402f53
test byte [edi + 0x15], 4
je 0x402f4e
push edi
call fcn.0044e390
mov ecx, dword [edi + 8]
jmp 0x402fa4
cmp al, 2
jne 0x402f9f
mov ecx, dword [0x4fc6e4]
test ecx, ecx
jne 0x402fa4
mov ebp, dword [esp + 0xb0]
push 0xd
call ebp
test eax, eax
jne 0x402f85
push 0xf
call ebp
test eax, eax
mov ecx, 0x4cdc34
mov eax, 0x4cdc40
cmove ecx, eax
jmp 0x402fa4
push 0
call fcn.004065b0
mov edx, 0x4cdc40
cmp eax, 0xffffffff
mov ecx, edx
cmovne ecx, dword [0x4fc6e0]
jmp 0x402fa4
mov ecx, 0x4fb2d8
push 0x7f
push ecx
lea eax, [esp + 0x298]
push eax
call dword [esp + 0x108]
add esp, 0xc
xor eax, eax
xor dl, dl
mov word [esp + 0x38e], ax
mov ecx, ebx
push dword [esp + 0xd8]
push 1
call fcn.00404cf0
mov ebp, dword [0x4f70f4]
add esp, 8
mov ebx, dword [esp + 0x14]
call ebx
mov dword [0x4fc694], eax
mov dword [0x4fc690], eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x403007.1027
movzx eax, byte [eax + 0x404354]
jmp dword [eax*4 + 0x404334]
mov edi, dword [esp + 0x54]
xor eax, eax
mov ebx, dword [esp + 0x24]
mov word [esp + 0x1c8], ax
cmp byte [esp + 0x22], al
je 0x40302a
mov ecx, dword [edi]
jmp 0x40302d
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov eax, edx
add eax, eax
inc edx
mov dword [esp + 0x28], edx
mov dword [esp + eax*8 + 0x168], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + eax*8 + 0x170], 1
mov dword [esp + eax*8 + 0x16c], 0
lea eax, [ecx - 5]
cmp eax, 4
ja case.default.0x403067
jmp dword [eax*4 + 0x404374]
xor edx, edx
cmp dword [esp + 0x1c], edx
mov dword [esp + 0x1c], 0
sete dl
lea edx, [edx*2 + 1]
mov dword [ebp + 0x34], edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], ecx
test edi, edi
je 0x403249
cmp dword [esp + 0x78], 0
je 0x4031c4
movzx eax, byte [edi + 4]
add eax, 0xfffffff7
mov dword [esp + 0xc8], connect
cmp eax, 8
ja case.0x4030c5.12
jmp dword [eax*4 + 0x404388]
push 0
push 0
push 0x19f
push dword [edi]
call dword [esp + 0x3c]
cmp eax, 0xffffffff
je case.0x4030c5.12
lea ecx, [esp + 0xc8]
push ecx
push eax
push 0x198
jmp 0x40315d
push 1
push 0xffffffffffffffff
push 0x100c
push dword [edi]
call dword [esp + 0x3c]
cmp eax, 0xffffffff
je case.0x4030c5.12
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], 2
push ecx
push eax
push 0x100e
jmp 0x40315d
push 0
push 9
push 0x110a
push dword [edi]
call dword [esp + 0x3c]
test eax, eax
je case.0x4030c5.12
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
push eax
push 1
push 0x1104
jmp 0x40315d
lea eax, [esp + 0xc8]
push eax
push 0
push 0x419
push dword [edi]
call dword [esp + 0x3c]
cmp dword [esp + 0xc8], 0x80000000
lea ecx, [esp + 0xc8]
mov eax, dword [edi]
jne 0x403184
push ecx
push eax
call dword [esp + 0xa4]
jmp 0x403191
push 2
push ecx
push 0
push eax
call dword [esp + pe_nt_image_headers32]
mov eax, dword [esp + 0xc8]
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0xcc]
mov eax, eax
test eax, eax
jns 0x4031b2
add eax, 1
sar eax, 1
add eax, 2
add eax, dword [esp + 0xcc]
mov dword [ebp + 0x40], eax
mov edx, dword [ebp + 0x34]
movzx eax, byte [edi + 4]
sub eax, 9
je 0x403235
sub eax, 1
je 0x40322a
sub eax, 1
jne 0x403249
cmp edx, 1
jne 0x4031ec
push eax
push 9
push 0x110a
push dword [edi]
call dword [esp + 0x3c]
jmp 0x403245
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1e8], eax
lea eax, [esp + 0x1e8]
push eax
push dword [edi]
mov dword [esp + 0x1f4], ecx
call dword [esp + 0x11c]
lea eax, [esp + 0x1e8]
push eax
push 0
push 0x1111
push dword [edi]
call dword [esp + 0x3c]
jmp 0x403245
push 1
push 0xffffffffffffffff
push 0x100c
jmp 0x40323e
push 0
push 0
push 0x19f
push dword [edi]
call dword [esp + 0x3c]
inc eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x210]
push eax
push dword [ebx + 4]
call dword [esp + 0xa4]
mov eax, dword [esp + 0x210]
sub dword [ebp + 0x3c], eax
mov edx, dword [esp + 0x28]
mov ecx, edx
mov eax, dword [esp + 0x214]
add ecx, ecx
sub dword [ebp + 0x40], eax
test edi, edi
je 0x403296
mov eax, dword [edi]
mov dword [esp + ecx*8 + 0x168], eax
mov eax, 1
mov dword [esp + ecx*8 + 0x16c], 0
jmp 0x4032a3
mov dword [esp + ecx*8 + 0x168], 0x4cdc40
xor eax, eax
mov dword [esp + ecx*8 + 0x170], eax
lea edi, [edx + 2]
mov eax, dword [esp + 0x1c]
lea ebx, [edx + 4]
mov dword [esp + ecx*8 + 0x178], eax
add edi, edi
mov dword [esp + ecx*8 + 0x180], 1
mov dword [esp + ecx*8 + 0x17c], 0
xor ecx, ecx
mov eax, dword [ebp + 0x34]
cmp eax, 3
mov dword [esp + edi*8 + 0x170], 1
mov dword [esp + edi*8 + 0x16c], 0
sete cl
mov dword [esp + edi*8 + 0x168], ecx
lea ecx, [esp + 0x168]
mov eax, dword [ebp + 0x3c]
cdq
mov dword [esp + edi*8 + 0x178], eax
mov eax, ebx
shl eax, 4
add ecx, eax
mov dword [esp + edi*8 + 0x17c], edx
mov dword [esp + edi*8 + 0x180], 1
lea eax, [ebx + 1]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x40]
cdq
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x1c]
cmp byte [esp + 0x22], 0
je 0x4037e7
mov ebx, dword [esp + 0x54]
cmp byte [ebx + 4], 0x17
jne 0x4037e7
push 0x10b0
lea eax, [esp + 0x39c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x390], 0xd
lea eax, [edi - 1]
mov dword [esp + 0x394], eax
lea eax, [esp + 0x390]
push eax
push 0
push 0x703
push dword [ebx]
call dword [esp + 0x3c]
test eax, eax
je 0x403892
cmp word [esp + 0x400], 0
lea ecx, [esp + 0x3a0]
push 1
push 0
lea eax, [esp + 0x408]
cmove eax, ecx
mov ecx, dword [0x4f99cc]
push 0xffffffffffffffff
push eax
call fcn.004b3f70
mov ecx, dword [esp + 0x28]
lea ebx, [esp + 0x168]
mov edi, dword [0x4f99cc]
mov eax, ecx
shl eax, 4
inc ecx
add ebx, eax
mov dword [esp + 0x28], ecx
cmp byte [edi + 0x17], 0
jne 0x4033fd
mov edi, dword [edi + 0xc]
test byte [edi + 0x15], 8
je 0x40340a
mov ecx, edi
call fcn.00401460
mov al, byte [edi + 0x17]
cmp al, 1
jne 0x403772
test byte [edi + 0x15], 4
je 0x403421
push edi
call fcn.0044e390
mov ecx, dword [edi + 8]
mov dword [ebx + 8], 0
mov dword [ebx], ecx
jmp 0x403892
mov dword [ebp + 0x34], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [ebp + 0x3c], eax
lea eax, [esp + 0x220]
push eax
mov dword [ebp + 0x40], ecx
push dword [ebx + 4]
call dword [esp + 0xa4]
mov eax, dword [esp + 0x220]
sub dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x224]
sub dword [ebp + 0x40], eax
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [esp + 0x84]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx + 4]
call dword [esp + 0xec]
mov ebx, dword [esp + 0x28]
mov edi, ebx
mov ecx, dword [esp + 0x88]
shl edi, 4
call fcn.00489bb0
lea ecx, [esp + 0x178]
mov dword [esp + edi + 0x168], eax
mov eax, dword [esp + 0x54]
add ecx, edi
mov dword [esp + edi + 0x170], 6
test eax, eax
je 0x4034cf
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, 1
mov dword [ecx + 4], 0
jmp 0x4034d7
mov dword [ecx], 0x4cdc40
xor eax, eax
mov dword [ecx + 8], eax
lea edi, [ebx + 2]
mov ecx, dword [esp + 0x24]
add edi, edi
mov eax, dword [ebp + 0x3c]
cmp byte [ecx + 0xc8], 0
je 0x403503
push dword [0x4fbb64]
push 0x60
push eax
call dword [esp + 0xa4]
mov ecx, dword [esp + 0x24]
cdq
mov dword [esp + edi*8 + 0x168], eax
lea eax, [ebx + 4]
mov dword [esp + edi*8 + 0x170], 1
mov dword [esp + edi*8 + 0x16c], edx
cmp byte [ecx + 0xc8], 0
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x40]
je 0x403540
push dword [0x4fbb64]
push 0x60
push eax
call dword [esp + 0xa4]
cdq
mov dword [esp + edi*8 + 0x180], 1
mov dword [esp + edi*8 + 0x178], eax
mov dword [esp + edi*8 + 0x17c], edx
jmp 0x40333d
mov dword [ebp + 0x34], 1
cmp ecx, 8
jne 0x403345
mov eax, dword [esp + 0x28]
lea edi, [esp + 0x178]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
shl eax, 4
mov dword [ebp + 0x3c], edx
add edi, eax
mov dword [esp + eax + 0x170], 1
mov dword [esp + eax + 0x168], ecx
mov dword [esp + eax + 0x16c], 0
cmp byte [ebx + 0xc8], 0
movzx eax, dx
je 0x4035c3
push dword [0x4fbb64]
push 0x60
push eax
call dword [esp + 0xa4]
mov ecx, dword [esp + 0x28]
cdq
mov dword [edi], eax
mov eax, ecx
mov dword [edi + 8], 1
add ecx, 3
mov dword [edi + 4], edx
lea edi, [esp + 0x188]
shl eax, 4
add edi, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x30]
shr eax, 0x10
cmp byte [ebx + 0xc8], 0
je 0x403609
push dword [0x4fbb64]
push 0x60
push eax
call dword [esp + 0xa4]
cdq
mov dword [edi + 8], 1
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x40333d
mov al, byte [edi + 4]
cmp al, 0xa
je 0x40368c
cmp al, 0x19
jne 0x403662
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [ebp + 0x3c], eax
lea eax, [esp + 0x230]
push eax
mov dword [ebp + 0x40], ecx
push dword [ebx + 4]
call dword [esp + 0xa4]
mov eax, dword [esp + 0x230]
sub dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x234]
sub dword [ebp + 0x40], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
mov dword [ebp + 0x34], ecx
mov ecx, edx
shl ecx, 4
lea edx, [esp + 0x168]
add edx, ecx
cmp eax, 5
jae 0x403726
mov eax, dword [eax*4 + 0x4eec94]
jmp 0x403734
cmp cl, 0x49
jne 0x403662
lea eax, [esp + 0x1c8]
test ecx, 0x100
je 0x4036a7
mov eax, 0x53
jmp 0x4036b4
test ecx, 0x200
je 0x4036c3
mov eax, 0x73
mov word [esp + 0x1c8], ax
lea eax, [esp + 0x1ca]
test ecx, 0x400
je 0x4036d2
mov ebx, 0x46
jmp 0x4036df
test ecx, 0x800
je 0x4036e5
mov ebx, 0x66
mov word [eax], bx
add eax, 2
test ecx, 0x1000
je 0x4036f4
mov ecx, 0x43
jmp 0x403701
test ecx, 0x2000
je 0x403707
mov ecx, 0x63
mov word [eax], cx
add eax, 2
xor ecx, ecx
mov word [eax], cx
mov ecx, edx
mov eax, 0x49
shl ecx, 4
lea edx, [esp + 0x168]
mov dword [esp + 0x5c], eax
mov dword [ebp + 0x34], eax
add edx, ecx
movzx eax, al
mov word [0x4fdb74], ax
mov eax, 0x4fdb74
mov edi, dword [esp + 0x1c]
mov dword [edx + 8], 0
mov dword [edx], eax
mov edx, dword [esp + 0x28]
add edx, 2
mov dword [esp + ecx + 0x180], 1
mov dword [esp + ecx + 0x178], edi
mov dword [esp + ecx + 0x17c], 0
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
jmp 0x403349
cmp al, 2
jne 0x4037d4
mov ecx, dword [0x4fc6e4]
test ecx, ecx
jne 0x4037d9
mov edi, dword [esp + 0xb0]
push 0xd
call edi
test eax, eax
jne 0x4037b0
push 0xf
call edi
test eax, eax
mov dword [ebx + 8], 0
mov ecx, 0x4cdc34
mov eax, 0x4cdc40
cmove ecx, eax
mov dword [ebx], ecx
jmp 0x403892
push 0
call fcn.004065b0
cmp eax, 0xffffffff
mov dword [ebx + 8], 0
mov ecx, 0x4cdc40
cmovne ecx, dword [0x4fc6e0]
mov dword [ebx], ecx
jmp 0x403892
mov ecx, 0x4fb2d8
mov dword [ebx + 8], 0
mov dword [ebx], ecx
jmp 0x403892
cmp word [esp + 0x1c8], 0
je 0x403814
mov eax, edx
add eax, eax
inc edx
mov dword [esp + 0x28], edx
lea edx, [esp + 0x1c8]
mov dword [esp + eax*8 + 0x170], 0
mov dword [esp + eax*8 + 0x168], edx
cmp ecx, 8
je 0x403839
cmp ecx, 5
je 0x403839
mov ecx, dword [0x4f99cc]
lea eax, [esp + 0x1c8]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004b3f70
jmp 0x403892
mov edi, dword [0x4f99cc]
cmp byte [edi + 0x17], 0
jne 0x403848
mov edi, dword [edi + 0xc]
mov al, byte [edi + 0x15]
test al, 2
je 0x40385f
and al, 0x3d
mov byte [edi + 0x15], al
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov al, byte [edi + 0x15]
mov ecx, dword [esp + 0x1c]
and al, 0x9b
or al, 0x18
mov dword [edi], ecx
mov dword [edi + 4], 0
mov byte [edi + 0x15], al
jge 0x403882
mov ecx, edi
call fcn.00401460
and byte [edi + 0x15], 0x8f
jmp 0x403892
cmp dword [0x4f99f4], 0
je 0x403892
mov ecx, edi
call fcn.00401460
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x84]
mov eax, dword [ecx + 4]
mov dword [ebp + 0xc4], eax
add dword [ecx + 0x20], 2
mov eax, dword [esp + 0xdc]
mov dword [ebp + 0x50], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x38], eax
test edi, edi
je 0x4039b6
mov byte [edi], 1
mov ebx, dword [esp + 0x54]
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8af0]
jne 0x4038e9
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x4038fe
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
push 0
add ecx, 0xc
lea eax, [esp + 0x11c]
push eax
push dword [esp + 0x30]
mov dword [0x4f8aec], ecx
lea eax, [esp + 0x174]
push eax
mov dword [ecx], 0
mov edx, esi
mov dword [ecx + 4], 0x4cdc50
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049bba0
mov ebp, dword [esp + 0x38]
add esp, 0x14
sub dword [0x4f8aec], 0xc
cmp dword [ebp + 4], 0
je 0x403a1c
mov eax, dword [esp + 0x5c]
test edi, edi
je 0x4039ce
mov byte [edi], 0
cmp eax, 6
jne 0x4039d9
cmp dword [esp + 0x118], 0
jne 0x403a1c
mov eax, dword [0x4fe09c]
test al, 1
jne 0x403994
push 0
or eax, 1
mov ecx, 0x4fe0a0
push 0
mov dword [0x4fe09c], eax
call fcn.0042c300
mov eax, dword [0x4fc1c8]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x4039a3
test esi, esi
jne 0x403a1c
mov eax, dword [ebp + 4]
test eax, eax
je 0x403a1c
push 0
push eax
call dword [esp + 0xb4]
jmp 0x403a1c
cmp byte [esp + 0x22], 0
je 0x4038cc
mov ebx, dword [esp + 0x54]
or byte [ebx + 5], 4
jmp 0x4038d0
cmp byte [esp + 0x22], 0
je 0x4039d9
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x403a1c
mov eax, dword [esp + 0x178]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [esp + 0x88]
call dword [esp + 0xa4]
push 0xffffffffffffffec
push dword [ebp + 4]
mov dword [ebp + 0x68], 0
call dword [esp + 0x84]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebp + 4]
call dword [esp + 0xec]
add dword [ebp + 0x20], 0xffffffff
jne 0x403a3d
push dword [ebp]
call dword [esp + 0xe8]
add esp, 4
push 0xd8
push ebp
call fcn.004ca9d4
add esp, 8
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x290]
call fcn.00404e00
cmp dword [esp + 0xb8], 0
mov ebp, dword [esp + 0x18]
je 0x401bb8
call ebx
cmp byte [esp + 0x23], 0
mov edx, dword [esp + 0x80]
jne 0x403a83
mov ecx, dword [esp + 0xa4]
sub ecx, eax
add ecx, edx
cmp ecx, 5
jg 0x401bb8
cmp edx, 0xffffffff
jle 0x403a98
xorps xmm0, xmm0
mov dword [0x4fc690], eax
movlpd qword [0x4fc680], xmm0
mov dword [0x4fc694], eax
mov byte [esp + 0x50], 1
mov byte [esp + 0x23], 1
jmp 0x401bb4
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x403ace
mov eax, dword [ecx + 4]
mov dword [ebp + 0xc4], eax
mov dword [ebp + 0x34], 1
add dword [ecx + 0x20], 2
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x44], ecx
mov ecx, 0x4fbb78
mov dword [esp + 0x140], 0
mov dword [esp + 0x138], 0x4fc1d0
call fcn.00466ce0
mov ecx, dword [0x4f8aec]
inc eax
mov dword [esp + 0x150], 1
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x158], 0x4fc3da
cmp ecx, dword [0x4f8af0]
jne 0x403b3b
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403b50
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
add ecx, 0xc
lea eax, [esp + 0x138]
push 0
push 0
mov dword [0x4f8aec], ecx
mov edx, esi
push 3
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.Menu
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049bba0
sub dword [0x4f8aec], 0xc
add esp, 0x14
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x403a41
add dword [ebp + 0x20], 0xffffffff
jne 0x403a41
push dword [ebp]
call dword [esp + 0xe8]
add esp, 4
push 0xd8
push ebp
call fcn.004ca9d4
add esp, 8
jmp 0x403a41
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x68]
mov dword [ebp + 0xc4], eax
mov al, byte [esi + 0x21]
mov byte [ebp + 0xf6], al
mov eax, dword [0x4fe09c]
mov edx, dword [esi]
test al, 1
jne 0x403c04
push 0
or eax, 1
mov ecx, 0x4fe0a0
push 0
mov dword [0x4fe09c], eax
call fcn.0042c300
mov eax, dword [0x4fc1c8]
mov ecx, dword [edx]
cmp ecx, dword [eax]
je 0x403c17
cmp ecx, dword [0x4fe0a0]
jne 0x403c22
mov eax, dword [edx + 8]
test eax, eax
je 0x403c22
mov cl, byte [eax]
jmp 0x403c24
xor cl, cl
mov al, byte [esi + 0x24]
cmp al, byte [esi + 0x25]
jb 0x403c58
cmp cl, 0xe2
je 0x403c58
cmp cl, 0xce
je 0x403c58
cmp cl, 0xdc
je 0x403c58
cmp cl, 0xdd
je 0x403c58
cmp cl, 0xd8
je 0x403c58
cmp cl, 0xd9
je 0x403c58
cmp cl, 0xda
je 0x403c58
cmp cl, 0xdb
jne 0x403a41
mov byte [0x4fc656], 0
inc byte [esi + 0x24]
mov ecx, dword [0x4f8aec]
mov esi, dword [0x4fc5e4]
cmp ecx, dword [0x4f8af0]
jne 0x403c81
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403c96
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
add ecx, 0xc
mov dword [0x4f8aec], ecx
push 0
push 0
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x94]
push 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
mov ecx, dword [esi]
mov edx, ecx
push 0
push str.call
call fcn.0049bba0
sub dword [0x4f8aec], 0xc
add esp, 0x14
dec byte [esi + 0x24]
jmp 0x403a41
call dword [esp + 0x11c]
test eax, eax
je 0x403d0c
mov esi, dword [esp + 0xb0]
push 0xd
call esi
test eax, eax
jne 0x403d05
push 0xf
call esi
test eax, eax
jne 0x403d05
lea edi, [eax + 2]
jmp 0x403d0e
mov edi, 1
jmp 0x403d0e
xor edi, edi
mov esi, dword [0x4f99cc]
mov dword [ebp + 0x38], edi
cmp byte [esi + 0x17], 0
jne 0x403d20
mov esi, dword [esi + 0xc]
mov al, byte [esi + 0x15]
test al, 2
je 0x403d37
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov al, byte [esi + 0x15]
and al, 0x9b
mov dword [esi], edi
or al, 0x18
mov dword [esi + 4], 0
mov byte [esi + 0x15], al
jge 0x403d56
mov ecx, esi
call fcn.00401460
and byte [esi + 0x15], 0x8f
jmp 0x403d66
cmp dword [0x4f99f4], 0
je 0x403d66
mov ecx, esi
call fcn.00401460
mov eax, dword [ebp + 0x38]
mov ecx, dword [0x4f8aec]
mov dword [esp + 0x200], 1
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], 0
mov byte [0x4fc628], 1
cmp ecx, dword [0x4f8af0]
jne 0x403da6
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403dbb
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
add ecx, 0xc
mov dword [0x4f8aec], ecx
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cdcb8
mov dword [ecx + 8], 0
mov esi, dword [0x4fc61c]
test esi, esi
je 0x403e63
mov eax, dword [0x4f70f4]
mov edi, dword [eax + 0xbc]
mov dword [eax + 0xbc], esi
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8af0]
jne 0x403e10
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403e25
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
add ecx, 0xc
mov dword [0x4f8aec], ecx
mov eax, dword [esi + 8]
push 0
push 0
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], 1
mov ecx, dword [esi + 8]
push 1
call fcn.00442f10
mov eax, dword [0x4f70f4]
sub dword [0x4f8aec], 0xc
mov dword [eax + 0xbc], edi
mov esi, dword [0x4fc61c]
cmp dword [esp + 0x3c], 0
jne 0x403e86
xor eax, eax
mov ecx, 0x4fc5fc
test esi, esi
sete al
push eax
push 1
lea eax, [esp + 0x200]
push eax
call fcn.0049f420
sub dword [0x4f8aec], 0xc
mov byte [0x4fc628], 0
jmp 0x403a41
mov ebp, dword [esp + 0x70]
mov ecx, dword [0x4f8aec]
mov dword [esp + 0x248], 6
mov eax, dword [ebp + 8]
mov dword [esp + 0x240], eax
cmp ecx, dword [0x4f8af0]
jne 0x403ecb
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403ee0
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
add ecx, 0xc
lea eax, [esp + 0x240]
push 0
push 0
mov dword [0x4f8aec], ecx
mov edx, esi
push 1
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx + 8], 0
mov ecx, esi
push str.call
call fcn.0049bba0
sub dword [0x4f8aec], 0xc
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403a41
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x140], 6
mov dword [esp + 0x150], 1
mov eax, dword [eax + 8]
mov dword [esp + 0x138], eax
movzx eax, cl
cdq
sar ecx, 0x10
mov dword [esp + 0x148], eax
movzx eax, cx
mov ecx, dword [0x4f8aec]
mov dword [esp + 0x14c], edx
cdq
mov dword [esp + 0x160], 1
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], edx
cmp ecx, dword [0x4f8af0]
jne 0x403fa4
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x403fb9
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
push 0
push 0
push 3
lea eax, [esp + 0x144]
add ecx, 0xc
mov edx, esi
mov dword [0x4f8aec], ecx
push eax
push str.call
mov dword [ecx + 8], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx], 0
mov ecx, esi
call fcn.0049bba0
add esp, 0x14
sub dword [0x4f8aec], 0xc
jmp 0x403a41
mov eax, dword [esp + 0x40]
mov ecx, dword [0x4f8aec]
mov word [esp + 0x100], ax
sar eax, 0x10
mov word [esp + 0x102], ax
xor eax, eax
mov word [esp + 0x104], ax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x140], 6
mov dword [esp + 0x150], 0
mov eax, dword [eax + 8]
mov dword [esp + 0x138], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x148], eax
cmp ecx, dword [0x4f8af0]
jne 0x40406d
call fcn.00406c30
mov ecx, dword [0x4f8aec]
cmp ecx, dword [0x4f8ae8]
jb 0x404082
mov eax, dword [0x4fc1c4]
mov dword [ecx], eax
mov ecx, dword [0x4f8aec]
push 0
push 0
push 2
lea eax, [esp + 0x144]
jmp 0x403fc6
mov edi, dword [esp + 0xb4]
mov al, byte [edi + 0x10]
add al, 0x64
cmp al, 3
ja 0x4040ab
mov eax, dword [esp + 0x40]
mov dword [ebp + 0x38], eax
mov esi, dword [esp + 0x90]
mov ecx, edi
mov eax, dword [esp + 0x68]
mov dword [ebp + 0xc4], eax
push esi
mov al, byte [esi + 0x18]
mov byte [ebp + 0xf6], al
call fcn.00414f70
jmp 0x403a41
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404149
mov ecx, dword [0x4f70f4]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x34]
push eax
push esi
call dword [esp + 0xf8]
test eax, eax
je 0x40413a
cmp dword [0x4f99e4], 0
je 0x404129
mov eax, dword [0x4f8b50]
mov ecx, 0x4cdc40
test eax, eax
je 0x404121
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [esp + 0x124]
mov eax, dword [0x4f70f4]
mov byte [eax + 0xe8], 0
jmp 0x401bb0
mov ecx, dword [0x4f70f4]
mov byte [ecx + 0xe8], 0
jmp 0x40414f
mov ecx, dword [0x4f70f4]
mov eax, dword [0x4f99c0]
test eax, eax
je 0x404181
lea ecx, [esp + 0x34]
push ecx
push eax
push dword [0x4f99e8]
call dword [esp + 0x100]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test eax, eax
jne 0x401bb8
mov ecx, dword [0x4f70f4]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x34]
push eax
call dword [esp + 0x128]
lea eax, [esp + 0x34]
push eax
call dword [esp + 0x5c]
mov eax, dword [0x4f70f4]
mov byte [eax + 0xe8], 0
jmp 0x401bb0
cmp ebx, 0xffffffff
jle 0x4041cd
xorps xmm0, xmm0
mov dword [0x4fc690], eax
movlpd qword [0x4fc680], xmm0
xor ecx, ecx
mov dword [0x4fc694], eax
cmp byte [esp + 0x51], cl
movzx eax, byte [0x4f98a7]
cmovne eax, ecx
mov byte [0x4f98a7], al
cmp byte [esp + 0x52], cl
je 0x40427b
mov eax, dword [0x4f99ec]
dec eax
mov dword [0x4f99ec], eax
test ebx, ebx
jle 0x40427b
test eax, eax
jmp 0x40423f
xor ecx, ecx
mov dword [0x4fc690], eax
cmp byte [esp + 0x51], cl
xorps xmm0, xmm0
mov dword [0x4fc694], eax
movzx eax, byte [0x4f98a7]
cmovne eax, ecx
movlpd qword [0x4fc680], xmm0
mov byte [0x4f98a7], al
cmp byte [esp + 0x52], cl
je 0x40427b
sub dword [0x4f99ec], 1
jne 0x40427b
cmp dword [0x4fc63c], ecx
jne 0x40427b
cmp dword [0x4fa548], ecx
jne 0x40427b
cmp byte [0x4f98a6], cl
je 0x40427b
push 9
push dword [0x4f99e8]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4f98a6]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4f98a6], cl
mov edx, dword [esp + 0x74]
mov al, dl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret