Function at 0x40d220
Capabilities:
Check for foreground window switch
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x465503
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47a770]
xor eax, esp
push eax
lea eax, [esp + 0xfc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x110]
xor eax, eax
mov dword [esp + 0x104], eax
push eax
mov dword [esp + 0x94], eax
call fcn.0044bf56
add esp, 4
push eax
call fcn.0044bf22
add esp, 4
call fcn.0044bf34
cdq
mov ecx, 0x3c
idiv ecx
mov dword [esp + 0x94], edx
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x114]
mov esi, dword [esp + 0x10c]
push edx
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x1c], esp
mov dword [esp + 0x20], esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x40d2cf
cmp eax, dword [esi]
jne 0x40d2cf
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40d303
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x40e74e
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0044b46f
add esp, 0x10
mov edx, dword [esp + 0x20]
add edi, 0x10
mov ecx, ebp
mov dword [edx], edi
call fcn.00408690
mov esi, dword [esp + 0x114]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
add esp, 4
mov dword [esp + 0x18], esp
mov dword [esp + 0x1c], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x40d34c
cmp eax, dword [esi]
jne 0x40d34c
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x40d380
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x40e74e
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0044b46f
add esp, 0x10
mov edx, dword [esp + 0x1c]
add edi, 0x10
mov dword [edx], edi
mov edi, ebp
call fcn.00407850
mov eax, dword [0x47baf4]
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
add esp, 4
lea ecx, [esp + 0x88]
push ecx
push ebp
mov dword [esp + 0x20], eax
call esi
mov edx, dword [esp + 0x88]
push edx
push 0
push 0x1fffff
mov dword [esp + 0x40], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edx, dword [esp + 0x18]
mov edi, eax
lea eax, [esp + 0xd8]
push eax
push 4
lea ecx, [esp + 0x3c]
push ecx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x47baf8]
lea ecx, [esp + 0x84]
push ecx
push ebp
mov dword [esp + 0x20], eax
call esi
mov edx, dword [esp + 0x84]
push edx
push 0
push 0x1fffff
mov dword [esp + 0x44], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edx, dword [esp + 0x18]
mov edi, eax
lea eax, [esp + 0xdc]
push eax
push 4
lea ecx, [esp + 0x40]
push ecx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x34], 0
jne case.0x40d666.1002
cmp dword [esp + 0x38], 0x457
jne case.0x40d666.1002
mov eax, dword [0x480c28]
push eax
call ebx
push 0
call fcn.0044bf56
add esp, 4
push eax
call fcn.0044bf22
add esp, 4
call fcn.0044bf34
mov ecx, dword [0x480c2c]
cdq
idiv ecx
mov eax, ecx
mov edi, edx
cdq
sub eax, edx
sar eax, 1
sub eax, edi
mov dword [esp + 0x20], eax
call fcn.0044bf34
mov ecx, dword [0x480c2c]
cdq
idiv ecx
mov eax, ecx
mov edi, edx
cdq
sub eax, edx
sar eax, 1
sub eax, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
push eax
call fcn.00429de0
mov ecx, dword [0x47bb0c]
add esp, 4
lea edx, [esp + 0x7c]
push edx
push ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call esi
mov eax, dword [esp + 0x7c]
push eax
push 0
push 0x1fffff
mov dword [esp + 0x4c], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [esp + 0xf0]
push ecx
push 4
mov edi, eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x48]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x80]
push edx
push ebp
mov dword [esp + 0x20], ecx
call esi
mov eax, dword [esp + 0x80]
push eax
push 0
push 0x1fffff
mov dword [esp + 0x5c], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [esp + 0xe8]
push ecx
mov edi, eax
mov eax, dword [esp + 0x1c]
push 4
lea edx, [esp + 0x58]
push edx
add eax, 0x1ec
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d596
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov esi, ebp
lea edi, [esp + 0x2c]
call fcn.004045c0
mov edi, dword [esp + 0x2c]
add esp, 4
cmp dword [esp + 0x48], edi
jne 0x40d64b
mov esi, dword [esp + 0x20]
add esi, 0x13e
cmp dword [esp + 0x18], 0x456
jne 0x40d610
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10c]
add ecx, 0x133
push ecx
push ecx
mov dword [esp + 0x1c], esp
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
push eax
call fcn.00429de0
mov edx, dword [esp + 0x20]
add eax, 0x10
mov dword [edx], eax
jmp 0x40d63c
mov eax, dword [esp + 0x1c]
add eax, 0xe3
push eax
mov eax, dword [esp + 0x110]
push ecx
mov dword [esp + 0x1c], esp
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
push eax
call fcn.00429de0
mov ecx, dword [esp + 0x20]
add eax, 0x10
mov dword [ecx], eax
add esp, 4
mov ecx, esi
mov edx, ebp
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x18]
add eax, 0xfffffc17
cmp eax, 0xac
ja case.0x40d666.1002
movzx edx, byte [eax + 0x40e770]
jmp dword [edx*4 + 0x40e754]
mov eax, dword [0x480c2c]
cdq
sub eax, edx
sar eax, 1
cmp dword [esp + 0x94], eax
jle 0x40d8dc
cmp edi, 9
jle 0x40d737
cmp dword [esp + 0x2c], 0xa
jle 0x40d737
xor esi, esi
mov dword [esp + 0x14], esi
call fcn.0044bf34
cmp edi, 0xf
jge 0x40d6b6
mov eax, 0xf
sub eax, edi
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xd
jge 0x40d6cf
mov eax, 0xc
sub eax, ecx
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
jmp 0x40d6d3
mov eax, dword [esp + 0x14]
cmp edi, 0x21
jle 0x40d6e6
mov esi, 0x21
sub esi, edi
lea esi, [esi + esi*4]
add esi, esi
add esi, esi
lea edx, [edi + edi*4]
add edx, edx
add edx, edx
lea ecx, [ecx + ecx*4 + 0x23]
mov edi, 0x34d
sub edi, edx
push 0x5a
push ecx
lea edx, [eax + ecx*4]
sub edi, esi
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], esp
call fcn.00403870
mov esi, ebp
call fcn.00405540
push 0x32
call ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add ecx, eax
push ecx
add edi, edx
jmp 0x40d990
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
add eax, 0x1ae
push eax
mov eax, dword [esp + 0x110]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov edi, esp
push eax
add esi, 0xd6
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, ebp
mov dword [edi], eax
call fcn.004062f0
add esp, 8
xor edi, edi
push 0xc8
call ebx
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x3e9
je 0x40d7b5
inc edi
cmp edi, 7
jle 0x40d778
mov dword [esp + 0x18], 0
lea ecx, [ecx]
push 0xc8
call ebx
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
push eax
call fcn.00429de0
mov ecx, dword [0x47bb0c]
add esp, 4
lea edx, [esp + 0x9c]
push edx
mov esi, eax
push ebp
add esi, 0x10
mov dword [esp + 0x1c], ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [esp + 0x9c]
push eax
push 0
push 0x1fffff
mov dword [esp + 0x48], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [esp + 0xe4]
push ecx
push 4
mov edi, eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x44]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x8c]
push edx
push ebp
mov dword [esp + 0x1c], ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [esp + 0x8c]
push eax
push 0
push 0x1fffff
mov dword [esp + 0x3c], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [esp + 0xec]
push ecx
mov edi, eax
mov eax, dword [esp + 0x18]
push 4
lea edx, [esp + 0x38]
push edx
add eax, 0x1ec
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x30]
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d8b6
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
cmp edi, 0x3e9
je 0x40d8d0
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 7
mov dword [esp + 0x18], eax
jle 0x40d7c0
push 0xc8
call ebx
jmp case.0x40d666.1002
cmp edi, 0xd
jle 0x40d9bb
cmp dword [esp + 0x2c], 0xb
jge 0x40d9bb
xor esi, esi
mov dword [esp + 0x18], esi
call fcn.0044bf34
cmp edi, 0xf
jge 0x40d90e
mov eax, 0xf
sub eax, edi
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xd
jge 0x40d929
mov eax, 0xc
sub eax, ecx
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
mov dword [esp + 0x18], eax
cmp edi, 0x21
jle 0x40d93c
mov eax, 0x21
sub eax, edi
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
mov edx, dword [esp + 0x18]
lea eax, [edi + edi*4]
add eax, eax
add eax, eax
mov edi, 0x20d
sub edi, eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + eax*4 - 0xa]
lea eax, [edx + ecx*4]
push 0x5a
push ecx
mov dword [esp + 0x20], eax
sub edi, esi
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov esi, ebp
call fcn.00405540
push 0x32
call ebx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
add edx, ecx
push edx
add edi, eax
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x4b0
call ebx
jmp case.0x40d666.1002
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10c]
add ecx, 0xe6
push ecx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00429de0
mov ecx, dword [esp + 0x2c]
add eax, 0x10
add esp, 4
mov edx, ebp
mov dword [esi], eax
call fcn.004062f0
add esp, 8
xor edi, edi
push 0xc8
call ebx
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x3e9
je 0x40da32
inc edi
cmp edi, 7
jle 0x40d9f5
mov dword [esp + 0x18], 0
lea ebx, [ebx]
push 0xc8
call ebx
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
push eax
call fcn.00429de0
mov edx, dword [0x47bb0c]
mov esi, eax
add esp, 4
lea eax, [esp + 0x98]
push eax
push ebp
add esi, 0x10
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ecx, dword [esp + 0x98]
push ecx
push 0
push 0x1fffff
mov dword [esp + 0x50], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0xf4]
push edx
mov edi, eax
push 4
lea eax, [esp + 0x4c]
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x78]
push eax
push ebp
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ecx, dword [esp + 0x78]
push ecx
push 0
push 0x1fffff
mov dword [esp + 0x60], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0xe0]
push edx
mov edi, eax
push 4
lea eax, [esp + 0x5c]
push eax
add ecx, 0x1ec
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esp + 0x54]
add esi, 0xfffffff0
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x40db31
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
cmp edi, 0x3e9
je 0x40db4b
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 7
mov dword [esp + 0x18], eax
jle 0x40da40
push 0xc8
call ebx
jmp case.0x40d666.1002
lea ecx, [edi - 0x111]
cmp ecx, 0xf
ja 0x40de3d
mov edx, dword [esp + 0x2c]
add edx, 0xffffffdd
cmp edx, 0x14
ja 0x40de3d
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea eax, [esp + 0xa4]
push eax
mov eax, ebp
call fcn.00405d80
add esp, 4
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dcc6
cmp dword [esp + 0xa0], 0x32
jne 0x40dcc6
cmp dword [esp + 0xa4], 0xe6
jne 0x40dcc6
push 0x47e5d8
mov byte [esp + 0x2b], al
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
cmp eax, ebp
je 0x40dc11
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
nop
push ebp
call edi
call fcn.00408120
push eax
call ebx
call esi
cmp eax, ebp
jne 0x40dc00
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.00406270
add esp, 4
cmp al, 1
je 0x40dc66
push 0x113
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov edi, 0x56
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x578
call ebx
mov bl, 1
jmp 0x40dc6a
mov bl, byte [esp + 0x27]
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp bl, 1
jne 0x40de30
xor edi, edi
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x456
je 0x40de30
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0xa
jle 0x40dc80
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40d28a
push 0x514
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x7a
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov esi, ebp
call fcn.00405540
mov ecx, dword [esp + 0x114]
mov ebx, dword [ecx + 0x64]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x46d09c
call fcn.0042a2b0
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov byte [esp + 0x10c], 1
mov dword [esp + 0x20], esp
call fcn.00403870
lea edx, [esp + 0xc0]
push edx
mov esi, ebp
mov byte [esp + 0x110], 0
call fcn.00408500
mov eax, dword [esp + 0xc4]
add esp, 0xc
test eax, eax
je 0x40de2c
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x40de2c
push eax
push ecx
lea eax, [esp + 0x114]
mov esi, esp
lea edi, [ecx + 1]
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov esi, ebp
call fcn.00407980
add esp, 8
xor ebx, ebx
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea eax, [esp + 0xac]
push eax
mov eax, ebp
call fcn.00405d80
add esp, 4
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dde7
cmp dword [esp + 0xa8], 0x32
jne 0x40dde7
cmp dword [esp + 0xac], 0xe6
je 0x40de30
cmp ebx, 8
jne 0x40de15
push 0x115
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov edi, 0x8e
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
inc ebx
cmp ebx, 8
jle 0x40dd80
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40d28a
mov dword [esp + 0x48], edi
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40d28a
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
lea ecx, [esp + 0xb8]
add esp, 4
mov dword [esi], eax
push ecx
mov eax, ebp
call fcn.004060f0
mov eax, dword [esp + 0x114]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dfcb
cmp dword [esp + 0xb0], 0x295
jne 0x40dfcb
cmp dword [esp + 0xb4], 0x1a3
jne 0x40dfcb
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea edx, [esp + 0x5c]
push edx
mov eax, ebp
call fcn.00405d80
add esp, 8
cmp dword [esp + 0x58], 0
jne 0x40def1
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x40df27
push 0
push 0
push ecx
lea eax, [esp + 0x118]
mov esi, esp
mov dword [esp + 0x20], esp
call fcn.00403870
mov esi, ebp
call fcn.00405f00
add esp, 0xc
push 0x12c
call ebx
xor eax, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], eax
add eax, 0x178
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fsub qword [0x46f290]
call fcn.00450dd0
mov edi, eax
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov esi, 5
sub esi, edx
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov eax, 5
sub eax, edx
add eax, edi
lea edi, [esi + 0x147]
push eax
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x12c
call ebx
push 0x18
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov edi, ebp
call fcn.004054b0
add esp, 8
push 0x12c
call ebx
mov dword [esp + 0x48], 0
jmp case.0x40d666.1002
mov eax, dword [esp + 0x10c]
push 0x18
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov edi, ebp
mov dword [esi], eax
call fcn.004054b0
add esp, 8
jmp case.0x40d666.1002
lea edx, [edi - 3]
cmp edx, 0x16
ja 0x40e116
mov eax, dword [esp + 0x2c]
add eax, 0xffffffba
mov dword [esp + 0x14], eax
cmp eax, 0x10
ja 0x40e116
xor esi, esi
mov dword [esp + 0x18], esi
call fcn.0044bf34
cmp edi, 0xf
jge 0x40e03d
mov eax, 0xf
sub eax, edi
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
cmp eax, 0xd
jge 0x40e054
mov esi, 0xc
sub esi, eax
lea esi, [esi + esi*4]
add esi, esi
add esi, esi
lea eax, [edi + edi*4]
add eax, eax
add eax, eax
mov ecx, eax
mov eax, 0x159
sub eax, ecx
mov ecx, dword [esp + 0x14]
sub eax, dword [esp + 0x18]
lea edx, [ecx + ecx*4]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x1c]
add ecx, edx
push ecx
mov ecx, dword [esp + 0x24]
push ecx
lea edi, [eax + ecx]
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x578
call ebx
xor edi, edi
push 0x12c
call ebx
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x495
je 0x40e10a
cmp edi, 0xf
jne 0x40e0ff
push 0xf0
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, 0x205
mov edx, ebp
call fcn.004062f0
add esp, 8
inc edi
cmp edi, 0xf
jle 0x40e0a8
jmp case.0x40d666.1002
push 0x3e8
call ebx
jmp case.0x40d666.1002
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
lea edx, [esp + 0xc8]
add esp, 4
mov dword [esi], eax
push edx
mov eax, ebp
call fcn.004060f0
mov eax, dword [esp + 0x114]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dfcb
cmp dword [esp + 0xc0], 0x195
jne 0x40dfcb
cmp dword [esp + 0xc4], 0x1a3
jne 0x40dfcb
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea eax, [esp + 0x64]
push eax
mov eax, ebp
call fcn.00405d80
add esp, 8
cmp dword [esp + 0x60], 0
jne 0x40e1ca
mov eax, dword [esp + 0x64]
test eax, eax
je 0x40e200
push 0
push 0
push ecx
lea eax, [esp + 0x118]
mov esi, esp
mov dword [esp + 0x20], esp
call fcn.00403870
mov esi, ebp
call fcn.00405f00
add esp, 0xc
push 0x12c
call ebx
xor eax, eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], eax
add eax, 0x178
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fsub qword [0x46f288]
call fcn.00450dd0
mov edi, eax
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov esi, 5
sub esi, edx
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov eax, 5
sub eax, edx
add eax, edi
lea edi, [esi + 0xb5]
jmp 0x40df71
push 0x4b0
call ebx
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x10c]
push edx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, ebp
mov dword [esi], eax
call fcn.00409040
add edi, 0xfffffd93
add esp, 8
cmp edi, 0x13
ja 0x40e350
mov eax, dword [esp + 0x2c]
add eax, 0xffffffb9
cmp eax, 0xf
ja 0x40e350
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
add ecx, 0x76
push ecx
push ecx
lea eax, [esp + 0x114]
mov esi, esp
add edi, 0x240
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
xor edi, edi
mov dword [esp + 0x18], edi
lea ecx, [ecx]
push 0x12c
call ebx
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x47a
je 0x40e10a
cmp edi, 0xf
jne 0x40e341
push 0xf0
push ecx
lea eax, [esp + 0x114]
mov esi, esp
mov edi, 0x205
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
mov edi, dword [esp + 0x20]
add esp, 8
inc edi
cmp edi, 0xf
mov dword [esp + 0x18], edi
jle 0x40e2e0
jmp case.0x40d666.1002
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
lea edx, [esp + 0xd8]
add esp, 4
mov dword [esi], eax
push edx
mov eax, ebp
call fcn.004060f0
mov eax, dword [esp + 0x114]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dfcb
cmp dword [esp + 0xd0], 0x2bb
jne 0x40dfcb
cmp dword [esp + 0xd4], 0xfb
jne 0x40dfcb
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea eax, [esp + 0x74]
push eax
mov eax, ebp
call fcn.00405d80
add esp, 8
cmp dword [esp + 0x70], 0
jne 0x40e404
mov eax, dword [esp + 0x74]
test eax, eax
je 0x40e43a
push 0
push 0
push ecx
lea eax, [esp + 0x118]
mov esi, esp
mov dword [esp + 0x20], esp
call fcn.00403870
mov esi, ebp
call fcn.00405f00
add esp, 0xc
push 0x12c
call ebx
xor eax, eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
add eax, 0x127
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fsub qword [0x46f318]
call fcn.00450dd0
mov edi, eax
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov esi, 5
sub esi, edx
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov eax, 5
sub eax, edx
add eax, edi
push eax
push ecx
lea edi, [esi + 0x258]
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x514
jmp 0x40df96
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x10c]
push edx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, ebp
mov dword [esi], eax
call fcn.00409040
lea eax, [edi - 0x33]
add esp, 8
cmp eax, 9
ja 0x40e5d6
mov esi, dword [esp + 0x2c]
cmp esi, 0x1c
jle 0x40e5d6
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
call fcn.0044bf34
cmp edi, 0xf
jge 0x40e51c
mov eax, 0xf
sub eax, edi
lea ecx, [eax + eax*4]
add ecx, ecx
add ecx, ecx
jmp 0x40e520
mov ecx, dword [esp + 0x14]
cmp esi, 0xd
jge 0x40e535
mov eax, 0xc
sub eax, esi
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
jmp 0x40e539
mov edx, dword [esp + 0x18]
lea eax, [edi + edi*4]
add eax, eax
add eax, eax
mov edi, eax
mov eax, 0x5f5
sub eax, edi
sub eax, ecx
lea ecx, [esi + esi*4 - 0x91]
lea ecx, [edx + ecx*4]
mov edx, dword [esp + 0x1c]
add ecx, edx
push ecx
push ecx
lea edi, [eax + edx + 0x14]
lea eax, [esp + 0x114]
mov esi, esp
mov dword [esp + 0x1c], esp
call fcn.00403870
mov ecx, edi
mov edx, ebp
call fcn.004062f0
add esp, 8
push 0x578
call ebx
xor edi, edi
jmp 0x40e590
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.00403f70
add esp, 4
cmp eax, 0x47b
je case.0x40d666.1002
push 0xfa
call ebx
inc edi
cmp edi, 0xa
jle 0x40e590
jmp case.0x40d666.1002
mov eax, dword [esp + 0x10c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
lea edx, [esp + 0xd0]
add esp, 4
mov dword [esi], eax
push edx
mov eax, ebp
call fcn.004060f0
mov eax, dword [esp + 0x114]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, ebp
call fcn.004046f0
add esp, 4
test al, al
jne 0x40dfcb
cmp dword [esp + 0xc8], 0x1e5
jne 0x40dfcb
cmp dword [esp + 0xcc], 0x1a3
jne 0x40dfcb
push ecx
lea eax, [esp + 0x110]
mov esi, esp
mov dword [esp + 0x18], esp
call fcn.00403870
lea eax, [esp + 0x6c]
push eax
mov eax, ebp
call fcn.00405d80
add esp, 8
cmp dword [esp + 0x68], 0
jne 0x40e68a
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x40e6c0
push 0
push 0
push ecx
lea eax, [esp + 0x118]
mov esi, esp
mov dword [esp + 0x20], esp
call fcn.00403870
mov esi, ebp
call fcn.00405f00
add esp, 0xc
push 0x12c
call ebx
xor eax, eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], eax
add eax, 0x178
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fsub qword [0x46f310]
call fcn.00450dd0
mov edi, eax
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov esi, 5
sub esi, edx
call fcn.0044bf34
cdq
mov ecx, 0xa
idiv ecx
mov eax, 5
sub eax, edx
add eax, edi
lea edi, [esi + 0x153]
jmp 0x40df71
mov eax, dword [esp + 0x114]
lea edx, [esp + 0x90]
push edx
push 1
push eax
mov eax, dword [esp + 0x118]
push ebp
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.004091a0
add esp, 0x14
jmp case.0x40d666.1002
call fcn.00401ea0
nop
push edi
fild dword [eax]
insd dword es:[edi], dx
salc
inc eax
add bl, bh
fild word [eax]
scasb al, byte es:[edi]
in al, 64
add byte [edi], cl
out 0x40, eax
add byte [edi - 0x1e], cl
inc eax
add byte [eax + 0x40d2], dl
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add dword [esi], eax
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add al, byte [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, dword [esi + eax]
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, 1791806668
push -1
invalid
invalid