Function at 0x1400b4100
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push r12
push r14
push r15
sub rsp, 0x90
movsd xmm0, qword [0x1401587f0]
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rsi, rcx
mov qword [rax + 0x20], rdi
call fcn.1400b4b90
movsxd rdi, dword [rsi]
mov r12, rax
mov edx, edi
movsxd rbx, dword [rax]
mov ecx, ebx
call fcn.1400b3810
mov rbp, qword [rsi + 8]
mov r15, rax
mov r14, qword [r12 + 8]
mov rsi, rbx
test rdi, rdi
jle 0x1400b457a
movaps xmmword [rsp + 0x80], xmm6
xor ebx, ebx
movaps xmmword [rsp + 0x70], xmm7
movaps xmmword [rsp + 0x60], xmm8
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x40], xmm10
movaps xmmword [rsp + 0x30], xmm11
movaps xmmword [rsp + 0x20], xmm12
movsd xmm12, qword [0x140158af0]
movsd xmm10, qword [rbx + rbp + 0x18]
movsd xmm8, qword [rbx + rbp]
movsd xmm6, qword [rbx + rbp + 0x10]
movsd xmm11, qword [rbx + rbp + 8]
divsd xmm8, xmm10
divsd xmm6, xmm10
movaps xmm0, xmm8
mulsd xmm0, xmm8
movaps xmm1, xmm6
mulsd xmm1, xmm6
divsd xmm11, xmm10
addsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x1400b41dc
sqrtpd xmm7, xmm1
jmp 0x1400b41e7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm7, xmm0
xorps xmm6, xmm12
movaps xmm1, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
movaps xmm6, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm8, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xor edx, edx
movaps xmm9, xmm0
cmp rsi, 4
jl 0x1400b448a
mov r8, qword [r15 + 8]
lea rcx, [rsi - 4]
shr rcx, 2
lea r9, [r14 + 8]
inc rcx
lea r10, [r8 + 0x10]
lea rdx, [rcx*4]
nop word [rax + rax]
movsd xmm3, qword [r9 + 0x10]
movsd xmm6, qword [r9]
movaps xmm2, xmm3
movsd xmm5, qword [r9 - 8]
movsd xmm4, qword [r9 + 8]
mov rax, qword [r10 - 0x10]
divsd xmm6, xmm3
divsd xmm5, xmm3
movaps xmm0, xmm6
mulsd xmm2, xmm10
xorps xmm6, xmm12
mulsd xmm5, xmm7
divsd xmm4, xmm3
movsd qword [rax + rbx + 0x18], xmm2
movaps xmm1, xmm5
mulsd xmm6, xmm7
addsd xmm4, xmm11
mulsd xmm1, xmm8
mulsd xmm5, xmm9
mulsd xmm4, xmm2
mulsd xmm6, xmm8
mulsd xmm0, xmm7
subsd xmm6, xmm5
mulsd xmm0, xmm9
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rax + rbx], xmm1
movsd qword [rax + rbx + 8], xmm4
mulsd xmm6, qword [rax + rbx + 0x18]
movsd qword [rax + rbx + 0x10], xmm6
movsd xmm3, qword [r9 + 0x30]
movsd xmm6, qword [r9 + 0x20]
movaps xmm2, xmm3
movsd xmm5, qword [r9 + 0x18]
movsd xmm4, qword [r9 + 0x28]
mov rax, qword [r10 - 8]
divsd xmm6, xmm3
divsd xmm5, xmm3
movaps xmm0, xmm6
mulsd xmm2, xmm10
divsd xmm4, xmm3
xorps xmm6, xmm12
mulsd xmm5, xmm7
movsd qword [rax + rbx + 0x18], xmm2
addsd xmm4, xmm11
mulsd xmm6, xmm7
movaps xmm1, xmm5
mulsd xmm0, xmm7
mulsd xmm1, xmm8
mulsd xmm4, xmm2
mulsd xmm0, xmm9
mulsd xmm6, xmm8
mulsd xmm5, xmm9
subsd xmm1, xmm0
subsd xmm6, xmm5
mulsd xmm1, xmm2
movsd qword [rax + rbx], xmm1
movsd qword [rax + rbx + 8], xmm4
mulsd xmm6, qword [rax + rbx + 0x18]
movsd qword [rax + rbx + 0x10], xmm6
movsd xmm3, qword [r9 + 0x50]
movsd xmm6, qword [r9 + 0x40]
movaps xmm2, xmm3
movsd xmm5, qword [r9 + 0x38]
movsd xmm4, qword [r9 + 0x48]
mov rax, qword [r10]
divsd xmm5, xmm3
divsd xmm6, xmm3
divsd xmm4, xmm3
mulsd xmm2, xmm10
movaps xmm0, xmm6
mulsd xmm5, xmm7
addsd xmm4, xmm11
mulsd xmm0, xmm7
movsd qword [rax + rbx + 0x18], xmm2
movaps xmm1, xmm5
mulsd xmm1, xmm8
mulsd xmm0, xmm9
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rax + rbx], xmm1
xorps xmm6, xmm12
mulsd xmm4, xmm2
mulsd xmm6, xmm7
mulsd xmm5, xmm9
movsd qword [rax + rbx + 8], xmm4
mulsd xmm6, xmm8
subsd xmm6, xmm5
mulsd xmm6, qword [rax + rbx + 0x18]
movsd qword [rax + rbx + 0x10], xmm6
movsd xmm3, qword [r9 + 0x70]
movsd xmm6, qword [r9 + 0x60]
movaps xmm2, xmm3
movsd xmm5, qword [r9 + 0x58]
movsd xmm4, qword [r9 + 0x68]
sub r9, 0xffffffffffffff80
mov rax, qword [r10 + 8]
add r10, 0x20
mulsd xmm2, xmm10
divsd xmm6, xmm3
movsd qword [rax + rbx + 0x18], xmm2
movaps xmm0, xmm6
xorps xmm6, xmm12
mulsd xmm6, xmm7
mulsd xmm0, xmm7
divsd xmm5, xmm3
mulsd xmm6, xmm8
mulsd xmm5, xmm7
mulsd xmm0, xmm9
divsd xmm4, xmm3
movaps xmm1, xmm5
mulsd xmm5, xmm9
mulsd xmm1, xmm8
addsd xmm4, xmm11
subsd xmm6, xmm5
mulsd xmm4, xmm2
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rax + rbx], xmm1
movsd qword [rax + rbx + 8], xmm4
mulsd xmm6, qword [rax + rbx + 0x18]
movsd qword [rax + rbx + 0x10], xmm6
sub rcx, 1
jne 0x1400b4240
cmp rdx, rsi
jl 0x1400b4497
jmp 0x1400b453c
test rsi, rsi
jle 0x1400b453c
mov r8, qword [r15 + 8]
mov rax, rdx
lea rcx, [r14 + 8]
shl rax, 5
add rcx, rax
movsd xmm3, qword [rcx + 0x10]
movsd xmm6, qword [rcx]
movaps xmm2, xmm3
movsd xmm5, qword [rcx - 8]
movsd xmm4, qword [rcx + 8]
add rcx, 0x20
mov rax, qword [r8 + rdx*8]
inc rdx
mulsd xmm2, xmm10
divsd xmm6, xmm3
movsd qword [rax + rbx + 0x18], xmm2
movaps xmm0, xmm6
xorps xmm6, xmm12
mulsd xmm6, xmm7
mulsd xmm0, xmm7
divsd xmm5, xmm3
mulsd xmm6, xmm8
mulsd xmm5, xmm7
mulsd xmm0, xmm9
divsd xmm4, xmm3
movaps xmm1, xmm5
mulsd xmm5, xmm9
mulsd xmm1, xmm8
addsd xmm4, xmm11
subsd xmm6, xmm5
mulsd xmm4, xmm2
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rax + rbx], xmm1
movsd qword [rax + rbx + 8], xmm4
mulsd xmm6, qword [rax + rbx + 0x18]
movsd qword [rax + rbx + 0x10], xmm6
cmp rdx, rsi
jl 0x1400b44a5
add rbx, 0x20
sub rdi, 1
jne 0x1400b4190
mov r14, qword [r12 + 8]
movaps xmm12, xmmword [rsp + 0x20]
movaps xmm11, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
test r14, r14
je 0x1400b45a8
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, r15
add rsp, 0x90
pop r15
pop r14
pop r12
ret