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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x56554e
sub esp, 0x5c
mov eax, dword [esp + 0x60]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
cmp ecx, ebx
jb 0x5653d5
mov ebp, dword [esp + 0x68]
cmp ebp, ecx
jl 0x565338
mov edx, dword [esp + 0x6c]
cmp edx, ecx
jb 0x565548
sub edx, ebx
mov eax, edx
neg edx
sar edx, 0x1f
and edx, ebx
mov ebp, dword [esp + 0x64]
add edx, ebp
mov dword [esp], edx
sub ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
shr ecx, 1
mov dword [esp + 0xc], ecx
call fcn.0059d690
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x56532c
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx]
cmp edx, 4
jl 0x5652c0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x24], ebp
lea ecx, [0x692900]
mov dword [esp], ecx
mov eax, ebx
mov ecx, edx
cdq
idiv ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044bce0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], ecx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x5652a5
mov dword [edx + 0x14], eax
jmp 0x5652ad
lea edi, [edx + 0x14]
call fcn.00465d80
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
xor esi, esi
jmp 0x56547f
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp], edx
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x701d41]
mov dword [esp], eax
mov dword [esp + 4], 0x30
lea eax, [esp + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x5c
ret
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
add esp, 0x5c
ret
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b140]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
lea eax, [0x6fc70f]
mov dword [esp], eax
mov dword [esp + 4], 0x20
lea eax, [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x5c
ret
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b140]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b140]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
lea eax, [0x6fdd7b]
mov dword [esp], eax
mov dword [esp + 4], 0x23
lea eax, [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
add esp, 0x5c
ret
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
mov ebp, edi
cmp esi, ecx
jge 0x565519
mov edi, esi
imul esi, eax
lea ebp, [edi + 1]
mov dword [esp + 0x2c], ebp
imul ebp, eax
cmp ebx, ebp
jb 0x56553f
cmp ebp, esi
jb 0x565536
mov ebp, dword [edx + 0x14]
mov dword [esp + 0x40], ebp
mov ebp, dword [edx + 0x18]
sub ebx, esi
mov dword [esp + 0x28], ebx
neg ebx
shl esi, 1
sar ebx, 0x1f
and ebx, esi
mov esi, dword [esp + 0x34]
add ebx, esi
cmp edi, ebp
jae 0x56552d
mov dword [esp + 0x3c], ebx
lea ebp, [edi + edi*2]
mov edi, esi
mov esi, dword [esp + 0x40]
mov dword [esi + ebp*4 + 4], eax
mov ebx, dword [esp + 0x28]
mov dword [esi + ebp*4 + 8], ebx
lea ebx, [esi + ebp*4]
mov dword [esp + 0x38], ebx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x5654ff
mov ebx, dword [esp + 0x3c]
mov dword [esi + ebp*4], ebx
jmp 0x565475
mov ebx, edi
mov edi, dword [esp + 0x38]
mov ebp, eax
mov eax, dword [esp + 0x3c]
call fcn.00465d80
mov eax, ebp
mov edi, ebx
jmp 0x565475
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
add esp, 0x5c
ret
mov eax, edi
mov ecx, ebp
call fcn.00465e00
mov eax, esi
mov ecx, ebp
call fcn.00465e60
mov ecx, ebp
mov edx, ebx
call fcn.00465e40
call fcn.00465e50
nop
call fcn.004649b0
jmp fcn.005651c0