Function at 0x14007a6a0
Capabilities:
Write file on windows

Disassembly:
push rdi
sub rsp, 0x40
test byte [rcx + 0x20], 1
mov rdi, r8
movaps xmmword [rsp + 0x20], xmm7
mov rdx, rcx
je 0x14007a6c7
movsd xmm7, qword [rcx + 0x10]
addsd xmm7, qword [rcx + 8]
subsd xmm7, xmm1
jmp 0x14007a6ca
movaps xmm7, xmm1
movzx r9d, byte [rcx + 0x24]
lea eax, [r9 - 1]
cmp eax, 7
ja case.default.0x14007a6f0
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x7aa94]
add rcx, r8
jmp rcx
mov qword [rsp + 0x50], rbx
movaps xmm0, xmm7
mov rbx, qword [rdx + 0x18]
movaps xmmword [rsp + 0x30], xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm1, xmm0
movaps xmm2, xmm0
mulsd xmm1, qword [rbx + 0x18]
movaps xmm6, xmm0
movaps xmm0, xmm7
movsd qword [rdi], xmm1
mulsd xmm2, qword [rbx + 0x20]
movsd qword [rdi + 8], xmm2
mulsd xmm6, qword [rbx + 0x28]
movsd qword [rdi + 0x10], xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movsd xmm4, qword [rbx + 0x40]
movaps xmm1, xmm0
mulsd xmm1, qword [rbx + 0x30]
movaps xmm2, xmm0
xor eax, eax
mulsd xmm2, qword [rbx + 0x38]
movups xmm3, xmmword [rdi]
mulsd xmm4, xmm0
unpcklpd xmm1, xmm2
addpd xmm3, xmm1
addsd xmm4, xmm6
movaps xmm6, xmmword [rsp + 0x30]
movups xmmword [rdi], xmm3
movsd qword [rdi + 0x10], xmm4
movsd xmm0, qword [rbx]
addsd xmm0, qword [rdi]
movsd qword [rdi], xmm0
movsd xmm1, qword [rbx + 8]
addsd xmm1, qword [rdi + 8]
movsd qword [rdi + 8], xmm1
addsd xmm4, qword [rbx + 0x10]
mov rbx, qword [rsp + 0x50]
movsd qword [rdi + 0x10], xmm4
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov r8, qword [rdx + 0x18]
cvttsd2si eax, xmm7
test eax, eax
jns 0x14007a7b5
xor eax, eax
xorps xmm7, xmm7
jmp 0x14007a7d5
mov ecx, dword [r8]
cmp eax, ecx
jl 0x14007a7c9
movsd xmm7, qword [0x1401587f0]
lea eax, [rcx - 1]
jmp 0x14007a7d5
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm7, xmm0
movsxd rcx, eax
mov rax, qword [r8 + 8]
mov r8, rdi
mov rcx, qword [rax + rcx*8]
movsd xmm1, qword [rcx + 0x10]
subsd xmm1, qword [rcx + 8]
mulsd xmm1, xmm7
addsd xmm1, qword [rcx + 8]
call fcn.14007a6a0
cmp eax, 0xffffffff
jne 0x14007aa66
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov rax, qword [rdx + 0x18]
mov rcx, qword [rax]
mov qword [rdi], rcx
mov rax, qword [rdx + 0x18]
mov rcx, qword [rax + 8]
mov qword [rdi + 8], rcx
mov rax, qword [rdx + 0x18]
mov rcx, qword [rax + 0x10]
xor eax, eax
mov qword [rdi + 0x10], rcx
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov rax, qword [rdx + 0x18]
movaps xmm1, xmm7
movaps xmm0, xmm7
mulsd xmm1, qword [rax + 0x18]
movsd qword [rdi], xmm1
mov rax, qword [rdx + 0x18]
mulsd xmm0, qword [rax + 0x20]
movsd qword [rdi + 8], xmm0
mov rax, qword [rdx + 0x18]
mulsd xmm7, qword [rax + 0x28]
movsd qword [rdi + 0x10], xmm7
mov rax, qword [rdx + 0x18]
addsd xmm1, qword [rax]
movsd qword [rdi], xmm1
mov rax, qword [rdx + 0x18]
addsd xmm0, qword [rax + 8]
movsd qword [rdi + 8], xmm0
mov rax, qword [rdx + 0x18]
addsd xmm7, qword [rax + 0x10]
xor eax, eax
movsd qword [rdi + 0x10], xmm7
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov r9, qword [rdx + 0x18]
test byte [r9 + 0x19], 1
je 0x14007a90c
mov rax, qword [r9]
mov rcx, qword [rax + 8]
movsxd rax, dword [rax + 4]
movsd xmm1, qword [rcx]
comisd xmm1, xmm7
movsd xmm0, qword [rcx + rax*8 - 8]
jbe 0x14007a8f5
subsd xmm0, xmm1
nop dword [rax]
addsd xmm7, xmm0
comisd xmm1, xmm7
ja 0x14007a8d0
mov r8, rdi
movaps xmm1, xmm7
mov rcx, r9
call fcn.140088a60
xor eax, eax
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
comisd xmm7, xmm0
jbe 0x14007a90c
movaps xmm2, xmm0
subsd xmm2, xmm1
subsd xmm7, xmm2
comisd xmm7, xmm0
ja 0x14007a902
mov r8, rdi
movaps xmm1, xmm7
mov rcx, r9
call fcn.140088a60
xor eax, eax
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
mov r9, qword [rdx + 0x18]
xorps xmm0, xmm0
comisd xmm0, xmm7
jb 0x14007a963
mov rax, qword [r9 + 8]
mov rcx, qword [rax]
mov qword [rdi], rcx
mov rax, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov qword [rdi + 8], rcx
mov rax, qword [r9 + 8]
mov rcx, qword [rax + 0x10]
xor eax, eax
mov qword [rdi + 0x10], rcx
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
movsxd rcx, dword [r9]
mov r10, qword [r9 + 8]
lea eax, [rcx - 1]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm7, xmm0
jb 0x14007a9bc
lea rcx, [rcx + rcx*2]
mov rax, qword [r10 + rcx*8 - 0x18]
mov qword [rdi], rax
movsxd rax, dword [r9]
lea rcx, [rax + rax*2]
mov rax, qword [r9 + 8]
mov rcx, qword [rax + rcx*8 - 0x10]
mov qword [rdi + 8], rcx
movsxd rax, dword [r9]
lea rcx, [rax + rax*2]
mov rax, qword [r9 + 8]
mov rcx, qword [rax + rcx*8 - 8]
xor eax, eax
mov qword [rdi + 0x10], rcx
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
cvttsd2si eax, xmm7
movsxd rdx, eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
lea rcx, [rdx + rdx*2]
lea r8, [rdx + rdx*2]
subsd xmm7, xmm0
movsd xmm0, qword [r10 + rcx*8 + 0x18]
subsd xmm0, qword [r10 + r8*8]
movsd qword [rdi], xmm0
mov rax, qword [r9 + 8]
movsd xmm1, qword [rax + rcx*8 + 0x20]
subsd xmm1, qword [rax + r8*8 + 8]
movsd qword [rdi + 8], xmm1
movaps xmm1, xmm7
mov rax, qword [r9 + 8]
movups xmm0, xmmword [rdi]
unpcklpd xmm1, xmm1
movsd xmm3, qword [rax + rcx*8 + 0x28]
lea rcx, [rdx + rdx*2]
movsd xmm2, qword [rax + r8*8 + 0x10]
mulpd xmm1, xmm0
subsd xmm3, xmm2
movups xmmword [rdi], xmm1
mulsd xmm3, xmm7
movsd qword [rdi + 0x10], xmm3
mov rax, qword [r9 + 8]
movsd xmm0, qword [rax + rcx*8]
addsd xmm0, qword [rdi]
movsd qword [rdi], xmm0
mov rax, qword [r9 + 8]
movsd xmm1, qword [rax + rcx*8 + 8]
addsd xmm1, qword [rdi + 8]
movsd qword [rdi + 8], xmm1
mov rax, qword [r9 + 8]
addsd xmm3, qword [rax + r8*8 + 0x10]
movsd qword [rdi + 0x10], xmm3
xor eax, eax
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
ret
lea r8, str.dglCurveGetPoint_Bad_type__d_n
mov edx, 2
mov ecx, 0x2334
movaps xmm7, xmmword [rsp + 0x20]
add rsp, 0x40
pop rdi
jmp fcn.140001480