Function at 0x140135680
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x118
mov r11, qword [r8]
xor edi, edi
mov r10, qword [r8 + 8]
mov r12, rdx
movaps xmmword [rax - 0x58], xmm6
sub r10, r11
movaps xmmword [rax - 0x68], xmm7
mov r13, r8
movaps xmmword [rax - 0x78], xmm8
mov r15, rcx
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
xorps xmm10, xmm10
movaps xmmword [rax - 0xa8], xmm11
xorps xmm11, xmm11
movaps xmmword [rax - 0xb8], xmm12
movsd xmm12, qword [0x140366390]
movaps xmmword [rax - 0xc8], xmm13
movabs rax, 0x2aaaaaaaaaaaaaab
imul r10
mov r10d, edi
mov rsi, rdx
sar rsi, 2
mov rax, rsi
shr rax, 0x3f
add rsi, rax
cmp rsi, 4
jb 0x1401358a5
lea rcx, [rsi - 4]
shr rcx, 2
lea r9d, [rdi + 2]
inc rcx
lea r8, [r11 + 0x38]
lea r10, [rcx*4]
nop dword [rax + rax]
xor edx, edx
lea rax, [r9 - 1]
div rsi
lea rax, [rdx + rdx*2]
xor edx, edx
movsd xmm1, qword [r11 + rax*8]
movsd xmm3, qword [r11 + rax*8 + 8]
movaps xmm2, xmm1
subsd xmm2, qword [r8 - 0x38]
mov rax, r9
div rsi
xorps xmm2, xmm12
lea rax, [rdx + rdx*2]
xor edx, edx
movsd xmm4, qword [r11 + rax*8]
movsd xmm5, qword [r11 + rax*8 + 8]
lea rax, [r9 + 1]
div rsi
movaps xmm0, xmm5
subsd xmm0, xmm3
subsd xmm3, qword [r8 - 0x30]
lea rax, [rdx + rdx*2]
xor edx, edx
movsd xmm6, qword [r11 + rax*8]
movsd xmm7, qword [r11 + rax*8 + 8]
lea rax, [r9 + 2]
mulsd xmm2, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm1
movaps xmm1, xmm4
subsd xmm1, qword [r8 - 0x20]
div rsi
mulsd xmm3, xmm0
xorps xmm1, xmm12
movaps xmm0, xmm7
subsd xmm0, xmm5
subsd xmm5, qword [r8 - 0x18]
lea rax, [rdx + rdx*2]
xor edx, edx
movsd xmm8, qword [r11 + rax*8]
addsd xmm2, xmm3
movsd xmm9, qword [r11 + rax*8 + 8]
lea rax, [r9 + 3]
mulsd xmm1, xmm0
add r9, 4
div rsi
addsd xmm11, xmm2
movaps xmm0, xmm6
subsd xmm0, xmm4
movaps xmm2, xmm6
subsd xmm2, qword [r8 - 8]
lea rax, [rdx + rdx*2]
mulsd xmm5, xmm0
movaps xmm0, xmm9
subsd xmm0, xmm7
xorps xmm2, xmm12
subsd xmm7, qword [r8]
addsd xmm1, xmm5
mulsd xmm2, xmm0
movaps xmm0, xmm8
subsd xmm0, xmm6
addsd xmm11, xmm1
movaps xmm1, xmm8
subsd xmm1, qword [r8 + 0x10]
mulsd xmm7, xmm0
movsd xmm0, qword [r11 + rax*8 + 8]
xorps xmm1, xmm12
subsd xmm0, xmm9
subsd xmm9, qword [r8 + 0x18]
addsd xmm2, xmm7
add r8, 0x60
mulsd xmm1, xmm0
movsd xmm0, qword [r11 + rax*8]
addsd xmm11, xmm2
subsd xmm0, xmm8
mulsd xmm9, xmm0
addsd xmm1, xmm9
addsd xmm11, xmm1
sub rcx, 1
jne 0x140135740
cmp r10, rsi
jb 0x1401358ae
jmp 0x14013592b
test rsi, rsi
je 0x140135947
lea rax, [r10 + r10*2]
mov r9, rsi
lea r8, [r11 + rax*8]
sub r9, r10
lea rcx, [r10 + 2]
xor edx, edx
lea rax, [rcx - 1]
div rsi
lea rax, [rdx + rdx*2]
xor edx, edx
movsd xmm2, qword [r11 + rax*8]
movsd xmm3, qword [r11 + rax*8 + 8]
movaps xmm1, xmm2
subsd xmm1, qword [r8]
mov rax, rcx
inc rcx
div rsi
xorps xmm1, xmm12
lea rax, [rdx + rdx*2]
movsd xmm0, qword [r11 + rax*8 + 8]
subsd xmm0, xmm3
subsd xmm3, qword [r8 + 8]
add r8, 0x18
mulsd xmm1, xmm0
movsd xmm0, qword [r11 + rax*8]
subsd xmm0, xmm2
mulsd xmm3, xmm0
addsd xmm1, xmm3
addsd xmm11, xmm1
sub r9, 1
jne 0x1401358c0
comisd xmm11, xmm10
jbe 0x140135947
movsd xmm8, qword [0x1403595a8]
movsd qword [rsp + 0x160], xmm8
jmp 0x140135961
movsd xmm0, qword [0x140362b70]
movsd xmm8, qword [0x1403595a8]
movsd qword [rsp + 0x160], xmm0
movsd xmm13, qword [r12]
movsd xmm7, qword [r12 + 8]
movsd xmm0, qword [r12 + 0x10]
mov rbx, qword [rsp + 0x170]
subsd xmm13, qword [r15]
subsd xmm7, qword [r15 + 8]
subsd xmm0, qword [r15 + 0x10]
movsd qword [rsp + 0x158], xmm13
movsd qword [rsp + 0x150], xmm7
movsd qword [rsp + 0x20], xmm0
test rsi, rsi
je 0x140135eac
mov qword [rsp + 0x110], rbp
mov rbp, rdi
mov qword [rsp + 0x108], r14
movzx r14d, byte [rsp + 0x178]
movaps xmmword [rsp + 0x70], xmm14
movaps xmmword [rsp + 0x60], xmm15
nop dword [rax + rax]
mov rcx, qword [r13]
lea r8, [rdi - 1]
xor edx, edx
lea rax, [r8 + 2]
div rsi
movsd xmm14, qword [rcx + rbp]
movaps xmm6, xmm13
movsd xmm15, qword [rcx + rbp + 8]
movaps xmm0, xmm7
lea rax, [rdx + rdx*2]
movsd xmm3, qword [rcx + rax*8]
movsd xmm4, qword [rcx + rax*8 + 8]
subsd xmm3, xmm14
movsd xmm11, qword [rcx + rax*8 + 0x10]
subsd xmm4, xmm15
subsd xmm11, qword [rcx + rbp + 0x10]
mulsd xmm0, xmm3
mulsd xmm6, xmm4
subsd xmm6, xmm0
movsd xmm0, qword [0x1403655a0]
movaps xmm1, xmm6
andps xmm1, xmmword [0x140366380]
comisd xmm0, xmm1
ja 0x140135e80
movsd xmm9, qword [r15 + 8]
lea rax, [rsp + 0x170]
movaps xmm12, xmm7
lea rdx, [rsp + 0x28]
movaps xmm2, xmm4
movaps xmm0, xmm3
mulsd xmm0, xmm3
movaps xmm1, xmm11
mulsd xmm1, xmm11
movaps xmm5, xmm8
movsd xmm8, qword [r15]
movaps xmm7, xmm4
mulsd xmm2, xmm4
addsd xmm2, xmm0
movaps xmm0, xmm13
addsd xmm2, xmm1
movaps xmm1, xmm15
subsd xmm1, xmm9
divsd xmm5, xmm2
mulsd xmm0, xmm1
movaps xmm2, xmm14
subsd xmm2, xmm8
mulsd xmm12, xmm2
mulsd xmm7, xmm2
subsd xmm12, xmm0
movaps xmm0, xmm3
mulsd xmm0, xmm1
movsd xmm1, qword [r15 + 0x10]
movsd qword [rsp + 0x30], xmm1
divsd xmm12, xmm6
subsd xmm7, xmm0
movsd xmm0, qword [rsp + 0x20]
divsd xmm7, xmm6
movaps xmm6, xmm13
movsd xmm13, qword [rsp + 0x150]
mulsd xmm0, xmm7
mulsd xmm6, xmm7
mulsd xmm13, xmm7
addsd xmm0, xmm1
movaps xmm1, xmm8
subsd xmm1, xmm14
addsd xmm6, xmm8
addsd xmm13, xmm9
movsd qword [rsp + 0x38], xmm0
movaps xmm0, xmm9
subsd xmm0, xmm15
mulsd xmm1, xmm3
mulsd xmm0, xmm4
addsd xmm1, xmm0
movsd xmm0, qword [0x1403595a8]
movsd qword [rsp + 0x28], xmm0
mulsd xmm1, xmm5
comisd xmm0, xmm1
movsd qword [rsp + 0x170], xmm1
cmovbe rax, rdx
movsd xmm2, qword [rax]
comisd xmm2, xmm10
ja 0x140135b67
movaps xmm2, xmm10
movaps xmm1, xmm2
lea rax, [rsp + 0x170]
mulsd xmm1, xmm3
lea r9, [rsp + 0x28]
movaps xmm0, xmm2
mulsd xmm2, xmm11
mulsd xmm0, xmm4
addsd xmm1, xmm14
addsd xmm2, qword [rcx + rbp + 0x10]
addsd xmm0, xmm15
subsd xmm1, xmm8
subsd xmm2, xmm10
subsd xmm0, xmm9
mulsd xmm1, xmm1
mulsd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm1
movsd xmm1, qword [0x140366330]
addsd xmm0, xmm2
comisd xmm1, xmm0
movsd xmm0, qword [r12]
movsd xmm1, qword [r12 + 8]
subsd xmm0, xmm14
subsd xmm1, xmm15
seta dl
mulsd xmm0, xmm3
mulsd xmm1, xmm4
addsd xmm1, xmm0
movsd xmm0, qword [0x1403595a8]
movsd qword [rsp + 0x28], xmm0
mulsd xmm1, xmm5
comisd xmm0, xmm1
movsd qword [rsp + 0x170], xmm1
cmovbe rax, r9
movsd xmm2, qword [rax]
comisd xmm2, xmm10
ja 0x140135c1e
movaps xmm2, xmm10
movaps xmm1, xmm2
movaps xmm0, xmm2
mulsd xmm0, xmm4
mulsd xmm1, xmm3
mulsd xmm2, xmm11
addsd xmm0, xmm15
addsd xmm1, xmm14
addsd xmm2, qword [rcx + rbp + 0x10]
subsd xmm0, qword [r12 + 8]
subsd xmm1, qword [r12]
subsd xmm2, xmm10
mulsd xmm0, xmm0
mulsd xmm1, xmm1
mulsd xmm2, xmm2
addsd xmm0, xmm1
movsd xmm1, qword [0x140366330]
addsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x140135c7e
test r14b, r14b
je 0x140135e64
test dl, dl
je 0x140135d89
xorps xmm3, xmmword [0x140366390]
movsd xmm2, qword [rsp + 0x160]
movsd xmm7, qword [rsp + 0x150]
movaps xmm0, xmm2
movsd xmm13, qword [rsp + 0x158]
mulsd xmm3, xmm2
mulsd xmm4, xmm2
mulsd xmm0, xmm10
mulsd xmm3, xmm7
mulsd xmm4, xmm13
mulsd xmm0, qword [rsp + 0x20]
addsd xmm3, xmm4
addsd xmm3, xmm0
comisd xmm3, xmm10
seta al
cmp al, byte [rsp + 0x168]
je 0x140135d7b
mov rdx, qword [rbx + 8]
cmp qword [rbx], rdx
je 0x140135d22
cmp qword [rdx - 0x20], r8
jne 0x140135d22
movsd xmm1, qword [rdx - 0x18]
movsd xmm0, qword [rdx - 0x10]
subsd xmm1, xmm8
subsd xmm0, xmm9
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
movsd xmm1, qword [0x140366338]
comisd xmm1, xmm0
ja 0x140135d7b
movsd xmm0, qword [rsp + 0x30]
movsd qword [rsp + 0x58], xmm0
movsd qword [rsp + 0x48], xmm8
movsd qword [rsp + 0x50], xmm9
mov qword [rsp + 0x40], rdi
cmp rdx, qword [rbx + 0x10]
je 0x140135d6e
movsd qword [rdx + 8], xmm8
movsd xmm8, qword [0x1403595a8]
mov qword [rdx], rdi
add qword [rbx + 8], 0x20
movsd qword [rdx + 0x10], xmm9
movsd qword [rdx + 0x18], xmm0
jmp 0x140135e80
lea r8, [rsp + 0x40]
mov rcx, rbx
call fcn.1401346e0
movsd xmm8, qword [0x1403595a8]
jmp 0x140135e80
movsd xmm8, qword [0x1403595a8]
movaps xmm0, xmm5
mulsd xmm0, qword [0x140366358]
comisd xmm12, xmm0
jb 0x140135e6d
mulsd xmm5, qword [0x1403655a0]
addsd xmm5, xmm8
comisd xmm5, xmm12
jb 0x140135e6d
comisd xmm7, xmm10
jb 0x140135e6d
comisd xmm8, xmm7
jae 0x140135ddb
test r14b, r14b
je 0x140135e6d
mov rdx, qword [rbx + 8]
cmp qword [rbx], rdx
je 0x140135e17
cmp qword [rdx - 0x20], r8
jne 0x140135e17
movsd xmm1, qword [rdx - 0x18]
movsd xmm0, qword [rdx - 0x10]
subsd xmm1, xmm6
subsd xmm0, xmm13
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
movsd xmm1, qword [0x140366338]
comisd xmm1, xmm0
ja 0x140135e6d
movsd xmm0, qword [rsp + 0x38]
movsd qword [rsp + 0x58], xmm0
movsd qword [rsp + 0x48], xmm6
movsd qword [rsp + 0x50], xmm13
mov qword [rsp + 0x40], rdi
cmp rdx, qword [rbx + 0x10]
je 0x140135e55
mov qword [rdx], rdi
add qword [rbx + 8], 0x20
movsd qword [rdx + 8], xmm6
movsd qword [rdx + 0x10], xmm13
movsd qword [rdx + 0x18], xmm0
jmp 0x140135e6d
lea r8, [rsp + 0x40]
mov rcx, rbx
call fcn.1401346e0
jmp 0x140135e6d
movsd xmm8, qword [0x1403595a8]
movsd xmm7, qword [rsp + 0x150]
movsd xmm13, qword [rsp + 0x158]
inc rdi
add rbp, 0x18
cmp rdi, rsi
jb 0x1401359e0
movaps xmm15, xmmword [rsp + 0x60]
movaps xmm14, xmmword [rsp + 0x70]
mov r14, qword [rsp + 0x108]
mov rbp, qword [rsp + 0x110]
mov rax, qword [rbx + 8]
lea r11, [rsp + 0x118]
cmp qword [rbx], rax
movaps xmm6, xmmword [r11 - 0x28]
movaps xmm7, xmmword [r11 - 0x38]
setne al
movaps xmm8, xmmword [r11 - 0x48]
movaps xmm9, xmmword [r11 - 0x58]
movaps xmm10, xmmword [r11 - 0x68]
movaps xmm11, xmmword [r11 - 0x78]
movaps xmm12, xmmword [r11 - 0x88]
movaps xmm13, xmmword [r11 - 0x98]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret