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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x525f24
sub esp, 0x4c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jl 0x525e6a
test eax, eax
je 0x525e4e
test ecx, ecx
je 0x525d8f
lea ebx, [eax + 1]
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x58]
cmp edx, ebx
jl 0x525c84
jb 0x525f1c
mov ebp, dword [esp + 0x50]
jmp 0x525cb7
lea ecx, [0x638160]
mov dword [esp], ecx
mov dword [esp + 4], ebx
lea ecx, [eax + 5]
mov dword [esp + 0x30], ecx
mov dword [esp + 8], ecx
call fcn.0044a8a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ebp, eax
mov eax, dword [esp + 0x60]
cmp ecx, edx
ja 0x525f17
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], ebp
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x68]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x70]
mov dword [esp + 0x20], esi
call fcn.00530830
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jle 0x525d74
mov ebx, dword [esp + 0x30]
cmp ecx, ebx
ja 0x525f10
sub ebx, edx
mov esi, edx
shl edx, 2
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, edx
mov ebp, dword [esp + 0x44]
add ebx, ebp
mov dword [esp], ebx
sub ecx, esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov edi, dword [esp + 0x64]
sub edi, esi
mov esi, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, edx
mov edx, dword [esp + 0x5c]
add edx, edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
call fcn.005308b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x40]
cmp ecx, ebx
jae 0x525f07
mov ebp, dword [esp + 0x44]
mov dword [ebp + ecx*4], eax
mov eax, ebx
jmp 0x525ecc
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jg 0x525d9f
mov edx, eax
mov ebx, dword [esp + 0x50]
jmp 0x525e05
cmp eax, 1
jne 0x525dd8
lea eax, [0x638160]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0044a8a0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
mov ebx, eax
mov ecx, 1
mov eax, 1
jmp 0x525e05
lea ecx, [0x638160]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea ecx, [eax + 4]
mov dword [esp + 0x34], ecx
mov dword [esp + 8], ecx
call fcn.0044a8a0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
mov ebx, eax
mov ecx, dword [esp + 0x34]
mov eax, edx
cmp edx, eax
jl 0x525e0b
mov edx, eax
mov ebp, dword [esp + 0x5c]
cmp ebp, ebx
je 0x525e3e
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ebx
mov dword [esp], ebx
mov dword [esp + 4], ebp
shl edx, 2
mov dword [esp + 8], edx
call fcn.00464010
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x4c
ret
mov eax, dword [esp + 0x50]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x7c], eax
add esp, 0x4c
ret
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
call fcn.00525c30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
add esp, 0x4c
ret
mov ebx, esi
test ebx, ebx
jle 0x525edf
lea esi, [ebx - 1]
cmp esi, eax
jae 0x525efe
mov edi, dword [ebp + ebx*4 - 4]
test edi, edi
je 0x525eca
mov edx, dword [esp + 0x30]
cmp ebx, edx
ja 0x525ef7
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], edx
add esp, 0x4c
ret
mov ecx, ebx
call fcn.00463740
mov ecx, eax
mov eax, esi
call fcn.00463700
mov eax, ecx
mov ecx, ebx
call fcn.00463700
mov edx, ebx
call fcn.00463740
call fcn.00463740
mov ecx, ebx
call fcn.00463740
nop
call fcn.00462270
jmp fcn.00525c30