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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xa8]
cmp eax, dword [ecx + 8]
jbe 0x50a102
sub esp, 0x128
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov eax, dword [esp + 0x148]
test eax, eax
je 0x509d9f
lea eax, [0x6c4100]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.004048a0
mov eax, dword [esp + 8]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x50a350]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x78]
mov dword [esp], ecx
call fcn.00435ef0
test eax, eax
jne 0x509d93
lea eax, [0x6c3fc0]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.004048a0
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
lea ecx, [0x6f4d60]
mov dword [esp], ecx
call fcn.0040b7f0
mov eax, dword [esp + 4]
lea ecx, [0x50a1f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x13c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x140]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x9b1930]
test ecx, ecx
jne 0x509b60
mov ecx, dword [esp + 0x138]
mov dword [eax + 4], ecx
jmp 0x509b73
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x138]
call fcn.00463350
mov eax, ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x148]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x14c]
mov dword [eax + 0x18], ecx
mov ecx, dword [0x9b1930]
test ecx, ecx
jne 0x509bc2
mov ecx, dword [esp + 0x144]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x12c]
mov dword [eax + 0x1c], ecx
mov edx, dword [esp + 0xa0]
mov dword [eax + 0x20], edx
mov ebx, dword [esp + 0x9c]
mov dword [eax + 0x24], ebx
jmp 0x509c00
lea edi, [eax + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x144]
call fcn.00463350
lea edi, [ecx + 0x1c]
mov eax, dword [esp + 0x12c]
call fcn.00463350
lea edi, [ecx + 0x20]
mov eax, dword [esp + 0xa0]
call fcn.00463350
lea edi, [ecx + 0x24]
mov eax, dword [esp + 0x9c]
call fcn.00463350
lea edi, [esp + 0xec]
xor eax, eax
call fcn.0046361b
lea edi, [esp + 0x100]
call fcn.0046361b
mov ecx, dword [esp + 0x130]
mov dword [esp], ecx
mov edx, dword [esp + 0x134]
mov dword [esp + 4], edx
call fcn.004fdf80
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa4], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x54]
mov dword [esp], ecx
call fcn.00435ef0
test eax, eax
jne 0x509d87
lea eax, [0x6dfe00]
mov dword [esp], eax
call fcn.0040b7f0
mov eax, dword [esp + 4]
lea ecx, [0x50a1a0]
mov dword [eax], ecx
mov ecx, dword [0x9b1930]
test ecx, ecx
jne 0x509c96
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
jmp 0x509cb0
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.00463350
mov eax, ecx
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
mov dword [eax + 8], edx
mov edx, dword [0x9b1930]
test edx, edx
jne 0x509cd0
mov edx, dword [esp + 0xa4]
mov dword [eax + 0xc], edx
jmp 0x509ce3
lea edi, [eax + 0xc]
mov edx, eax
mov eax, dword [esp + 0xa4]
call fcn.00463350
mov eax, edx
mov dword [esp], eax
call fcn.004426b0
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x28]
test ecx, ecx
seta dl
mov eax, dword [eax + 0x2c]
test eax, eax
sete bl
xchg ebp, ebx
setg bl
xchg ebp, ebx
and ebx, edx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x509d1a
xor eax, eax
mov ecx, 0x11e1a300
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00485b40
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
lea ecx, [0x50a160]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
lea ecx, [esp + 0xb8]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x30]
mov dword [esp], ecx
call fcn.00435ef0
test eax, eax
jne 0x509d7b
jmp 0x509e1d
call fcn.004364e0
add esp, 0x128
ret
call fcn.004364e0
add esp, 0x128
ret
call fcn.004364e0
add esp, 0x128
ret
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x14], eax
call fcn.0050a390
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], ebx
call fcn.004364e0
add esp, 0x128
ret
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx]
lea edi, [esp + 0x114]
xor eax, eax
call fcn.0046361b
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], edx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xc8], ecx
lea edx, [esp + 0x114]
mov dword [esp + 0xcc], edx
lea ebx, [esp + 0xc8]
mov dword [esp], ebx
lea ebx, [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 2
mov byte [esp + 0x14], 1
call fcn.004486f0
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x509f93
lea edi, [esp + 0xd8]
lea esi, [esp + 0x114]
call fcn.00463afe
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x50a09f
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x509f06
lea edi, [esp + 0xec]
lea esi, [esp + 0xd8]
call fcn.00463afe
jmp 0x509f19
lea edi, [esp + 0x100]
lea esi, [esp + 0xd8]
call fcn.00463afe
movzx ecx, byte [esp + 0xfd]
test cl, cl
je 0x509f35
movzx ecx, byte [esp + 0x111]
test cl, cl
jne 0x50a061
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x509e1d
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x50a0e9
lea ecx, [eax + 4]
mov dword [esp], ecx
call fcn.004617e0
movzx eax, byte [esp + 4]
test al, al
je 0x509e1d
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.00485c30
jmp 0x509e1d
mov eax, dword [esp + 0x130]
mov dword [esp], eax
mov ecx, dword [esp + 0x134]
mov dword [esp + 4], ecx
call fcn.004fdf80
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xb0], edx
mov dword [esp], eax
call fcn.00435e10
test eax, eax
jne 0x50a0dd
lea eax, [0x6dfe60]
mov dword [esp], eax
call fcn.0040b7f0
mov eax, dword [esp + 4]
lea ecx, [0x50a110]
mov dword [eax], ecx
mov edx, dword [0x9b1930]
test edx, edx
jne 0x50a007
mov edx, dword [esp + 0xb4]
mov dword [eax + 4], edx
jmp 0x50a021
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0xb4]
call fcn.00463350
mov eax, edx
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
mov dword [eax + 8], ebx
mov ebx, dword [0x9b1930]
test ebx, ebx
jne 0x50a041
mov ebx, dword [esp + 0xac]
mov dword [eax + 0xc], ebx
jmp 0x50a054
lea edi, [eax + 0xc]
mov ebx, eax
mov eax, dword [esp + 0xac]
call fcn.00463350
mov eax, ebx
mov dword [esp], eax
call fcn.004426b0
jmp 0x509e1d
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ecx
call fcn.004364e0
add esp, 0x128
ret
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
call fcn.004364e0
add esp, 0x128
ret
call fcn.004364e0
add esp, 0x128
ret
lea eax, [0x6cd520]
mov dword [esp], eax
lea eax, [0x79d184]
mov dword [esp + 4], eax
call fcn.00437060
nop
call fcn.00461f40
jmp fcn.00509a30