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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x68]
cmp eax, dword [ecx + 8]
jbe 0x59ac8f
sub esp, 0xe8
mov eax, dword [esp + 0xec]
mov ecx, dword [eax]
mov edx, dword [eax + 0x30]
test edx, edx
je 0x59ac72
mov dword [esp + 0x80], ecx
lea eax, [0x7ccee0]
mov dword [esp], eax
call fcn.00409f80
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x30]
mov edx, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x28]
mov edi, dword [esp + 4]
mov dword [edi + 4], ebx
mov dword [edi + 8], edx
mov edx, dword [0xb91180]
test edx, edx
jne 0x59ac62
mov dword [edi], ecx
mov ecx, dword [eax + 0x30]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x10]
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], edx
mov edx, dword [0xb91180]
test edx, edx
jne 0x59ac4d
mov dword [edi + 0xc], ecx
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.005971a0
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x59ac38
mov dword [esp + 0x7c], esi
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0044f1c0
lea edi, [esp + 0xb4]
call fcn.0044f668
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 0x30]
movzx edx, byte [edx + 0xd]
test dl, dl
je 0x59ac2d
mov edx, dword [esp + 0x7c]
mov ebx, dword [edx + 0x24]
test ebx, ebx
setg bl
mov byte [esp + 0xe5], bl
mov ebx, dword [ecx + 0x30]
movzx ebx, byte [ebx + 0xc]
test bl, bl
je 0x59ac26
mov ebx, dword [edx + 0x18]
test ebx, ebx
setg bl
mov byte [esp + 0xe4], bl
lea eax, [esp + 0xa8]
mov dword [esp], eax
call fcn.005a0a00
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x40]
mov ecx, dword [ecx + 0x20]
mov dword [esp], edx
call ecx
lea eax, [esp + 0xa8]
mov dword [esp], eax
call fcn.005a0a00
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x80]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.0058f1f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x59ac11
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 4]
test edx, edx
je 0x59abf4
lea edi, [esp + 0x8c]
xor eax, eax
call fcn.0044f1c9
mov byte [esp + 0x98], 1
mov ecx, dword [esp + 0x80]
movzx edx, word [ecx + 0x20]
mov word [esp], dx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
call fcn.00586d60
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x59abb7
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0xec]
mov ebp, dword [eax + 0x30]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x60], esi
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x88], ebp
xor edi, edi
jmp 0x59a709
mov eax, dword [esp + 0x5c]
lea edi, [eax + 1]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x60]
cmp edi, esi
jge 0x59a746
mov dword [esp + 0x5c], edi
movzx eax, word [ebp + edi*2]
mov word [esp + 0x36], ax
mov word [esp], ax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.0058aeb0
movzx eax, byte [esp + 0x10]
test al, al
je 0x59a6e4
movzx eax, word [esp + 0x36]
mov word [esp + 0x9a], ax
movzx eax, word [esp + 0x9a]
test ax, ax
je 0x59ab4f
nop
cmp ax, 0x403
ja 0x59ab11
cmp ax, 0x203
ja 0x59aaff
cmp ax, 0x201
jne 0x59aae8
mov ecx, 0x10
mov byte [esp + 0x35], cl
mov word [esp], ax
call fcn.005b0080
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x35]
test dl, dl
jne 0x59a7ca
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.0058e890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xe8
ret
test ecx, ecx
jne 0x59a799
mov dword [esp + 0x4c], eax
mov dword [esp], eax
call fcn.004ff1c0
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x50], ecx
lea edx, [0x7be3e0]
mov dword [esp], edx
call fcn.00407b70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xec]
mov ebx, dword [edx + 0x40]
mov ebp, dword [edx + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x823eef]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x22
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebx
call fcn.00586c90
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004078c0
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x35]
cmp cl, 0x12
je 0x59aabe
lea ecx, [0x8b4410]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x7c]
mov ebx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
lea ebp, [0x7c5640]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00407d70
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x84], ebx
nop
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x59aaad
mov dword [esp + 0x64], ebp
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x84]
mov dword [esp], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1c], ecx
call eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
test edx, edx
je 0x59a9fb
mov dword [esp + 0x78], eax
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.0058e890
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x8226f3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1f
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043dbd0
nop
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
lea edx, [0x7c34e0]
mov dword [esp], edx
call fcn.00409f80
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [0xb91180]
test eax, eax
jne 0x59a9f0
mov eax, dword [esp + 0x68]
mov dword [edi], eax
lea eax, [0x8b3870]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edi
add esp, 0xe8
ret
mov eax, dword [esp + 0x68]
call fcn.0044f0d0
jmp 0x59a9d5
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x9c], ebp
lea eax, [esp + 0x8c]
mov dword [esp], eax
call fcn.005a2c50
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
call ecx
lea eax, [esp + 0x8c]
mov dword [esp], eax
call fcn.005a2c50
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x80]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0058f1f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x59aa90
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xe8
ret
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
add esp, 0xe8
ret
mov ebp, dword [0xb7d444]
mov ecx, dword [0xb7d440]
jmp 0x59a8aa
lea eax, [0x7cce20]
mov dword [esp], eax
call fcn.00409f80
mov eax, dword [esp + 4]
mov dword [eax], 0xffffffff
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
lea ecx, [0x8b3750]
jmp 0x59a857
cmp ax, 0x203
jne 0x59aaf8
mov ecx, 0x11
jmp 0x59a77b
xor ecx, ecx
jmp 0x59a77b
cmp ax, 0x401
je 0x59a776
cmp ax, 0x403
je 0x59aaee
jmp 0x59aaf8
cmp ax, 0x503
ja 0x59ab29
cmp ax, 0x501
je 0x59a776
cmp ax, 0x503
je 0x59aaee
jmp 0x59aaf8
cmp ax, 0x601
je 0x59a776
cmp ax, 0x603
je 0x59aaee
lea ecx, [eax - 0x804]
cmp cx, 2
ja 0x59aaf8
mov ecx, 0x12
jmp 0x59a77b
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov byte [esp + 4], 0x28
call fcn.0058e890
nop
lea eax, [0x7c34e0]
mov dword [esp], eax
call fcn.00409f80
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x30
mov eax, dword [0xb91180]
test eax, eax
jne 0x59abaa
lea eax, [0x82af69]
mov dword [edi], eax
lea eax, [0x8b3870]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edi
add esp, 0xe8
ret
lea eax, [0x82af69]
call fcn.0044f0d0
jmp 0x59ab8f
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.0058e890
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
call fcn.005870e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xe8
ret
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
add esp, 0xe8
ret
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], ecx
add esp, 0xe8
ret
xor ebx, ebx
jmp 0x59a5ee
mov edx, dword [esp + 0x7c]
xor ebx, ebx
jmp 0x59a5d0
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xe8
ret
lea edx, [edi + 0xc]
mov ebx, edi
mov edi, edx
mov eax, ecx
call fcn.0044f0d0
mov edi, ebx
jmp 0x59a569
mov edx, eax
mov eax, ecx
call fcn.0044f0d0
mov eax, edx
jmp 0x59a546
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
add esp, 0xe8
ret
call fcn.0044d880
jmp fcn.0059a4d0