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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2430
call fcn.004d2340
push ebx
push ebp
push esi
push edi
mov ebp, edx
mov dword [esp + 0xac], ebp
mov esi, ecx
mov dword [esp + 0x1c], esi
mov byte [esp + 0x3d], 0
cmp ebp, 2
jne 0x401a3e
cmp byte [0x507967], 0
mov ebp, 1
mov dword [esp + 0xac], ebp
jne 0x401a3e
mov byte [0x507967], 1
mov byte [esp + 0x3d], 1
cmp dword [0x50a798], 0
je 0x401a80
cmp dword [0x50a788], 0
je 0x401a66
push dword [0x50a780]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x50a788], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x50a798], 0
mov dword [0x50a780], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x14], eax
cmp esi, 0x8000012f
jne 0x401aac
mov esi, 0xa
mov byte [esp + 0x26], 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x9c], 0
jmp 0x401acc
cmp esi, 5
setle byte [esp + 0x26]
jg 0x401ac3
mov dword [esp + 0x9c], 0
jmp 0x401acc
call eax
mov dword [esp + 0x9c], eax
cmp dword [0x5085f8], 0
je 0x401ada
call fcn.004042e0
xor bl, bl
mov edi, 1
cmp dword [0x50a6ec], 0
mov dword [esp + 0x84], ebx
je 0x401b05
call fcn.00404110
test al, al
movzx ebx, bl
cmovne ebx, edi
mov dword [esp + 0x84], ebx
test esi, esi
jle 0x401b3f
cmp ebp, 1
jne 0x401b3f
inc dword [0x507aac]
cmp byte [0x507966], 0
mov byte [esp + 0x3e], 1
jne 0x401b44
push 0
push 0xa
push 9
push dword [0x507aa8]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x507966]
jmp 0x401b44
mov byte [esp + 0x3e], 0
mov eax, dword [sym.imp.USER32.dll_GetMessageW]
xorps xmm0, xmm0
mov dword [esp + 0x17c], eax
mov eax, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [esp + 0xcc], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [esp + 0xd0], eax
mov eax, dword [sym.imp.USER32.dll_GetClassNameW]
mov dword [esp + 0xb0], eax
mov eax, dword [sym.imp.USER32.dll_GetFocus]
mov dword [esp + 0xdc], eax
mov eax, dword [sym.imp.USER32.dll_PeekMessageW]
mov dword [esp + 0x78], eax
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0xa0], eax
mov eax, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov dword [esp + 0xd8], eax
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [esp + 0xa4], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x94], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov dword [esp + 0x180], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x40], eax
mov eax, dword [sym.imp.USER32.dll_WindowFromPoint]
mov dword [esp + 0x184], eax
mov eax, dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x150], eax
mov eax, dword [sym.imp.USER32.dll_IsDialogMessageW]
mov dword [esp + 0xd4], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [esp + 0x158], eax
mov eax, dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [esp + 0x90], eax
mov eax, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [esp + 0x164], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowLongW]
mov dword [esp + 0xc4], eax
mov eax, dword [sym.imp.USER32.dll_CountClipboardFormats]
mov dword [esp + 0x16c], eax
mov eax, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov dword [esp + 0xc8], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [esp + 0x154], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [esp + 0x174], eax
mov eax, dword [sym.imp.USER32.dll_TranslateMessage]
mov dword [esp + 0x178], eax
mov eax, dword [sym.imp.USER32.dll_DispatchMessageW]
mov dword [esp + 0x64], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x88], eax
mov eax, dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x160], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
mov byte [esp + 0x3f], 0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x3f]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x64]
mov byte [esp + 0x3c], 0
mov dword [esp + 0x18], 0
movsd qword [esp + 0x1e0], xmm0
mov dword [esp + 0x20], edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x64]
xor edi, edi
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
jmp 0x401d5c
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
jmp 0x401d5c
push dword [esi]
call dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
call ebp
mov ebx, eax
test esi, esi
jle 0x401db6
cmp byte [esp + 0x3c], 0
jne 0x401db6
cmp byte [0x507967], 0
jne 0x401dc3
call fcn.004049a0
neg eax
sbb eax, eax
and eax, 0xfffffcef
add eax, 0x311
push eax
push 0
push 0
lea eax, [esp + 0x50]
push eax
call dword [esp + 0x18c]
cmp eax, 0xffffffff
je 0x401d5c
call ebp
mov ecx, eax
sub ecx, ebx
cmp ecx, 3
jbe 0x402041
mov dword [0x50a738], eax
jmp 0x402041
cmp byte [0x507967], 0
je 0x401f25
call dword [esp + 0xcc]
mov esi, eax
test esi, esi
je 0x401f25
push 0
push esi
call dword [esp + 0xd8]
cmp eax, dword [0x50939c]
jne 0x401f25
cmp dword [0x507aa4], 0
je 0x401e44
push 0x20
lea eax, [esp + 0x24c]
push eax
push esi
mov esi, dword [esp + 0xbc]
call esi
mov ecx, str.32770
lea eax, [esp + 0x248]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401e39
test dx, dx
je 0x401e35
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401e39
add eax, 4
add ecx, 4
test dx, dx
jne 0x401e13
xor eax, eax
jmp 0x401e3e
sbb eax, eax
or eax, 1
test eax, eax
je 0x401e9d
jmp 0x401e4b
mov esi, dword [esp + 0xb0]
call dword [esp + 0xdc]
test eax, eax
je 0x401f25
push 0x20
lea ecx, [esp + 0x24c]
push ecx
push eax
call esi
lea eax, [esp + 0x248]
push str.SysTreeView32
push eax
call fcn.004ba0a7
add esp, 8
test eax, eax
je 0x401e9d
lea eax, [esp + 0x248]
push str.SysListView32
push eax
call fcn.004ba0a7
add esp, 8
test eax, eax
jne 0x401f25
call fcn.004049a0
mov edi, dword [esp + 0x78]
neg eax
push 0
push 0x1ff
sbb esi, esi
lea eax, [esp + 0x4c]
push 0
push 0
and esi, 0xfffffcee
push eax
add esi, 0x311
call edi
test eax, eax
lea eax, [esp + 0x44]
jne 0x401ee2
push 1
push esi
push 0x20e
push 0
push eax
call edi
jmp 0x401f9f
mov edi, dword [esp + 0x54]
push 0
push esi
push 0x20e
push 0
push eax
call dword [esp + 0x8c]
push 1
test eax, eax
jne 0x401f08
push 0x1ff
jmp 0x401f8f
mov eax, dword [esp + 0x58]
sub eax, edi
test eax, eax
lea eax, [esp + 0x48]
jle 0x401f1d
push 0x1ff
jmp 0x401f93
push esi
push 0x20e
jmp 0x401f95
cmp dword [0x504994], 0
je 0x401f7e
cmp dword [0x507a78], 0
jne 0x401f7e
mov ecx, dword [0x50499c]
cmp byte [ecx + 0xec], 0
jne 0x401f75
cmp byte [ecx + 0xee], 0
jne 0x401f75
cmp dword [ecx + 0xe0], 0xffffffff
jle 0x401f75
call ebp
mov ecx, dword [0x50499c]
sub eax, dword [ecx + 0xdc]
cmp eax, dword [ecx + 0xe0]
jb 0x401f75
mov byte [ecx + 0xec], 1
movzx ecx, byte [ecx + 0xec]
jmp 0x401f80
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
push 1
cmovne eax, edx
push eax
lea eax, [esp + 0x4c]
push 0
push 0
push eax
call dword [esp + 0x8c]
test eax, eax
jne 0x402039
call ebp
mov edx, dword [0x50a738]
mov ecx, eax
mov esi, dword [esp + 0x1c]
sub ecx, ebx
cmp ecx, 3
cmova edx, eax
mov dword [0x50a738], edx
test esi, esi
jne 0x401fe0
cmp byte [esp + 0x3f], 0
jne 0x401fe0
push esi
call dword [esp + 0xa4]
mov byte [esp + 0x3f], 1
jmp 0x401d58
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x40200a
cmp byte [esp + 0x26], 0
je 0x40200a
test esi, esi
jle 0x401ffc
push 5
call dword [esp + 0xa4]
mov edi, 1
mov dword [esp + 0x18], edi
jmp 0x401d5c
call ebp
cmp byte [esp + 0x26], 0
jne 0x403f54
mov ecx, dword [esp + 0x9c]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jle 0x403f54
push 5
call dword [esp + 0xa4]
jmp 0x401d5c
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
inc edi
cmp dword [0x509c20], 0
mov dword [esp + 0x18], edi
je 0x40207c
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x1dc]
mov ecx, dword [esp + 0x44]
push eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.004043b0
add esp, 0x10
test al, al
jne 0x401d5c
mov esi, dword [0x507aa0]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
test esi, esi
je 0x402576
test ebx, ebx
je 0x402576
cmp ebx, dword [0x507aa8]
je 0x402576
cmp ebp, 0x414
je 0x402576
cmp ebp, 0x402
je 0x402576
lea eax, [ebp - 0x100]
cmp eax, 9
ja 0x4023af
call dword [esp + 0xdc]
mov ebx, eax
test ebx, ebx
je 0x4023a5
mov ecx, ebx
call fcn.004a1be0
mov esi, eax
test esi, esi
je 0x4023a5
mov ecx, ebx
call fcn.004789d0
mov ebp, eax
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x4023a5
mov ecx, dword [ebp + 0x74]
test ecx, ecx
je 0x402129
lea eax, [esp + 0x44]
push eax
push ecx
push esi
call dword [esp + 0xe4]
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
test eax, eax
jne 0x401d5c
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
cmp ebp, 0x100
jne 0x402360
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0xc0], 0
je 0x4022c4
cmp edi, 0x22
je 0x40216b
cmp edi, 0x21
je 0x40216b
cmp edi, 9
je 0x40216b
cmp edi, 0x25
je 0x40216b
cmp edi, 0x27
jne 0x4022c4
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
push ebx
call fcn.00401860
mov edx, eax
mov dword [esp + 0x38], edx
test edx, edx
je 0x4022b0
mov cl, byte [edx + 4]
cmp cl, 0xf
je 0x4022b0
mov edi, dword [esp + 0x4c]
xor esi, esi
cmp cl, 0x13
jne 0x4021c3
mov esi, edx
cmp edi, 0x25
je 0x4021a8
cmp edi, 0x27
jne 0x4021c3
cmp edi, 0x27
mov ecx, ebp
push 0
sete al
push 0
movzx eax, al
push eax
push edx
call fcn.00488280
jmp 0x401d50
cmp edi, 0x25
je 0x4022b4
cmp edi, 0x27
je 0x4022b4
push 0x11
call dword [esp + 0xa8]
mov ecx, 0x8000
test cx, ax
je 0x4022b0
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
cmp edi, 9
jne 0x40221a
cmp byte [eax + 4], 0xc
jne 0x40221a
push 0xfffffffffffffff0
push dword [eax]
call dword [esp + 0x9c]
test al, 4
jne 0x4022b0
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
test esi, esi
jne 0x40225a
movzx eax, byte [eax + 6]
mov ecx, ebp
push eax
call fcn.00487fc0
mov esi, eax
test esi, esi
jne 0x40225a
mov edx, dword [ebp + 0x10]
xor al, al
xor ecx, ecx
test edx, edx
je 0x4022b4
mov esi, dword [ebp + 0x18]
nop
cmp byte [esi + 4], 0x13
jne 0x40224c
test al, al
je 0x402256
add al, 1
inc ecx
add esi, 0x40
cmp ecx, edx
jb 0x402240
jmp 0x4022b4
test esi, esi
je 0x4022b4
push dword [esi]
call dword [esp + 0x184]
test eax, eax
je 0x4022b0
mov eax, dword [esp + 0x4c]
cmp eax, 0x22
je 0x40229c
cmp eax, 9
jne 0x402288
push 0x10
call dword [esp + 0xa8]
mov ecx, 0x8000
test cx, ax
je 0x40229c
push 1
push 1
xor al, al
mov ecx, ebp
push eax
push esi
call fcn.00488280
jmp 0x401d50
push 1
push 1
mov al, 1
mov ecx, ebp
push eax
push esi
call fcn.00488280
jmp 0x401d50
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
cmp ebp, 0x100
jne 0x402360
cmp edi, 0x1b
je 0x4022f8
cmp edi, 9
je 0x4022f8
cmp edi, 0x41
jne 0x402360
mov ebp, dword [esp + 0xa4]
push 0x11
call ebp
mov esi, 0x8000
test si, ax
je 0x402358
push 0xa5
call ebp
test si, ax
jne 0x402358
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
push ebx
call fcn.00401860
mov esi, eax
mov dword [esp + 0x38], esi
test esi, esi
je 0x402358
cmp byte [esi + 4], 0xc
jne 0x402358
mov edi, dword [esp + 0x4c]
cmp edi, 0x1b
je 0x40234c
mov al, byte [esi + 5]
cmp edi, 0x41
je 0x40233a
test al, al
jns 0x40235c
push 0x4da440
push 1
push 0xc2
jmp 0x401d4a
test al, 2
jne 0x40235c
push 0xffffffffffffffff
push 0
push 0xb1
jmp 0x401d4a
mov ecx, ebp
call fcn.00483570
jmp 0x401d50
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov eax, dword [0x509368]
test eax, eax
je 0x402513
cmp ebp, 0x100
jne 0x402513
cmp edi, 0xd
jne 0x40238d
push 0
push 0
push 0x1116
push eax
jmp 0x401d4c
cmp edi, 0x1b
jne 0x402513
push 0
push 1
push 0x1116
push eax
jmp 0x401d4c
mov ebp, dword [esp + 0x48]
mov esi, dword [0x507aa0]
cmp ebp, 0x20a
je 0x4023c8
cmp ebp, 0x20e
je 0x4023c8
mov edi, dword [esp + 0x4c]
jmp 0x402519
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call dword [esp + 0x18c]
mov ebp, dword [esp + 0x94]
mov esi, eax
push 0xfffffffffffffff0
push esi
call ebp
mov ebx, dword [esp + 0x150]
mov edi, eax
push esi
call ebx
mov ecx, eax
call fcn.004789a0
test eax, eax
je 0x40244a
cmp esi, dword [esp + 0x44]
jne 0x402421
push dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
mov ecx, esi
push edi
call fcn.00401920
add esp, 8
test eax, eax
jne 0x40244a
mov eax, dword [esp + 0x44]
cmp esi, eax
je 0x40244e
push dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
mov ecx, esi
push edi
call fcn.00401920
add esp, 8
test eax, eax
je 0x40244a
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x50]
push esi
jmp 0x401d4c
mov eax, dword [esp + 0x44]
push dword [esp + 0x4c]
push 0xfffffffffffffff0
push eax
call ebp
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push eax
call fcn.00401920
add esp, 8
test eax, eax
jne 0x40250b
push dword [esp + 0x44]
call ebx
mov ecx, eax
call fcn.004789a0
mov ebp, eax
mov dword [esp + 0x2c], ebp
test ebp, ebp
je 0x40250b
nop dword [eax + eax]
push dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 4]
call fcn.00401920
add esp, 8
test eax, eax
jne 0x4024f7
push dword [ebp + 4]
call ebx
mov esi, dword [0x507aa0]
xor edx, edx
test esi, esi
jle 0x4024d7
nop dword [eax + eax]
mov ecx, dword [0x507a9c]
mov ebp, dword [ecx + edx*4]
mov dword [esp + 0x2c], ebp
cmp dword [ebp + 4], eax
je 0x4024e9
inc edx
cmp edx, esi
jl 0x4024c0
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x2c], 0
jmp 0x402519
test ebp, ebp
jne 0x402490
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
jmp 0x402519
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [ebp + 4]
jmp 0x401d4c
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov esi, dword [0x507aa0]
xor ebx, ebx
test esi, esi
jle 0x4025ba
mov ecx, dword [0x50499c]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [0x507a9c]
mov eax, dword [eax + ebx*4]
push dword [eax + 4]
call dword [esp + 0xdc]
test eax, eax
jne 0x403ec1
mov eax, dword [0x50499c]
inc ebx
mov byte [eax + 0xe8], 0
cmp ebx, dword [0x507aa0]
jl 0x402523
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
cmp ebp, 0x401
ja 0x4027a1
cmp ebp, 0x400
jae case.0x4027b7.1045
cmp ebp, 0x100
ja 0x4025f4
je 0x4025d3
cmp ebp, 0x12
je 0x4025c0
cmp ebp, 0x4b
jne case.0x4027b7.1027
mov dword [0x507a88], 0
mov byte [esp + 0x3c], 1
jmp 0x401d50
mov ebx, dword [esp + 0x44]
jmp 0x40257a
push 0
push 5
mov ecx, 0x509c28
call fcn.0042c1b0
jmp 0x401d50
cmp ebx, dword [0x507a84]
jne case.0x4027b7.1027
cmp edi, 0x1b
jne case.0x4027b7.1027
push 0
push dword [0x507aa8]
call dword [esp + 0x15c]
jmp 0x401d50
cmp ebp, 0x113
je 0x402682
cmp ebp, 0x312
je case.0x4027b7.1026
call dword [esp + 0xcc]
mov esi, eax
test esi, esi
je 0x403ee1
push 0
push esi
call dword [esp + 0xd8]
cmp eax, dword [0x50939c]
jne 0x403ee1
push 0x20
lea eax, [esp + 0x24c]
push eax
push esi
call dword [esp + 0xbc]
mov ecx, str.32770
lea eax, [esp + 0x248]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403e66
test dx, dx
je 0x40267b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403e66
add eax, 4
add ecx, 4
test dx, dx
jne 0x402651
xor eax, eax
jmp 0x403e6b
cmp dword [esp + 0x50], 0
jne case.0x4027b7.1027
cmp ebx, dword [0x507aa8]
jne case.0x4027b7.1027
cmp dword [0x5085f8], 0
je 0x4026a3
call fcn.004042e0
cmp dword [0x50a6ec], 0
je 0x4026ce
call fcn.00404110
mov edx, dword [esp + 0x84]
test al, al
movzx ebx, dl
mov eax, 1
cmovne ebx, eax
mov dword [esp + 0x84], ebx
jmp 0x4026d5
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
je 0x401d5c
cmp esi, 1
jl 0x401d5c
call ebp
cmp byte [esp + 0x26], 0
jne 0x402715
mov ecx, dword [esp + 0x9c]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jg 0x401d58
cmp esi, 0xffffffff
jle 0x40272a
xorps xmm0, xmm0
mov dword [0x50a738], eax
movlpd qword [0x50a728], xmm0
xor ecx, ecx
mov dword [0x50a73c], eax
cmp byte [esp + 0x3d], cl
movzx eax, byte [0x507967]
cmovne eax, ecx
mov byte [0x507967], al
cmp byte [esp + 0x3e], cl
je 0x402797
mov eax, dword [0x507aac]
dec eax
mov dword [0x507aac], eax
test esi, esi
jle 0x402797
test eax, eax
jne 0x402797
cmp dword [0x50a6ec], ecx
jne 0x402797
cmp dword [0x5085f8], ecx
jne 0x402797
cmp byte [0x507966], cl
je 0x402797
push 9
push dword [0x507aa8]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x507966]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x507966], cl
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x402]
cmp eax, 0x1c
ja case.0x4027b7.1027
movzx eax, byte [eax + 0x403ff4]
jmp dword [eax*4 + 0x403fe8]
test ebx, ebx
je case.0x4027b7.1026
cmp ebx, dword [0x507aa8]
jne case.0x4027b7.1027
lea eax, [ebp - 0x401]
mov dword [esp + 0x70], 0
cmp eax, 0x1d
ja case.0x4027ec.1027
movzx eax, byte [eax + 0x404030]
jmp dword [eax*4 + 0x404014]
mov ecx, ebx
call fcn.004789a0
mov esi, eax
mov dword [esp + 0x2c], esi
test esi, esi
je case.0x4027b7.1027
movzx edx, di
mov ecx, 0x2af8
shr edi, 0x10
cmp edx, 8
mov eax, edi
mov dword [esp + 0x68], edx
cmovne edi, dword [esp + 0x50]
cmove eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x50]
cmovne eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
mov ebx, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x28], 0
cmp eax, dword [esi + 0x10]
jae 0x40285a
shl eax, 6
add eax, dword [esi + 0x18]
mov dword [esp + 0x38], eax
jmp 0x402862
mov dword [esp + 0x38], 0
lea eax, [edx - 5]
mov dword [esp + 0x8c], 0
mov byte [esp + 0x27], 0
cmp eax, 4
ja case.default.0x40287e
jmp dword [eax*4 + 0x404050]
mov esi, dword [esi + 0x2c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
test esi, esi
je 0x401d50
mov eax, 0x3a
jmp 0x4028e1
mov esi, dword [esi + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
test esi, esi
je 0x401d50
mov eax, 0x38
jmp 0x4028e1
mov esi, dword [esi + 0x28]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
test esi, esi
je 0x401d50
mov eax, 0x39
add eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x8c], eax
je 0x402a09
cmp byte [eax], 0
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x8c], eax
jne 0x401d40
xor edi, edi
mov dword [esp + 0x34], ebx
jmp 0x402dea
mov esi, dword [esi + 0x34]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
test esi, esi
je 0x401d50
mov dword [esp + 0x20], edi
xor edi, edi
mov dword [esp + 0x34], ebx
jmp 0x402dea
mov ebp, dword [esi + 0x68]
mov esi, dword [esi + 0x30]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
test esi, esi
je 0x40298c
mov dword [esp + 0x20], edi
test ebp, ebp
je 0x4029a3
push 0
push 0
push 0xffffffffffffffff
push ebp
call dword [esp + 0x168]
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x40298c
mov ebp, dword [esp + 0x48]
xor edi, edi
mov dword [esp + 0x34], ebx
jmp 0x402dea
test ebp, ebp
je 0x4029a3
push ebp
call dword [esp + 0x94]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x68], 0
mov dword [esp + 0x34], ebx
jmp 0x401d50
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
test esi, esi
je 0x401d50
mov eax, dword [esp + 0x38]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x30], esi
mov al, byte [eax + 5]
test esi, esi
jne 0x4029f0
test al, 1
je 0x4029e3
mov ecx, dword [esp + 0x2c]
call fcn.00483510
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ebx
jmp 0x401d50
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ebx
test al, 4
jne 0x401d50
mov byte [esp + 0x27], 1
mov dword [esp + 0x20], edi
xor edi, edi
mov dword [esp + 0x34], ebx
jmp 0x402dea
test edi, edi
je 0x402a3b
mov ecx, edi
call fcn.004789a0
mov esi, eax
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x402a41
test ebx, ebx
je 0x402a41
cmp ebx, dword [0x507aa8]
jne case.0x4027b7.1027
jmp 0x402a41
xor ecx, ecx
mov dword [esp + 0x2c], ecx
push dword [esp + 0x50]
mov ecx, 0x509c28
call fcn.004018f0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xe0], eax
test eax, eax
je 0x401d44
mov esi, dword [eax + 8]
test esi, esi
je 0x401d40
mov edi, dword [eax + 0x18]
jmp 0x402de6
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
cmp edi, dword [0x5085f4]
jae 0x401d58
mov eax, dword [0x5085f0]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x7c], eax
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x402ad1
mov edx, dword [eax + 4]
call fcn.00413310
mov edi, eax
mov dword [esp + 0x6c], edi
test edi, edi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x18]
je 0x401d5c
mov edi, dword [esp + 0x7c]
mov ecx, dword [edi + 0x10]
mov cl, byte [ecx]
cmp cl, 1
je 0x402adf
cmp cl, 3
je 0x402adf
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x7c]
push dword [esp + 0x50]
mov ecx, edi
call fcn.00415d60
cmp dword [edi + 0xc], 0
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
jne 0x401d58
cmp byte [edi + 0x2a], 0
je 0x402b1b
mov ax, word [esp + 0x50]
mov ebp, dword [esp + 0x48]
mov word [0x50a704], ax
mov esi, dword [edi]
mov edi, dword [edi + 0x14]
jmp 0x402de6
mov ebp, dword [esp + 0x48]
xor eax, eax
mov word [0x50a704], ax
mov esi, dword [edi]
mov edi, dword [edi + 0x14]
jmp 0x402de6
cmp byte [0x50a6d8], 0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jne 0x401d44
mov esi, dword [0x50a6cc]
test esi, esi
cmove esi, dword [0x50a278]
xor edi, edi
jmp 0x402de6
mov ebx, edi
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x402b71
xor esi, esi
mov dword [esp + 0x60], esi
jmp 0x401d50
mov eax, dword [0x507a98]
cmp eax, ebx
jne 0x402b84
mov eax, dword [edi + 4]
mov dword [0x507a98], eax
jmp 0x402ba5
test eax, eax
je 0x402b66
lea ecx, [eax + 4]
mov eax, dword [ecx]
cmp eax, edi
je 0x402ba0
test eax, eax
jne 0x402b88
xor esi, esi
mov dword [esp + 0x60], esi
jmp 0x401d50
mov eax, dword [edi + 4]
mov dword [ecx], eax
call fcn.00412ef0
mov eax, dword [ebx + 8]
mov dword [edi + 4], 0
test eax, eax
je 0x402b66
cmp dword [0x507a98], 0
mov ecx, eax
mov esi, eax
jne 0x402be1
cmp dword [0x508604], 0
jne 0x402be1
test byte [0x5085a7], 1
jne 0x402be1
call fcn.00413750
mov ecx, dword [ebx + 8]
mov esi, ecx
cmp dword [ecx + 0x35c], 0
je 0x402bff
mov esi, dword [esi + 0x35c]
xor edi, edi
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x30], esi
jmp 0x402dee
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor esi, esi
mov dword [esp + 0x60], esi
jmp 0x401d50
mov ebx, dword [0x507a98]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x401d54
cmp ebx, edi
je 0x402c3a
mov ebx, dword [ebx + 4]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x402c26
jmp 0x401d50
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test ebx, ebx
je 0x401d44
mov esi, dword [ebx + 8]
cmp ebp, 0x41c
jne 0x402c5d
mov esi, dword [esi + 0x360]
jmp 0x402c73
cmp ebp, 0x41e
jne 0x402c6d
mov esi, dword [esi + 0x368]
jmp 0x402c73
mov esi, dword [esi + 0x364]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], esi
test esi, esi
je 0x401d40
xor edi, edi
jmp 0x402dee
mov esi, dword [esp + 0x1c]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x50860c]
jae 0x401d54
mov ecx, eax
shr edi, 0x10
mov eax, dword [0x5085fc]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x98], eax
test di, di
je 0x402ce9
mov esi, dword [eax + 0x20]
add edi, 0xffff
mov dword [esp + 0x80], esi
test di, di
je 0x402ce5
mov esi, dword [esi + 8]
add edi, 0xffff
test di, di
jne 0x402cd0
mov dword [esp + 0x80], esi
test esi, esi
jne 0x402d12
lea ecx, [esp + 0x74]
push ecx
mov ecx, eax
call fcn.00413d50
mov edi, dword [esp + 0x74]
mov esi, eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x6c], edi
test esi, esi
je 0x401d50
mov ebp, dword [esp + 0x48]
mov eax, dword [0x50c144]
mov edx, dword [esi]
test al, 1
jne 0x402d36
or dword [0x50c144], 1
mov ecx, 0x50c148
push 0
push 0
call fcn.0042a720
mov ebp, dword [esp + 0x48]
mov eax, dword [0x50a278]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x402d45
xor eax, eax
jmp 0x402d51
xor eax, eax
cmp ecx, dword [0x50c148]
setne al
inc eax
sub eax, 0
je 0x402d5b
sub eax, 1
jne 0x402d66
mov eax, dword [edx + 8]
test eax, eax
je 0x402d66
mov cl, byte [eax]
jmp 0x402d68
xor cl, cl
mov al, byte [esi + 0x16]
cmp al, byte [esi + 0x17]
jb 0x402db4
cmp cl, 0xe2
je 0x402db4
cmp cl, 0xce
je 0x402db4
cmp cl, 0xdc
je 0x402db4
cmp cl, 0xdd
je 0x402db4
cmp cl, 0xd8
je 0x402db4
cmp cl, 0xd9
je 0x402db4
cmp cl, 0xda
je 0x402db4
cmp cl, 0xdb
je 0x402db4
cmp byte [esi + 0x1a], 0
je 0x402da2
mov byte [esi + 0x1b], 1
mov ebp, dword [esp + 0x14]
call ebp
mov dword [esi + 0xc], eax
mov esi, dword [esp + 0x1c]
jmp 0x401d58
mov eax, dword [esi + 4]
test eax, eax
je 0x402dd0
mov al, byte [eax]
cmp al, 2
je 0x402dd0
cmp al, 4
je 0x402dd0
cmp al, 5
jb 0x402dda
mov eax, dword [0x507a94]
jmp 0x402dd2
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
mov edi, dword [esp + 0x80]
mov esi, dword [esi]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x30], esi
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x15c], eax
mov eax, dword [0x50c144]
test al, 1
jne 0x402e1b
or dword [0x50c144], 1
mov ecx, 0x50c148
push 0
push 0
call fcn.0042a720
mov ebp, dword [esp + 0x48]
mov eax, dword [0x50a278]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x402e2a
xor eax, eax
jmp 0x402e36
xor eax, eax
cmp ecx, dword [0x50c148]
setne al
inc eax
sub eax, 0
je 0x402e40
sub eax, 1
jne 0x402e4b
mov eax, dword [esi + 8]
test eax, eax
je 0x402e4b
mov cl, byte [eax]
jmp 0x402e4d
xor cl, cl
mov edx, dword [0x507a90]
mov eax, dword [0x504998]
mov byte [esp + 0xe4], cl
cmp edx, eax
jl 0x402edb
add eax, 2
cmp edx, eax
jge 0x402e96
cmp cl, 0xe2
je 0x402edb
cmp cl, 0xce
je 0x402edb
cmp cl, 0xdc
je 0x402edb
cmp cl, 0xdd
je 0x402edb
cmp cl, 0xd8
je 0x402edb
cmp cl, 0xd9
je 0x402edb
cmp cl, 0xda
je 0x402edb
cmp cl, 0xdb
je 0x402edb
mov eax, dword [esp + 0x70]
test eax, eax
je 0x402eb5
push eax
call dword [esp + 0x94]
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x68], 0
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
cmp ebp, 0x41b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jne 0x401d5c
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x401d58
mov eax, dword [0x50499c]
cmp edi, dword [eax + 0x2c]
jl 0x402e96
lea eax, [ebp - 0x402]
mov byte [esp + 0x84], 1
cmp eax, 0x1c
ja case.0x402eff.1027
movzx eax, byte [eax + 0x404070]
jmp dword [eax*4 + 0x404064]
mov ebx, dword [esp + 0xe0]
push 0x104
push dword [ebx]
push 0x50a280
call fcn.004c41d6
xor eax, eax
add esp, 0xc
mov word [0x50a488], ax
mov eax, dword [ebx + 0x10]
push 0x104
push dword [eax]
push 0x50a48a
call fcn.004c41d6
add esp, 0xc
mov dword [0x50a27c], ebx
xor eax, eax
mov word [0x50a692], ax
jmp case.0x402eff.1044
mov eax, dword [0x50a694]
mov dword [0x50a698], eax
mov eax, dword [0x50a6fc]
mov dword [0x50a700], eax
cmp ebp, 0x401
jne 0x402f75
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
jmp 0x402f7f
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x1c]
mov dword [0x50a694], eax
call dword [esp + 0x14]
mov dword [0x50a6fc], eax
mov esi, dword [0x507a8c]
cmp byte [esi + 0x17], 0
jne 0x402f9c
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x402fa9
mov ecx, esi
call fcn.00401560
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x402fc1
test byte [esi + 0x15], 4
je 0x402fbc
push esi
call fcn.00448170
mov ecx, dword [esi + 8]
jmp 0x403012
cmp al, 2
jne 0x40300d
mov ecx, dword [0x50a78c]
test ecx, ecx
jne 0x403012
mov ebx, dword [esp + 0xc8]
push 0xd
call ebx
test eax, eax
jne 0x402ff3
push 0xf
call ebx
test eax, eax
mov ecx, 0x4da3c0
mov eax, 0x4da3cc
cmove ecx, eax
jmp 0x403012
push 0
call fcn.00405e50
mov edx, 0x4da3cc
cmp eax, 0xffffffff
mov ecx, edx
cmovne ecx, dword [0x50a788]
jmp 0x403012
mov ecx, 0x509388
push 0x7f
push ecx
lea eax, [esp + 0x290]
push eax
call fcn.004c41d6
add esp, 0xc
xor eax, eax
xor dl, dl
mov word [esp + 0x386], ax
mov ecx, edi
push dword [esp + 0xe4]
push 1
call fcn.004047b0
mov ebx, dword [0x50499c]
add esp, 8
mov esi, dword [esp + 0x14]
call esi
mov dword [0x50a73c], eax
mov dword [0x50a738], eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffbff
cmp eax, 0x1d
ja case.0x403073.1027
movzx eax, byte [eax + 0x4040b0]
jmp dword [eax*4 + 0x404090]
mov esi, dword [esp + 0x38]
xor eax, eax
mov ebp, dword [esp + 0x2c]
mov word [esp + 0x1bc], ax
cmp byte [esp + 0x27], al
je 0x403096
mov ecx, dword [esi]
jmp 0x403099
mov ecx, dword [ebp + 4]
mov edi, dword [esp + 0x28]
mov eax, edi
mov edx, dword [esp + 0x68]
add eax, eax
inc edi
mov dword [esp + 0x28], edi
mov dword [esp + eax*8 + 0xf8], 1
mov dword [esp + eax*8 + 0xf0], ecx
mov dword [esp + eax*8 + 0xf4], 0
lea eax, [edx - 5]
cmp eax, 4
ja case.default.0x4030d3
jmp dword [eax*4 + 0x4040d0]
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x20], 0
sete cl
lea ecx, [ecx*2 + 1]
mov dword [ebx + 0x34], ecx
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x40], eax
test esi, esi
je 0x4032fc
cmp dword [esp + 0x15c], 0
je 0x403249
movzx eax, byte [esi + 4]
add eax, 0xfffffff7
mov dword [esp + 0xb4], connect
cmp eax, 8
ja case.0x403134.12
jmp dword [eax*4 + 0x4040e4]
mov edi, dword [esp + 0x40]
push 0
push 0
push 0x19f
push dword [esi]
call edi
cmp eax, 0xffffffff
je case.0x403134.12
lea ecx, [esp + 0xb4]
push ecx
push eax
push 0x198
push dword [esi]
call edi
jmp case.0x403134.12
mov edi, dword [esp + 0x40]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi]
call edi
cmp eax, 0xffffffff
je case.0x403134.12
lea ecx, [esp + 0xb4]
mov dword [esp + 0xb4], 2
push ecx
push eax
push 0x100e
push dword [esi]
call edi
jmp case.0x403134.12
mov edi, dword [esp + 0x40]
push 0
push 9
push 0x110a
push dword [esi]
call edi
test eax, eax
je case.0x403134.12
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
push eax
push 1
push 0x1104
push dword [esi]
call edi
jmp case.0x403134.12
lea eax, [esp + 0xb4]
push eax
push 0
push 0x419
push dword [esi]
call dword [esp + 0x50]
cmp dword [esp + 0xb4], 0x80000000
lea ecx, [esp + 0xb4]
mov eax, dword [esi]
jne 0x40320c
push ecx
push eax
call dword [esp + 0x90]
jmp 0x403219
push 2
push ecx
push 0
push eax
call dword [esp + 0x170]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0xc0]
sub eax, ecx
mov eax, eax
test eax, eax
jns 0x40323c
add eax, 1
sar eax, 1
add ecx, 2
add eax, ecx
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x34]
movzx eax, byte [esi + 4]
sub eax, 9
je 0x4032de
sub eax, 1
je 0x4032c6
sub eax, 1
jne 0x4032f6
cmp ecx, 1
jne 0x403282
push eax
push 9
push 0x110a
push dword [esi]
call dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x20], edi
jmp 0x4032fe
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1ec], eax
lea eax, [esp + 0x1e8]
push eax
push dword [esi]
call dword [esp + 0x16c]
lea eax, [esp + 0x1e8]
push eax
push 0
push 0x1111
push dword [esi]
call dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x20], edi
jmp 0x4032fe
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi]
call dword [esp + 0x50]
lea edi, [eax + 1]
mov dword [esp + 0x20], edi
jmp 0x4032fe
push 0
push 0
push 0x19f
push dword [esi]
call dword [esp + 0x50]
lea edi, [eax + 1]
mov dword [esp + 0x20], edi
jmp 0x4032fe
mov edi, dword [esp + 0x20]
jmp 0x4032fe
xor edi, edi
lea eax, [esp + 0x208]
push eax
push dword [ebp + 4]
call dword [esp + 0x90]
mov eax, dword [esp + 0x208]
sub dword [ebx + 0x3c], eax
mov edx, dword [esp + 0x28]
mov ecx, edx
mov eax, dword [esp + 0x20c]
add ecx, ecx
sub dword [ebx + 0x40], eax
test esi, esi
je 0x40334b
mov eax, dword [esi]
mov dword [esp + ecx*8 + 0xf0], eax
mov eax, 1
mov dword [esp + ecx*8 + 0xf4], 0
jmp 0x403358
mov dword [esp + ecx*8 + 0xf0], 0x4da3cc
xor eax, eax
mov dword [esp + ecx*8 + 0xf8], eax
lea esi, [edx + 4]
mov dword [esp + ecx*8 + 0x100], edi
lea edi, [edx + 2]
mov dword [esp + ecx*8 + 0x108], 1
add edi, edi
mov dword [esp + ecx*8 + 0x104], 0
xor ecx, ecx
mov eax, dword [ebx + 0x34]
cmp eax, 3
mov dword [esp + edi*8 + 0xf8], 1
sete cl
mov dword [esp + edi*8 + 0xf0], ecx
mov ecx, esi
mov dword [esp + edi*8 + 0xf4], 0
add ecx, ecx
mov eax, dword [ebx + 0x3c]
cdq
mov dword [esp + edi*8 + 0x100], eax
lea eax, [esi + 1]
mov dword [esp + edi*8 + 0x104], edx
mov dword [esp + edi*8 + 0x108], 1
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x40]
cdq
mov dword [esp + ecx*8 + 0xf4], edx
mov edx, dword [esp + 0x68]
mov dword [esp + ecx*8 + 0xf8], 1
mov dword [esp + ecx*8 + 0xf0], eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
cmp byte [esp + 0x27], 0
je 0x4037ac
mov esi, dword [esp + 0x38]
cmp byte [esi + 4], 0x17
jne 0x4037ac
push 0x10b0
lea eax, [esp + 0x394]
push 0
push eax
call fcn.004b7c10
mov eax, dword [esp + 0x2c]
add esp, 0xc
dec eax
mov dword [esp + 0x388], 0xd
mov dword [esp + 0x38c], eax
lea eax, [esp + 0x388]
push eax
push 0
push 0x703
push dword [esi]
call dword [esp + 0x50]
test eax, eax
je 0x40380b
cmp word [esp + 0x3f8], 0
lea ecx, [esp + 0x398]
push 1
push 0
lea eax, [esp + 0x400]
cmove eax, ecx
mov ecx, dword [0x507a8c]
push 0xffffffffffffffff
push eax
call fcn.0049fde0
mov eax, dword [esp + 0x28]
mov esi, eax
mov ecx, dword [0x507a8c]
inc eax
push 0
push 1
add esi, esi
mov dword [esp + 0x30], eax
call fcn.00401640
mov dword [esp + esi*8 + 0xf8], 0
mov dword [esp + esi*8 + 0xf0], eax
jmp 0x40380b
mov dword [ebx + 0x34], edx
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x40], eax
lea eax, [esp + 0x218]
push eax
push dword [ebp + 4]
call dword [esp + 0x90]
mov eax, dword [esp + 0x218]
sub dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x21c]
sub dword [ebx + 0x40], eax
push 0xffffffffffffffec
push dword [ebp + 4]
call dword [esp + 0x9c]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebp + 4]
call dword [esp + 0xd0]
mov esi, edi
mov edi, dword [esp + 0x70]
mov ecx, edi
add esi, esi
call fcn.0047ae10
mov dword [esp + esi*8 + 0xf0], eax
mov eax, dword [esp + 0x38]
mov dword [esp + esi*8 + 0xf8], 6
test eax, eax
je 0x40355b
mov eax, dword [eax]
mov dword [esp + esi*8 + 0x100], eax
mov eax, 1
mov dword [esp + esi*8 + 0x104], 0
jmp 0x403568
mov dword [esp + esi*8 + 0x100], 0x4da3cc
xor eax, eax
mov dword [esp + esi*8 + 0x108], eax
mov ecx, ebp
mov esi, dword [esp + 0x28]
push dword [ebx + 0x3c]
add esi, 2
add esi, esi
call fcn.004018c0
cdq
mov ecx, ebp
mov dword [esp + esi*8 + 0xf8], 1
mov dword [esp + esi*8 + 0xf0], eax
mov dword [esp + esi*8 + 0xf4], edx
push dword [ebx + 0x40]
call fcn.004018c0
cdq
mov dword [esp + esi*8 + 0x100], eax
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + esi*8 + 0x104], edx
mov edx, dword [esp + 0x68]
mov dword [esp + esi*8 + 0x108], 1
mov dword [esp + 0x28], eax
jmp 0x4033fd
mov dword [ebx + 0x34], 1
cmp edx, 8
jne 0x4033f5
mov esi, dword [esp + 0x28]
mov ecx, ebp
mov edi, dword [esp + 0x34]
add esi, esi
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x3c], edi
mov dword [esp + esi*8 + 0xf0], eax
movzx eax, di
push eax
mov dword [esp + esi*8 + 0xfc], 1
mov dword [esp + esi*8 + 0xf8], 0
call fcn.004018c0
cdq
mov ecx, ebp
mov dword [esp + esi*8 + 0x100], eax
mov eax, edi
mov dword [esp + esi*8 + 0x108], 1
mov dword [esp + esi*8 + 0x104], edx
mov esi, dword [esp + 0x28]
shr eax, 0x10
add esi, esi
push eax
call fcn.004018c0
cdq
mov dword [esp + esi*8 + 0x110], eax
mov eax, dword [esp + 0x28]
add eax, 3
mov dword [esp + esi*8 + 0x114], edx
mov edx, dword [esp + 0x68]
mov dword [esp + esi*8 + 0x118], 1
mov dword [esp + 0x28], eax
jmp 0x4033f9
mov al, byte [esi + 4]
cmp al, 0xa
je 0x4036c4
cmp al, 0x19
jne 0x403751
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x40], eax
lea eax, [esp + 0x228]
push eax
push dword [ebp + 4]
call dword [esp + 0x90]
mov eax, dword [esp + 0x228]
sub dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x22c]
sub dword [ebx + 0x40], eax
mov edx, dword [esp + 0x68]
jmp 0x403751
cmp dl, 0x49
jne 0x403751
lea eax, [esp + 0x1bc]
test edx, 0x100
je 0x4036e3
mov eax, 0x53
jmp 0x4036f0
test edx, 0x200
je 0x4036ff
mov eax, 0x73
mov word [esp + 0x1bc], ax
lea eax, [esp + 0x1be]
test edx, 0x400
je 0x40370e
mov ecx, 0x46
jmp 0x40371b
test edx, 0x800
je 0x403721
mov ecx, 0x66
mov word [eax], cx
add eax, 2
test edx, 0x1000
je 0x403730
mov ecx, 0x43
jmp 0x40373d
test edx, 0x2000
je 0x403743
mov ecx, 0x63
mov word [eax], cx
add eax, 2
xor ecx, ecx
mov edx, 0x49
mov word [eax], cx
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov dword [ebx + 0x34], edx
mov edx, edi
add edx, edx
mov dword [esp + edx*8 + 0xf8], 0
call fcn.0047adf0
mov ecx, dword [esp + 0x20]
add edi, 2
mov dword [esp + edx*8 + 0xf0], eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x28]
mov dword [esp + edx*8 + 0x108], 1
mov dword [esp + edx*8 + 0x100], ecx
mov dword [esp + edx*8 + 0x104], 0
mov edx, dword [esp + 0x68]
jmp 0x403401
cmp word [esp + 0x1bc], 0
je 0x4037d6
add eax, eax
lea esi, [esp + 0x1bc]
inc dword [esp + 0x28]
mov dword [esp + eax*8 + 0xf8], 0
mov dword [esp + eax*8 + 0xf0], esi
cmp edx, 8
je 0x4037fb
cmp edx, 5
je 0x4037fb
mov ecx, dword [0x507a8c]
lea eax, [esp + 0x1bc]
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.0049fde0
jmp 0x40380b
push 0x18
push 0
push ecx
mov ecx, dword [0x507a8c]
call fcn.004014e0
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x8c]
mov dword [ebx + 0xc4], eax
add dword [ebp + 0x20], 2
mov eax, dword [esp + 0xa8]
mov dword [ebx + 0x50], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x48], ebp
mov dword [ebx + 0x44], ebp
mov dword [ebx + 0x38], eax
test esi, esi
je 0x4038b3
mov byte [esi], 1
mov ebx, dword [esp + 0x38]
lea eax, [esp + 0x168]
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0xf8]
push eax
push 0x4da3dc
lea ecx, [esp + 0x40]
call fcn.0048edb0
cmp dword [ebp + 4], 0
je 0x40390c
mov eax, dword [esp + 0x68]
test esi, esi
je 0x4038c4
mov byte [esi], 0
cmp eax, 6
jne 0x4038cf
cmp dword [esp + 0x168], 0
jne 0x40390c
lea ecx, [esp + 0x30]
call fcn.00401790
test eax, eax
jne 0x40390c
mov ecx, ebp
call fcn.00483510
mov ecx, ebp
call fcn.0047ac10
jmp 0x403bf7
cmp byte [esp + 0x27], 0
je 0x403841
mov ebx, dword [esp + 0x38]
or byte [ebx + 5], 4
jmp 0x403845
cmp byte [esp + 0x27], 0
je 0x4038cf
and byte [ebx + 5], 0xfb
cmp eax, 5
jne 0x40390c
mov eax, dword [esp + 0x100]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push edi
call dword [esp + 0x94]
push 0xffffffffffffffec
push dword [ebp + 4]
mov dword [ebp + 0x68], 0
call dword [esp + 0x9c]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebp + 4]
call dword [esp + 0xd0]
mov ecx, ebp
call fcn.0047ac10
jmp 0x403bf7
mov ebp, dword [esp + 0x2c]
test ebp, ebp
je 0x40393a
mov eax, dword [ebp + 4]
mov dword [ebx + 0xc4], eax
mov dword [ebx + 0x34], 1
add dword [ebp + 0x20], 2
mov dword [ebx + 0x48], ebp
mov dword [ebx + 0x44], ebp
mov ecx, 0x509c28
mov dword [esp + 0x190], 0
mov dword [esp + 0x188], 0x50a280
call fcn.0045e2d0
inc eax
mov dword [esp + 0x1a0], 1
push 0
mov dword [esp + 0x19c], eax
lea ecx, [esp + 0x34]
push 3
lea eax, [esp + 0x190]
mov dword [esp + 0x1a4], 0
push eax
push str.Menu
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1b8], 0x50a48a
call fcn.0048edb0
test ebp, ebp
je 0x4039b3
mov ecx, ebp
call fcn.0047ac10
mov ebp, esi
jmp 0x403bfb
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0xc4], eax
mov al, byte [edi + 0x21]
mov byte [ebx + 0xf6], al
mov eax, dword [0x50c144]
mov edx, dword [edi]
test al, 1
jne 0x4039f2
push 0
or eax, 1
mov ecx, 0x50c148
push 0
mov dword [0x50c144], eax
call fcn.0042a720
mov eax, dword [0x50a278]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x403a01
xor eax, eax
jmp 0x403a0d
xor eax, eax
cmp ecx, dword [0x50c148]
setne al
inc eax
sub eax, 0
je 0x403a17
sub eax, 1
jne 0x403a22
mov eax, dword [edx + 8]
test eax, eax
je 0x403a22
mov cl, byte [eax]
jmp 0x403a24
xor cl, cl
mov al, byte [edi + 0x24]
cmp al, byte [edi + 0x25]
jb 0x403a58
cmp cl, 0xe2
je 0x403a58
cmp cl, 0xce
je 0x403a58
cmp cl, 0xdc
je 0x403a58
cmp cl, 0xdd
je 0x403a58
cmp cl, 0xd8
je 0x403a58
cmp cl, 0xd9
je 0x403a58
cmp cl, 0xda
je 0x403a58
cmp cl, 0xdb
jne 0x4039b3
push 0
push 0
mov byte [0x50a706], 0
mov ecx, edi
inc byte [edi + 0x24]
push 0
push dword [0x50a694]
call fcn.0048edb0
dec byte [edi + 0x24]
mov ebp, esi
jmp 0x403bfb
call dword [esp + 0x16c]
test eax, eax
je 0x403aaf
mov ebp, dword [esp + 0xc8]
push 0xd
call ebp
test eax, eax
jne 0x403aa8
push 0xf
call ebp
test eax, eax
jne 0x403aa8
mov eax, 2
jmp 0x403ab1
mov eax, 1
jmp 0x403ab1
xor eax, eax
mov ecx, dword [0x507a8c]
push 0x18
push 0
push eax
mov dword [ebx + 0x38], eax
call fcn.004014e0
mov eax, dword [ebx + 0x38]
push 0x4da444
mov dword [esp + 0x204], 1
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], 0
mov byte [0x50a6d8], 1
call fcn.0040bf10
mov ecx, dword [0x50a6cc]
test ecx, ecx
je 0x403b0a
call fcn.00401700
mov ecx, dword [0x50a6cc]
cmp dword [esp + 0x4c], 0
jne 0x403b2d
xor eax, eax
test ecx, ecx
mov ecx, 0x50a6ac
sete al
push eax
push 1
lea eax, [esp + 0x200]
push eax
call fcn.0048ef30
sub dword [0x50639c], 0xc
mov ebp, esi
mov byte [0x50a6d8], 0
jmp 0x403bfb
mov esi, dword [esp + 0x60]
lea ecx, [esp + 0x30]
push 0
push 1
mov dword [esp + 0x248], 6
mov eax, dword [esi + 8]
mov dword [esp + 0x240], eax
lea eax, [esp + 0x240]
push eax
push str.InputHook
call fcn.0048edb0
mov eax, dword [esi + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403bf7
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
push 0
mov dword [esp + 0x194], 6
mov eax, dword [esi + 8]
mov dword [esp + 0x18c], eax
movzx eax, cl
cdq
mov dword [esp + 0x19c], eax
sar ecx, 0x10
movzx eax, cx
mov dword [esp + 0x1a0], edx
cdq
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0x18c]
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1b4], 1
mov dword [esp + 0x1b0], edx
push 3
push eax
push str.InputHook
lea ecx, [esp + 0x40]
call fcn.0048edb0
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x288]
call fcn.004048c0
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
je 0x401d5c
call ebp
cmp byte [esp + 0x26], 0
jne 0x403c3a
mov ecx, dword [esp + 0x9c]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jg 0x401d5c
cmp esi, 0xffffffff
jle 0x403c4f
xorps xmm0, xmm0
mov dword [0x50a738], eax
movlpd qword [0x50a728], xmm0
mov dword [0x50a73c], eax
mov byte [esp + 0x3c], 1
mov byte [esp + 0x26], 1
jmp 0x401d58
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x60]
mov word [esp + 0xe8], ax
sar eax, 0x10
mov word [esp + 0xea], ax
xor eax, eax
mov word [esp + 0xec], ax
mov eax, dword [esi + 8]
mov dword [esp + 0x188], eax
lea eax, [esp + 0xe8]
push 0
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x18c]
mov dword [esp + 0x194], 6
mov dword [esp + 0x1a4], 0
push 2
jmp 0x403be8
mov edi, dword [esp + 0x98]
mov al, byte [edi + 0x10]
add al, 0x64
cmp al, 3
ja 0x403cdd
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x38], eax
cmp byte [0x50bb9c], 0
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0xc4], eax
mov eax, dword [esp + 0x80]
mov al, byte [eax + 0x18]
mov byte [ebx + 0xf6], al
jne 0x4039b3
cmp dword [0x508614], 0
jne 0x403d14
call esi
mov dword [0x508614], eax
inc dword [0x50bb98]
call esi
mov edi, dword [0x50bb98]
mov ecx, eax
sub ecx, dword [0x508614]
mov edx, dword [0x505bf8]
mov dword [0x508610], eax
cmp edi, dword [0x505bfc]
jbe 0x403d48
cmp ecx, edx
jae 0x403d48
mov esi, 1
jmp 0x403d4a
xor esi, esi
test esi, esi
je 0x403dd0
push ecx
push edi
push str._u_hotkeys_have_been_received_in_the_last__ums._n_nDo_you_want_to_continue__n_see_MaxHotkeysPerInterval_in_the_help_file_
lea eax, [esp + 0x144c]
push 0x800
push eax
call fcn.0049bbc0
add esp, 0x14
call fcn.0040cd60
movsd xmm3, qword [esp + 0x1e0]
lea ecx, [esp + 0x1440]
push 0
push 0
mov edx, 4
mov byte [0x50bb9c], 1
mov dword [0x504994], 0
call fcn.004a1950
add esp, 8
cmp eax, 7
jne 0x403db8
push 0
push 5
mov ecx, 0x509c28
call fcn.0042c1b0
mov eax, dword [0x508610]
mov dword [0x504994], 1
mov byte [0x50bb9c], 0
jmp 0x403dd4
cmp ecx, edx
jbe 0x403deb
mov dword [0x50bb98], 0
mov dword [0x508614], eax
test esi, esi
jne 0x403bf7
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x80]
mov ecx, esi
push 0
push 0
mov al, byte [edi + 0xf]
mov byte [0x50a706], al
inc byte [esi + 0x16]
push 0
push dword [0x50a694]
call fcn.0048edb0
dec byte [esi + 0x16]
test eax, eax
jne 0x403e26
mov byte [esi + 0x1b], al
jmp 0x403bf7
cmp byte [esi + 0x1b], 0
je 0x403bf7
mov ebp, dword [esp + 0x14]
mov byte [esi + 0x1b], 0
call ebp
sub eax, dword [esi + 0xc]
cmp eax, 0x3e8
ja 0x403bfb
movzx eax, word [edi + 4]
push 0
push eax
push 0x312
push dword [0x507aa8]
call dword [esp + 0x180]
jmp 0x403bfb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403ee1
mov ecx, dword [0x50499c]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x44]
push eax
push esi
call dword [esp + 0xdc]
test eax, eax
je 0x403ed2
cmp dword [0x507aa4], 0
je 0x403ec1
mov eax, dword [0x506390]
mov ecx, 0x4da3cc
test eax, eax
je 0x403eb9
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [esp + 0x178]
mov eax, dword [0x50499c]
mov byte [eax + 0xe8], 0
jmp 0x401d50
mov ecx, dword [0x50499c]
mov byte [ecx + 0xe8], 0
jmp 0x403ee7
mov ecx, dword [0x50499c]
mov eax, dword [0x507a80]
test eax, eax
je 0x403f1d
lea ecx, [esp + 0x44]
push ecx
push eax
push dword [0x507aa8]
call dword [esp + 0xe4]
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x401d5c
mov ecx, dword [0x50499c]
mov byte [ecx + 0xe8], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0xe4], eax
lea eax, [esp + 0x44]
push eax
call dword [esp + 0x17c]
lea eax, [esp + 0x44]
push eax
call dword [esp + 0x68]
mov eax, dword [0x50499c]
mov byte [eax + 0xe8], 0
jmp 0x401d50
cmp esi, 0xffffffff
jle 0x403f69
xorps xmm0, xmm0
mov dword [0x50a738], eax
movlpd qword [0x50a728], xmm0
xor ecx, ecx
mov dword [0x50a73c], eax
cmp byte [esp + 0x3d], cl
movzx eax, byte [0x507967]
cmovne eax, ecx
mov byte [0x507967], al
cmp byte [esp + 0x3e], cl
je 0x403fd6
mov eax, dword [0x507aac]
dec eax
mov dword [0x507aac], eax
test esi, esi
jle 0x403fd6
test eax, eax
jne 0x403fd6
cmp dword [0x50a6ec], ecx
jne 0x403fd6
cmp dword [0x5085f8], ecx
jne 0x403fd6
cmp byte [0x507966], cl
je 0x403fd6
push 9
push dword [0x507aa8]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x507966]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x507966], cl
mov edx, dword [esp + 0x84]
mov al, dl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret