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

Disassembly:
sub esp, 0x64
push ebp
push esi
mov esi, dword [esp + 0x74]
mov ebp, edx
mov dword [esp + 0x28], ecx
cmp esi, dword [esp + 0x78]
je 0x515027
mov ecx, dword [esp + 0x70]
push ebx
push edi
nop
movzx eax, word [esi]
add esi, 2
mov edx, eax
cmp eax, 0x24
je 0x514d55
mov ebx, dword [ecx + 0x14]
mov edi, edx
mov edx, dword [ecx + 0x10]
cmp edx, ebx
jae 0x514d46
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp ebx, 8
jb 0x514d36
mov ecx, dword [ecx]
xor eax, eax
mov word [ecx + edx*2], di
mov word [ecx + edx*2 + 2], ax
jmp 0x515008
push edi
mov byte [esp + 0x14], 0
push dword [esp + 0x14]
jmp 0x515002
mov ebx, dword [esp + 0x80]
cmp esi, ebx
jne 0x514d93
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514d83
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514d77
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x24
jmp 0x515008
push 0x24
mov byte [esp + 0x18], 0
push dword [esp + 0x18]
jmp 0x515002
movzx edx, word [esi]
cmp edx, 0x24
jne 0x514dda
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514dc1
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514db2
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x24
add esi, 2
jmp 0x515008
push 0x24
mov byte [esp + 0x1c], 0
push dword [esp + 0x1c]
push ecx
call fcn.00409bd0
add esi, 2
jmp 0x515008
cmp edx, 0x60
jne 0x514dec
mov edx, dword [ebp + 0x14]
push ecx
push dword [ebp + 0x18]
lea ecx, [esp + 0x3c]
jmp 0x514dfc
cmp edx, 0x27
jne 0x514e12
mov edx, dword [ebp + 0x20]
push ecx
push dword [ebp + 0x24]
lea ecx, [esp + 0x40]
call fcn.00513a00
add esp, 8
add esi, 2
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
jmp 0x51500c
cmp edx, 0x26
jne 0x514e6c
mov edx, dword [ebp + 0xc]
mov eax, 0x2aaaaaab
mov edi, dword [ebp + 8]
add esi, 2
sub edx, edi
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x51500c
movq xmm0, qword [edi]
movq qword [esp + 0x44], xmm0
movq xmm0, xmm0
push ecx
push dword [esp + 0x4c]
movq qword [esp + 0x58], xmm0
lea ecx, [esp + 0x44]
mov edx, dword [esp + 0x58]
call fcn.00513a00
add esp, 8
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
jmp 0x51500c
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x514faf
add esi, 2
lea edi, [edx - 0x30]
cmp esi, ebx
je 0x514ea8
movzx ebx, word [esi]
lea eax, [ebx - 0x30]
cmp ax, 9
ja 0x514ea8
mov eax, ebx
mov byte [esp + 0x7c], 1
mov bl, byte [esp + 0x7c]
lea edi, [edi + edi*4]
lea edi, [edi - 0x18]
add esi, 2
lea edi, [eax + edi*2]
jmp 0x514eaa
xor bl, bl
test edi, edi
jne 0x514f57
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514ed2
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514ec9
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x24
jmp 0x514ee3
push 0x24
mov byte [esp + 0x20], 0
push dword [esp + 0x20]
push ecx
call fcn.00409bd0
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514f07
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514efe
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x30
jmp 0x514f18
push 0x30
mov byte [esp + 0x24], 0
push dword [esp + 0x24]
push ecx
call fcn.00409bd0
mov ecx, dword [esp + 0x78]
test bl, bl
je 0x51500c
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514f47
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514f3b
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x30
jmp 0x515008
push 0x30
mov byte [esp + 0x28], 0
push dword [esp + 0x28]
jmp 0x515002
mov edx, dword [ebp + 0xc]
mov eax, 0x2aaaaaab
mov ebx, dword [ebp + 8]
sub edx, ebx
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x51500c
lea eax, [edi + edi*2]
movq xmm0, qword [ebx + eax*4]
lea edx, [ebx + eax*4]
movq qword [esp + 0x5c], xmm0
movq xmm0, xmm0
push ecx
push dword [esp + 0x64]
movq qword [esp + 0x70], xmm0
lea ecx, [esp + 0x48]
mov edx, dword [esp + 0x70]
call fcn.00513a00
add esp, 8
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
jmp 0x51500c
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 0x14]
cmp edx, edi
jae 0x514fcf
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
cmp edi, 8
jb 0x514fc6
mov ecx, dword [ecx]
mov dword [ecx + edx*2], 0x24
jmp 0x514fe0
push 0x24
mov byte [esp + 0x2c], 0
push dword [esp + 0x2c]
push ecx
call fcn.00409bd0
mov ecx, dword [esp + 0x78]
movzx edi, word [esi]
add esi, 2
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
cmp edx, ebx
jb 0x514d29
push edi
mov byte [esp + 0x30], 0
push dword [esp + 0x30]
push ecx
call fcn.00409bd0
mov ecx, dword [esp + 0x78]
cmp esi, dword [esp + 0x80]
jne 0x514d10
mov eax, dword [esp + 0x30]
pop edi
pop ebx
pop esi
mov dword [eax], ecx
pop ebp
add esp, 0x64
ret
mov eax, dword [esp + 0x70]
pop esi
mov dword [ecx], eax
mov eax, ecx
pop ebp
add esp, 0x64
ret