Function at 0x969530
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, 0xc8
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
pxor xmm7, xmm7
mov rax, qword [rcx]
mov ebx, dword [rcx + 0x10]
mov qword [rsp + 0x30], rax
movzx r12d, byte [rax + 0x26]
mov r15, rcx
lea eax, [rbx - 1]
mov dword [rsp + 0x48], 0
lea rax, [rax + rax*2 + 3]
mov dword [rsp + 0x3c], ebx
lea r13, [rax*8]
cmp byte [r15 + 9], 0
lea rbp, [r15 + 0x40]
jne 0x9695aa
mov eax, dword [r15 + 0x24]
test eax, eax
je 0x969959
mov rbp, qword [r15 + 0x30]
test rbp, rbp
je 0x969959
cmp byte [rbp + 0x10], 0
je 0x969ca2
lea rdx, [rsp + 0x48]
mov rcx, r15
call fcn.009691b0
mov rdx, rax
mov eax, dword [rsp + 0x48]
test eax, eax
jne 0x969964
mov rsi, qword [rdx + 0x18]
movzx eax, byte [rsi + 2]
movzx edx, byte [rsi + 3]
shl eax, 8
lea ebx, [rax + rdx]
mov rax, qword [rsp + 0x30]
movzx edx, byte [rbp + 0x12]
mov dword [rsp + 0x38], ebx
movzx eax, byte [rax + 0x27]
imul eax, edx
add eax, 4
cdqe
add rsi, rax
cmp edx, ebx
jge 0x9698a3
mov edx, dword [rsp + 0x3c]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
test edx, edx
jle 0x969900
mov rax, qword [0x00ea51c0]
xor ebx, ebx
mov r14d, 2
movq xmm6, rax
mov rcx, qword [r15 + 0x18]
add rcx, rbx
mov eax, dword [rcx + 4]
cmp eax, 0x45
jg 0x969672
cmp byte [rbp + 0x10], 1
mov edx, dword [rcx]
je 0x969990
sub eax, 0x3f
and edx, 0xfe
lea rdx, [rsi + rdx*4 + 8]
cmp eax, 4
ja case.default.0x969670
lea rdi, [0x00e9b1c8]
movsxd rax, dword [rdi + rax*4]
add rax, rdi
jmp rax
mov rdi, qword [rcx + 0x10]
cmp eax, 0x47
mov edx, dword [rdi + 0x38]
je 0x969bb1
cmp r12b, 1
je 0x969a50
cmp edx, 6
je 0x96971d
jle 0x969a40
cmp edx, 8
je 0x9696e3
cmp edx, 0xa
jne 0x969785
mov r8d, dword [rsi + 0x2c]
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
mov r8d, dword [rsi + 0x28]
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x98], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm4, r8d
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x90], xmm0
mov r8d, dword [rsi + 0x24]
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
mov r8d, dword [rsi + 0x20]
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x88], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x80], xmm0
mov r8d, dword [rsi + 0x1c]
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
mov r8d, dword [rsi + 0x18]
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x78], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm2, r8d
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [rsi + 0x14]
pxor xmm0, xmm0
bswap r8d
movd xmm4, r8d
mov r8d, dword [rsi + 0x10]
cvtss2sd xmm0, xmm4
movsd qword [rsp + 0x68], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm5, r8d
cvtss2sd xmm0, xmm5
movsd qword [rsp + 0x60], xmm0
mov r8d, dword [rsi + 0xc]
cmp eax, 0x46
pxor xmm0, xmm0
mov r10, qword [rcx + 8]
bswap r8d
movd xmm2, r8d
mov r8d, dword [rsi + 8]
cvtss2sd xmm0, xmm2
movsd qword [rsp + 0x58], xmm0
pxor xmm0, xmm0
bswap r8d
movd xmm3, r8d
cvtss2sd xmm0, xmm3
movsd qword [rsp + 0x50], xmm0
je 0x969b5e
mov rax, qword [rsp + 0x28]
mov rcx, rdi
movsd xmm0, qword [rbp]
mov qword [rdi + 0x28], rax
movzx eax, byte [rbp + 0x10]
movsd qword [rdi + 0x50], xmm0
movsd qword [rdi + 0x60], xmm0
sub eax, 1
mov dword [rdi + 0x3c], eax
movzx eax, byte [rbp + 0x11]
mov dword [rdi + 0x58], eax
mov dword [rdi + 0x5c], eax
call r10
mov edx, dword [rdi + 0x5c]
movsd xmm0, qword [rdi + 0x60]
cmp r14d, edx
cmovg r14d, edx
comisd xmm6, xmm0
ja 0x969bd0
movapd xmm1, xmm6
cmpnltsd xmm1, xmm7
andpd xmm6, xmm1
andnpd xmm1, xmm0
orpd xmm6, xmm1
test eax, eax
mov dword [rsp + 0x48], eax
jne 0x969964
test r14d, r14d
je case.0x9699c7.64
add rbx, 0x18
cmp r13, rbx
jne 0x969630
movzx ebx, byte [rbp + 0x12]
movzx edi, byte [rbp + 0x10]
lea edx, [rbx + 1]
sub dil, 1
mov byte [rbp + 0x12], dl
jne 0x969c5d
mov rsi, qword [rbp + 8]
movzx edx, dl
cmp edx, dword [rsp + 0x38]
jge 0x969c50
pxor xmm1, xmm1
maxsd xmm1, xmm6
movzx r8d, dil
mov rcx, r15
call fcn.009676e0
test rax, rax
je 0x969ca9
cmp ebx, dword [rsp + 0x38]
mov byte [rax + 0x11], r14b
mov qword [rax + 8], rsi
mov byte [rax + 0x12], bl
jl 0x969586
mov rcx, r15
call fcn.00963bb0
jmp 0x969586
mov eax, dword [rdx]
cmp r12b, 1
bswap eax
jne 0x969c10
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [rcx + 8]
comisd xmm1, xmm0
jae case.0x9699c7.63
movzx eax, byte [rbp + 0x12]
mov rbx, qword [rsp + 0x30]
add eax, 1
mov byte [rbp + 0x12], al
movzx edx, byte [rbx + 0x27]
movzx eax, al
add rsi, rdx
cmp eax, dword [rsp + 0x38]
jge 0x9698a3
mov edx, dword [rsp + 0x3c]
test edx, edx
jg 0x96961c
mov rax, qword [0x00ea51c0]
mov r14d, 2
movq xmm6, rax
jmp 0x969848
mov eax, dword [rdx]
cmp r12b, 1
movsd xmm1, qword [rcx + 8]
bswap eax
jne 0x969c21
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
comisd xmm1, xmm0
jb case.0x9699c7.64
mov eax, dword [rdx + 4]
pxor xmm0, xmm0
bswap eax
cvtsi2sd xmm0, eax
comisd xmm0, xmm1
jb case.0x9699c7.64
jmp case.0x9699c7.63
mov eax, 1
mov byte [r15 + 8], al
xor eax, eax
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea edx, [rdx*4 + 8]
cmp r12b, 1
movsxd rdx, edx
mov edx, dword [rsi + rdx]
bswap edx
jne 0x969ba0
pxor xmm0, xmm0
cvtsi2sd xmm0, edx
sub eax, 0x3f
cmp eax, 6
ja case.0x9699c7.65
lea rdi, [0x00e9b1dc]
movsxd rax, dword [rdi + rax*4]
add rax, rdi
jmp rax
mov eax, dword [rdx + 4]
cmp r12b, 1
bswap eax
jne 0x969bf1
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
comisd xmm0, xmmword [rcx + 8]
jb case.0x9699c7.64
jmp case.0x9699c7.63
movsd xmm1, qword [rcx + 8]
comisd xmm1, xmm0
jbe case.0x9699c7.64
jmp case.0x9699c7.63
comisd xmm0, xmmword [rcx + 8]
jbe case.0x9699c7.64
jmp case.0x9699c7.63
ucomisd xmm0, qword [rcx + 8]
jp case.0x9699c7.64
je case.0x9699c7.63
jmp case.0x9699c7.64
cmp edx, 4
je 0x969751
jmp 0x969785
cmp edx, 6
je 0x969acd
jle 0x969b90
cmp edx, 8
je 0x969a9b
cmp edx, 0xa
jne 0x969b25
mov r8d, dword [rsi + 0x2c]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x28]
movsd qword [rsp + 0x98], xmm0
bswap r8d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x90], xmm0
mov r8d, dword [rsi + 0x24]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x20]
movsd qword [rsp + 0x88], xmm0
bswap r8d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x80], xmm0
mov r8d, dword [rsi + 0x1c]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x18]
movsd qword [rsp + 0x78], xmm0
bswap r8d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x70], xmm0
mov r8d, dword [rsi + 0x14]
pxor xmm0, xmm0
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 0x10]
movsd qword [rsp + 0x68], xmm0
bswap r8d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x60], xmm0
mov r8d, dword [rsi + 0xc]
pxor xmm0, xmm0
cmp eax, 0x46
mov r10, qword [rcx + 8]
bswap r8d
cvtsi2sd xmm0, r8d
mov r8d, dword [rsi + 8]
movsd qword [rsp + 0x58], xmm0
bswap r8d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8d
movsd qword [rsp + 0x50], xmm0
jne 0x9697c6
mov rcx, rdi
mov dword [rsp + 0x4c], 0
mov r8, qword [rsp + 0x28]
lea r9, [rsp + 0x4c]
call r10
mov ecx, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
test ecx, ecx
jne 0x969be0
test eax, eax
je case.0x9699c7.64
jmp 0x969964
cmp edx, 4
je 0x969af9
jmp 0x969b25
movd xmm4, edx
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp 0x9699b1
cmp byte [rbp + 0x10], 1
jne 0x969682
mov r8, qword [rsi]
bswap r8
mov qword [rdi + 0x48], r8
jmp 0x969682
movapd xmm6, xmm0
jmp 0x969826
test eax, eax
jne 0x969964
pxor xmm6, xmm6
jmp case.0x9699c7.63
movd xmm2, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm2
comisd xmm0, xmmword [rcx + 8]
jb case.0x9699c7.64
jmp case.0x9699c7.63
movd xmm4, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm4
jmp case.0x9699c7.66
movd xmm5, eax
pxor xmm0, xmm0
cvtss2sd xmm0, xmm5
comisd xmm1, xmm0
jb case.0x9699c7.64
mov eax, dword [rdx + 4]
pxor xmm0, xmm0
bswap eax
movd xmm3, eax
cvtss2sd xmm0, xmm3
jmp 0x96994e
mov rcx, r15
call fcn.00963bb0
jmp 0x969871
mov ecx, dword [r15 + 0x24]
mov rsi, qword [rsi]
test ecx, ecx
bswap rsi
jle 0x969c91
mov rax, qword [r15 + 0x30]
cmp rsi, qword [rax + 8]
je 0x969c98
sub ecx, 1
lea rcx, [rcx + rcx*2]
lea rcx, [rax + rcx*8]
jmp 0x969c8c
add rax, 0x18
cmp qword [rax + 8], rsi
je 0x969c98
cmp rax, rcx
jne 0x969c82
xor ebx, ebx
jmp 0x969864
mov eax, 0x10b
jmp 0x969964
xor eax, eax
jmp 0x96995e
mov eax, 7
jmp 0x969964