Function at 0x401600
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1310
call fcn.004b5e80
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 + 0x37], 0
cmp ebp, 2
jne 0x40164e
cmp byte [0x4e8c17], 0
mov ebp, 1
mov dword [esp + 0xac], ebp
jne 0x40164e
mov byte [0x4e8c17], 1
mov byte [esp + 0x37], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x18], edi
cmp esi, 0x8000012f
jne 0x40167b
mov esi, 0xa
mov byte [esp + 0x25], 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa0], 0
jmp 0x40169b
cmp esi, 5
setle byte [esp + 0x25]
jg 0x401692
mov dword [esp + 0xa0], 0
jmp 0x40169b
call edi
mov dword [esp + 0xa0], eax
cmp dword [0x4e8fc0], 0
je 0x4016a9
call fcn.00404240
xor bl, bl
cmp dword [0x4ea550], 0
mov dword [esp + 0x38], ebx
je 0x4016ce
call fcn.00403f10
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
mov dword [esp + 0x38], ebx
test esi, esi
jle 0x401708
cmp ebp, 1
jne 0x401708
inc dword [0x4e8c48]
cmp byte [0x4e8c16], 0
mov byte [esp + 0x26], 1
jne 0x40170d
push 0
push 0xa
push 9
push dword [0x4e8c44]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4e8c16]
jmp 0x40170d
mov byte [esp + 0x26], 0
xor eax, eax
mov ebx, dword [sym.imp.USER32.dll_PeekMessageW]
mov dword [esp + 0x80], eax
xorps xmm0, xmm0
mov eax, dword [sym.imp.USER32.dll_GetMessageW]
mov dword [esp + 0x17c], eax
mov eax, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [esp + 0xdc], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [esp + 0xe0], 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 + 0x180], eax
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0xb4], eax
mov eax, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov dword [esp + 0xe8], eax
mov eax, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [esp + 0xb8], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x74], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov dword [esp + 0x188], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.USER32.dll_IsDialogMessageW]
mov dword [esp + 0xe4], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [esp + 0x18c], eax
mov eax, dword [sym.imp.SHELL32.dll_DragFinish]
mov dword [esp + 0x88], eax
mov eax, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [esp + 0x84], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowLongW]
mov dword [esp + 0xf0], eax
mov eax, dword [sym.imp.USER32.dll_CountClipboardFormats]
mov dword [esp + 0x170], eax
mov eax, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov dword [esp + 0x174], eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
mov dword [esp + 0xec], 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 + 0x40], eax
mov eax, dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x184], eax
mov eax, dword [sym.imp.USER32.dll_GetClassLongW]
mov dword [esp + 0xbc], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov edx, dword [0x4e4788]
mov dword [esp + 0xf4], eax
mov eax, dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x90], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [esp + 0x16c], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x1c4], eax
mov eax, dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov al, byte [esp + 0x26]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x8c], eax
mov al, byte [esp + 0x26]
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x20], ebx
movsd qword [esp + 0x1f8], xmm0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x60], ecx
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x9c], eax
mov al, byte [esp + 0x12]
jmp 0x40191c
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test esi, esi
jle 0x4019d0
test al, al
jne 0x4019d0
nop dword [eax]
cmp byte [0x4e8c17], 0
jne 0x4019dd
cmp dword [0x4e4780], 0
je 0x40199b
cmp dword [0x4e8c1c], 0
jne 0x40199b
cmp dword [0x4e8c34], 0
jne 0x40195f
mov ecx, 1
jmp 0x40199d
cmp byte [edx + 0x53], 0
jne 0x401995
cmp dword [edx + 0x44], 0xffffffff
jle 0x401995
call edi
mov edx, dword [0x4e4788]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x401995
cmp dword [edx + 0x40], 0
je 0x401995
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x401995
mov dword [edx + 0x5c], 5
movzx ecx, byte [edx + 0x53]
jmp 0x40199d
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
cmovne eax, edx
push eax
push edx
push edx
lea eax, [esp + 0x50]
push eax
call dword [esp + 0x18c]
cmp eax, 0xffffffff
jne 0x401c42
mov edx, dword [0x4e4788]
jmp 0x401930
cmp byte [0x4e8c17], 0
je 0x401b92
call dword [esp + 0xdc]
mov esi, eax
test esi, esi
je 0x401b8c
push 0
push esi
call dword [esp + 0xe8]
cmp eax, dword [0x4e9e1c]
jne 0x401b8c
cmp dword [0x4e8c40], 0
je 0x401a61
push 0x20
lea eax, [esp + 0x22c]
push eax
push esi
mov esi, dword [esp + 0xbc]
call esi
mov ecx, str.32770
lea eax, [esp + 0x228]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401a56
test dx, dx
je 0x401a52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401a56
add eax, 4
add ecx, 4
test dx, dx
jne 0x401a30
xor eax, eax
jmp 0x401a5b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401aba
jmp 0x401a68
mov esi, dword [esp + 0xb0]
call dword [esp + 0x180]
test eax, eax
je 0x401b8c
push 0x20
lea ecx, [esp + 0x22c]
push ecx
push eax
call esi
lea eax, [esp + 0x228]
push str.SysTreeView32
push eax
call fcn.0049f841
add esp, 8
test eax, eax
je 0x401aba
lea eax, [esp + 0x228]
push str.SysListView32
push eax
call fcn.0049f841
add esp, 8
test eax, eax
jne 0x401b8c
cmp dword [0x4e4780], 0
je 0x401b1e
cmp dword [0x4e8c1c], 0
jne 0x401b1e
cmp dword [0x4e8c34], 0
jne 0x401adc
mov eax, 1
jmp 0x401b20
mov ecx, dword [0x4e4788]
cmp byte [ecx + 0x53], 0
jne 0x401b18
cmp dword [ecx + 0x44], 0xffffffff
jle 0x401b18
call edi
mov ecx, dword [0x4e4788]
sub eax, dword [ecx + 0x48]
cmp eax, dword [ecx + 0x44]
jb 0x401b18
cmp dword [ecx + 0x40], 0
je 0x401b18
cmp byte [ecx + 0x96], 0
mov byte [ecx + 0x53], 1
jne 0x401b18
mov dword [ecx + 0x5c], 5
movzx eax, byte [ecx + 0x53]
jmp 0x401b20
xor eax, eax
push 0
test eax, eax
mov esi, 0x311
push 0x1ff
mov eax, 0xffffffff
push 0
cmovne esi, eax
lea eax, [esp + 0x50]
push 0
push eax
call ebx
test eax, eax
lea eax, [esp + 0x44]
jne 0x401b56
push 1
push esi
push 0x20f
jmp 0x401c07
mov edi, dword [esp + 0x54]
push 0
push esi
push 0x20f
push 0
push eax
call ebx
push 1
test eax, eax
jne 0x401b77
push 0x1ff
jmp 0x401c01
mov eax, dword [esp + 0x58]
sub eax, edi
test eax, eax
lea eax, [esp + 0x48]
jle 0x401b4b
push 0x1ff
jmp 0x401c05
mov edx, dword [0x4e4788]
cmp dword [0x4e4780], 0
je 0x401bf0
cmp dword [0x4e8c1c], 0
jne 0x401bf0
cmp dword [0x4e8c34], 0
jne 0x401bb4
mov ecx, 1
jmp 0x401bf2
cmp byte [edx + 0x53], 0
jne 0x401bea
cmp dword [edx + 0x44], 0xffffffff
jle 0x401bea
call edi
mov edx, dword [0x4e4788]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x401bea
cmp dword [edx + 0x40], 0
je 0x401bea
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x401bea
mov dword [edx + 0x5c], 5
movzx ecx, byte [edx + 0x53]
jmp 0x401bf2
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 ebx
test eax, eax
jne 0x401c42
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x4020dd
cmp byte [esp + 0x13], al
jne 0x4020dd
push esi
call dword [esp + 0xb8]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x18]
mov byte [esp + 0x13], 1
jmp 0x4019d0
inc dword [esp + 0x80]
cmp dword [0x4e9e9c], 0
je 0x401c7f
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x204]
mov ecx, dword [esp + 0x44]
push eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.00404310
add esp, 0x10
test al, al
jne 0x402184
cmp dword [0x4e8c4c], 0
mov edi, dword [esp + 0x48]
je 0x401d01
cmp edi, 0x100
jb 0x401c9c
cmp edi, 0x109
jbe 0x401ca7
lea eax, [edi - 0x200]
cmp eax, 0xe
ja 0x401d01
mov esi, dword [esp + 0x44]
test esi, esi
je 0x401cfb
nop
push 0xffffffffffffffe0
push esi
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea820]
jne 0x401cdb
push 0xffffffffffffffeb
push esi
call dword [esp + 0x7c]
mov ebp, eax
mov dword [esp + 0x14], ebp
test ebp, ebp
jne 0x401de4
push 0xfffffffffffffff0
push esi
call dword [esp + 0x7c]
test eax, 0x40000000
je 0x401cf7
push esi
call dword [esp + 0x188]
mov esi, eax
test esi, esi
jne 0x401cb0
mov edi, dword [esp + 0x48]
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x4c]
mov edx, dword [0x4e4788]
cmp edi, 0x400
ja 0x402349
je case.0x40235f.1025
cmp edi, 0x100
jbe 0x4022c2
cmp edi, 0x113
jne 0x4022b1
cmp dword [esp + 0x50], 0
jne case.0x40235f.1027
mov eax, dword [esp + 0x44]
cmp eax, dword [0x4e8c44]
jne case.0x40235f.1027
cmp dword [0x4e8fc0], 0
je 0x401d64
call fcn.00404240
mov edx, dword [0x4e4788]
cmp dword [0x4ea550], 0
je 0x401d8d
call fcn.00403f10
mov edx, dword [esp + 0x38]
test al, al
movzx ecx, dl
mov eax, 1
mov edx, dword [0x4e4788]
cmovne ecx, eax
mov byte [esp + 0x38], cl
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0x1c]
je 0x4022a0
cmp esi, 1
jl 0x4022a0
mov edi, dword [esp + 0x18]
call edi
cmp byte [esp + 0x25], 0
jne 0x403d53
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jle 0x403d53
mov ah, byte [esp + 0x13]
mov edx, dword [0x4e4788]
mov al, byte [esp + 0x12]
mov byte [esp + 0x13], ah
jmp 0x401924
mov eax, dword [ebp + 0x40]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xc0], ebx
test eax, eax
je 0x401e0e
lea ecx, [esp + 0x44]
push ecx
push eax
push dword [ebp + 0x1c]
call dword [esp + 0xf4]
test eax, eax
jne 0x402180
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
cmp edi, 0x100
jne 0x401fde
cmp byte [ebp + 0xbc], 0
je 0x401f8f
cmp esi, 0x22
je 0x401e4c
cmp esi, 0x21
je 0x401e4c
cmp esi, 9
je 0x401e4c
cmp esi, 0x25
je 0x401e4c
cmp esi, 0x27
jne 0x401f8f
push ebx
mov ecx, ebp
call fcn.004015b0
mov ecx, eax
cmp ecx, 0x2af8
jne 0x401e69
xor ecx, ecx
mov dword [esp + 0x60], ecx
jmp 0x401f74
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x401f74
mov al, byte [ebx + 0x30]
cmp al, 0xf
je 0x401f74
mov esi, dword [esp + 0x4c]
xor edi, edi
cmp al, 0x13
jne 0x401ea4
mov edi, ebx
cmp esi, 0x25
je 0x40219b
cmp esi, 0x27
je 0x40219b
cmp esi, 0x25
je 0x401f78
cmp esi, 0x27
je 0x401f78
push 0x11
call dword [esp + 0xbc]
mov ecx, 0x8000
test cx, ax
je 0x401f74
mov esi, dword [esp + 0x4c]
cmp esi, 9
jne 0x401ef1
cmp byte [ebx + 0x30], 0xc
jne 0x401ef1
push 0xfffffffffffffff0
push dword [ebx + 0x18]
call dword [esp + 0x7c]
test al, 4
jne 0x401f74
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x401f62
mov ch, byte [ebx + 0x32]
add ebp, 0x5c
cmp ch, 0xff
je 0x401f2e
mov ebx, dword [ebp]
xor cl, cl
xor edx, edx
test ebx, ebx
je 0x401f2e
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
mov edi, dword [eax]
cmp byte [edi + 0x30], 0x13
jne 0x401f20
cmp cl, ch
je 0x401f2a
inc cl
inc edx
add eax, 4
cmp edx, ebx
jb 0x401f12
jmp 0x401f2e
test edi, edi
jne 0x401f5e
mov ebx, dword [ebp]
xor cl, cl
xor edx, edx
test ebx, ebx
je 0x401f78
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0x2c]
mov edi, dword [eax]
cmp byte [edi + 0x30], 0x13
jne 0x401f4e
test cl, cl
je 0x401f58
inc cl
inc edx
add eax, 4
cmp edx, ebx
jb 0x401f40
jmp 0x401f78
test edi, edi
je 0x401f78
jmp 0x401f62
mov ebp, dword [esp + 0x14]
push dword [edi + 0x18]
call dword [esp + 0x18c]
test eax, eax
jne 0x4021cc
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
cmp edi, 0x100
jne 0x401fde
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x14]
cmp esi, 0x1b
je 0x401fbe
cmp esi, 9
je 0x401fbe
cmp esi, 0x41
jne 0x401fde
mov esi, dword [esp + 0xb8]
push 0x11
call esi
bt ax, 0xf
jae 0x401fd6
push 0xa5
call esi
bt ax, 0xf
jb 0x401fd6
push ebx
mov ecx, ebp
call fcn.004015b0
mov ecx, eax
cmp ecx, 0x2af8
jne 0x402024
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, dword [0x4e9d48]
test eax, eax
je 0x402001
cmp edi, 0x100
jne 0x402001
cmp esi, 0xd
je 0x40226f
cmp esi, 0x1b
je 0x402269
mov ebp, dword [esp + 0x14]
cmp dword [ebp + 0x5c], 0
jne 0x40209a
cmp edi, 0x106
jne 0x40209a
mov ebx, dword [esp + 0x20]
jmp 0x401d05
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x60], ebx
test ebx, ebx
je 0x401fd6
cmp byte [ebx + 0x30], 0xc
jne 0x401fd6
mov esi, dword [esp + 0x4c]
cmp esi, 0x1b
je 0x4021fe
mov al, byte [ebx + 0x31]
cmp esi, 0x41
je 0x40207d
test al, al
jns 0x401fda
push 0xfffffffffffffff0
push dword [ebx + 0x18]
call dword [esp + 0x7c]
test eax, 0x800
jne 0x401fd6
push 0x4cee88
push 1
push 0xc2
push dword [ebx + 0x18]
call dword [esp + 0x4c]
jmp 0x4021b1
test al, 2
jne 0x401fda
push 0xffffffffffffffff
push 0
push 0xb1
push dword [ebx + 0x18]
call dword [esp + 0x4c]
jmp 0x4021b1
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x44]
push eax
push dword [ebp + 0x1c]
call dword [esp + 0xec]
mov edx, dword [0x4e4788]
mov byte [edx + 0x52], 0
test eax, eax
jne 0x40229c
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
jmp 0x401d0b
cmp dword [esp + 0x80], 0
jne 0x402115
cmp byte [esp + 0x25], 0
je 0x402115
test esi, esi
jle 0x4020fb
push 5
call dword [esp + 0xb8]
mov edx, dword [0x4e4788]
mov al, byte [esp + 0x12]
mov dword [esp + 0x80], 1
jmp 0x401918
mov edi, dword [esp + 0x18]
call edi
cmp byte [esp + 0x25], 0
jne 0x403d18
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jle 0x403d18
push 5
call dword [esp + 0xb8]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [0x4e4788]
mov dword [esp + 0x38], eax
mov ah, byte [esp + 0x13]
mov byte [esp + 0x13], ah
mov eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x12]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x60], ecx
jmp 0x40191c
mov ebx, dword [esp + 0x20]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
cmp esi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ebx
mov ecx, ebp
call fcn.00470fb0
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov eax, dword [esp + 0x4c]
cmp eax, 0x22
je 0x4021f4
cmp eax, 9
jne 0x4021ea
push 0x10
call dword [esp + 0xbc]
bt ax, 0xf
jae 0x4021f4
push 1
push 1
xor al, al
push eax
push edi
jmp 0x4021aa
push 1
push 1
mov al, 1
push eax
push edi
jmp 0x4021aa
mov edx, dword [ebp + 0x54]
xor ecx, ecx
test edx, edx
jle 0x4021b1
mov eax, dword [ebp + 0x4c]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 3
jne 0x40221b
cmp byte [eax], 0
je 0x40223e
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x402210
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov al, byte [esp + 0x12]
jmp 0x40191c
push 0
push 0x2af80003
push 0x414
push dword [ebp + 0x1c]
call dword [esp + 0x104]
mov ah, byte [esp + 0x13]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x38], ecx
mov byte [esp + 0x13], ah
jmp 0x4021b1
push 0
push 1
jmp 0x402273
push 0
push 0
push 0x1116
push eax
call dword [esp + 0x4c]
mov edx, dword [0x4e4788]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov al, byte [esp + 0x12]
jmp 0x40191c
cmp edi, 0x312
je case.0x40235f.1026
jmp case.0x40235f.1027
je 0x40230a
cmp edi, 0x12
je 0x4022e7
cmp edi, 0x4b
jne case.0x40235f.1027
mov al, 1
mov dword [0x4e8c30], 0
mov byte [esp + 0x12], al
jmp 0x401914
push 4
mov ecx, 0x4e9ec0
call fcn.0043a180
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov eax, dword [esp + 0x44]
cmp eax, dword [0x4e8c2c]
jne case.0x40235f.1027
cmp esi, 0x1b
jne case.0x40235f.1027
push 0
push dword [0x4e8c44]
call dword [esp + 0xf4]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
lea eax, [edi - 0x401]
cmp eax, 0x1d
ja case.0x40235f.1027
movzx eax, byte [eax + 0x403dd0]
jmp dword [eax*4 + 0x403dc4]
mov ebx, dword [esp + 0x44]
test ebx, ebx
je case.0x40235f.1026
cmp ebx, dword [0x4e8c44]
jne case.0x40235f.1027
lea eax, [edi - 0x401]
xor ebp, ebp
cmp eax, 0x1d
ja case.0x402392.1027
movzx eax, byte [eax + 0x403e0c]
jmp dword [eax*4 + 0x403df0]
mov ebx, dword [esp + 0x44]
push 0xffffffffffffffe0
push ebx
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea820]
je 0x4023be
xor ebp, ebp
mov dword [esp + 0x14], ebp
jmp case.0x40235f.1027
push 0xffffffffffffffeb
push ebx
call dword [esp + 0x7c]
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x403bcb
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
mov edi, dword [esp + 0x50]
movzx eax, cl
shr ebx, 8
shr ecx, 0x10
mov dword [esp + 0x2c], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x8c], eax
cmp ecx, dword [edx + 0x5c]
jae 0x40240e
mov eax, dword [edx + 0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x6c]
jmp 0x402410
xor ecx, ecx
xor bl, bl
mov dword [esp + 0x60], ecx
dec eax
mov byte [esp + 0x27], 0
mov byte [esp + 0xa4], bl
lea esi, [edx + 0x4c]
cmp eax, 0x10
ja case.0x402432.6
movzx eax, byte [eax + 0x403e40]
jmp dword [eax*4 + 0x403e2c]
mov ebp, dword [edx + 0x34]
test ebp, ebp
je 0x40227d
push 0
push 0
push 0xffffffffffffffff
push ebp
call dword [esp + 0x19c]
mov edi, eax
mov dword [esp + 0x2c], edi
test edi, edi
jne case.0x402432.2
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x34], edi
jmp 0x4021b1
mov bl, 2
mov dword [esp + 0x8c], edi
mov byte [esp + 0xa4], bl
test ecx, ecx
je 0x40227d
lea esi, [ecx + 0x20]
mov byte [esp + 0x27], 1
test esi, esi
je case.0x402432.5
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x402432.5
mov edi, dword [esp + 0x8c]
cmp byte [ecx + 0x10], 0
jne 0x4024bc
mov eax, dword [ecx + 8]
mov edx, dword [esi]
lea eax, [eax + eax*2]
cmp dword [edx + eax*4 + 4], edi
jne 0x4024bc
cmp byte [edx + eax*4 + 0xa], bl
je 0x4024d4
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4024a2
mov edi, dword [esp + 0x48]
xor ebx, ebx
mov edx, dword [0x4e4788]
jmp 0x40297c
test ebp, ebp
je 0x402500
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov ah, byte [esp + 0x13]
mov dword [ebp + 0x34], 0
mov byte [esp + 0x13], ah
jmp 0x4021b1
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov ah, byte [esp + 0x13]
mov byte [esp + 0x13], ah
jmp 0x4021b1
test esi, esi
je 0x40256a
push 0xffffffffffffffe0
push esi
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea820]
je 0x40253b
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x40254a
push 0xffffffffffffffeb
push esi
call dword [esp + 0x7c]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x40255e
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40255e
cmp eax, dword [0x4e8c44]
jne 0x403bcb
mov edi, dword [esp + 0x48]
mov edx, dword [0x4e4788]
jmp 0x402570
xor eax, eax
mov dword [esp + 0x14], eax
mov ecx, dword [0x4ea554]
test ecx, ecx
je 0x4025aa
mov eax, dword [esp + 0x50]
nop
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x94], esi
test esi, esi
je 0x4025a3
nop
cmp dword [esi + 0x14], eax
je 0x4025cc
mov esi, dword [esi + 0x20]
mov dword [esp + 0x94], esi
test esi, esi
jne 0x402590
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x402580
mov ebp, dword [esp + 0x14]
xor eax, eax
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x94], eax
mov al, byte [esp + 0x12]
jmp 0x40191c
cmp dword [esi + 8], ebp
je 0x402283
mov ebx, dword [esi + 0x18]
jmp 0x40297c
cmp esi, dword [0x4e8fbc]
jae 0x402283
mov eax, dword [0x4e8fb8]
mov esi, dword [eax + esi*4]
mov dword [esp + 0xa8], esi
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x402649
mov edx, dword [esi + 4]
call fcn.00413aa0
mov ebx, eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], ebx
test ebx, ebx
je 0x40227d
mov ecx, dword [esi + 0x10]
mov cl, byte [ecx]
cmp cl, 2
je 0x40263d
cmp cl, 4
je 0x40263d
cmp cl, 5
jne 0x402653
mov ebx, dword [0x4e8c3c]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], ebx
jmp 0x402653
xor ebx, ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], ebx
jmp 0x402653
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], eax
push dword [esp + 0x50]
mov ecx, esi
call fcn.004161c0
cmp dword [esi + 0xc], ebp
jne 0x40227d
cmp byte [esi + 0x2a], 0
je 0x402674
mov ax, word [esp + 0x50]
jmp 0x402676
xor eax, eax
mov edi, dword [esp + 0x48]
mov edx, dword [0x4e4788]
mov word [0x4ea568], ax
mov ebx, dword [esi + 0x14]
jmp 0x40297c
cmp byte [0x4ea53c], 0
jne 0x402283
xor ebx, ebx
jmp 0x40297c
mov eax, esi
mov dword [esp + 0x28], eax
test eax, eax
je 0x402797
mov ebx, dword [0x4e8c38]
cmp ebx, eax
jne 0x4026c1
mov ecx, 0x4e8c38
jmp 0x402702
mov eax, ebx
test eax, eax
je 0x402797
nop dword [eax + eax]
lea ecx, [eax + 4]
mov eax, dword [ecx]
cmp eax, esi
je 0x4026fa
test eax, eax
jne 0x4026d0
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x14]
jmp 0x40191c
test ecx, ecx
je 0x402797
cmp dword [esi], 1
je 0x40272a
mov eax, dword [esi + 4]
mov dword [ecx], eax
call fcn.00413870
mov esi, dword [esp + 0x28]
mov edx, dword [0x4e4788]
mov dword [esi + 4], ebp
mov edi, dword [esp + 0x48]
mov ebx, dword [0x4e8c38]
jmp 0x40272e
mov esi, dword [esp + 0x28]
cmp dword [esi + 8], ebp
je 0x402797
test ebx, ebx
jne 0x402757
cmp dword [0x4e8fcc], ebp
jne 0x402757
test byte [0x4e8fd6], 1
jne 0x402757
call fcn.00413e00
mov edi, dword [esp + 0x48]
mov edx, dword [0x4e4788]
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x368], ebp
je 0x402769
xor ebx, ebx
jmp 0x402980
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
cmp dword [0x4e8c34], ebp
jne 0x402791
mov ecx, 0x4e9ec0
call fcn.00439e40
test al, al
jne 0x402791
push 6
mov ecx, 0x4e9ec0
call fcn.0043a180
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x14]
jmp 0x40191c
mov eax, dword [0x4e8c38]
test eax, eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x12]
je 0x401910
mov ah, byte [esp + 0x13]
mov ebx, dword [esp + 0x28]
mov cl, byte [esp + 0x38]
mov al, ah
cmp ebx, esi
je 0x402803
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], ebx
test ebx, ebx
jne 0x4027d5
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov esi, dword [ebx + 8]
cmp edi, 0x41c
jne 0x402816
mov esi, dword [esi + 0x36c]
jmp 0x40282c
cmp edi, 0x41e
jne 0x402826
mov esi, dword [esi + 0x374]
jmp 0x40282c
mov esi, dword [esi + 0x370]
mov byte [esp + 0x38], cl
mov byte [esp + 0x13], al
test esi, esi
je 0x402283
xor ebx, ebx
mov byte [esp + 0x38], cl
mov byte [esp + 0x13], al
jmp 0x40297c
mov eax, esi
and eax, 0x7fff
cmp ax, word [0x4e8fd4]
jae 0x402283
mov ecx, eax
shr esi, 0x10
mov eax, dword [0x4e8fc4]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x98], ebx
test si, si
je 0x4028b4
mov ebx, dword [ebx + 0x20]
add esi, 0xffff
mov dword [esp + 0x9c], ebx
test si, si
je 0x4028a5
nop dword [eax]
mov ebx, dword [ebx + 0xc]
add esi, 0xffff
test si, si
jne 0x402890
mov dword [esp + 0x9c], ebx
test ebx, ebx
jne 0x40291d
mov ebx, dword [esp + 0x98]
cmp edi, 0x400
jne 0x4028cc
mov eax, dword [esp + 0x50]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x4028ce
xor ecx, ecx
push 0
push ecx
lea eax, [esp + 0x78]
mov ecx, ebx
push eax
call fcn.004142f0
mov edx, dword [0x4e4788]
mov ebx, eax
mov dword [esp + 0x9c], ebx
test ebx, ebx
jne 0x402911
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
mov dword [esp + 0x64], ecx
jmp 0x40191c
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov al, byte [ebx + 0x1a]
cmp al, byte [ebx + 0x1b]
jb 0x402953
cmp byte [ebx + 0x1e], 0
je 0x40292f
mov byte [ebx + 0x1f], 1
mov edi, dword [esp + 0x18]
call edi
mov edx, dword [0x4e4788]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [ebx + 0x10], eax
mov ebx, dword [esp + 0x20]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov eax, dword [ebx + 8]
test eax, eax
je 0x40296f
mov al, byte [eax]
cmp al, 2
je 0x40296f
cmp al, 4
je 0x40296f
cmp al, 5
jne 0x402979
mov eax, dword [0x4e8c3c]
jmp 0x402971
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov ebx, dword [ebx + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [0x4e8c34]
cmp eax, dword [0x4e4784]
jl 0x4029ce
test ebp, ebp
je 0x4029b0
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x14]
mov edx, dword [0x4e4788]
mov dword [ebp + 0x34], 0
mov edi, dword [esp + 0x48]
jmp 0x4029b4
mov ebp, dword [esp + 0x14]
cmp edi, 0x41b
jne 0x402283
mov eax, dword [esi + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x4021b1
cmp ebx, dword [edx + 0x3c]
jge 0x402a1b
test ebp, ebp
je 0x4029f6
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x14]
mov edx, dword [0x4e4788]
mov dword [ebp + 0x34], 0
mov edi, dword [esp + 0x48]
jmp 0x4029fa
mov ebp, dword [esp + 0x14]
cmp edi, 0x41b
je 0x4029c0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
lea eax, [edi - 0x402]
mov byte [esp + 0x38], 1
cmp eax, 0x1c
ja case.0x402a32.1027
movzx eax, byte [eax + 0x403e5c]
jmp dword [eax*4 + 0x403e54]
mov eax, dword [0x4ea504]
mov dword [0x4ea508], eax
mov eax, dword [0x4ea560]
mov dword [0x4ea564], eax
cmp edi, 0x401
jne 0x402a61
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 4]
jmp 0x402a6b
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [0x4ea504], eax
call edi
mov edx, dword [0x4e4788]
mov dword [0x4ea560], eax
jmp 0x402a87
mov edi, dword [esp + 0x18]
inc dword [0x4e8c34]
lea esi, [edx + 0xa0]
mov eax, dword [0x4e8c20]
mov dword [0x4e4788], esi
test eax, eax
je 0x402aa7
add eax, 0x58
jmp 0x402aa9
xor eax, eax
test esi, esi
je 0x402ab2
lea ecx, [esi + 0x58]
jmp 0x402ab4
xor ecx, ecx
movups xmm0, xmmword [eax]
push 0x58
push 0
movups xmmword [ecx], xmm0
push esi
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x30], xmm0
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
call fcn.0049e150
add esp, 0xc
mov byte [esi + 0x53], 1
mov ecx, 0x4e9ec0
mov dword [esi + 0x3c], ebx
push 0
call fcn.00439820
mov al, byte [esi + 0x96]
test al, al
jne 0x402b08
mov byte [esi + 0x96], al
cmp dword [0x4ea5a0], 0
je 0x402b1a
cmp dword [0x4ea59c], 0
jne 0x402b1e
test al, al
je 0x402b4c
mov dword [esi + 0x5c], 0x10
mov byte [esi + 0x53], 0
test al, al
jne 0x402b4c
cmp dword [0x4ea5a0], 0
jge 0x402b3f
mov dword [esi + 0x44], 0xffffffff
jmp 0x402b4c
call edi
mov dword [esi + 0x48], eax
mov eax, dword [0x4ea5a0]
mov dword [esi + 0x44], eax
mov esi, dword [0x4e4788]
call edi
mov edi, dword [esp + 0x48]
mov dword [0x4ea5a4], eax
lea eax, [edi - 0x401]
cmp eax, 0x1d
ja case.0x402b73.1027
movzx eax, byte [eax + 0x403e9c]
jmp dword [eax*4 + 0x403e7c]
mov edi, dword [esp + 0x30]
mov ecx, edi
mov ebx, dword [esp + 0x14]
add ecx, ecx
mov edx, dword [esp + 0x6c]
inc edi
cmp byte [esp + 0x27], 0
mov eax, ebx
mov esi, dword [esp + 0x60]
cmovne eax, esi
mov dword [esp + 0x30], edi
mov dword [esp + ecx*8 + 0x100], eax
lea eax, [edx - 1]
mov dword [esp + ecx*8 + 0x108], 5
cmp eax, 0x10
ja case.0x402bc2.6
movzx eax, byte [eax + 0x403ed0]
jmp dword [eax*4 + 0x403ebc]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
test esi, esi
je 0x402e0f
mov ebx, dword [esp + 0x68]
test bl, bl
je 0x402d30
movzx eax, byte [esi + 0x30]
add eax, 0xfffffff7
mov dword [esp + 0xcc], connect
cmp eax, 8
ja case.0x402c08.12
jmp dword [eax*4 + 0x403ee4]
mov ebx, dword [esp + 0x3c]
push 0
push 0
push 0x19f
push dword [esi + 0x18]
call ebx
cmp eax, 0xffffffff
je 0x402c39
lea ecx, [esp + 0xcc]
push ecx
push eax
push 0x198
push dword [esi + 0x18]
call ebx
mov ebx, dword [esp + 0x68]
jmp case.0x402c08.12
mov ebx, dword [esp + 0x3c]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi + 0x18]
call ebx
cmp eax, 0xffffffff
je 0x402c39
lea ecx, [esp + 0xcc]
mov dword [esp + 0xcc], 2
push ecx
push eax
push 0x100e
push dword [esi + 0x18]
call ebx
mov ebx, dword [esp + 0x68]
jmp case.0x402c08.12
mov ebx, dword [esp + 0x3c]
push 0
push 9
push 0x110a
push dword [esi + 0x18]
call ebx
test eax, eax
je 0x402c39
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xcc]
push eax
push 1
push 0x1104
push dword [esi + 0x18]
call ebx
mov ebx, dword [esp + 0x68]
jmp case.0x402c08.12
lea eax, [esp + 0xcc]
push eax
push 0
push 0x419
push dword [esi + 0x18]
call dword [esp + 0x4c]
cmp dword [esp + 0xcc], 0x80000000
lea ecx, [esp + 0xcc]
mov eax, dword [esi + 0x18]
jne 0x402cec
push ecx
push eax
call dword [esp + 0x1cc]
jmp 0x402cf9
push 2
push ecx
push 0
push eax
call dword [esp + 0x174]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xd8]
sub eax, ecx
mov eax, eax
test eax, eax
jns 0x402d1d
add eax, 1
sar eax, 1
mov edx, dword [esp + 0x5c]
add ecx, 2
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x7c], eax
movzx eax, byte [esi + 0x30]
sub eax, 9
je 0x402df9
sub eax, 1
je 0x402ddf
sub eax, 1
jne 0x402e0f
test bl, bl
je 0x402d93
push eax
push 9
push 0x110a
push dword [esi + 0x18]
call dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x1c]
call dword [esp + 0x8c]
mov eax, edi
lea ecx, [esp + 0x100]
shl eax, 4
mov edi, 5
add ecx, eax
mov edx, ecx
jmp 0x402e4b
mov ebx, dword [esp + 0x84]
lea eax, [esp + 0x208]
push eax
push dword [esi + 0x18]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], edx
call ebx
lea eax, [esp + 0x208]
push eax
push 0
push 0x1111
push dword [esi + 0x18]
call dword [esp + 0x4c]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x1c]
call ebx
jmp 0x402d79
test bl, bl
je 0x402d66
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi + 0x18]
call dword [esp + 0x4c]
inc eax
jmp 0x402d62
push 0
push 0
push 0x19f
push dword [esi + 0x18]
call dword [esp + 0x4c]
inc eax
jmp 0x402d62
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x1c]
call dword [esp + 0x8c]
mov eax, edi
lea ecx, [esp + 0x100]
shl eax, 4
add ecx, eax
mov edx, ecx
test esi, esi
je 0x402e3d
mov edi, 5
jmp 0x402e4b
mov dword [ecx + 4], 0xffffffff
mov esi, 0x4cee30
xor edi, edi
mov ebx, dword [esp + 0x2c]
mov dword [ecx + 8], edi
mov dword [edx], esi
mov edx, dword [esp + 0x30]
mov dword [esp + eax + 0x118], 1
mov dword [esp + eax + 0x110], ebx
mov dword [esp + eax + 0x114], 0
xor eax, eax
lea ecx, [edx + 2]
add ecx, ecx
lea esi, [edx + 4]
cmp byte [esp + 0x68], al
lea edi, [esi + 1]
push ebp
sete al
mov dword [esp + 0x34], edi
mov dword [esp + ecx*8 + 0x104], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + ecx*8 + 0x10c], 1
mov dword [esp + ecx*8 + 0x108], 0
cdq
mov dword [esp + ecx*8 + 0x114], eax
mov eax, dword [esp + 0x80]
mov dword [esp + ecx*8 + 0x118], edx
mov dword [esp + ecx*8 + 0x11c], 1
mov ecx, esi
add ecx, ecx
cdq
mov dword [esp + ecx*8 + 0x10c], 1
mov dword [esp + ecx*8 + 0x104], eax
mov dword [esp + ecx*8 + 0x108], edx
mov eax, dword [ebp]
call dword [eax + 4]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
jmp 0x4032e7
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
push eax
mov dword [esp + 0x80], ecx
push dword [ebx + 0x1c]
call dword [esp + 0x8c]
push 0xffffffffffffffec
push dword [ebx + 0x1c]
call dword [esp + 0x7c]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx + 0x1c]
call dword [esp + 0xfc]
mov eax, edi
test esi, esi
je 0x402f4b
mov ecx, esi
mov edx, 5
jmp 0x402f61
add eax, eax
mov ecx, 0x4cee30
xor edx, edx
mov dword [esp + eax*8 + 0x104], 0xffffffff
mov eax, edi
add eax, eax
lea esi, [esp + 0x100]
mov dword [esi + eax*8 + 8], edx
mov dword [esi + eax*8], ecx
lea esi, [edi + 1]
mov ecx, ebp
add esi, esi
call fcn.004658d0
mov dword [esp + esi*8 + 0x108], 5
mov dword [esp + esi*8 + 0x100], eax
cmp byte [ebx + 0xc6], 0
je 0x402fb0
push dword [0x4e9e90]
push 0x60
push dword [esp + 0x80]
call dword [esp + 0x9c]
jmp 0x402fb4
mov eax, dword [esp + 0x78]
cdq
mov dword [esp + esi*8 + 0x118], 1
mov dword [esp + esi*8 + 0x110], eax
mov dword [esp + esi*8 + 0x114], edx
lea esi, [edi + 3]
add edi, 4
add esi, esi
cmp byte [ebx + 0xc6], 0
mov dword [esp + 0x30], edi
je 0x402ffb
push dword [0x4e9e90]
push 0x60
push dword [esp + 0x84]
call dword [esp + 0x9c]
jmp 0x402fff
mov eax, dword [esp + 0x7c]
cdq
push ebp
mov dword [esp + esi*8 + 0x10c], 1
mov dword [esp + esi*8 + 0x104], eax
mov dword [esp + esi*8 + 0x108], edx
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x34], 0
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x168]
push eax
push ebp
push dword [esp + 0xac]
add ecx, 0x20
lea eax, [esp + 0x10c]
push dword [esp + 0x98]
cmp byte [esp + 0x37], 0
lea esi, [ebp + 0x4c]
push edi
push eax
cmove ecx, esi
call fcn.0047a000
mov ebp, dword [ebp + 0x1c]
mov dword [esp + 0xc0], ebp
test ebp, ebp
je 0x403431
mov eax, ebx
sub eax, 1
je 0x403380
sub eax, 1
jne 0x403431
cmp dword [esp + 0x168], eax
jne 0x403455
push eax
push ebp
call dword [esp + 0xf4]
mov ebp, dword [esp + 0x14]
push dword [ebp + 0x1c]
call dword [esp + 0x170]
test eax, eax
setne al
cmp al, byte [ebp + 0xc9]
je 0x40335b
mov ecx, dword [ebp]
mov byte [ebp + 0xc9], al
push ebp
test al, al
je 0x403358
call dword [ecx + 4]
jmp 0x40335b
cmp edx, 4
jne 0x4032cf
mov eax, dword [esp + 0x68]
mov esi, edi
mov ebp, dword [esp + 0x14]
add esi, esi
mov ebx, dword [esp + 0x2c]
movsx eax, al
cdq
mov dword [esp + esi*8 + 0x100], eax
mov dword [esp + esi*8 + 0x108], 1
mov dword [esp + esi*8 + 0x104], edx
cmp byte [ebp + 0xc6], 0
movzx eax, bx
je 0x403135
push dword [0x4e9e90]
push 0x60
push eax
call dword [esp + 0x9c]
cdq
mov dword [esp + esi*8 + 0x110], eax
mov eax, ebx
mov dword [esp + esi*8 + 0x118], 1
mov dword [esp + esi*8 + 0x114], edx
mov esi, edi
add edi, 3
shr eax, 0x10
add esi, esi
mov dword [esp + 0x30], edi
cmp byte [ebp + 0xc6], 0
je 0x403178
push dword [0x4e9e90]
push 0x60
push eax
call dword [esp + 0x9c]
cdq
mov dword [esp + esi*8 + 0x128], 1
mov dword [esp + esi*8 + 0x120], eax
mov dword [esp + esi*8 + 0x124], edx
jmp 0x40302c
cmp byte [esi + 0x30], 0x17
jne 0x40325c
cmp edx, 7
jne 0x40325c
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x268], 0xd
lea eax, [ebx - 1]
mov dword [esp + 0x26c], eax
lea eax, [esp + 0x268]
push eax
push 0
push 0x703
push dword [esi + 0x18]
call dword [esp + 0x4c]
test eax, eax
je 0x4031e5
mov ax, word [esp + 0x278]
mov ecx, edi
add ecx, ecx
test ax, ax
je 0x40320b
lea eax, [esp + 0x278]
mov dword [esp + ecx*8 + 0x104], 0xffffffff
mov dword [esp + ecx*8 + 0x100], eax
xor eax, eax
jmp 0x403221
mov eax, ebx
cdq
mov dword [esp + ecx*8 + 0x100], eax
mov eax, 1
mov dword [esp + ecx*8 + 0x104], edx
mov dword [esp + ecx*8 + 0x108], eax
add edi, 2
lea eax, [esp + 0x2d8]
mov dword [esp + ecx*8 + 0x118], 0
mov dword [esp + ecx*8 + 0x110], eax
mov dword [esp + ecx*8 + 0x114], 0xffffffff
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0x14]
jmp 0x40302c
mov ecx, dword [esp + 0x2c]
mov eax, edi
add eax, eax
inc edi
mov dword [esp + 0x30], edi
mov dword [esp + eax*8 + 0x108], 1
mov dword [esp + eax*8 + 0x100], ecx
mov dword [esp + eax*8 + 0x104], 0
mov eax, edx
sub eax, 0xa
je 0x40329f
sub eax, 1
je 0x403299
sub eax, 2
je 0x40329f
jmp 0x4032cf
cmp byte [esi + 0x30], 0xa
jne 0x4032cf
mov eax, dword [esp + 0x68]
mov ecx, edi
add ecx, ecx
movzx eax, al
inc edi
cdq
sub eax, 1
mov dword [esp + 0x30], edi
sbb edx, 0
mov dword [esp + ecx*8 + 0x108], 1
mov dword [esp + ecx*8 + 0x100], eax
mov dword [esp + ecx*8 + 0x104], edx
mov ebp, dword [esp + 0x14]
push ebp
mov eax, dword [ebp]
call dword [eax + 4]
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
jne 0x403037
test esi, esi
je 0x403037
push 0
push ebp
push dword [esp + 0xac]
lea eax, [edi - 1]
push dword [esp + 0x98]
lea ecx, [esi + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
call fcn.0047a000
cmp eax, 7
je 0x403323
cmp dword [ebp + 0x1c], 0
jne 0x403037
mov eax, dword [ebp]
push ebp
call dword [eax + 8]
mov edi, dword [esp + 0x18]
call fcn.004046d0
cmp dword [esp + 0xac], 0
jne 0x403b84
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
jmp 0x40191c
call dword [ecx + 8]
cmp dword [0x4e8c34], 0
jne 0x403323
mov ecx, 0x4e9ec0
call fcn.00439e40
test al, al
jne 0x403323
push 4
mov ecx, 0x4e9ec0
call fcn.0043a180
jmp 0x403323
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
jle 0x4033d6
mov eax, dword [esi]
mov bh, byte [esp + 0x13]
add eax, 0xa
cmp dword [eax - 6], 1
mov esi, edi
mov ebp, dword [esp + 0x30]
mov bl, bh
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], ebp
mov ebp, edi
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xc0]
jne 0x4033ba
cmp byte [eax], 0
je 0x4033f1
mov edi, dword [esp + 0x30]
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x403392
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edi
mov byte [esp + 0x13], bh
mov ebp, dword [esp + 0x14]
lea eax, [edi - 3]
add eax, eax
mov eax, dword [esp + eax*8 + 0x100]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403323
push 0xffffffffffffffec
push ebp
call dword [esp + 0x7c]
mov ebp, dword [esp + 0x14]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebp + 0x1c]
call dword [esp + 0xfc]
mov dword [esp + 0x2c], edi
mov edi, esi
mov dword [esp + 0x30], edi
mov byte [esp + 0x13], bl
lea eax, [edi - 3]
add eax, eax
mov eax, dword [esp + eax*8 + 0x100]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403323
mov ebp, dword [esp + 0x14]
cmp ebx, 1
jne 0x403323
lea eax, [edi - 3]
add eax, eax
mov eax, dword [esp + eax*8 + 0x100]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x403323
mov ebp, dword [esp + 0x14]
jmp 0x403323
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x403479
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x24], eax
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov edi, dword [esp + 0x94]
mov esi, dword [edi + 0x10]
push esi
mov eax, dword [esi]
call dword [eax + 4]
mov eax, dword [edi]
xor ecx, ecx
mov dword [esp + 0x190], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x198], 0
mov dword [esp + 0x194], 0xffffffff
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4034c0
cmp eax, edi
je 0x4034c3
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x4034b4
or ecx, 0xffffffff
lea eax, [ecx + 1]
mov dword [esp + 0x1a8], 1
mov ecx, dword [0x4e9e24]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1b8], 5
mov dword [esp + 0x1b0], esi
cmp ecx, dword [0x4e9e28]
jne 0x40350e
call fcn.0040728a
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e20]
jb 0x403523
mov eax, dword [0x4ea500]
mov dword [ecx], eax
mov ecx, dword [0x4e9e24]
add ecx, 0xc
lea eax, [esp + 0x190]
mov dword [0x4e9e24], ecx
push 0
mov dword [ecx], 0
mov dword [ecx + 4], str.Menu
mov dword [ecx + 8], 0
mov ecx, dword [edi + 8]
mov edx, ecx
push ecx
push 0
push 3
push eax
push 0
call fcn.00474060
mov eax, dword [0x4e9e24]
add esp, 0x18
sub eax, 0xc
mov dword [0x4e9e24], eax
cmp eax, dword [0x4e9e20]
jb 0x40357f
mov eax, dword [eax]
mov dword [0x4e9e34], eax
mov dword [0x4ea500], eax
mov eax, dword [esi]
push esi
call dword [eax + 8]
test ebp, ebp
je 0x40332a
jmp 0x403323
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x20], eax
mov al, byte [ebx + 0x21]
mov byte [esi + 0x99], al
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x58], eax
mov al, byte [ebx + 0x24]
cmp al, byte [ebx + 0x25]
jae 0x4035fd
mov byte [0x4ea56a], 0
mov ecx, ebx
mov eax, dword [ebx + 4]
inc byte [ebx + 0x24]
push 0
mov dword [esp + 0x1cc], eax
lea eax, [esp + 0x1cc]
push 1
push eax
push dword [0x4ea504]
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00479e30
dec byte [ebx + 0x24]
mov ebp, dword [esp + 0x14]
jmp 0x40332a
call dword [esp + 0x170]
test eax, eax
je 0x40363a
mov ebx, dword [esp + 0x174]
push 0xd
call ebx
test eax, eax
jne 0x403631
push 0xf
call ebx
test eax, eax
jne 0x403631
mov eax, 2
xor ecx, ecx
jmp 0x403654
mov eax, 1
xor ecx, ecx
jmp 0x403654
xorps xmm0, xmm0
movlpd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1dc], ecx
mov ecx, dword [0x4e9e24]
mov dword [esp + 0x1e0], 1
mov dword [esp + 0x1d8], eax
mov byte [0x4ea53c], 1
cmp ecx, dword [0x4e9e28]
jne 0x40368d
call fcn.0040728a
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e20]
jb 0x4036a2
mov eax, dword [0x4ea500]
mov dword [ecx], eax
mov ecx, dword [0x4e9e24]
add ecx, 0xc
lea eax, [esp + 0x1d8]
push 0
mov dword [0x4e9e24], ecx
push 1
push 1
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cee8c
mov dword [ecx + 8], 0
mov ecx, 0x4ea51c
push eax
call fcn.00479ed0
mov eax, dword [0x4e9e24]
sub eax, 0xc
mov dword [0x4e9e24], eax
cmp eax, dword [0x4e9e20]
jb 0x4036f8
mov eax, dword [eax]
mov dword [0x4e9e34], eax
mov dword [0x4ea500], eax
mov ebp, dword [esp + 0x14]
mov byte [0x4ea53c], 0
jmp 0x40332a
mov ebx, dword [esp + 0x28]
mov ecx, dword [0x4e9e24]
mov dword [esp + 0x220], 5
mov esi, dword [ebx + 8]
mov dword [esp + 0x218], esi
mov esi, dword [esi + 0x368]
cmp ecx, dword [0x4e9e28]
jne 0x403740
call fcn.0040728a
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e20]
jb 0x403755
mov eax, dword [0x4ea500]
mov dword [ecx], eax
mov ecx, dword [0x4e9e24]
add ecx, 0xc
lea eax, [esp + 0x218]
push 0
push ecx
push 0
mov dword [0x4e9e24], 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 0
call fcn.00474060
mov eax, dword [0x4e9e24]
add esp, 0x18
sub eax, 0xc
mov dword [0x4e9e24], eax
cmp eax, dword [0x4e9e20]
jb 0x4037b0
mov eax, dword [eax]
mov dword [0x4e9e34], eax
mov dword [0x4ea500], eax
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ebp, dword [esp + 0x14]
jmp 0x40332a
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
movzx eax, cl
cdq
sar ecx, 0x10
mov esi, dword [ebx + 8]
mov dword [esp + 0x1a0], eax
movzx eax, cx
mov dword [esp + 0x1a4], edx
cdq
mov dword [esp + 0x198], 5
mov dword [esp + 0x190], esi
mov dword [esp + 0x1a8], 1
mov dword [esp + 0x1b8], 1
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], edx
cmp edi, 0x41c
jne 0x40382c
mov esi, dword [esi + 0x36c]
jmp 0x403832
mov esi, dword [esi + 0x374]
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e28]
jne 0x40384b
call fcn.0040728a
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e20]
jb 0x403860
mov eax, dword [0x4ea500]
mov dword [ecx], eax
mov ecx, dword [0x4e9e24]
add ecx, 0xc
lea eax, [esp + 0x190]
push 0
push ecx
push 0
mov dword [0x4e9e24], ecx
mov edx, esi
push 3
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx + 8], 0
mov ecx, esi
push 0
call fcn.00474060
mov eax, dword [0x4e9e24]
add esp, 0x18
mov ebp, dword [esp + 0x14]
sub eax, 0xc
mov edi, dword [esp + 0x18]
mov dword [0x4e9e24], eax
cmp eax, dword [0x4e9e20]
jb 0x40332e
mov eax, dword [eax]
mov dword [0x4e9e34], eax
mov dword [0x4ea500], eax
jmp 0x40332e
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov ecx, dword [0x4e9e24]
mov word [esp + 0xf8], ax
sar eax, 0x10
mov esi, dword [ebx + 8]
mov word [esp + 0xfa], ax
xor eax, eax
mov word [esp + 0xfc], ax
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x198], 5
mov dword [esp + 0x190], esi
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], 0xffffffff
mov esi, dword [esi + 0x370]
cmp ecx, dword [0x4e9e28]
jne 0x403945
call fcn.0040728a
mov ecx, dword [0x4e9e24]
cmp ecx, dword [0x4e9e20]
jb 0x40395a
mov eax, dword [0x4ea500]
mov dword [ecx], eax
mov ecx, dword [0x4e9e24]
add ecx, 0xc
lea eax, [esp + 0x190]
push 0
push ecx
push 0
mov dword [0x4e9e24], ecx
mov edx, esi
push 2
push eax
mov dword [ecx], 0
mov dword [ecx + 4], str.InputHook
mov dword [ecx + 8], 0
mov ecx, esi
push 0
call fcn.00474060
mov eax, dword [0x4e9e24]
add esp, 0x18
mov ebp, dword [esp + 0x14]
sub eax, 0xc
mov edi, dword [esp + 0x18]
mov dword [0x4e9e24], eax
cmp eax, dword [0x4e9e20]
jb 0x40332e
mov eax, dword [eax]
mov dword [0x4e9e34], eax
mov dword [0x4ea500], eax
jmp 0x40332e
mov ebp, dword [esp + 0x98]
mov al, byte [ebp + 0x10]
add al, 0x64
cmp al, 3
ja 0x4039de
movzx eax, word [esp + 0x50]
mov dword [esi + 0x24], eax
cmp byte [0x4ea838], 0
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x20], eax
mov al, byte [ebx + 0x1c]
mov byte [esi + 0x99], al
mov eax, dword [ebx + 8]
mov dword [esi + 0x58], eax
jne 0x4035fd
cmp dword [0x4e8fdc], 0
mov esi, dword [esp + 0x18]
jne 0x403a1c
call esi
mov dword [0x4e8fdc], eax
inc dword [0x4ea834]
call esi
mov edi, dword [0x4ea834]
mov ecx, eax
sub ecx, dword [0x4e8fdc]
mov edx, dword [0x4e4cf4]
mov dword [0x4e8fd8], eax
cmp edi, dword [0x4e4cf8]
jbe 0x403a50
cmp ecx, edx
jae 0x403a50
mov esi, 1
jmp 0x403a52
xor esi, esi
test esi, esi
je 0x403ad6
push ecx
push edi
push str._u_hotkeys_have_been_received_in_the_last__ums._n_nDo_you_want_to_continue__n_see_A_MaxHotkeysPerInterval_in_the_help_file_
lea eax, [esp + 0x274]
push 0x800
push eax
call fcn.00481690
add esp, 0x14
call fcn.00413a60
movsd xmm3, qword [esp + 0x1f8]
lea ecx, [esp + 0x268]
push 0
push 0
mov edx, 4
mov byte [0x4ea838], 1
mov dword [0x4e4780], 0
call fcn.004871d0
add esp, 8
cmp eax, 7
jne 0x403abe
push 4
mov ecx, 0x4e9ec0
call fcn.0043a180
mov eax, dword [0x4e8fd8]
mov dword [0x4e4780], 1
mov byte [0x4ea838], 0
jmp 0x403ada
cmp ecx, edx
jbe 0x403af1
mov dword [0x4ea834], 0
mov dword [0x4e8fdc], eax
test esi, esi
jne 0x4035fd
mov al, byte [ebp + 0xf]
mov ecx, ebx
mov byte [0x4ea56a], al
inc byte [ebx + 0x1a]
mov eax, dword [ebp + 0x1c]
push 0
mov dword [esp + 0x1ec], eax
lea eax, [esp + 0x1ec]
push 1
push eax
push dword [0x4ea504]
mov dword [esp + 0x200], 0
mov dword [esp + 0x1fc], 0xffffffff
call fcn.00479e30
dec byte [ebx + 0x1a]
test eax, eax
jne 0x403b48
mov ebp, dword [esp + 0x14]
mov byte [ebx + 0x1f], al
jmp 0x40332a
cmp byte [ebx + 0x1f], 0
mov edi, dword [esp + 0x18]
je 0x403b7b
mov byte [ebx + 0x1f], 0
call edi
sub eax, dword [ebx + 0x10]
cmp eax, 0x3e8
ja 0x403b7b
movzx eax, word [ebp + 4]
push 0
push eax
push 0x312
push dword [0x4e8c44]
call dword [esp + 0x104]
mov ebp, dword [esp + 0x14]
jmp 0x40332e
call edi
cmp byte [esp + 0x25], 0
mov esi, dword [esp + 0x1c]
jne 0x403ba5
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jg 0x403cc0
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov dword [0x4ea5a4], eax
mov al, 1
mov ah, byte [esp + 0x13]
mov byte [esp + 0x12], al
mov byte [esp + 0x25], al
mov byte [esp + 0x13], ah
jmp 0x40191c
mov ebp, dword [esp + 0x14]
call dword [esp + 0xdc]
mov esi, eax
test esi, esi
je 0x403c92
push 0
push esi
call dword [esp + 0xe8]
cmp eax, dword [0x4e9e1c]
jne 0x403c92
push 0x20
lea eax, [esp + 0x22c]
push eax
mov eax, dword [esp + 0xb8]
push esi
call eax
mov ecx, str.32770
lea eax, [esp + 0x228]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403c3c
test dx, dx
je 0x403c38
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403c3c
add eax, 4
add ecx, 4
test dx, dx
jne 0x403c16
xor eax, eax
jmp 0x403c41
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403c92
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x44]
push eax
push esi
call dword [esp + 0xec]
test eax, eax
je 0x403c86
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
mov byte [edx + 0x52], 0
jmp 0x40191c
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 0
jmp 0x403c98
mov ecx, dword [0x4e4788]
mov eax, dword [0x4e8c28]
test eax, eax
je 0x403cd9
lea ecx, [esp + 0x44]
push ecx
push eax
push dword [0x4e8c44]
call dword [esp + 0xf4]
test eax, eax
je 0x403cd3
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov al, byte [esp + 0x12]
jmp 0x40191c
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x44]
push eax
call dword [esp + 0x17c]
lea eax, [esp + 0x44]
push eax
call dword [esp + 0x44]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x12]
mov byte [edx + 0x52], 0
jmp 0x40191c
xor ecx, ecx
mov dword [0x4ea5a4], eax
cmp byte [esp + 0x37], cl
movzx eax, byte [0x4e8c17]
cmovne eax, ecx
mov byte [0x4e8c17], al
cmp byte [esp + 0x26], cl
je 0x403db6
mov eax, dword [0x4e8c48]
dec eax
mov dword [0x4e8c48], eax
test esi, esi
jle 0x403db6
test eax, eax
jmp 0x403d7a
xor ecx, ecx
mov dword [0x4ea5a4], eax
cmp byte [esp + 0x37], cl
movzx eax, byte [0x4e8c17]
cmovne eax, ecx
mov byte [0x4e8c17], al
cmp byte [esp + 0x26], cl
je 0x403db6
sub dword [0x4e8c48], 1
jne 0x403db6
cmp dword [0x4ea550], ecx
jne 0x403db6
cmp dword [0x4e8fc0], ecx
jne 0x403db6
cmp byte [0x4e8c16], cl
je 0x403db6
push 9
push dword [0x4e8c44]
call dword [sym.imp.USER32.dll_KillTimer]
movzx ecx, byte [0x4e8c16]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [0x4e8c16], cl
mov al, byte [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret