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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5184f5
sub esp, 0x5c
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0x64]
sub edi, esi
shl edi, 2
mov dword [esp + 0x24], edi
mov eax, edi
mov edi, dword [esp + 0x6c]
sub edi, esi
shl edi, 2
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x78]
mov ecx, edi
mov edi, dword [esp + 0x74]
sub esi, dword [edi + 0x10]
shl esi, 2
mov dword [esp + 0x18], esi
mov edx, esi
mov esi, dword [ebp + 0x14]
mov ebx, ebp
mov ebp, dword [esp + 0x70]
sub ebp, esi
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x68]
sub ebp, esi
mov esi, dword [esp + 0x7c]
sub esi, dword [edi + 0x14]
jmp 0x51826a
mov eax, dword [esp + 0xc]
lea ebp, [eax + 1]
inc esi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x24]
mov eax, edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 8]
cmp ebp, esi
je 0x518309
mov esi, dword [ebx + 4]
mov edi, dword [ebx]
mov dword [esp + 0x58], edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x4c], edi
mov edi, dword [ebx + 0xc]
imul edi, ebp
cmp esi, edi
jb 0x5184eb
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x4c]
sub esi, edi
mov dword [esp + 0x2c], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and edi, esi
mov esi, dword [esp + 0x58]
add esi, edi
mov dword [esp + 0x54], esi
mov edi, dword [esp + 0x74]
mov ebp, dword [edi + 4]
mov esi, dword [edi]
mov dword [esp + 0x58], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x4c], esi
mov edi, dword [edi + 0xc]
mov esi, dword [esp + 0x10]
imul edi, esi
cmp ebp, edi
jb 0x5184e2
mov ebp, dword [esp + 0x4c]
sub ebp, edi
mov dword [esp + 0x14], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
mov ebp, dword [esp + 0x58]
add ebp, edi
mov dword [esp + 0x50], ebp
mov edi, dword [esp + 0x54]
jmp 0x51841e
add esp, 0x5c
ret
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], edi
mov eax, 0x80808081
mov ebx, dword [esp + 0x40]
mul ebx
shr edx, 7
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x28]
movzx esi, byte [ebx + eax]
movzx ecx, byte [ebx + eax + 1]
mov dword [esp + 0x40], ecx
movzx edi, byte [ebx + eax + 2]
mov dword [esp + 0x34], edi
movzx edi, byte [ebx + eax + 3]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x44]
lea ebp, [edi + ebp - 0xffff]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
imul esi, ebp
mov edi, esi
shl esi, 8
add esi, edi
mov edi, eax
mov eax, esi
mov ecx, 0x80008001
mov esi, edx
mul ecx
shr edx, 0xf
lea eax, [edx + esi]
shr eax, 8
mov byte [edi + ebx], al
mov eax, 0x80808081
mov edx, dword [esp + 0x3c]
mul edx
shr edx, 7
mov eax, dword [esp + 0x40]
imul eax, ebp
mov esi, eax
shl eax, 8
add eax, esi
mov esi, edx
mul ecx
shr edx, 0xf
lea eax, [edx + esi]
shr eax, 8
mov byte [edi + ebx + 1], al
mov eax, 0x80808081
mov edx, dword [esp + 0x48]
mul edx
shr edx, 7
mov eax, dword [esp + 0x34]
imul eax, ebp
mov esi, eax
shl eax, 8
add eax, esi
mov esi, edx
mul ecx
shr edx, 0xf
lea eax, [edx + esi]
shr eax, 8
mov byte [edi + ebx + 2], al
mov eax, dword [esp + 0x30]
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 + 0x20]
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
mov ecx, eax
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
cmp eax, ecx
jge 0x518250
lea esi, [edx + 4]
mov edi, dword [esp + 0x14]
cmp edi, esi
jb 0x5184d9
cmp edx, esi
ja 0x5184d0
mov dword [esp + 0x4c], esi
movzx edi, byte [edx + ebp + 3]
mov dword [esp + 0x48], edi
shl edi, 8
mov dword [esp + 0x44], edi
mov esi, dword [esp + 0x48]
add edi, esi
mov dword [esp + 0x1c], edi
movzx edi, byte [edx + ebp]
imul edi, esi
mov dword [esp + 0x40], edi
shl edi, 8
mov esi, dword [esp + 0x40]
add esi, edi
mov dword [esp + 0x40], esi
movzx edi, byte [edx + ebp + 1]
mov esi, dword [esp + 0x48]
imul edi, esi
mov dword [esp + 0x3c], edi
shl edi, 8
mov esi, dword [esp + 0x3c]
add esi, edi
mov dword [esp + 0x3c], esi
movzx edi, byte [edx + ebp + 2]
mov ebp, dword [esp + 0x48]
imul edi, ebp
mov dword [esp + 0x48], edi
shl edi, 8
mov esi, dword [esp + 0x48]
add esi, edi
mov dword [esp + 0x48], esi
lea edi, [eax + 4]
mov esi, dword [esp + 0x2c]
cmp esi, edi
jb 0x5184c7
cmp eax, edi
jbe 0x51830d
mov ecx, edi
call fcn.00465ec0
mov edx, edi
mov ebx, esi
call fcn.00465ea0
mov eax, edx
mov ecx, esi
call fcn.00465ec0
mov edx, esi
mov ebx, edi
call fcn.00465ea0
mov eax, edi
mov ecx, ebp
call fcn.00465e60
mov eax, edi
mov ecx, esi
call fcn.00465e60
nop
call fcn.004649b0
jmp fcn.005181e0