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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x500db7
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x94]
cmp eax, ecx
jne 0x500d9e
mov ebx, dword [esp + 0x7c]
cmp ebx, ecx
jne 0x500d9e
mov ebp, dword [esp + 0x88]
cmp ebp, ecx
jne 0x500d9e
shl ecx, 1
mov edx, dword [esp + 0x68]
cmp edx, ecx
jl 0x500a3d
jb 0x500d99
mov edi, dword [esp + 0x60]
jmp 0x500aa1
cmp ecx, 1
jne 0x500a72
lea eax, [0x62ec80]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00447580
mov eax, dword [esp + 0xc]
mov edx, 1
mov ecx, 1
mov edi, eax
jmp 0x500aa1
mov dword [esp + 0x30], ecx
lea eax, [0x62ec80]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 8], eax
call fcn.00447580
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edi, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x54], edi
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004fff20
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
jmp 0x500b26
mov ecx, dword [esp + 0x34]
inc ecx
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x94]
mov edx, esi
mov ebx, dword [esp + 0x70]
mov ebp, edi
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x34]
cmp edx, ebx
jle 0x500c54
cmp ecx, ebx
jbe 0x500d92
mov esi, dword [eax + ebx*4]
mov dword [esp + 0x38], esi
lea esi, [ebx + edx]
cmp edi, esi
jb 0x500d89
cmp ebx, esi
ja 0x500d80
mov dword [esp + 0x48], esi
mov eax, ebx
shl ebx, 2
sub edi, eax
mov dword [esp + 0x44], edi
mov esi, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ebx, edi
add ebx, ebp
mov dword [esp + 0x58], ebx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x18], edi
call fcn.0050a050
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
cmp ecx, edx
jae 0x500d77
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov edx, dword [eax + ecx*4]
mov ebx, dword [esp + 0x58]
mov dword [esp], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x88]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x90]
imul edx, edi
mov dword [esp + 0x18], edx
call fcn.0050a050
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
add edx, ecx
lea ebx, [edx + eax]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
cmp ebp, esi
jbe 0x500d6e
mov edi, dword [esp + 0x54]
mov dword [edi + esi*4], ebx
cmp ecx, edx
ja 0x500c43
cmp eax, ebx
jbe 0x500c4d
mov eax, 1
jmp 0x500af2
xor eax, eax
jmp 0x500af2
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x500cd6
cmp edx, edi
ja 0x500d65
mov ecx, dword [esp + 0x28]
cmp edx, ecx
ja 0x500d5e
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], edi
sub edi, edx
mov ebx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
mov esi, edx
shl edx, 2
sar edi, 0x1f
and edx, edi
add edx, ebp
mov dword [esp + 0xc], edx
sub ecx, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
call fcn.00509ed0
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x54]
jmp 0x500d28
cmp edx, edi
ja 0x500d55
mov ecx, dword [esp + 0x28]
cmp edx, ecx
ja 0x500d4e
mov eax, edi
sub edi, edx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ebx, edx
shl edx, 2
sar edi, 0x1f
and edx, edi
sub ecx, ebx
lea esi, [ebp + edx]
cmp ebx, ecx
jg 0x500d02
mov ecx, ebx
test edx, edx
je 0x500d28
mov dword [esp], ebp
mov dword [esp + 4], esi
shl ecx, 2
mov dword [esp + 8], ecx
call fcn.0045f0c0
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x54]
cmp ebx, eax
ja 0x500d45
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], eax
add esp, 0x5c
ret
mov ecx, ebx
mov edx, eax
call fcn.0045e7d0
mov eax, edx
call fcn.0045e7f0
mov ecx, edx
mov edx, edi
call fcn.0045e7d0
mov eax, edx
call fcn.0045e7f0
mov ecx, edx
mov edx, edi
call fcn.0045e7d0
mov eax, esi
mov ecx, ebp
call fcn.0045e790
mov eax, ecx
mov ecx, edx
call fcn.0045e790
mov eax, ebx
mov ecx, esi
call fcn.0045e7f0
mov ecx, esi
mov edx, edi
call fcn.0045e7d0
mov eax, ebx
call fcn.0045e790
call fcn.0045e7d0
lea eax, [0x62f240]
mov dword [esp], eax
lea eax, [0x6c12c8]
mov dword [esp + 4], eax
call fcn.00433500
nop
call fcn.0045d2d0
jmp fcn.005009e0