Function at 0x140012e60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, rdx
mov rbx, r9
sub rax, rcx
mov rsi, r8
sar rax, 3
mov r14, rdx
mov rdi, rcx
cmp rax, 0x20
jle 0x140012f16
test rsi, rsi
jle 0x140012f79
mov r9, rbx
lea rcx, [rsp + 0x30]
mov r8, r14
mov rdx, rdi
call fcn.1400125b0
mov r15, qword [rsp + 0x30]
mov rcx, rsi
mov rbp, qword [rsp + 0x38]
mov rax, r15
sar rcx, 2
sub rax, rdi
sar rsi, 1
and rax, 0xfffffffffffffff8
add rsi, rcx
mov r9, rbx
mov rcx, r14
mov r8, rsi
sub rcx, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x140012ef8
mov rdx, r15
mov rcx, rdi
call fcn.140012e60
mov rdi, rbp
jmp 0x140012f06
mov rdx, r14
mov rcx, rbp
call fcn.140012e60
mov r14, r15
mov rax, r14
sub rax, rdi
sar rax, 3
cmp rax, 0x20
jg 0x140012e96
cmp rax, 2
jl 0x1400130eb
cmp rdi, r14
je 0x1400130eb
lea r12, [rdi + 8]
mov rsi, r12
cmp r12, r14
je 0x1400130eb
mov r15d, 8
sub r15, rdi
mov r9, qword [rbx]
mov r8, rsi
mov rbp, qword [rsi]
mov rax, qword [rdi]
movss xmm0, dword [r9 + rbp*4]
comiss xmm0, dword [r9 + rax*4]
jbe 0x1400130b1
lea r8, [rsi - 8]
mov rdx, rdi
add r8, r15
mov rcx, r12
call fcn.14026fce0
mov qword [rdi], rbp
jmp 0x1400130de
cmp rax, 0x20
jle 0x140012f16
mov rbp, r14
sub rbp, rdi
sar rbp, 3
mov r11, rbp
sar r11, 1
test r11, r11
jle 0x140013051
lea r15, [rbp - 1]
sar r15, 1
nop
mov rsi, qword [rdi + r11*8 - 8]
dec r11
mov r10, r11
mov rcx, r11
cmp r11, r15
jge 0x140012ffc
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rbx]
lea r9, [rcx + rcx]
mov rax, qword [rdi + r9*8 + 0x10]
xor r8d, r8d
mov rcx, qword [rdi + r9*8 + 8]
movss xmm0, dword [rdx + rax*4]
comiss xmm0, dword [rdx + rcx*4]
lea rcx, [r9 + 1]
seta r8b
xor r8, 1
add rcx, r8
mov rax, qword [rdi + rcx*8]
mov qword [rdi + r10*8], rax
mov r10, rcx
cmp rcx, r15
jl 0x140012fc0
cmp rcx, r15
jne 0x140013014
test bpl, 1
jne 0x140013014
mov rax, qword [rdi + rbp*8 - 8]
mov qword [rdi + r10*8], rax
lea r10, [rbp - 1]
lea rcx, [r10 - 1]
sar rcx, 1
cmp r11, r10
jge 0x140013044
mov rax, qword [rbx]
mov rdx, qword [rdi + rcx*8]
movss xmm0, dword [rax + rdx*4]
comiss xmm0, dword [rax + rsi*4]
jbe 0x140013044
mov qword [rdi + r10*8], rdx
mov r10, rcx
dec rcx
sar rcx, 1
cmp r11, r10
jl 0x140013020
mov qword [rdi + r10*8], rsi
test r11, r11
jg 0x140012fa0
cmp rbp, 2
jl 0x1400130eb
mov r15d, 8
lea rsi, [r14 - 8]
sub r15, rdi
cmp rbp, 2
jl 0x14001309a
mov rax, qword [rsi]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x70], rax
mov r8, rsi
mov rax, qword [rdi]
sub r8, rdi
sar r8, 3
xor edx, edx
mov rcx, rdi
mov qword [rsi], rax
mov qword [rsp + 0x20], rbx
call fcn.1400128d0
sub rsi, 8
lea rax, [r15 + rsi]
sar rax, 3
mov rbp, rax
cmp rax, 2
jge 0x140013068
jmp 0x1400130eb
mov rdx, qword [rsi - 8]
lea rcx, [rsi - 8]
comiss xmm0, dword [r9 + rdx*4]
jbe 0x1400130db
mov qword [r8], rdx
mov r8, rcx
mov rax, qword [rbx]
sub rcx, 8
mov rdx, qword [rcx]
movss xmm0, dword [rax + rbp*4]
comiss xmm0, dword [rax + rdx*4]
ja 0x1400130c0
mov qword [r8], rbp
add rsi, 8
cmp rsi, r14
jne 0x140012f42
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret