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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov rsi, rcx
mov r13, qword [rcx]
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x48], 0
mov bpl, byte [r13 + 0x26]
mov dword [rsp + 0x3c], eax
mov rcx, rsi
call fcn.0064b850
test rax, rax
mov r15, rax
je 0x64c11f
cmp byte [rax + 0x10], 0
je 0x64c11f
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.0064b5a0
mov rdx, rax
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x64c12f
mov rbx, qword [rdx + 0x18]
movzx eax, byte [rbx + 2]
movzx edx, byte [rbx + 3]
shl eax, 8
add eax, edx
movzx edx, byte [r15 + 0x12]
mov dword [rsp + 0x38], eax
movzx eax, byte [r13 + 0x27]
imul eax, edx
add eax, 4
cdqe
add rbx, rax
movzx eax, byte [r15 + 0x12]
cmp eax, dword [rsp + 0x38]
jge 0x64c103
lea rax, [rsp + 0x50]
movsd xmm6, qword [0x007a9078]
lea r14, [0x007a6880]
xor r12d, r12d
mov edi, 2
mov qword [rsp + 0x30], rax
cmp dword [rsp + 0x3c], r12d
jle 0x64c072
imul rax, r12, 0x18
add rax, qword [rsi + 0x18]
mov r8d, dword [rax + 4]
cmp r8d, 0x45
jle 0x64bf3b
mov r11, qword [rax + 0x10]
cmp r8d, 0x47
mov edx, dword [r11 + 0x38]
jne 0x64bc88
cmp byte [r15 + 0x10], 1
jne 0x64bc88
mov rcx, qword [rbx]
bswap rcx
mov qword [r11 + 0x48], rcx
cmp bpl, 1
mov ecx, dword [rbx + 0xc]
je 0x64bdae
cmp edx, 6
je 0x64bd28
jg 0x64bcae
cmp edx, 4
je 0x64bd58
jmp 0x64bd88
cmp edx, 8
je 0x64bcf2
cmp edx, 0xa
jne 0x64bd88
mov r9d, dword [rbx + 0x2c]
bswap r9d
mov dword [rsp + 0x28], r9d
mov r9d, dword [rbx + 0x28]
cvtss2sd xmm0, dword [rsp + 0x28]
bswap r9d
mov dword [rsp + 0x28], r9d
movsd qword [rsp + 0x98], xmm0
cvtss2sd xmm0, dword [rsp + 0x28]
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
mov dword [rsp + 0x28], r9d
mov r9d, dword [rbx + 0x20]
cvtss2sd xmm0, dword [rsp + 0x28]
bswap r9d
mov dword [rsp + 0x28], r9d
movsd qword [rsp + 0x88], xmm0
cvtss2sd xmm0, dword [rsp + 0x28]
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
mov dword [rsp + 0x28], r9d
mov r9d, dword [rbx + 0x18]
cvtss2sd xmm0, dword [rsp + 0x28]
bswap r9d
mov dword [rsp + 0x28], r9d
movsd qword [rsp + 0x78], xmm0
cvtss2sd xmm0, dword [rsp + 0x28]
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
mov dword [rsp + 0x28], r9d
mov r9d, dword [rbx + 0x10]
cvtss2sd xmm0, dword [rsp + 0x28]
bswap r9d
mov dword [rsp + 0x28], r9d
movsd qword [rsp + 0x68], xmm0
cvtss2sd xmm0, dword [rsp + 0x28]
movsd qword [rsp + 0x60], xmm0
bswap ecx
mov dword [rsp + 0x28], ecx
mov ecx, dword [rbx + 8]
cvtss2sd xmm0, dword [rsp + 0x28]
bswap ecx
mov dword [rsp + 0x28], ecx
movsd qword [rsp + 0x58], xmm0
cvtss2sd xmm0, dword [rsp + 0x28]
jmp 0x64be82
cmp edx, 6
je 0x64be25
jg 0x64bdc3
cmp edx, 4
je 0x64be49
jmp 0x64be6d
cmp edx, 8
je 0x64bdfb
cmp edx, 0xa
jne 0x64be6d
mov r9d, dword [rbx + 0x2c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x28]
bswap r9d
movsd qword [rsp + 0x98], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x90], xmm0
mov r9d, dword [rbx + 0x24]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x20]
bswap r9d
movsd qword [rsp + 0x88], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x80], xmm0
mov r9d, dword [rbx + 0x1c]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x18]
bswap r9d
movsd qword [rsp + 0x78], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x70], xmm0
mov r9d, dword [rbx + 0x14]
bswap r9d
cvtsi2sd xmm0, r9d
mov r9d, dword [rbx + 0x10]
bswap r9d
movsd qword [rsp + 0x68], xmm0
cvtsi2sd xmm0, r9d
movsd qword [rsp + 0x60], xmm0
bswap ecx
cvtsi2sd xmm0, ecx
mov ecx, dword [rbx + 8]
bswap ecx
movsd qword [rsp + 0x58], xmm0
cvtsi2sd xmm0, ecx
cmp r8d, 0x46
movsd qword [rsp + 0x50], xmm0
mov rax, qword [rax + 8]
jne 0x64beb7
mov dword [rsp + 0x4c], 0
lea r9, [rsp + 0x4c]
mov rcx, r11
mov r8, qword [rsp + 0x30]
call rax
mov edx, dword [rsp + 0x4c]
xorps xmm0, xmm0
test edx, edx
cmove edi, edx
jmp 0x64bf26
mov rcx, qword [rsp + 0x30]
movsd xmm0, qword [r15]
mov qword [rsp + 0x28], r11
mov qword [r11 + 0x28], rcx
movzx edx, byte [r15 + 0x10]
movsd qword [r11 + 0x50], xmm0
movsd qword [r11 + 0x60], xmm0
mov rcx, r11
dec edx
mov dword [r11 + 0x3c], edx
movzx edx, byte [r15 + 0x11]
mov dword [r11 + 0x58], edx
mov dword [r11 + 0x5c], edx
call rax
mov r11, qword [rsp + 0x28]
mov edx, dword [r11 + 0x5c]
movsd xmm0, qword [r11 + 0x60]
cmp edi, edx
cmovg edi, edx
ucomisd xmm6, xmm0
ja 0x64bf26
xorps xmm1, xmm1
movapd xmm2, xmm6
cmpltsd xmm2, xmm1
movapd xmm1, xmm2
andps xmm0, xmm2
andnps xmm1, xmm6
orps xmm0, xmm1
test eax, eax
mov dword [rsp + 0x48], eax
jne 0x64c12f
movapd xmm6, xmm0
jmp case.0x64bfca.0
cmp byte [r15 + 0x10], 1
mov ecx, dword [rax]
lea edx, [r8 - 0x3f]
jne 0x64bfac
lea ecx, [rcx*4 + 8]
cmp bpl, 1
movsxd rcx, ecx
mov ecx, dword [rbx + rcx]
bswap ecx
mov dword [rsp + 0x28], ecx
jne 0x64bf67
cvtsi2sd xmm0, ecx
jmp 0x64bf6d
cvtss2sd xmm0, dword [rsp + 0x28]
cmp edx, 6
ja case.0x64bf79.2
movsxd rdx, dword [r14 + rdx*4]
add rdx, r14
jmp rdx
movsd xmm1, qword [rax + 8]
ucomisd xmm1, xmm0
jmp 0x64bf8b
ucomisd xmm0, qword [rax + 8]
jbe case.0x64bfca.1
jmp case.0x64bfca.0
ucomisd xmm0, qword [rax + 8]
jp case.0x64bfca.1
jne case.0x64bfca.1
jmp case.0x64bfca.0
and ecx, 0xfe
cmp edx, 4
lea rcx, [rbx + rcx*4 + 8]
ja case.default.0x64bfca
lea r10, [0x007a689c]
movsxd rdx, dword [r10 + rdx*4]
add rdx, r10
jmp rdx
mov edx, dword [rcx]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x28], edx
jne 0x64bfe0
cvtsi2sd xmm0, edx
jmp 0x64bfe6
cvtss2sd xmm0, dword [rsp + 0x28]
movsd xmm1, qword [rax + 8]
ucomisd xmm1, xmm0
jb case.0x64bfca.1
mov eax, dword [rcx + 4]
cmp bpl, 1
bswap eax
mov dword [rsp + 0x28], eax
jne 0x64c006
cvtsi2sd xmm0, eax
jmp 0x64c00c
cvtss2sd xmm0, dword [rsp + 0x28]
ucomisd xmm0, xmm1
jmp 0x64c057
mov edx, dword [rcx]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x28], edx
jne 0x64c026
cvtsi2sd xmm0, edx
jmp case.0x64bf79.3
cvtss2sd xmm0, dword [rsp + 0x28]
movsd xmm1, qword [rax + 8]
ucomisd xmm1, xmm0
jmp 0x64c057
mov edx, dword [rcx + 4]
cmp bpl, 1
bswap edx
mov dword [rsp + 0x28], edx
jne 0x64c04c
cvtsi2sd xmm0, edx
jmp case.0x64bf79.5
cvtss2sd xmm0, dword [rsp + 0x28]
ucomisd xmm0, qword [rax + 8]
jb case.0x64bfca.1
inc r12
test edi, edi
jne 0x64bc48
inc byte [r15 + 0x12]
movzx eax, byte [r13 + 0x27]
jmp 0x64bc15
test edi, edi
je 0x64bc18
mov r14b, byte [r15 + 0x12]
mov r12b, byte [r15 + 0x10]
lea eax, [r14 + 1]
dec r12b
mov byte [r15 + 0x12], al
je 0x64c0bd
mov rbx, qword [rbx]
mov r8d, dword [rsi + 0x24]
xor edx, edx
bswap rbx
cmp r8d, edx
jle 0x64c0b8
imul rcx, rdx, 0x18
inc rdx
add rcx, qword [rsi + 0x30]
cmp qword [rcx + 8], rbx
jne 0x64c09b
mov eax, 0x10b
jmp 0x64c12f
xor r14d, r14d
jmp 0x64c0c1
mov rbx, qword [r15 + 8]
movzx eax, al
cmp eax, dword [rsp + 0x38]
jl 0x64c0d2
mov rcx, rsi
call fcn.0064b950
xorps xmm0, xmm0
ucomisd xmm0, xmm6
jbe 0x64c0df
movapd xmm6, xmm0
movapd xmm1, xmm6
movzx r8d, r12b
mov rcx, rsi
call fcn.0064b870
test rax, rax
mov r15, rax
je 0x64c12a
mov byte [rax + 0x11], dil
mov qword [rax + 8], rbx
mov byte [rax + 0x12], r14b
movzx eax, byte [r15 + 0x12]
cmp eax, dword [rsp + 0x38]
jl 0x64bbb4
mov rcx, rsi
call fcn.0064b950
jmp 0x64bbb4
test r15, r15
sete byte [rsi + 8]
xor eax, eax
jmp 0x64c12f
mov eax, 7
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret