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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x519dbb
sub esp, 0x7c
lea eax, [0x6b43c0]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
call fcn.00409930
mov eax, dword [esp + 8]
lea ecx, [0x7869d0]
cmp eax, ecx
je 0x519934
xor eax, eax
jmp 0x519957
mov dword [esp], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.00403940
movzx eax, byte [esp + 0xc]
test al, al
je 0x519af1
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x84]
mov ebp, edx
sub edx, ebx
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x88]
mov eax, esi
sub esi, edi
mov ecx, ebp
mov ebp, dword [esp + 0x8c]
add edx, ebp
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x90]
add esi, edx
cmp ebp, ebx
jg 0x5199b1
mov esi, edi
mov esi, 1
mov dword [esp + 0x48], esi
mov esi, edi
jmp 0x519b2d
cmp edx, edi
jg 0x5199c7
mov esi, edi
mov esi, 1
mov dword [esp + 0x48], esi
mov esi, edi
jmp 0x519b2d
mov edx, dword [esp + 0x14]
cmp ecx, edx
jl 0x5199ed
mov esi, edi
mov edx, dword [esp + 0x90]
mov edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x90]
jmp 0x519b2d
cmp eax, esi
jl 0x519a0f
mov esi, edi
mov edx, dword [esp + 0x90]
mov edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x90]
jmp 0x519b2d
cmp ebx, edx
jge 0x519ad6
cmp ebp, ecx
jle 0x519abb
cmp edi, esi
jge 0x519aa0
mov edx, dword [esp + 0x90]
cmp edx, eax
jle 0x519a8e
cmp edi, eax
jg 0x519a38
jne 0x519a7c
cmp ebx, ecx
jle 0x519a6a
dec ebp
lea esi, [ebx - 1]
dec edx
lea ebx, [edi - 1]
mov dword [esp + 0x70], eax
mov eax, 0xffffffff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], eax
mov eax, esi
mov esi, edi
mov edi, edx
mov edx, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x70]
jmp 0x519b2d
mov esi, edi
mov esi, 1
mov dword [esp + 0x48], esi
mov esi, edi
jmp 0x519b2d
mov esi, edi
mov esi, 1
mov dword [esp + 0x48], esi
mov esi, edi
jmp 0x519b2d
mov esi, edi
mov esi, 1
mov dword [esp + 0x48], esi
mov esi, edi
jmp 0x519b2d
mov esi, edi
mov edx, dword [esp + 0x90]
mov edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x90]
jmp 0x519b2d
mov esi, edi
mov edx, dword [esp + 0x90]
mov edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x90]
jmp 0x519b2d
mov esi, edi
mov edx, dword [esp + 0x90]
mov edx, 1
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x90]
jmp 0x519b2d
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x88]
mov edi, esi
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov eax, 1
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edx
lea edx, [edi + eax]
sub edx, esi
mov eax, edx
mov edx, dword [esp + 0xac]
add edx, edi
sub edx, esi
lea esi, [ebx + ecx]
mov ecx, edx
mov edx, dword [esp + 0x84]
sub esi, edx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xa8]
add esi, ebx
sub esi, edx
mov dword [esp + 0x38], esi
sub ebp, ebx
mov edx, dword [esp + 0x2c]
add ebp, edx
mov dword [esp + 0x28], ebp
nop
mov ebp, dword [esp + 0x80]
mov edx, dword [ebp + 0x14]
sub edi, edx
imul edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub ebx, edx
lea edx, [edi + ebx*4]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
jmp 0x519be1
mov ebx, dword [esp + 0x48]
add edi, ebx
add eax, ebx
add ecx, ebx
mov esi, dword [esp + 0x80]
mov esi, dword [esi + 0xc]
imul esi, ebx
mov ebx, dword [esp + 0x40]
add ebx, esi
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x20], edi
mov edx, ebx
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp ebp, edi
je 0x519bfe
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
jmp 0x519cf3
add esp, 0x7c
ret
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], edx
movzx ebx, byte [ebp + edx]
movzx esi, byte [edx + ebp + 1]
movzx eax, byte [edx + ebp + 2]
mov dword [esp + 0x50], eax
movzx eax, byte [edx + ebp + 3]
mov dword [esp + 0x4c], eax
imul edi, ecx
mov eax, 0x80008001
mul edi
shr edx, 0xf
lea eax, [edx - 0xffff]
neg eax
imul ebx, eax
mov edx, ebx
shl ebx, 8
add edx, ebx
mov ebx, dword [esp + 0x5c]
imul ebx, ecx
add edx, ebx
mov ebx, eax
mov eax, 0x80008001
mul edx
shr edx, 0x17
mov eax, dword [esp + 0x78]
mov byte [eax + ebp], dl
imul esi, ebx
mov edx, esi
shl esi, 8
add edx, esi
mov esi, dword [esp + 0x58]
imul esi, ecx
add edx, esi
mov esi, eax
mov eax, 0x80008001
mul edx
shr edx, 0x17
mov byte [esi + ebp + 1], dl
mov eax, dword [esp + 0x50]
imul eax, ebx
mov edx, eax
shl eax, 8
add eax, edx
mov edx, dword [esp + 0x54]
imul ecx, edx
add eax, ecx
mov ecx, 0x80008001
mul ecx
shr edx, 0x17
mov byte [esi + ebp + 2], dl
mov eax, dword [esp + 0x4c]
imul ebx, eax
mov eax, ebx
shl ebx, 8
add eax, ebx
add eax, edi
mul ecx
shr edx, 0x17
mov byte [esi + ebp + 3], dl
mov eax, dword [esp + 0x48]
lea edx, [ebp + eax*4]
mov ebx, dword [esp + 0x30]
add ebx, eax
mov ebp, dword [esp + 0x3c]
lea esi, [ebp + eax]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x28]
cmp ebx, edx
je 0x519ba7
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], esi
mov ebp, dword [esp + 0xa4]
mov edi, dword [ebp + 4]
mov edx, dword [ebp]
mov ebx, dword [ebp + 0x14]
sub ecx, ebx
imul ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
sub esi, ebx
lea ebx, [esi + ecx]
cmp edi, ebx
jbe 0x519db1
movzx ecx, byte [ebx + edx]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [esp + 0x98]
mov dword [esp], ebp
mov esi, dword [esp + 0x30]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call ebx
mov eax, dword [esp + 0x5c]
mov ecx, eax
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
mov ebp, dword [esp + 0x44]
lea esi, [ebp + 4]
movzx edi, word [esp + 0x12]
movzx eax, word [esp + 0xc]
mov dword [esp + 0x5c], eax
movzx eax, word [esp + 0xe]
mov dword [esp + 0x58], eax
movzx eax, word [esp + 0x10]
cmp ebx, esi
jb 0x519daa
cmp ebp, esi
jbe 0x519c02
mov eax, ebp
mov ecx, esi
call fcn.00465ec0
mov edx, esi
call fcn.00465ea0
mov eax, ebx
mov ecx, edi
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.005198f0