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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1300
call fcn.004b5cc0
push ebx
push ebp
push esi
push edi
mov ebp, edx
mov dword [esp + 0xac], ebp
mov esi, ecx
mov dword [esp + 0x20], esi
mov byte [esp + 0x3b], 0
cmp ebp, 2
jne 0x40162e
cmp byte [0x4e8c2f], 0
mov ebp, 1
mov dword [esp + 0xac], ebp
jne 0x40162e
mov byte [0x4e8c2f], 1
mov byte [esp + 0x3b], 1
mov edi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x1c], edi
cmp esi, 0x8000012f
jne 0x40165b
mov esi, 0xa
mov byte [esp + 0x29], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0xa0], 0
jmp 0x40167b
cmp esi, 5
setle byte [esp + 0x29]
jg 0x401672
mov dword [esp + 0xa0], 0
jmp 0x40167b
call edi
mov dword [esp + 0xa0], eax
cmp dword [0x4e8fd8], 0
je 0x401689
call fcn.004041a0
xor bl, bl
cmp dword [0x4ea558], 0
mov dword [esp + 0x3c], ebx
je 0x4016ae
call fcn.00403e70
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
mov dword [esp + 0x3c], ebx
test esi, esi
jle 0x4016e8
cmp ebp, 1
jne 0x4016e8
inc dword [0x4e8c60]
cmp byte [0x4e8c2e], 0
mov byte [esp + 0x2a], 1
jne 0x4016ed
push 0
push 0xa
push 9
push dword [0x4e8c5c]
call dword [sym.imp.USER32.dll_SetTimer]
test eax, eax
setne byte [0x4e8c2e]
jmp 0x4016ed
mov byte [esp + 0x2a], 0
xor eax, eax
mov ebx, dword [sym.imp.USER32.dll_PeekMessageW]
mov dword [esp + 0x80], eax
mov eax, dword [sym.imp.USER32.dll_GetMessageW]
mov dword [esp + 0x160], 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 + 0x164], 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 + 0x70], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov dword [esp + 0x16c], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x40], 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 + 0x170], 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 + 0x184], eax
mov eax, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
mov dword [esp + 0x188], 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 + 0x18c], eax
mov eax, dword [sym.imp.USER32.dll_DispatchMessageW]
mov dword [esp + 0x44], eax
mov eax, dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x168], eax
mov eax, dword [sym.imp.USER32.dll_GetClassLongW]
mov dword [esp + 0xbc], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [esp + 0xf4], eax
mov eax, dword [sym.imp.KERNEL32.DLL_MulDiv]
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov edx, dword [0x4e4788]
mov dword [esp + 0x90], eax
mov eax, dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [esp + 0x180], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x174], eax
mov eax, dword [sym.imp.USER32.dll_MapWindowPoints]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
mov al, byte [esp + 0x2a]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
mov al, byte [esp + 0x2a]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x44]
mov byte [esp + 0x17], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x9c], eax
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
test esi, esi
jle 0x401990
test al, al
jne 0x401990
cmp byte [0x4e8c2f], 0
jne 0x40199d
cmp dword [0x4e4780], 0
je 0x40195b
cmp dword [0x4e8c34], 0
jne 0x40195b
cmp dword [0x4e8c4c], 0
jne 0x40191f
mov ecx, 1
jmp 0x40195d
cmp byte [edx + 0x53], 0
jne 0x401955
cmp dword [edx + 0x44], 0xffffffff
jle 0x401955
call edi
mov edx, dword [0x4e4788]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x401955
cmp dword [edx + 0x40], 0
je 0x401955
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x401955
mov dword [edx + 0x5c], 5
movzx ecx, byte [edx + 0x53]
jmp 0x40195d
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
cmovne eax, edx
push eax
push edx
push edx
lea eax, [esp + 0x58]
push eax
call dword [esp + 0x170]
cmp eax, 0xffffffff
jne 0x401c02
mov edx, dword [0x4e4788]
jmp 0x4018f0
cmp byte [0x4e8c2f], 0
je 0x401b52
call dword [esp + 0xdc]
mov esi, eax
test esi, esi
je 0x401b4c
push 0
push esi
call dword [esp + 0xe8]
cmp eax, dword [0x4e9ea8]
jne 0x401b4c
cmp dword [0x4e8c58], 0
je 0x401a21
push 0x20
lea eax, [esp + 0x21c]
push eax
push esi
mov esi, dword [esp + 0xbc]
call esi
mov ecx, 0x4ceea8
lea eax, [esp + 0x218]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401a16
test dx, dx
je 0x401a12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401a16
add eax, 4
add ecx, 4
test dx, dx
jne 0x4019f0
xor eax, eax
jmp 0x401a1b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401a7a
jmp 0x401a28
mov esi, dword [esp + 0xb0]
call dword [esp + 0x164]
test eax, eax
je 0x401b4c
push 0x20
lea ecx, [esp + 0x21c]
push ecx
push eax
call esi
lea eax, [esp + 0x218]
push 0x4ceeb8
push eax
call fcn.0049f3a1
add esp, 8
test eax, eax
je 0x401a7a
lea eax, [esp + 0x218]
push 0x4ceed4
push eax
call fcn.0049f3a1
add esp, 8
test eax, eax
jne 0x401b4c
cmp dword [0x4e4780], 0
je 0x401ade
cmp dword [0x4e8c34], 0
jne 0x401ade
cmp dword [0x4e8c4c], 0
jne 0x401a9c
mov eax, 1
jmp 0x401ae0
mov ecx, dword [0x4e4788]
cmp byte [ecx + 0x53], 0
jne 0x401ad8
cmp dword [ecx + 0x44], 0xffffffff
jle 0x401ad8
call edi
mov ecx, dword [0x4e4788]
sub eax, dword [ecx + 0x48]
cmp eax, dword [ecx + 0x44]
jb 0x401ad8
cmp dword [ecx + 0x40], 0
je 0x401ad8
cmp byte [ecx + 0x96], 0
mov byte [ecx + 0x53], 1
jne 0x401ad8
mov dword [ecx + 0x5c], 5
movzx eax, byte [ecx + 0x53]
jmp 0x401ae0
xor eax, eax
push 0
test eax, eax
mov esi, 0x311
push 0x1ff
mov eax, 0xffffffff
push 0
cmovne esi, eax
lea eax, [esp + 0x58]
push 0
push eax
call ebx
test eax, eax
lea eax, [esp + 0x4c]
jne 0x401b16
push 1
push esi
push 0x20f
jmp 0x401bc7
mov edi, dword [esp + 0x5c]
push 0
push esi
push 0x20f
push 0
push eax
call ebx
push 1
test eax, eax
jne 0x401b37
push 0x1ff
jmp 0x401bc1
mov eax, dword [esp + 0x60]
sub eax, edi
test eax, eax
lea eax, [esp + 0x50]
jle 0x401b0b
push 0x1ff
jmp 0x401bc5
mov edx, dword [0x4e4788]
cmp dword [0x4e4780], 0
je 0x401bb0
cmp dword [0x4e8c34], 0
jne 0x401bb0
cmp dword [0x4e8c4c], 0
jne 0x401b74
mov ecx, 1
jmp 0x401bb2
cmp byte [edx + 0x53], 0
jne 0x401baa
cmp dword [edx + 0x44], 0xffffffff
jle 0x401baa
call edi
mov edx, dword [0x4e4788]
sub eax, dword [edx + 0x48]
cmp eax, dword [edx + 0x44]
jb 0x401baa
cmp dword [edx + 0x40], 0
je 0x401baa
cmp byte [edx + 0x96], 0
mov byte [edx + 0x53], 1
jne 0x401baa
mov dword [edx + 0x5c], 5
movzx ecx, byte [edx + 0x53]
jmp 0x401bb2
xor ecx, ecx
xor edx, edx
mov eax, 0x311
test ecx, ecx
push 1
cmovne eax, edx
push eax
lea eax, [esp + 0x54]
push 0
push 0
push eax
call ebx
test eax, eax
jne 0x401c02
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x402095
cmp byte [esp + 0x17], al
jne 0x402095
push esi
call dword [esp + 0xb8]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x17], 1
jmp 0x401990
inc dword [esp + 0x80]
cmp dword [0x4e9eb8], 0
je 0x401c3f
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x1c4]
mov ecx, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x60]
push dword [esp + 0x60]
call fcn.00404270
add esp, 0x10
test al, al
jne 0x402144
cmp dword [0x4e8c64], 0
mov edi, dword [esp + 0x50]
je 0x401cc1
cmp edi, 0x100
jb 0x401c5c
cmp edi, 0x109
jbe 0x401c67
lea eax, [edi - 0x200]
cmp eax, 0xe
ja 0x401cc1
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x401cbb
nop
push 0xffffffffffffffe0
push esi
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea844]
jne 0x401c9b
push 0xffffffffffffffeb
push esi
call dword [esp + 0x78]
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x401da4
push 0xfffffffffffffff0
push esi
call dword [esp + 0x78]
test eax, 0x40000000
je 0x401cb7
push esi
call dword [esp + 0x16c]
mov esi, eax
test esi, esi
jne 0x401c70
mov edi, dword [esp + 0x50]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x54]
mov edx, dword [0x4e4788]
cmp edi, 0x400
ja 0x402309
je case.0x40231f.1025
cmp edi, 0x100
jbe 0x402282
cmp edi, 0x113
jne 0x402271
cmp dword [esp + 0x58], 0
jne case.0x40231f.1027
mov eax, dword [esp + 0x4c]
cmp eax, dword [0x4e8c5c]
jne case.0x40231f.1027
cmp dword [0x4e8fd8], 0
je 0x401d24
call fcn.004041a0
mov edx, dword [0x4e4788]
cmp dword [0x4ea558], 0
je 0x401d4d
call fcn.00403e70
mov edx, dword [esp + 0x3c]
test al, al
movzx ecx, dl
mov eax, 1
mov edx, dword [0x4e4788]
cmovne ecx, eax
mov byte [esp + 0x3c], cl
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0x20]
je 0x402260
cmp esi, 1
jl 0x402260
mov edi, dword [esp + 0x1c]
call edi
cmp byte [esp + 0x29], 0
jne 0x403cbf
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jle 0x403cbf
mov ah, byte [esp + 0x17]
mov edx, dword [0x4e4788]
mov al, byte [esp + 0x16]
mov byte [esp + 0x17], ah
jmp 0x4018e8
mov eax, dword [ebp + 0x40]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xc0], ebx
test eax, eax
je 0x401dce
lea ecx, [esp + 0x4c]
push ecx
push eax
push dword [ebp + 0x1c]
call dword [esp + 0xf4]
test eax, eax
jne 0x402140
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
cmp edi, 0x100
jne 0x401f9a
cmp byte [ebp + 0xbc], 0
je 0x401f4f
cmp esi, 0x22
je 0x401e0c
cmp esi, 0x21
je 0x401e0c
cmp esi, 9
je 0x401e0c
cmp esi, 0x25
je 0x401e0c
cmp esi, 0x27
jne 0x401f4f
push ebx
mov ecx, ebp
call fcn.00401590
mov ecx, eax
cmp ecx, 0x2af8
jne 0x401e29
xor ecx, ecx
mov dword [esp + 0x48], ecx
jmp 0x401f34
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x48], ebx
test ebx, ebx
je 0x401f34
mov al, byte [ebx + 0x30]
cmp al, 0xf
je 0x401f34
mov esi, dword [esp + 0x54]
xor edi, edi
cmp al, 0x13
jne 0x401e64
mov edi, ebx
cmp esi, 0x25
je 0x40215b
cmp esi, 0x27
je 0x40215b
cmp esi, 0x25
je 0x401f38
cmp esi, 0x27
je 0x401f38
push 0x11
call dword [esp + 0xbc]
test ax, ax
jns 0x401f34
mov esi, dword [esp + 0x54]
cmp esi, 9
jne 0x401eac
cmp byte [ebx + 0x30], 0xc
jne 0x401eac
push 0xfffffffffffffff0
push dword [ebx + 0x18]
call dword [esp + 0x78]
test al, 4
jne 0x401f34
mov esi, dword [esp + 0x54]
test edi, edi
jne 0x401f22
mov ch, byte [ebx + 0x32]
add ebp, 0x5c
cmp ch, 0xff
je 0x401eec
mov ebx, dword [ebp]
xor cl, cl
xor edx, edx
test ebx, ebx
je 0x401eec
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
nop dword [eax]
mov edi, dword [eax]
cmp byte [edi + 0x30], 0x13
jne 0x401ede
cmp cl, ch
je 0x401ee8
inc cl
inc edx
add eax, 4
cmp edx, ebx
jb 0x401ed0
jmp 0x401eec
test edi, edi
jne 0x401f1e
mov ebx, dword [ebp]
xor cl, cl
xor edx, edx
test ebx, ebx
je 0x401f38
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x2c]
nop
mov edi, dword [eax]
cmp byte [edi + 0x30], 0x13
jne 0x401f0e
test cl, cl
je 0x401f18
inc cl
inc edx
add eax, 4
cmp edx, ebx
jb 0x401f00
jmp 0x401f38
test edi, edi
je 0x401f38
jmp 0x401f22
mov ebp, dword [esp + 0x18]
push dword [edi + 0x18]
call dword [esp + 0x170]
test eax, eax
jne 0x40218c
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
cmp edi, 0x100
jne 0x401f9a
mov ebx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x18]
cmp esi, 0x1b
je 0x401f7a
cmp esi, 9
je 0x401f7a
cmp esi, 0x41
jne 0x401f9a
mov esi, dword [esp + 0xb8]
push 0x11
call esi
test ax, ax
jns 0x401f92
push 0xa5
call esi
test ax, ax
js 0x401f92
push ebx
mov ecx, ebp
call fcn.00401590
mov ecx, eax
cmp ecx, 0x2af8
jne 0x401fdc
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov eax, dword [0x4e9cf0]
test eax, eax
je 0x401fbd
cmp edi, 0x100
jne 0x401fbd
cmp esi, 0xd
je 0x40222f
cmp esi, 0x1b
je 0x402229
mov ebp, dword [esp + 0x18]
cmp dword [ebp + 0x5c], 0
jne 0x402052
cmp edi, 0x106
jne 0x402052
mov ebx, dword [esp + 0x24]
jmp 0x401cc5
mov eax, dword [ebp + 0x2c]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x48], ebx
test ebx, ebx
je 0x401f92
cmp byte [ebx + 0x30], 0xc
jne 0x401f92
mov esi, dword [esp + 0x54]
cmp esi, 0x1b
je 0x4021bc
mov al, byte [ebx + 0x31]
cmp esi, 0x41
je 0x402035
test al, al
jns 0x401f96
push 0xfffffffffffffff0
push dword [ebx + 0x18]
call dword [esp + 0x78]
test eax, 0x800
jne 0x401f92
push 0x4ceef0
push 1
push 0xc2
push dword [ebx + 0x18]
call dword [esp + 0x50]
jmp 0x402171
test al, 2
jne 0x401f96
push 0xffffffffffffffff
push 0
push 0xb1
push dword [ebx + 0x18]
call dword [esp + 0x50]
jmp 0x402171
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
push dword [ebp + 0x1c]
call dword [esp + 0xec]
mov edx, dword [0x4e4788]
mov byte [edx + 0x52], 0
test eax, eax
jne 0x40225c
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
jmp 0x401ccb
cmp dword [esp + 0x80], 0
jne 0x4020cd
cmp byte [esp + 0x29], 0
je 0x4020cd
test esi, esi
jle 0x4020b3
push 5
call dword [esp + 0xb8]
mov edx, dword [0x4e4788]
mov al, byte [esp + 0x16]
mov dword [esp + 0x80], 1
jmp 0x4018dc
mov edi, dword [esp + 0x1c]
call edi
cmp byte [esp + 0x29], 0
jne 0x403c92
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jle 0x403c92
push 5
call dword [esp + 0xb8]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edx, dword [0x4e4788]
mov dword [esp + 0x3c], eax
mov ah, byte [esp + 0x17]
mov byte [esp + 0x17], ah
mov eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x16]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x48], ecx
jmp 0x4018e0
mov ebx, dword [esp + 0x24]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
cmp esi, 0x27
push 0
sete al
push 0
movzx eax, al
push eax
push ebx
mov ecx, ebp
call fcn.00470e20
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov eax, dword [esp + 0x54]
cmp eax, 0x22
je 0x4021b2
cmp eax, 9
jne 0x4021a8
push 0x10
call dword [esp + 0xbc]
test ax, ax
jns 0x4021b2
push 1
push 1
xor al, al
push eax
push edi
jmp 0x40216a
push 1
push 1
mov al, 1
push eax
push edi
jmp 0x40216a
mov edx, dword [ebp + 0x54]
xor ecx, ecx
test edx, edx
jle 0x402171
mov eax, dword [ebp + 0x4c]
add eax, 0xa
nop dword [eax + eax]
cmp dword [eax - 6], 3
jne 0x4021db
cmp byte [eax], 0
je 0x4021fe
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x4021d0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov al, byte [esp + 0x16]
jmp 0x4018e0
push 0
push 0x2af80003
push 0x414
push dword [ebp + 0x1c]
call dword [esp + 0x104]
mov ah, byte [esp + 0x17]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x17], ah
jmp 0x402171
push 0
push 1
jmp 0x402233
push 0
push 0
push 0x1116
push eax
call dword [esp + 0x50]
mov edx, dword [0x4e4788]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov al, byte [esp + 0x16]
jmp 0x4018e0
cmp edi, 0x312
je case.0x40231f.1026
jmp case.0x40231f.1027
je 0x4022ca
cmp edi, 0x12
je 0x4022a7
cmp edi, 0x4b
jne case.0x40231f.1027
mov al, 1
mov dword [0x4e8c48], 0
mov byte [esp + 0x16], al
jmp 0x4018d8
push 4
mov ecx, 0x4e9ec0
call fcn.0043a0b0
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov eax, dword [esp + 0x4c]
cmp eax, dword [0x4e8c44]
jne case.0x40231f.1027
cmp esi, 0x1b
jne case.0x40231f.1027
push 0
push dword [0x4e8c5c]
call dword [esp + 0xf4]
mov edx, dword [0x4e4788]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
lea eax, [edi - 0x401]
cmp eax, 0x1d
ja case.0x40231f.1027
movzx eax, byte [eax + 0x403d30]
jmp dword [eax*4 + 0x403d24]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je case.0x40231f.1026
cmp ebx, dword [0x4e8c5c]
jne case.0x40231f.1027
lea eax, [edi - 0x401]
xor ebp, ebp
cmp eax, 0x1d
ja case.0x402352.1027
movzx eax, byte [eax + 0x403d6c]
jmp dword [eax*4 + 0x403d50]
mov ebx, dword [esp + 0x4c]
push 0xffffffffffffffe0
push ebx
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea844]
je 0x40237e
xor ebp, ebp
mov dword [esp + 0x18], ebp
jmp case.0x40231f.1027
push 0xffffffffffffffeb
push ebx
call dword [esp + 0x78]
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x403b3f
mov ecx, dword [esp + 0x54]
mov ebx, ecx
mov edi, dword [esp + 0x58]
movzx eax, cl
shr ebx, 8
shr ecx, 0x10
mov dword [esp + 0x30], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x8c], eax
cmp ecx, dword [edx + 0x5c]
jae 0x4023ce
mov eax, dword [edx + 0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x6c]
jmp 0x4023d0
xor ecx, ecx
xor bl, bl
mov dword [esp + 0x48], ecx
dec eax
mov byte [esp + 0x2b], 0
mov byte [esp + 0xa4], bl
lea esi, [edx + 0x4c]
cmp eax, 0x10
ja case.0x4023f2.6
movzx eax, byte [eax + 0x403da0]
jmp dword [eax*4 + 0x403d8c]
mov ebp, dword [edx + 0x34]
test ebp, ebp
je 0x40223d
push 0
push 0
push 0xffffffffffffffff
push ebp
call dword [esp + 0x180]
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
jne case.0x4023f2.2
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x18]
mov dword [ebp + 0x34], edi
jmp 0x402171
mov bl, 2
mov dword [esp + 0x8c], edi
mov byte [esp + 0xa4], bl
test ecx, ecx
je 0x40223d
lea esi, [ecx + 0x20]
mov byte [esp + 0x2b], 1
test esi, esi
je case.0x4023f2.5
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x4023f2.5
mov edi, dword [esp + 0x8c]
cmp byte [ecx + 0x10], 0
jne 0x40247c
mov eax, dword [ecx + 8]
mov edx, dword [esi]
lea eax, [eax + eax*2]
cmp dword [edx + eax*4 + 4], edi
jne 0x40247c
cmp byte [edx + eax*4 + 0xa], bl
je 0x402494
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x402462
mov edi, dword [esp + 0x50]
xor ebx, ebx
mov edx, dword [0x4e4788]
jmp 0x4028f1
test ebp, ebp
je 0x4024c0
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov ah, byte [esp + 0x17]
mov dword [ebp + 0x34], 0
mov byte [esp + 0x17], ah
jmp 0x402171
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov ah, byte [esp + 0x17]
mov byte [esp + 0x17], ah
jmp 0x402171
test esi, esi
je 0x40252a
push 0xffffffffffffffe0
push esi
call dword [esp + 0xc4]
movzx eax, ax
cmp ax, word [0x4ea844]
je 0x4024fb
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x40250a
push 0xffffffffffffffeb
push esi
call dword [esp + 0x78]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x40251e
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x40251e
cmp eax, dword [0x4e8c5c]
jne 0x403b3f
mov edi, dword [esp + 0x50]
mov edx, dword [0x4e4788]
jmp 0x402530
xor eax, eax
mov dword [esp + 0x18], eax
mov ecx, dword [0x4ea55c]
test ecx, ecx
je 0x40256a
mov eax, dword [esp + 0x58]
nop
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x94], esi
test esi, esi
je 0x402563
nop
cmp dword [esi + 0x14], eax
je 0x40258c
mov esi, dword [esi + 0x20]
mov dword [esp + 0x94], esi
test esi, esi
jne 0x402550
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x402540
mov ebp, dword [esp + 0x18]
xor eax, eax
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x94], eax
mov al, byte [esp + 0x16]
jmp 0x4018e0
cmp dword [esi + 8], ebp
je 0x402243
mov ebx, dword [esi + 0x18]
jmp 0x4028f1
cmp esi, dword [0x4e8fd4]
jae 0x402243
mov eax, dword [0x4e8fd0]
mov ebx, dword [eax + esi*4]
mov dword [esp + 0xa8], ebx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4025ef
mov edx, dword [ebx + 4]
call fcn.00413a70
mov dword [esp + 0x74], eax
test eax, eax
je 0x40223d
mov eax, dword [ebx + 0x10]
mov al, byte [eax]
cmp al, 2
je 0x4025ef
cmp al, 4
je 0x4025ef
cmp al, 5
jne 0x4025f3
mov eax, dword [0x4e8c54]
mov dword [esp + 0x74], eax
jmp 0x4025f3
mov dword [esp + 0x74], ebp
push dword [esp + 0x58]
mov ecx, ebx
call fcn.00416180
cmp dword [ebx + 0xc], ebp
jne 0x40223d
cmp byte [ebx + 0x2a], 0
je 0x402614
mov ax, word [esp + 0x58]
jmp 0x402616
xor eax, eax
mov edi, dword [esp + 0x50]
mov edx, dword [0x4e4788]
mov word [0x4ea570], ax
jmp 0x4028ee
cmp byte [0x4ea544], 0
jne 0x402243
xor ebx, ebx
jmp 0x4028f1
mov eax, esi
mov dword [esp + 0x2c], eax
test eax, eax
je 0x40272f
mov ebx, dword [0x4e8c50]
cmp ebx, eax
jne 0x40265e
mov ecx, 0x4e8c50
jmp 0x40269a
mov eax, ebx
test eax, eax
je 0x40272f
lea ecx, [eax + 4]
mov eax, dword [ecx]
cmp eax, esi
je 0x402692
test eax, eax
jne 0x402668
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
jmp 0x4018e0
test ecx, ecx
je 0x40272f
cmp dword [esi], 1
je 0x4026c2
mov eax, dword [esi + 4]
mov dword [ecx], eax
call fcn.00413840
mov esi, dword [esp + 0x2c]
mov edx, dword [0x4e4788]
mov dword [esi + 4], ebp
mov edi, dword [esp + 0x50]
mov ebx, dword [0x4e8c50]
jmp 0x4026c6
mov esi, dword [esp + 0x2c]
cmp dword [esi + 8], ebp
je 0x40272f
test ebx, ebx
jne 0x4026ef
cmp dword [0x4e8fe4], ebp
jne 0x4026ef
test byte [0x4e8fee], 1
jne 0x4026ef
call fcn.00413dc0
mov edi, dword [esp + 0x50]
mov edx, dword [0x4e4788]
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x368], ebp
je 0x402701
xor ebx, ebx
jmp 0x4028f5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
cmp dword [0x4e8c4c], ebp
jne 0x402729
mov ecx, 0x4e9ec0
call fcn.00439d70
test al, al
jne 0x402729
push 6
mov ecx, 0x4e9ec0
call fcn.0043a0b0
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
jmp 0x4018e0
mov eax, dword [0x4e8c50]
test eax, eax
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x16]
je 0x4018d4
mov ah, byte [esp + 0x17]
mov ebx, dword [esp + 0x2c]
nop dword [eax]
mov cl, byte [esp + 0x3c]
mov al, ah
cmp ebx, esi
je 0x40279e
mov ebx, dword [ebx + 4]
mov dword [esp + 0x2c], ebx
test ebx, ebx
jne 0x402770
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov esi, dword [ebx + 8]
cmp edi, 0x41c
jne 0x4027b1
mov esi, dword [esi + 0x36c]
jmp 0x4027c7
cmp edi, 0x41e
jne 0x4027c1
mov esi, dword [esi + 0x374]
jmp 0x4027c7
mov esi, dword [esi + 0x370]
mov byte [esp + 0x3c], cl
mov byte [esp + 0x17], al
test esi, esi
je 0x402243
xor ebx, ebx
mov byte [esp + 0x3c], cl
mov byte [esp + 0x17], al
jmp 0x4028f1
mov eax, esi
and eax, 0x7fff
cmp ax, word [0x4e8fec]
jae 0x402243
mov ecx, eax
shr esi, 0x10
mov eax, dword [0x4e8fdc]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x98], ebx
test si, si
je 0x402850
mov ebx, dword [ebx + 0x20]
add esi, 0xffff
mov dword [esp + 0x9c], ebx
test si, si
je 0x402845
nop dword [eax + eax]
mov ebx, dword [ebx + 0xc]
add esi, 0xffff
test si, si
jne 0x402830
mov dword [esp + 0x9c], ebx
test ebx, ebx
jne 0x402894
mov ebx, dword [esp + 0x98]
cmp edi, 0x400
jne 0x402868
mov eax, dword [esp + 0x58]
mov ecx, 0xffc3d44d
shr eax, 0x10
sub ecx, eax
jmp 0x40286a
xor ecx, ecx
push 0
push ecx
lea eax, [esp + 0x7c]
mov ecx, ebx
push eax
call fcn.004142b0
mov ebx, eax
mov dword [esp + 0x9c], ebx
test ebx, ebx
je 0x40223d
mov edi, dword [esp + 0x50]
mov edx, dword [0x4e4788]
mov al, byte [ebx + 0x1a]
cmp al, byte [ebx + 0x1b]
jb 0x4028ca
cmp byte [ebx + 0x1e], 0
je 0x4028a6
mov byte [ebx + 0x1f], 1
mov edi, dword [esp + 0x1c]
call edi
mov edx, dword [0x4e4788]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [ebx + 0x10], eax
mov ebx, dword [esp + 0x24]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov eax, dword [ebx + 8]
test eax, eax
je 0x4028ea
mov al, byte [eax]
cmp al, 2
je 0x4028ea
cmp al, 4
je 0x4028ea
cmp al, 5
jne 0x4028ee
mov eax, dword [0x4e8c54]
mov dword [esp + 0x74], eax
jmp 0x4028ee
mov dword [esp + 0x74], ebp
mov ebx, dword [ebx + 0x14]
mov esi, dword [esp + 0x2c]
mov eax, dword [0x4e8c4c]
cmp eax, dword [0x4e4784]
jl 0x402943
test ebp, ebp
je 0x402925
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x18]
mov edx, dword [0x4e4788]
mov dword [ebp + 0x34], 0
mov edi, dword [esp + 0x50]
jmp 0x402929
mov ebp, dword [esp + 0x18]
cmp edi, 0x41b
jne 0x402243
mov eax, dword [esi + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x402171
cmp ebx, dword [edx + 0x3c]
jge 0x402990
test ebp, ebp
je 0x40296b
push ebp
call dword [esp + 0x8c]
mov ebp, dword [esp + 0x18]
mov edx, dword [0x4e4788]
mov dword [ebp + 0x34], 0
mov edi, dword [esp + 0x50]
jmp 0x40296f
mov ebp, dword [esp + 0x18]
cmp edi, 0x41b
je 0x402935
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
lea eax, [edi - 0x402]
mov byte [esp + 0x3c], 1
cmp eax, 0x1c
ja case.0x4029a7.1027
movzx eax, byte [eax + 0x403dbc]
jmp dword [eax*4 + 0x403db4]
mov eax, dword [0x4ea50c]
mov dword [0x4ea510], eax
mov eax, dword [0x4ea568]
mov dword [0x4ea56c], eax
cmp edi, 0x401
jne 0x4029d6
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 4]
jmp 0x4029e0
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x1c]
mov edi, dword [esp + 0x1c]
mov dword [0x4ea50c], eax
call edi
mov edx, dword [0x4e4788]
mov dword [0x4ea568], eax
jmp 0x4029fc
mov edi, dword [esp + 0x1c]
inc dword [0x4e8c4c]
lea esi, [edx + 0xa0]
mov eax, dword [0x4e8c38]
mov dword [0x4e4788], esi
test eax, eax
je 0x402a1c
add eax, 0x58
jmp 0x402a1e
xor eax, eax
test esi, esi
je 0x402a27
lea ecx, [esi + 0x58]
jmp 0x402a29
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.0049dcb0
add esp, 0xc
mov byte [esi + 0x53], 1
mov ecx, 0x4e9ec0
mov dword [esi + 0x3c], ebx
push 0
call fcn.00439750
mov al, byte [esi + 0x96]
test al, al
jne 0x402a7d
mov byte [esi + 0x96], al
cmp dword [0x4ea5a8], 0
je 0x402a8f
cmp dword [0x4ea5a4], 0
jne 0x402a93
test al, al
je 0x402ac1
mov dword [esi + 0x5c], 0x10
mov byte [esi + 0x53], 0
test al, al
jne 0x402ac1
cmp dword [0x4ea5a8], 0
jge 0x402ab4
mov dword [esi + 0x44], 0xffffffff
jmp 0x402ac1
call edi
mov dword [esi + 0x48], eax
mov eax, dword [0x4ea5a8]
mov dword [esi + 0x44], eax
mov esi, dword [0x4e4788]
call edi
mov edi, dword [esp + 0x50]
mov dword [0x4ea5ac], eax
lea eax, [edi - 0x401]
cmp eax, 0x1d
ja case.0x402ae8.1027
movzx eax, byte [eax + 0x403dfc]
jmp dword [eax*4 + 0x403ddc]
mov edi, dword [esp + 0x34]
mov ecx, edi
mov ebx, dword [esp + 0x18]
add ecx, ecx
mov edx, dword [esp + 0x6c]
inc edi
cmp byte [esp + 0x2b], 0
mov eax, ebx
mov esi, dword [esp + 0x48]
cmovne eax, esi
mov dword [esp + 0x34], edi
mov dword [esp + ecx*8 + 0x100], eax
lea eax, [edx - 1]
mov dword [esp + ecx*8 + 0x108], 5
cmp eax, 0x10
ja case.0x402b37.6
movzx eax, byte [eax + 0x403e30]
jmp dword [eax*4 + 0x403e1c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
test esi, esi
je 0x402d84
mov ebx, dword [esp + 0x68]
test bl, bl
je 0x402ca5
movzx eax, byte [esi + 0x30]
add eax, 0xfffffff7
mov dword [esp + 0xcc], VariantCopy
cmp eax, 8
ja case.0x402b7d.12
jmp dword [eax*4 + 0x403e44]
mov ebx, dword [esp + 0x40]
push 0
push 0
push 0x19f
push dword [esi + 0x18]
call ebx
cmp eax, 0xffffffff
je 0x402bae
lea ecx, [esp + 0xcc]
push ecx
push eax
push 0x198
push dword [esi + 0x18]
call ebx
mov ebx, dword [esp + 0x68]
jmp case.0x402b7d.12
mov ebx, dword [esp + 0x40]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi + 0x18]
call ebx
cmp eax, 0xffffffff
je 0x402bae
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.0x402b7d.12
mov ebx, dword [esp + 0x40]
push 0
push 9
push 0x110a
push dword [esi + 0x18]
call ebx
test eax, eax
je 0x402bae
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.0x402b7d.12
lea eax, [esp + 0xcc]
push eax
push 0
push 0x419
push dword [esi + 0x18]
call dword [esp + 0x50]
cmp dword [esp + 0xcc], 0x80000000
lea ecx, [esp + 0xcc]
mov eax, dword [esi + 0x18]
jne 0x402c61
push ecx
push eax
call dword [esp + 0x17c]
jmp 0x402c6e
push 2
push ecx
push 0
push eax
call dword [esp + 0x188]
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 0x402c92
add eax, 1
sar eax, 1
mov edx, dword [esp + 0x64]
add ecx, 2
add eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x7c], eax
movzx eax, byte [esi + 0x30]
sub eax, 9
je 0x402d6e
sub eax, 1
je 0x402d54
sub eax, 1
jne 0x402d84
test bl, bl
je 0x402d08
push eax
push 9
push 0x110a
push dword [esi + 0x18]
call dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x18]
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 0x402dc0
mov ebx, dword [esp + 0x84]
lea eax, [esp + 0x1c8]
push eax
push dword [esi + 0x18]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], edx
call ebx
lea eax, [esp + 0x1c8]
push eax
push 0
push 0x1111
push dword [esi + 0x18]
call dword [esp + 0x50]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x1c]
call ebx
jmp 0x402cee
test bl, bl
je 0x402cdb
push 1
push 0xffffffffffffffff
push 0x100c
push dword [esi + 0x18]
call dword [esp + 0x50]
inc eax
jmp 0x402cd7
push 0
push 0
push 0x19f
push dword [esi + 0x18]
call dword [esp + 0x50]
inc eax
jmp 0x402cd7
mov ebp, dword [esp + 0x18]
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 0x402db2
mov edi, 5
jmp 0x402dc0
mov dword [ecx + 4], 0xffffffff
mov esi, 0x4cee98
xor edi, edi
mov ebx, dword [esp + 0x30]
mov dword [ecx + 8], edi
mov dword [edx], esi
mov edx, dword [esp + 0x34]
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 + 0x38], 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 + 0x48]
mov ebx, dword [esp + 0x6c]
jmp 0x40325e
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
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 + 0x78]
and eax, 0xffffffef
push eax
push 0xffffffffffffffec
push dword [ebx + 0x1c]
call dword [esp + 0xfc]
mov eax, edi
test esi, esi
je 0x402ec0
mov ecx, esi
mov edx, 5
jmp 0x402ed6
add eax, eax
mov ecx, 0x4cee98
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.004656e0
mov dword [esp + esi*8 + 0x108], 5
mov dword [esp + esi*8 + 0x100], eax
cmp byte [ebx + 0xc6], 0
je 0x402f25
push dword [0x4e9eac]
push 0x60
push dword [esp + 0x80]
call dword [esp + 0x9c]
jmp 0x402f29
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 + 0x34], edi
je 0x402f70
push dword [0x4e9eac]
push 0x60
push dword [esp + 0x84]
call dword [esp + 0x9c]
jmp 0x402f74
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 + 0x18]
mov dword [ebp + 0x34], 0
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x17c]
push eax
push ebp
push dword [esp + 0xac]
add ecx, 0x20
lea eax, [esp + 0x10c]
push dword [esp + 0x98]
cmp byte [esp + 0x3b], 0
lea esi, [ebp + 0x4c]
push edi
push eax
cmove ecx, esi
call fcn.0047a170
mov ebp, dword [ebp + 0x1c]
mov dword [esp + 0xc0], ebp
test ebp, ebp
je 0x4033af
mov eax, ebx
sub eax, 1
je 0x4032f7
sub eax, 1
jne 0x4033af
cmp dword [esp + 0x17c], eax
jne 0x4033d3
push eax
push ebp
call dword [esp + 0xf4]
mov ebp, dword [esp + 0x18]
push dword [ebp + 0x1c]
call dword [esp + 0x184]
mov ecx, eax
test ecx, ecx
setne al
cmp al, byte [ebp + 0xc9]
je 0x4032d2
mov byte [ebp + 0xc9], al
mov eax, dword [ebp]
push ebp
test ecx, ecx
je 0x4032cf
call dword [eax + 4]
jmp 0x4032d2
cmp edx, 4
jne 0x403246
mov eax, dword [esp + 0x68]
mov esi, edi
mov ebp, dword [esp + 0x18]
add esi, esi
mov ebx, dword [esp + 0x30]
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 0x4030ac
push dword [0x4e9eac]
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 + 0x34], edi
cmp byte [ebp + 0xc6], 0
je 0x4030ef
push dword [0x4e9eac]
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 0x402fa1
cmp byte [esi + 0x30], 0x17
jne 0x4031d3
cmp edx, 7
jne 0x4031d3
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x258], 0xd
lea eax, [ebx - 1]
mov dword [esp + 0x25c], eax
lea eax, [esp + 0x258]
push eax
push 0
push 0x703
push dword [esi + 0x18]
call dword [esp + 0x50]
test eax, eax
je 0x40315c
mov ax, word [esp + 0x268]
mov ecx, edi
add ecx, ecx
test ax, ax
je 0x403182
lea eax, [esp + 0x268]
mov dword [esp + ecx*8 + 0x104], 0xffffffff
mov dword [esp + ecx*8 + 0x100], eax
xor eax, eax
jmp 0x403198
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 + 0x2c8]
mov dword [esp + ecx*8 + 0x118], 0
mov dword [esp + ecx*8 + 0x110], eax
mov dword [esp + ecx*8 + 0x114], 0xffffffff
mov dword [esp + 0x34], edi
mov ebp, dword [esp + 0x18]
jmp 0x402fa1
mov ecx, dword [esp + 0x30]
mov eax, edi
add eax, eax
inc edi
mov dword [esp + 0x34], 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 0x403216
sub eax, 1
je 0x403210
sub eax, 2
je 0x403216
jmp 0x403246
cmp byte [esi + 0x30], 0xa
jne 0x403246
mov eax, dword [esp + 0x68]
mov ecx, edi
add ecx, ecx
movzx eax, al
inc edi
cdq
sub eax, 1
mov dword [esp + 0x34], 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 + 0x18]
push ebp
mov eax, dword [ebp]
call dword [eax + 4]
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
jne 0x402fac
test esi, esi
je 0x402fac
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.0047a170
cmp eax, 7
je 0x40329a
cmp dword [ebp + 0x1c], 0
jne 0x402fac
mov eax, dword [ebp]
push ebp
call dword [eax + 8]
mov edi, dword [esp + 0x1c]
call fcn.00404630
cmp dword [esp + 0xac], 0
jne 0x403af8
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
jmp 0x4018e0
call dword [eax + 8]
cmp dword [0x4e8c4c], 0
jne 0x40329a
mov ecx, 0x4e9ec0
call fcn.00439d70
test al, al
jne 0x40329a
push 4
mov ecx, 0x4e9ec0
call fcn.0043a0b0
jmp 0x40329a
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
jle 0x403354
mov eax, dword [esi]
mov bh, byte [esp + 0x17]
add eax, 0xa
nop dword [eax]
cmp dword [eax - 6], 1
mov esi, edi
mov ebp, dword [esp + 0x34]
mov bl, bh
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], ebp
mov ebp, edi
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0xc0]
jne 0x403338
cmp byte [eax], 0
je 0x40336f
mov edi, dword [esp + 0x34]
inc ecx
add eax, 0xc
cmp ecx, edx
jl 0x403310
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edi
mov byte [esp + 0x17], bh
mov ebp, dword [esp + 0x18]
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 0x40329a
push 0xffffffffffffffec
push ebp
call dword [esp + 0x78]
mov ebp, dword [esp + 0x18]
or eax, 0x10
push eax
push 0xffffffffffffffec
push dword [ebp + 0x1c]
call dword [esp + 0xfc]
mov dword [esp + 0x30], edi
mov edi, esi
mov dword [esp + 0x34], edi
mov byte [esp + 0x17], 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 0x40329a
mov ebp, dword [esp + 0x18]
cmp ebx, 1
jne 0x40329a
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 0x40329a
mov ebp, dword [esp + 0x18]
jmp 0x40329a
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x4033f7
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 0x40343e
cmp eax, edi
je 0x403441
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x403432
or ecx, 0xffffffff
lea eax, [ecx + 1]
mov dword [esp + 0x1a8], 1
mov ecx, dword [0x4e9e3c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1b8], 5
mov dword [esp + 0x1b0], esi
cmp ecx, dword [0x4e9e40]
jne 0x40348c
call fcn.004071ee
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e38]
jb 0x4034a1
mov eax, dword [0x4ea504]
mov dword [ecx], eax
mov ecx, dword [0x4e9e3c]
add ecx, 0xc
lea eax, [esp + 0x190]
mov dword [0x4e9e3c], ecx
push 0
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cee9c
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.00473ed0
mov eax, dword [0x4e9e3c]
add esp, 0x18
sub eax, 0xc
mov dword [0x4e9e3c], eax
cmp eax, dword [0x4e9e38]
jb 0x4034fd
mov eax, dword [eax]
mov dword [0x4e9e4c], eax
mov dword [0x4ea504], eax
mov eax, dword [esi]
push esi
call dword [eax + 8]
test ebp, ebp
je 0x4032a1
jmp 0x40329a
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0x74]
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 0x40357b
mov byte [0x4ea572], 0
mov ecx, ebx
mov eax, dword [ebx + 4]
inc byte [ebx + 0x24]
push 0
mov dword [esp + 0x1dc], eax
lea eax, [esp + 0x1dc]
push 1
push eax
push dword [0x4ea50c]
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1ec], 0xffffffff
call fcn.00479fa0
dec byte [ebx + 0x24]
mov ebp, dword [esp + 0x18]
jmp 0x4032a1
call dword [esp + 0x184]
test eax, eax
je 0x4035b8
mov ebx, dword [esp + 0x188]
push 0xd
call ebx
test eax, eax
jne 0x4035af
push 0xf
call ebx
test eax, eax
jne 0x4035af
mov eax, 2
xor ecx, ecx
jmp 0x4035d2
mov eax, 1
xor ecx, ecx
jmp 0x4035d2
xorps xmm0, xmm0
movlpd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1ec], ecx
mov ecx, dword [0x4e9e3c]
mov dword [esp + 0x1f0], 1
mov dword [esp + 0x1e8], eax
mov byte [0x4ea544], 1
cmp ecx, dword [0x4e9e40]
jne 0x40360b
call fcn.004071ee
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e38]
jb 0x403620
mov eax, dword [0x4ea504]
mov dword [ecx], eax
mov ecx, dword [0x4e9e3c]
add ecx, 0xc
lea eax, [esp + 0x1e8]
push 0
mov dword [0x4e9e3c], ecx
push 1
push 1
mov dword [ecx], 0
mov dword [ecx + 4], 0x4ceef4
mov dword [ecx + 8], 0
mov ecx, 0x4ea524
push eax
call fcn.0047a040
mov eax, dword [0x4e9e3c]
sub eax, 0xc
mov dword [0x4e9e3c], eax
cmp eax, dword [0x4e9e38]
jb 0x403676
mov eax, dword [eax]
mov dword [0x4e9e4c], eax
mov dword [0x4ea504], eax
mov ebp, dword [esp + 0x18]
mov byte [0x4ea544], 0
jmp 0x4032a1
mov ebx, dword [esp + 0x2c]
mov ecx, dword [0x4e9e3c]
mov dword [esp + 0x210], 5
mov esi, dword [ebx + 8]
mov dword [esp + 0x208], esi
mov esi, dword [esi + 0x368]
cmp ecx, dword [0x4e9e40]
jne 0x4036be
call fcn.004071ee
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e38]
jb 0x4036d3
mov eax, dword [0x4ea504]
mov dword [ecx], eax
mov ecx, dword [0x4e9e3c]
add ecx, 0xc
lea eax, [esp + 0x208]
push 0
push ecx
push 0
mov dword [0x4e9e3c], ecx
mov edx, esi
push 1
push eax
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cef18
mov dword [ecx + 8], 0
mov ecx, esi
push 0
call fcn.00473ed0
mov eax, dword [0x4e9e3c]
add esp, 0x18
sub eax, 0xc
mov dword [0x4e9e3c], eax
cmp eax, dword [0x4e9e38]
jb 0x40372e
mov eax, dword [eax]
mov dword [0x4e9e4c], eax
mov dword [0x4ea504], eax
mov eax, dword [ebx + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ebp, dword [esp + 0x18]
jmp 0x4032a1
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x2c]
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 0x4037aa
mov esi, dword [esi + 0x36c]
jmp 0x4037b0
mov esi, dword [esi + 0x374]
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e40]
jne 0x4037c9
call fcn.004071ee
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e38]
jb 0x4037de
mov eax, dword [0x4ea504]
mov dword [ecx], eax
mov ecx, dword [0x4e9e3c]
add ecx, 0xc
lea eax, [esp + 0x190]
push 0
push ecx
push 0
mov dword [0x4e9e3c], ecx
mov edx, esi
push 3
push eax
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cef18
mov dword [ecx + 8], 0
mov ecx, esi
push 0
call fcn.00473ed0
mov eax, dword [0x4e9e3c]
add esp, 0x18
mov ebp, dword [esp + 0x18]
sub eax, 0xc
mov edi, dword [esp + 0x1c]
mov dword [0x4e9e3c], eax
cmp eax, dword [0x4e9e38]
jb 0x4032a5
mov eax, dword [eax]
mov dword [0x4e9e4c], eax
mov dword [0x4ea504], eax
jmp 0x4032a5
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [0x4e9e3c]
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 [0x4e9e40]
jne 0x4038c3
call fcn.004071ee
mov ecx, dword [0x4e9e3c]
cmp ecx, dword [0x4e9e38]
jb 0x4038d8
mov eax, dword [0x4ea504]
mov dword [ecx], eax
mov ecx, dword [0x4e9e3c]
add ecx, 0xc
lea eax, [esp + 0x190]
push 0
push ecx
push 0
mov dword [0x4e9e3c], ecx
mov edx, esi
push 2
push eax
mov dword [ecx], 0
mov dword [ecx + 4], 0x4cef18
mov dword [ecx + 8], 0
mov ecx, esi
push 0
call fcn.00473ed0
mov eax, dword [0x4e9e3c]
add esp, 0x18
mov ebp, dword [esp + 0x18]
sub eax, 0xc
mov edi, dword [esp + 0x1c]
mov dword [0x4e9e3c], eax
cmp eax, dword [0x4e9e38]
jb 0x4032a5
mov eax, dword [eax]
mov dword [0x4e9e4c], eax
mov dword [0x4ea504], eax
jmp 0x4032a5
mov ebp, dword [esp + 0x98]
mov al, byte [ebp + 0x10]
add al, 0x64
cmp al, 3
ja 0x40395c
movzx eax, word [esp + 0x58]
mov dword [esi + 0x24], eax
cmp byte [0x4ea85c], 0
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x74]
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 0x40357b
cmp dword [0x4e8ff4], 0
mov esi, dword [esp + 0x1c]
jne 0x40399a
call esi
mov dword [0x4e8ff4], eax
inc dword [0x4ea858]
call esi
mov edi, dword [0x4ea858]
mov ecx, eax
sub ecx, dword [0x4e8ff4]
mov edx, dword [0x4e4cf4]
mov dword [0x4e8ff0], eax
cmp edi, dword [0x4e4cf8]
jbe 0x4039ce
cmp ecx, edx
jae 0x4039ce
mov esi, 1
jmp 0x4039d0
xor esi, esi
test esi, esi
je 0x403a4a
push ecx
push edi
push 0x4d3e48
lea eax, [esp + 0x264]
push 0x800
push eax
call fcn.00481920
add esp, 0x14
call fcn.00413a30
push 0
push 0
xorps xmm3, xmm3
mov byte [0x4ea85c], 1
mov edx, 4
mov dword [0x4e4780], 0
lea ecx, [esp + 0x260]
call fcn.00486d90
add esp, 8
cmp eax, 7
jne 0x403a32
push 4
mov ecx, 0x4e9ec0
call fcn.0043a0b0
mov eax, dword [0x4e8ff0]
mov dword [0x4e4780], 1
mov byte [0x4ea85c], 0
jmp 0x403a4e
cmp ecx, edx
jbe 0x403a65
mov dword [0x4ea858], 0
mov dword [0x4e8ff4], eax
test esi, esi
jne 0x40357b
mov al, byte [ebp + 0xf]
mov ecx, ebx
mov byte [0x4ea572], al
inc byte [ebx + 0x1a]
mov eax, dword [ebp + 0x1c]
push 0
mov dword [esp + 0x1fc], eax
lea eax, [esp + 0x1fc]
push 1
push eax
push dword [0x4ea50c]
mov dword [esp + 0x210], 0
mov dword [esp + 0x20c], 0xffffffff
call fcn.00479fa0
dec byte [ebx + 0x1a]
test eax, eax
jne 0x403abc
mov ebp, dword [esp + 0x18]
mov byte [ebx + 0x1f], al
jmp 0x4032a1
cmp byte [ebx + 0x1f], 0
mov edi, dword [esp + 0x1c]
je 0x403aef
mov byte [ebx + 0x1f], 0
call edi
sub eax, dword [ebx + 0x10]
cmp eax, 0x3e8
ja 0x403aef
movzx eax, word [ebp + 4]
push 0
push eax
push 0x312
push dword [0x4e8c5c]
call dword [esp + 0x104]
mov ebp, dword [esp + 0x18]
jmp 0x4032a5
call edi
cmp byte [esp + 0x29], 0
mov esi, dword [esp + 0x20]
jne 0x403b19
mov ecx, dword [esp + 0xa0]
sub ecx, eax
add ecx, esi
cmp ecx, 5
jg 0x403c3a
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov dword [0x4ea5ac], eax
mov al, 1
mov ah, byte [esp + 0x17]
mov byte [esp + 0x16], al
mov byte [esp + 0x29], al
mov byte [esp + 0x17], ah
jmp 0x4018e0
mov ebp, dword [esp + 0x18]
call dword [esp + 0xdc]
mov esi, eax
test esi, esi
je 0x403c0c
push 0
push esi
call dword [esp + 0xe8]
cmp eax, dword [0x4e9ea8]
jne 0x403c0c
push 0x20
lea eax, [esp + 0x21c]
push eax
mov eax, dword [esp + 0xb8]
push esi
call eax
mov ecx, 0x4ceea8
lea eax, [esp + 0x218]
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403bb6
test dx, dx
je 0x403bb2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403bb6
add eax, 4
add ecx, 4
test dx, dx
jne 0x403b90
xor eax, eax
jmp 0x403bbb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403c0c
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
push esi
call dword [esp + 0xec]
test eax, eax
je 0x403c00
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
mov byte [edx + 0x52], 0
jmp 0x4018e0
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 0
jmp 0x403c12
mov ecx, dword [0x4e4788]
mov eax, dword [0x4e8c40]
test eax, eax
je 0x403c53
lea ecx, [esp + 0x4c]
push ecx
push eax
push dword [0x4e8c5c]
call dword [esp + 0xf4]
test eax, eax
je 0x403c4d
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov al, byte [esp + 0x16]
jmp 0x4018e0
mov ecx, dword [0x4e4788]
mov byte [ecx + 0x52], 1
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
call dword [esp + 0x190]
lea eax, [esp + 0x4c]
push eax
call dword [esp + 0x48]
mov edx, dword [0x4e4788]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov al, byte [esp + 0x16]
mov byte [edx + 0x52], 0
jmp 0x4018e0
cmp byte [esp + 0x3b], 0
mov dword [0x4ea5ac], eax
je 0x403ca5
mov byte [0x4e8c2f], 0
cmp byte [esp + 0x2a], 0
je 0x403d16
mov eax, dword [0x4e8c60]
dec eax
mov dword [0x4e8c60], eax
test esi, esi
jle 0x403d16
test eax, eax
jmp 0x403ce0
cmp byte [esp + 0x3b], 0
mov dword [0x4ea5ac], eax
je 0x403cd2
mov byte [0x4e8c2f], 0
cmp byte [esp + 0x2a], 0
je 0x403d16
sub dword [0x4e8c60], 1
jne 0x403d16
cmp dword [0x4ea558], 0
jne 0x403d16
cmp dword [0x4e8fd8], 0
jne 0x403d16
cmp byte [0x4e8c2e], 0
je 0x403d16
push 9
push dword [0x4e8c5c]
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x403d16
mov byte [0x4e8c2e], 0
mov al, byte [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret