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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x5170e7
sub esp, 0x94
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.0051aab0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
test bl, bl
je 0x517071
mov byte [esp + 0x42], al
mov dword [esp + 0x50], ecx
mov byte [esp + 0x43], dl
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x516ca3
mov eax, dword [esp + 0x48]
lea ebp, [eax + 1]
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov edi, edx
movzx edx, byte [esp + 0x43]
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x9c]
cmp ebx, esi
jge 0x516f01
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xa0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
call fcn.00516610
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
test ecx, ecx
jne 0x516ecb
mov dword [esp + 0x58], ecx
cmp esi, 0x14
jg 0x516e95
cmp esi, 0xc
jne 0x516e7e
mov esi, 0x13
movzx ecx, byte [esp + 0x42]
test cl, cl
je 0x516dca
nop
lea ebx, [ebp + eax]
cmp ebx, eax
jge 0x516db9
mov eax, 1
test al, al
je 0x516c8b
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x5c99b1]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0x12
lea eax, [0x6011e0]
mov dword [esp], eax
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00407740
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
add esp, 0x94
ret
mov ebp, dword [esp + 0x9c]
cmp ebx, ebp
setg al
jmp 0x516d3b
test edi, edi
je 0x516e55
mov ebx, 1
test bl, bl
je 0x516d29
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea eax, [0x5cac2e]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x15
lea eax, [0x6011c0]
mov dword [esp], eax
lea eax, [esp + 0x74]
mov dword [esp + 4], eax
call fcn.00407740
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
add esp, 0x94
ret
movzx edi, byte [esp + 0x43]
xchg edi, eax
cmp bl, al
xchg edi, eax
je 0x516e6a
mov ebx, 1
jmp 0x516dd7
mov edi, dword [esp + 0x50]
cmp esi, edi
xchg esi, ebx
setne bl
xchg esi, ebx
mov ebx, esi
jmp 0x516dd7
cmp esi, 0x12
je 0x516d17
cmp esi, 0x14
je 0x516d17
jmp 0x516d1c
cmp esi, 0x16
je 0x516d17
lea ecx, [esi - 0x17]
cmp ecx, 1
ja 0x516eb4
mov ecx, dword [esp + 0x58]
mov esi, 0x17
jmp 0x516d1c
cmp esi, 0x1b
jne 0x516ec2
mov ecx, dword [esp + 0x58]
jmp 0x516d17
mov ecx, dword [esp + 0x58]
jmp 0x516d1c
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
add esp, 0x94
ret
mov dword [esp + 0x68], edi
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
call fcn.00494790
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x54], edx
lea edi, [esp + 0x7c]
mov ebx, eax
xor eax, eax
call fcn.0044cf9a
lea eax, [esp + 0x1c]
mov dword [esp + 0x5c], eax
xor ecx, ecx
xor ebp, ebp
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x58]
jmp 0x516f7b
mov ebx, dword [esp + 0x4c]
inc ebx
mov ebp, eax
mov esi, ecx
mov edi, edx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov ecx, ebx
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x48]
cmp ecx, eax
jge 0x517043
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], ebp
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.004928d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x98]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x5c]
lea esi, [esp + 0x7c]
call fcn.0044d474
call fcn.00517100
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x516f62
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
add esp, 0x94
ret
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], esi
add esp, 0x94
ret
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea eax, [0x5cc6d9]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x19
lea eax, [0x6011c0]
mov dword [esp], eax
lea eax, [esp + 0x74]
mov dword [esp + 4], eax
call fcn.00407740
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
add esp, 0x94
ret
call fcn.0044b750
jmp fcn.00516c20