Function at 0x140085290
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
sub rsp, 0x30
cmp qword [rcx + 8], 1
mov r12, r9
mov rbx, qword [rsp + 0x88]
mov r13, r8
mov rbp, rdx
mov rdi, rcx
jne 0x140085766
cmp byte [rcx + 0x118], 0
je 0x140085780
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], r14
mov r14, qword [rcx]
cmp qword [rbx], r14
jge 0x1400852ed
mov r8, qword [rsp + 0x90]
mov rdx, r14
mov rcx, rbx
call fcn.14003e440
xor r10d, r10d
lea rsi, [r14 - 1]
mov edx, r10d
test rsi, rsi
js 0x140085377
lea r8, [rbp + 0x38]
cmp r14, 4
jl 0x140085360
lea r9, [rsi - 3]
nop
mov rax, qword [r8]
mov rcx, qword [rbx + 0x38]
mov rax, qword [rax + rdx*8]
mov qword [rcx + rdx*8], rax
mov rax, qword [r8]
mov rcx, qword [rbx + 0x38]
mov rax, qword [rax + rdx*8 + 8]
mov qword [rcx + rdx*8 + 8], rax
mov rax, qword [r8]
mov rcx, qword [rbx + 0x38]
mov rax, qword [rax + rdx*8 + 0x10]
mov qword [rcx + rdx*8 + 0x10], rax
mov rax, qword [r8]
mov rcx, qword [rbx + 0x38]
mov rax, qword [rax + rdx*8 + 0x18]
mov qword [rcx + rdx*8 + 0x18], rax
add rdx, 4
cmp rdx, r9
jle 0x140085310
cmp rdx, rsi
jg 0x140085377
mov rax, qword [r8]
mov rcx, qword [rbx + 0x38]
mov rax, qword [rax + rdx*8]
mov qword [rcx + rdx*8], rax
inc rdx
cmp rdx, rsi
jle 0x140085360
cmp qword [rdi + 0x210], 1
mov rbp, r10
movsd xmm3, qword [0x140216560]
js 0x1400854d2
mov qword [rsp + 0x70], r15
nop word [rax + rax]
xorps xmm2, xmm2
mov r15, r10
test rsi, rsi
js 0x140085488
mov rdx, qword [r12 + 0x48]
mov rcx, qword [rbx + 0x38]
mov r8, qword [r13 + 0x38]
mov rdx, qword [rdx + rbp*8]
cmp r14, 4
jl 0x140085458
mov r9, rdx
lea r11, [rsi + 1]
mov r10, r8
lea rax, [rcx + 8]
sub r9, rcx
sub r10, rcx
shr r11, 2
lea r15, [r11*4]
nop word [rax + rax]
movsd xmm1, qword [rax - 8]
mulsd xmm1, qword [rax + r9 - 8]
movsd xmm0, qword [rax + r9]
mulsd xmm0, qword [rax]
divsd xmm1, qword [r10 + rax - 8]
divsd xmm0, qword [r10 + rax]
addsd xmm2, xmm1
movsd xmm1, qword [rax + 8]
mulsd xmm1, qword [rax + r9 + 8]
addsd xmm2, xmm0
movsd xmm0, qword [rax + 0x10]
divsd xmm1, qword [r10 + rax + 8]
mulsd xmm0, qword [rax + r9 + 0x10]
addsd xmm2, xmm1
divsd xmm0, qword [r10 + rax + 0x10]
add rax, 0x20
addsd xmm2, xmm0
sub r11, 1
jne 0x1400853f0
cmp r15, rsi
jg 0x140085488
lea rax, [rcx + r15*8]
sub rdx, rcx
sub r8, rcx
mov rcx, rsi
sub rcx, r15
inc rcx
movsd xmm0, qword [rax + rdx]
mulsd xmm0, qword [rax]
divsd xmm0, qword [r8 + rax]
add rax, 8
addsd xmm2, xmm0
sub rcx, 1
jne 0x14008546b
mov r8, qword [r12 + 0x48]
xorps xmm2, xmm3
mov rcx, qword [rbx + 0x38]
mov r9d, 1
movsd qword [rsp + 0x28], xmm2
mov edx, r9d
mov qword [rsp + 0x20], r14
mov r8, qword [r8 + rbp*8]
call fcn.14003f5b0
mov rax, qword [rdi + 0x210]
inc rbp
dec rax
mov r10d, 0
cmp rbp, rax
jle 0x1400853a0
mov r15, qword [rsp + 0x70]
lea r8, [r14 - 1]
mov rcx, r10
test r8, r8
js 0x140085587
cmp r14, 4
jl 0x140085560
lea r9, [r8 - 3]
lea rdx, [rbx + 0x38]
mov rax, qword [rdi + 0x110]
cmp qword [rax + rcx*8], 0
jle 0x140085505
mov rax, qword [rdx]
mov qword [rax + rcx*8], r10
mov rax, qword [rdi + 0x110]
cmp qword [rax + rcx*8 + 8], 0
jle 0x14008551e
mov rax, qword [rdx]
mov qword [rax + rcx*8 + 8], r10
jmp 0x140085522
lea rdx, [rbx + 0x38]
mov rax, qword [rdi + 0x110]
cmp qword [rax + rcx*8 + 0x10], 0
jle 0x140085539
mov rax, qword [rdx]
mov qword [rax + rcx*8 + 0x10], r10
mov rax, qword [rdi + 0x110]
cmp qword [rax + rcx*8 + 0x18], 0
jle 0x140085550
mov rax, qword [rdx]
mov qword [rax + rcx*8 + 0x18], r10
add rcx, 4
cmp rcx, r9
jle 0x1400854f0
cmp rcx, r8
jg 0x140085587
nop
mov rax, qword [rdi + 0x110]
cmp qword [rax + rcx*8], 0
jle 0x140085576
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], r10
inc rcx
cmp rcx, r8
jle 0x140085560
lea r8, [r14 - 1]
mov rdx, r10
jmp 0x140085597
lea r8, [r14 - 1]
mov rdx, r10
test r8, r8
js 0x140085655
cmp r14, 4
jl 0x14008562a
mov rcx, qword [rbx + 0x38]
lea r9, [r8 - 3]
nop dword [rax]
movsd xmm0, qword [rcx + rdx*8]
mov rax, qword [r13 + 0x38]
xorps xmm0, xmm3
divsd xmm0, qword [rax + rdx*8]
movsd qword [rcx + rdx*8], xmm0
mov rcx, qword [rbx + 0x38]
mov rax, qword [r13 + 0x38]
movsd xmm0, qword [rcx + rdx*8 + 8]
xorps xmm0, xmm3
divsd xmm0, qword [rax + rdx*8 + 8]
movsd qword [rcx + rdx*8 + 8], xmm0
mov rcx, qword [rbx + 0x38]
mov rax, qword [r13 + 0x38]
movsd xmm0, qword [rcx + rdx*8 + 0x10]
xorps xmm0, xmm3
divsd xmm0, qword [rax + rdx*8 + 0x10]
movsd qword [rcx + rdx*8 + 0x10], xmm0
mov rcx, qword [rbx + 0x38]
mov rax, qword [r13 + 0x38]
movsd xmm0, qword [rcx + rdx*8 + 0x18]
xorps xmm0, xmm3
divsd xmm0, qword [rax + rdx*8 + 0x18]
movsd qword [rcx + rdx*8 + 0x18], xmm0
add rdx, 4
mov rcx, qword [rbx + 0x38]
cmp rdx, r9
jle 0x1400855b0
cmp rdx, r8
jg 0x140085655
mov rcx, qword [rbx + 0x38]
movsd xmm0, qword [rcx + rdx*8]
mov rax, qword [r13 + 0x38]
xorps xmm0, xmm3
divsd xmm0, qword [rax + rdx*8]
movsd qword [rcx + rdx*8], xmm0
inc rdx
mov rcx, qword [rbx + 0x38]
cmp rdx, r8
jle 0x140085633
mov rax, qword [rdi + 0x258]
add rax, qword [rdi + 0x210]
cmp rax, r14
jl 0x140085750
lea rdi, [r14 - 1]
mov rcx, r10
test rdi, rdi
js 0x140085750
cmp r14, 2
jb 0x1400856e8
mov r9, qword [rbx + 0x38]
lea rax, [rbx + 0x38]
lea rdx, [r9 + rdi*8]
cmp r9, rax
ja 0x140085698
cmp rdx, rax
jae 0x1400856e8
mov rax, r14
cqo
and eax, 1
xor rax, rdx
sub rax, rdx
mov rdx, rdi
sub rdx, rax
nop dword [rax]
add rcx, 2
mov rsi, rcx
cmp rcx, rdx
jle 0x1400856b0
lea rax, [rdx + 2]
mov rcx, r9
cqo
sub rax, rdx
xor edx, edx
sar rax, 1
shl rax, 4
and rax, 0xfffffffffffffff8
mov r8, rax
call fcn.140172380
mov rcx, rsi
cmp rsi, rdi
jg 0x140085750
xor r10d, r10d
mov rax, rdi
sub rax, rcx
inc rax
cmp rax, 4
jl 0x140085740
lea rdx, [rdi - 3]
nop dword [rax + rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], r10
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8 + 8], r10
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8 + 0x10], r10
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8 + 0x18], r10
add rcx, 4
cmp rcx, rdx
jle 0x140085700
cmp rcx, rdi
jg 0x140085750
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbx + 0x38]
mov qword [rax + rcx*8], r10
inc rcx
cmp rcx, rdi
jle 0x140085740
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
add rsp, 0x30
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
mov rcx, qword [rsp + 0x90]
lea r8, str.SAS:_internal_error_in_ConstrainedDescent_____not_in_optimization_mode
mov edx, 3
call fcn.14003de20
int3
mov rcx, qword [rsp + 0x90]
lea r8, str.SAS:_internal_error_in_ConstrainedDescent_____no_basis
mov edx, 3
call fcn.14003de20
int3