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

Disassembly:
push 0xffffffffffffffff
push 0x4ab152
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xfc]
push ebx
xor ebx, ebx
mov dword [eax], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x108]
push ebp
xor eax, eax
mov dword [ecx], ebx
push esi
mov byte [esp + 0xd], bl
mov byte [edx], bl
mov dword [esp + 0xe4], 7
mov dword [esp + 0xe0], ebx
mov word [esp + 0xd0], ax
mov ebp, dword [esp + 0x100]
lea ecx, [esp + 0x98]
mov dword [ebp], 0xffffffff
mov dword [ebp + 4], 0xffffffff
push ecx
mov ecx, dword [0x590c70]
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x13], bl
call fcn.00431ab0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0xac], 8
mov eax, dword [esp + 0x98]
mov byte [esp + 0xf4], 2
jae 0x409fb2
lea eax, [esp + 0x98]
push edi
lea edx, [esp + 0x38]
push edx
push 0x2c
push eax
call fcn.0042f0d0
add esp, 0xc
cmp byte [esp + 0x130], bl
jne 0x40a0fe
mov eax, dword [esp + 0x38]
mov edi, eax
cmp eax, dword [esp + 0x3c]
jae 0x40a0fe
push 0xffffffffffffffff
push ebx
xor eax, eax
push edi
lea ecx, [esp + 0x54]
mov dword [esp + 0x68], 7
mov dword [esp + 0x64], ebx
mov word [esp + 0x54], ax
call fcn.00404ac0
mov byte [esp + 0xf8], 3
cmp dword [esp + 0x58], ebx
je 0x40a2f2
cmp dword [esp + 0x5c], 8
mov eax, dword [esp + 0x48]
jae 0x40a021
lea eax, [esp + 0x48]
mov esi, dword [esp + 0x14]
push eax
lea ecx, [esi + 4]
call fcn.004063d0
xor ecx, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], cx
mov byte [esp + 0xf8], 4
cmp al, bl
je 0x40a0a7
mov eax, dword [esp + 0x10c]
push 1
lea edx, [esp + 0x1c]
push edx
push ebp
push eax
mov eax, dword [esp + 0x110]
lea ecx, [esp + 0x23]
push ecx
lea edx, [esp + 0xe8]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esi + 4]
call fcn.004094a0
test al, al
je 0x40a0a7
mov edx, dword [esp + 0x100]
cmp dword [edx + 0x10], ebx
je 0x40a0a7
cmp dword [esp + 0xe4], ebx
je 0x40a0a7
mov eax, dword [esp + 0x10c]
cmp byte [eax], bl
je 0x40a28c
mov esi, 8
mov byte [esp + 0x11], bl
cmp dword [esp + 0x30], esi
jb 0x40a0c3
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004a930e
add esp, 4
xor edx, edx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], dx
mov byte [esp + 0xf8], 2
cmp dword [esp + 0x5c], esi
jb 0x40a0f1
mov eax, dword [esp + 0x48]
push eax
call fcn.004a930e
add esp, 4
add edi, 0x1c
cmp edi, dword [esp + 0x3c]
jb 0x409fe0
mov ecx, dword [0x590c70]
push 0x54e75c
call fcn.004057c0
mov eax, 0xf
mov byte [esp + 0x12], bl
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
xor edx, edx
mov dword [esp + 0x94], 7
mov dword [esp + 0x90], ebx
mov word [esp + 0x80], dx
mov edi, dword [esp + 0x124]
mov byte [esp + 0xf8], 7
cmp byte [esp + 0x11], bl
jne 0x40a3c9
cmp byte [esp + 0x118], bl
je 0x40a42a
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
cmp edi, ebx
jne 0x40a19c
cmp edx, ebx
je 0x40a42a
cmp ecx, ebx
je 0x40a42a
cmp dword [esp + 0xb0], 8
mov eax, dword [esp + 0x9c]
jae 0x40a1b4
lea eax, [esp + 0x9c]
mov esi, dword [esp + 0x110]
push esi
mov esi, dword [esp + 0x130]
push esi
mov esi, dword [esp + 0x130]
push esi
lea esi, [esp + 0xc4]
push esi
lea esi, [esp + 0x74]
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push edi
push eax
call fcn.00407fe0
test al, al
je 0x40a42a
mov ecx, dword [esp + 0xb8]
mov eax, 0x10
cmp dword [esp + 0xcc], eax
jae 0x40a20a
lea ecx, [esp + 0xb8]
cmp dword [esp + 0x78], eax
mov eax, dword [esp + 0x64]
jae 0x40a218
lea eax, [esp + 0x64]
mov esi, dword [esp + 0x14]
push ecx
push eax
lea ecx, [esi + 4]
call fcn.00405650
xor eax, eax
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], ax
mov edx, dword [esp + 0x10c]
push ebx
lea ecx, [esp + 0x1c]
push ecx
push ebp
mov ebp, dword [esp + 0x10c]
push edx
lea eax, [esp + 0x23]
push eax
lea ecx, [esp + 0xe8]
push ecx
push ebp
lea edx, [esp + 0x38]
push edx
lea ecx, [esi + 4]
mov byte [esp + 0x118], 8
call fcn.004094a0
test al, al
je 0x40a34d
cmp dword [ebp + 0x14], 0x10
jb 0x40a317
mov eax, dword [ebp]
jmp 0x40a319
mov eax, dword [esp + 0x48]
mov esi, 8
mov byte [esp + 0x11], 1
cmp dword [esp + 0x5c], esi
jae 0x40a2a4
lea eax, [esp + 0x48]
mov ecx, dword [0x590c70]
push eax
call fcn.004057c0
cmp dword [esp + 0x30], esi
jb 0x40a2c3
mov edx, dword [esp + 0x1c]
push edx
call fcn.004a930e
add esp, 4
xor eax, eax
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], ax
cmp dword [esp + 0x5c], esi
jb 0x40a10e
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004a930e
add esp, 4
jmp 0x40a10e
cmp dword [esp + 0x5c], 8
mov byte [esp + 0xf8], 2
jb 0x40a0fe
mov ecx, dword [esp + 0x48]
push ecx
call fcn.004a930e
add esp, 4
jmp 0x40a0fe
mov eax, ebp
cmp byte [eax], bl
je 0x40a34d
cmp dword [esp + 0xe4], ebx
je 0x40a34d
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x11], 1
jae 0x40a33a
lea eax, [esp + 0x1c]
mov ecx, dword [0x590c70]
push eax
call fcn.004057c0
mov byte [esp + 0x12], 1
jmp case.0x40a36b.5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x114]
mov dword [ecx], eax
dec eax
mov byte [esp + 0x11], bl
cmp eax, 0xb
ja case.0x40a36b.5
movzx edx, byte [eax + 0x40a6bc]
jmp dword [edx*4 + 0x40a6ac]
mov eax, dword [esp + 0x110]
mov dword [eax], 5
jmp case.0x40a36b.5
mov ecx, dword [esp + 0x110]
mov dword [ecx], 6
jmp case.0x40a36b.5
mov edx, dword [esp + 0x110]
mov dword [edx], 7
cmp dword [esp + 0x30], 8
mov byte [esp + 0xf8], 7
jb 0x40a3b9
mov eax, dword [esp + 0x1c]
push eax
call fcn.004a930e
add esp, 4
cmp byte [esp + 0x11], bl
je 0x40a42a
cmp byte [esp + 0x12], bl
jne case.0x40a412.2
cmp byte [esp + 0x108], bl
jne case.0x40a412.2
cmp byte [esp + 0x134], bl
jne case.0x40a412.2
mov eax, dword [esp + 0xd4]
mov esi, 8
cmp dword [esp + 0xe8], esi
jae 0x40a3ff
lea eax, [esp + 0xd4]
push eax
call fcn.00407480
dec eax
add esp, 4
cmp eax, 5
ja case.0x40a412.2
jmp dword [eax*4 + 0x40a6c8]
mov ecx, dword [esp + 0x110]
mov dword [ecx], 9
mov byte [esp + 0x11], bl
mov eax, dword [esp + 0x100]
cmp dword [eax + 0x14], 0x10
mov dword [eax + 0x10], ebx
jb 0x40a43c
mov eax, dword [eax]
mov byte [eax], bl
cmp byte [esp + 0x11], bl
je 0x40a481
cmp dword [esp + 0x90], ebx
je 0x40a481
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x40a465
lea eax, [esp + 0x80]
mov edx, dword [0x58e0a0]
push eax
push edx
call fcn.00434e70
mov eax, dword [0x58e09c]
push edi
push eax
call fcn.00434e70
add esp, 0x10
cmp dword [esp + 0x94], 8
jb 0x40a49b
mov ecx, dword [esp + 0x80]
push ecx
call fcn.004a930e
add esp, 4
xor edx, edx
mov esi, 0x10
mov dword [esp + 0x94], 7
mov dword [esp + 0x90], ebx
mov word [esp + 0x80], dx
cmp dword [esp + 0xcc], esi
jb 0x40a4d5
mov eax, dword [esp + 0xb8]
push eax
call fcn.004a930e
add esp, 4
mov dword [esp + 0xcc], 0xf
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
cmp dword [esp + 0x78], esi
jb 0x40a501
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004a930e
add esp, 4
mov esi, dword [esp + 0x38]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
cmp esi, ebx
je 0x40a556
mov edi, dword [esp + 0x3c]
cmp esi, edi
je 0x40a54d
mov ebp, 7
cmp dword [esi + 0x14], 8
jb 0x40a537
mov edx, dword [esi]
push edx
call fcn.004a930e
add esp, 4
xor eax, eax
mov dword [esi + 0x14], ebp
mov dword [esi + 0x10], ebx
mov word [esi], ax
add esi, 0x1c
cmp esi, edi
jne 0x40a526
mov esi, dword [esp + 0x38]
push esi
call fcn.004a930e
add esp, 4
mov esi, 8
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
pop edi
cmp dword [esp + 0xac], esi
jb 0x40a581
mov ecx, dword [esp + 0x98]
push ecx
call fcn.004a930e
add esp, 4
xor edx, edx
cmp dword [esp + 0xe4], esi
pop esi
pop ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], 7
mov word [esp + 0x90], dx
pop ebx
jb 0x40a5b9
mov eax, dword [esp + 0xc4]
push eax
call fcn.004a930e
add esp, 4
mov ecx, dword [esp + 0xe0]
mov al, byte [esp + 1]
mov dword fs:[0], ecx
add esp, 0xec
ret 0x38
mov ecx, dword [0x590c70]
lea edx, [esp + 0x1c]
push edx
call fcn.00431df0
mov byte [esp + 0xf8], 9
cmp dword [eax + 0x14], esi
jb 0x40a5f3
mov eax, dword [eax]
push eax
call fcn.00405f40
add esp, 4
lea ecx, [esp + 0x1c]
mov byte [esp + 0xf8], 7
call fcn.00402930
mov esi, dword [esp + 0x14]
push 0x1050
add esi, 4
push ebx
push esi
call fcn.004a931a
mov eax, dword [esp + 0x11c]
mov byte [esi], bl
add esp, 0xc
mov dword [eax], 0xd
jmp 0x40a426
mov ecx, dword [esp + 0x110]
mov dword [ecx], 0x10
jmp 0x40a426
mov edx, dword [esp + 0x110]
mov dword [edx], 0x11
jmp 0x40a426
mov eax, dword [esp + 0x110]
mov dword [eax], 0xa
jmp 0x40a426
cmp byte [esp + 0x11], bl
je 0x40a42a
cmp byte [esp + 0x12], bl
je 0x40a43e
cmp byte [esp + 0x13], bl
jne 0x40a43e
mov ecx, dword [esp + 0x10c]
cmp byte [ecx], bl
jne 0x40a43e
mov ecx, dword [esp + 0x14]
add ecx, 4
call fcn.00405bf0
jmp 0x40a43e