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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51809f
sub esp, 0x64
nop
nop
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x6c]
sub ebp, esi
mov edi, dword [esp + 0x78]
mov eax, ebp
mov ebp, dword [esp + 0x70]
sub edi, ebp
mov ecx, edi
mov edi, dword [esp + 0x68]
mov edx, esi
mov esi, dword [edi + 0x14]
mov ebx, ebp
sub ebp, esi
mov esi, dword [edi + 0xc]
mov dword [esp + 0x4c], esi
imul ebp, esi
mov edi, dword [edi + 0x10]
sub edx, edi
lea ebp, [ebp + edx*4]
mov edi, dword [esp + 0x7c]
mov edx, ebp
mov ebp, dword [edi + 0x14]
mov esi, dword [esp + 0x84]
sub esi, ebp
mov ebp, dword [edi + 0xc]
mov dword [esp + 0x48], ebp
imul esi, ebp
mov edi, dword [edi + 0x10]
mov ebp, dword [esp + 0x80]
sub ebp, edi
lea ebp, [esi + ebp*4]
mov esi, dword [esp + 0x84]
cmp ebx, esi
jl 0x517dea
jne 0x517e02
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x80]
cmp esi, edi
jg 0x517e02
shl eax, 2
xor edi, edi
mov ebx, 4
mov dword [esp + 0x24], ebx
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
jmp 0x517e3d
lea edi, [ecx - 1]
mov esi, dword [esp + 0x4c]
mov ebx, edi
imul edi, esi
add edi, edx
mov edx, edi
mov edi, dword [esp + 0x48]
imul ebx, edi
add ebp, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov ebx, edi
lea edi, [eax - 1]
shl edi, 2
mov eax, 0xfffffffc
mov eax, 0xfffffffc
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
jmp 0x517e64
dec ecx
mov ebp, dword [esp + 0x3c]
add edx, ebp
mov edi, dword [esp + 0x20]
add edi, ebx
mov esi, ebp
mov ebp, edi
mov edi, dword [esp + 0x2c]
test ecx, ecx
jle 0x517ef3
mov dword [esp + 0x20], ebp
mov esi, dword [esp + 0x68]
mov edi, dword [esi + 4]
mov ebp, dword [esi]
mov esi, dword [esi + 8]
cmp edx, edi
ja 0x518095
sub esi, edx
mov dword [esp + 0x38], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add ebp, esi
mov dword [esp + 0x5c], ebp
mov esi, dword [esp + 0x7c]
mov ebp, dword [esi + 4]
mov edi, dword [esi]
mov dword [esp + 0x60], edi
mov esi, dword [esi + 8]
mov edi, dword [esp + 0x20]
cmp edi, ebp
ja 0x51808c
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
sub esi, edi
mov dword [esp + 0xc], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edi
mov ebp, dword [esp + 0x60]
add ebp, esi
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
jmp 0x517fcb
add esp, 0x64
ret
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x30]
movzx edx, byte [ebx + edi]
imul edx, ebp
mov dword [esp + 0x44], edx
shl edx, 8
mov ecx, dword [esp + 0x44]
add ecx, edx
mov eax, 0x80008001
mul ecx
shr edx, 0xf
mov eax, dword [esp + 8]
add eax, edx
shr eax, 8
mov byte [edi + ebx], al
movzx eax, byte [ebx + edi + 1]
imul eax, ebp
mov ecx, eax
shl eax, 8
add eax, ecx
mov ecx, eax
mov eax, 0x80008001
mul ecx
shr edx, 0xf
mov eax, dword [esp + 0x10]
add eax, edx
shr eax, 8
mov byte [edi + ebx + 1], al
movzx eax, byte [ebx + edi + 2]
imul eax, ebp
mov ecx, eax
shl eax, 8
add eax, ecx
mov ecx, 0x80008001
mul ecx
shr edx, 0xf
mov eax, dword [esp + 0x18]
add eax, edx
shr eax, 8
mov byte [edi + ebx + 2], al
movzx eax, byte [ebx + edi + 3]
imul ebp, eax
mov eax, ebp
shl ebp, 8
add eax, ebp
mul ecx
shr edx, 0xf
mov eax, dword [esp + 0x1c]
add eax, edx
shr eax, 8
mov byte [edi + ebx + 3], al
mov eax, dword [esp + 0x24]
lea edx, [ebx + eax]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0xc]
mov eax, ebx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
cmp eax, edi
je 0x517e4f
lea esi, [edi + 4]
mov ebp, dword [esp + 0xc]
cmp ebp, esi
jb 0x518083
cmp edi, esi
ja 0x51807a
mov dword [esp + 0x4c], esi
mov ebp, dword [esp + 0x58]
movzx esi, byte [edi + ebp]
mov dword [esp + 0x44], esi
shl esi, 8
mov ebp, dword [esp + 0x44]
add ebp, esi
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x58]
movzx ebp, byte [edi + esi + 1]
mov dword [esp + 0x44], ebp
shl ebp, 8
mov esi, dword [esp + 0x44]
add ebp, esi
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x58]
movzx ebp, byte [edi + esi + 2]
mov dword [esp + 0x44], ebp
shl ebp, 8
mov esi, dword [esp + 0x44]
add ebp, esi
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x58]
movzx esi, byte [edi + esi + 3]
mov dword [esp + 0x44], esi
shl esi, 8
mov ebp, dword [esp + 0x44]
lea edi, [esi + ebp]
mov dword [esp + 0x1c], edi
lea ebp, [esi + ebp - 0xffff]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
cmp esi, edi
jae 0x517ef7
mov edx, edi
mov ebx, esi
call fcn.00465ea0
mov eax, edi
mov ecx, esi
call fcn.00465ec0
mov edx, esi
mov ebx, ebp
call fcn.00465ea0
mov eax, edi
mov ecx, ebp
call fcn.00465e60
mov eax, edx
mov ecx, edi
call fcn.00465e60
nop
call fcn.004649b0
jmp fcn.00517d50