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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5231d4
sub esp, 0x70
mov eax, dword [esp + 0x90]
lea ecx, [eax + 1]
mov dword [esp], ecx
call fcn.0051d940
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
sub ecx, edx
mov ebp, dword [eax + 4]
mov dword [esp + 0x38], ebp
mov esi, dword [eax + 8]
mov edi, dword [eax]
lea ebp, [edx - 1]
cmp edx, ebp
jbe 0x5231ca
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x68], edi
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + edx*4 - 4]
mov dword [esp + 0x28], ecx
mov dword [esp], ecx
call fcn.00516990
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x8c]
jmp 0x522e09
dec eax
mov ebp, dword [esp + 0x30]
mov ebp, ecx
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x8c]
mov ecx, eax
mov eax, dword [esp + 0x30]
test ecx, ecx
jl 0x5230e2
lea esi, [ebp + ecx]
mov dword [esp + 0x58], esi
cmp ebx, esi
jle 0x522e30
jbe 0x5231c1
mov esi, dword [edx + esi*4]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x58]
jmp 0x522e3e
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], ecx
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
cmp esi, edi
je 0x522ec7
lea ebp, [ecx + ebp - 1]
cmp ebx, ebp
jbe 0x5231b8
mov ecx, dword [edx + ebp*4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.00516840
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x90]
lea ebx, [edx - 2]
cmp edx, ebx
jbe 0x5231af
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx + edx*4 - 8]
mov esi, eax
mov eax, ebp
mov edi, edx
mul esi
nop
mov ebx, dword [esp + 0x48]
lea ebx, [ebx + edi - 2]
nop
nop
mov edi, dword [esp + 0x84]
cmp edi, ebx
jbe 0x5231a6
mov edi, dword [esp + 0x80]
mov ebx, dword [edi + ebx*4]
jmp 0x523163
mov esi, 0xffffffff
mov eax, dword [esp + 0x3c]
cmp ebp, eax
ja 0x523144
mov dword [esp + 0x40], esi
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov edx, dword [esp + 0x8c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
call fcn.00524870
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x38]
cmp ecx, edx
jae 0x52313b
mov ebx, dword [esp + 0x68]
mov dword [ebx + ecx*4], eax
mov ebp, dword [esp + 0x48]
lea esi, [edx + ebp]
mov edi, dword [esp + 0x84]
cmp edi, esi
jge 0x522f53
test eax, eax
jne 0x522f53
lea esi, [edx - 1]
mov eax, edx
mov edx, esi
jmp 0x522f55
mov eax, edx
lea esi, [edx + ebp]
mov ebx, dword [esp + 0x88]
cmp ebx, esi
jb 0x523132
cmp ebp, esi
ja 0x523129
sub ebx, ebp
mov dword [esp + 0x54], ebx
neg ebx
shl ebp, 2
sar ebx, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x80]
add ebx, ebp
mov esi, dword [esp + 0x48]
cmp edi, esi
jb 0x523120
mov dword [esp + 0x34], edx
mov dword [esp + 0x6c], ebx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
sub edi, esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
call fcn.00524730
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x522ffc
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x40]
jmp 0x5230a9
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x58]
cmp edx, ecx
jb 0x52311b
mov eax, dword [esp + 0x48]
cmp eax, ecx
ja 0x523116
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x20], edx
call fcn.005246f0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x34]
cmp ecx, edx
jge 0x523096
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x58]
cmp ebx, ebp
jbe 0x52310d
mov esi, dword [esp + 0x80]
add dword [esi + ebp*4], eax
jmp 0x5230a4
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov ebp, dword [esp + 0x40]
dec ebp
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
cmp eax, edi
jne 0x5230cc
mov edx, esi
mov esi, dword [esp + 0x78]
cmp esi, edi
jne 0x5230d2
test ebp, ebp
jne 0x5230d2
mov esi, dword [esp + 0x74]
jmp 0x522dee
mov edx, esi
mov esi, dword [esp + 0x78]
cmp esi, eax
jbe 0x523106
mov esi, dword [esp + 0x74]
mov dword [esi + eax*4], ebp
jmp 0x522dee
lea eax, [0x855510]
mov dword [esp], eax
lea eax, [0x6564a0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
call fcn.0046bdd0
add esp, 0x70
ret
mov ecx, esi
call fcn.00462740
mov eax, ebp
mov ecx, ebx
call fcn.00462740
call fcn.004627a0
call fcn.00462780
mov eax, esi
mov ecx, edi
call fcn.004627a0
mov eax, ebp
mov ecx, esi
call fcn.004627a0
mov ecx, esi
mov edx, ebx
call fcn.00462780
mov eax, ecx
mov ecx, edx
call fcn.00462740
mov ecx, ebp
mov edx, eax
call fcn.00462780
mov dword [esp + 0x4c], eax
mul ebp
nop
nop
nop
mov ecx, edi
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x80]
cmp ecx, edx
jb 0x52316d
jne 0x52317f
cmp eax, ebx
jbe 0x52317f
lea eax, [esi - 1]
mov esi, dword [esp + 0x28]
mov edx, edi
lea edi, [ecx + esi]
cmp ecx, edi
jbe 0x52314d
jmp 0x523187
mov edx, edi
mov eax, esi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x90]
mov edi, esi
mov esi, eax
mov eax, dword [esp + 0x30]
jmp 0x522ecc
mov eax, ebx
mov ecx, edi
call fcn.00462740
mov eax, ebx
mov ecx, edx
call fcn.00462740
mov eax, ebp
mov ecx, ebx
call fcn.00462740
mov eax, esi
mov ecx, ebx
call fcn.00462740
mov eax, ebp
mov ecx, edx
call fcn.00462740
nop
call fcn.004612b0
jmp fcn.00522d40