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

Disassembly:
mov ecx, dword [0x7c3e14]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5163a7
sub esp, 0x54
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x5161d0
inc esi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x50]
mov byte [esp + 0x40], al
mov eax, esi
mov esi, ecx
movzx ecx, byte [esp + 0x40]
mov ecx, edx
mov edx, ebp
mov ebp, ebx
mov ebx, ecx
movzx ecx, byte [esp + 0x40]
mov byte [esp + 0x23], cl
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jle 0x516387
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0x58]
lea ebx, [ecx + eax*8]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x48], ebp
mov ebx, dword [ebx]
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x64]
mov esi, dword [edx]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call esi
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x516235
movzx ebx, byte [esp + 0x23]
cmp bl, al
jne 0x5162d7
mov byte [esp + 0x23], al
mov ebx, dword [esp + 0x30]
inc ebx
mov ebp, dword [esp + 0x34]
cmp ebp, ebx
jb 0x51624c
mov edx, dword [esp + 0x4c]
jmp 0x51628d
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5e7020]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov ebp, edx
mov edx, ebx
mov ebx, eax
movzx eax, byte [esp + 0x23]
lea esi, [edx + ebx*8 - 8]
mov edi, dword [esp + 0x28]
mov dword [esi], edi
mov esi, dword [0x7c3fa0]
lea edi, [edx + ebx*8 - 4]
test esi, esi
je 0x5162c2
mov esi, edi
call fcn.00468410
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov eax, dword [esi]
mov dword [edi + 4], eax
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x24]
mov edi, esi
mov esi, ecx
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x5161ad
mov eax, dword [esp + 0x3c]
inc eax
mov ebp, dword [esp + 0x38]
cmp ebp, eax
jb 0x5162ea
mov edi, dword [esp + 0x50]
jmp 0x516327
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5e7020]
mov dword [esp + 0x10], eax
call fcn.0044db70
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
movzx ebx, byte [esp + 0x23]
mov ebp, esi
lea esi, [edi + eax*8 - 8]
mov edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esi], ecx
mov ecx, dword [0x7c3fa0]
lea esi, [edi + eax*8 - 4]
test ecx, ecx
je 0x516361
mov dword [esp + 0x2c], eax
mov ecx, edi
call fcn.00468410
mov eax, dword [esp + 0x48]
mov dword [edi], eax
mov edx, dword [esi]
mov dword [edi + 4], edx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov edi, ecx
mov ecx, dword [esp + 0x48]
mov dword [esi], ecx
mov esi, edx
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov ecx, ebp
mov dword [esp + 0x50], edi
mov ebp, dword [esp + 0x34]
mov edi, eax
movzx eax, byte [esp + 0x23]
jmp 0x5161ad
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], esi
add esp, 0x54
ret
call fcn.00467000
jmp fcn.00516180