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

Disassembly:
mov ecx, dword [0x8602c0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51a0ab
sub esp, 0x70
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
call fcn.004e7660
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0x18]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x90]
lea edx, [ecx + eax - 1]
test eax, eax
je 0x51a0a5
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], edx
lea eax, [0x60a200]
mov dword [esp], eax
call fcn.0040c2d0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffffff
je 0x519db5
cdq
idiv ecx
jmp 0x519db7
neg eax
mov dword [esp + 0x28], eax
imul eax, ecx
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
lea ebp, [0x60dc80]
mov dword [esp], ebp
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.0044da60
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
lea ecx, [0x60dc80]
mov dword [esp], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0044da60
mov eax, dword [esp + 0xc]
mov ecx, 1
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
xor ebp, ebp
mov esi, dword [esp + 0x30]
mov edi, esi
jmp 0x519e38
mov eax, dword [esp + 0x34]
inc eax
mov ecx, eax
mov esi, ebx
mov eax, ebp
mov ebx, edx
mov ebp, dword [esp + 0x48]
mov edx, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x28]
cmp ecx, edi
jg 0x519f98
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x88]
mov dword [esp + 0xc], esi
call ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
sar eax, 0x18
mov edx, dword [esp + 0x6c]
mov byte [edx], al
mov eax, ecx
sar ecx, 0x10
mov byte [edx + 1], cl
mov ecx, eax
sar eax, 8
mov byte [edx + 2], al
mov byte [edx + 3], cl
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x20]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, eax
sub edx, ecx
cmp eax, edx
jb 0x51a09c
mov ebx, dword [esp + 0x10]
mov ebp, eax
sub eax, edx
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x18]
mov edi, esi
sub esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and edx, esi
lea esi, [ebx + edx]
mov edx, ebx
mov ebx, dword [esp + 0x38]
cmp ebx, eax
jg 0x519f51
mov eax, ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x64], edx
mov ebp, dword [esp + 0x58]
cmp ebp, esi
je 0x519f91
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004685e0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
mov eax, 2
jmp 0x519fdc
mov ecx, dword [esp + 0x90]
cmp ecx, edx
ja 0x519fbc
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
add esp, 0x70
ret
call fcn.00467cf0
mov esi, dword [esp + 0x2c]
inc esi
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x4c]
mov ebp, eax
mov ebx, edx
mov edx, dword [esp + 0x64]
mov eax, esi
mov esi, dword [esp + 0x5c]
mov esi, dword [esp + 0x8c]
cmp esi, eax
jl 0x519e21
mov dword [esp + 0x44], ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x40]
xor esi, esi
jmp 0x51a087
movzx edi, byte [esi + ebx]
movzx ecx, byte [esi + eax]
xor edi, ecx
xchg edi, eax
mov byte [ebx + esi], al
xchg edi, eax
inc esi
mov ecx, dword [esp + 0x3c]
cmp esi, edx
jge 0x519fc1
cmp esi, ebp
jb 0x51a073
mov eax, esi
mov ecx, ebp
call fcn.00467cb0
mov ecx, eax
mov eax, edx
call fcn.00467d10
call fcn.00436f20
nop
call fcn.00466840
jmp fcn.00519d20