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

Disassembly:
mov ecx, dword [0x8cbf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51d5c7
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 0x51d3f0
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 0x51d5a7
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 0x51d455
movzx ebx, byte [esp + 0x23]
cmp bl, al
jne 0x51d4f7
mov byte [esp + 0x23], al
mov ebx, dword [esp + 0x30]
inc ebx
mov ebp, dword [esp + 0x34]
cmp ebp, ebx
jb 0x51d46c
mov edx, dword [esp + 0x4c]
jmp 0x51d4ad
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, [0x63dd80]
mov dword [esp + 0x10], eax
call fcn.00451aa0
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 [0x8cc0e0]
lea edi, [edx + ebx*8 - 4]
test esi, esi
je 0x51d4e2
mov esi, edi
call fcn.0046bec0
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 0x51d3cd
mov eax, dword [esp + 0x3c]
inc eax
mov ebp, dword [esp + 0x38]
cmp ebp, eax
jb 0x51d50a
mov edi, dword [esp + 0x50]
jmp 0x51d547
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, [0x63dd80]
mov dword [esp + 0x10], eax
call fcn.00451aa0
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 [0x8cc0e0]
lea esi, [edi + eax*8 - 4]
test ecx, ecx
je 0x51d581
mov dword [esp + 0x2c], eax
mov ecx, edi
call fcn.0046bec0
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 0x51d3cd
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.0046aab0
jmp fcn.0051d3a0