Function at 0x140122c60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
movzx ebx, r9b
mov rsi, r8
mov r13, rdx
mov rdi, rcx
mov rax, rdx
sub rax, rcx
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jle 0x140122d31
test rsi, rsi
jle 0x140122dac
movzx r9d, bl
mov r8, r13
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.1401227d0
mov rcx, rsi
sar rcx, 2
sar rsi, 1
add rsi, rcx
mov rcx, r13
mov rbp, qword [rsp + 0x38]
sub rcx, rbp
and rcx, 0xfffffffffffffff8
mov r14, qword [rsp + 0x30]
mov rax, r14
sub rax, rdi
and rax, 0xfffffffffffffff8
movzx r9d, bl
mov r8, rsi
cmp rax, rcx
jge 0x140122d05
mov rdx, r14
mov rcx, rdi
call fcn.140122c60
mov rdi, rbp
jmp 0x140122d1b
mov rdx, r13
mov rcx, rbp
call fcn.140122c60
mov r13, r14
mov qword [rsp + 0x88], r14
mov rax, r13
sub rax, rdi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x140122ca1
cmp rdi, r13
je 0x140122fca
lea rbp, [rdi + 8]
cmp rbp, r13
je 0x140122fca
mov r14, rdi
nop word [rax + rax]
mov rsi, rbp
mov rdx, rbp
lea rcx, [rsp + 0x88]
call fcn.1401134d0
nop
mov rdx, rdi
lea rcx, [rsp + 0x88]
call fcn.140113920
test al, al
je 0x140122f5e
mov rbx, rbp
cmp rbp, rdi
je 0x140122da4
nop dword [rax]
nop dword [rax + rax]
mov rcx, rbx
sub rbx, 8
mov rdx, rbx
call fcn.140113850
cmp rbx, rdi
jne 0x140122d90
mov rcx, rdi
jmp 0x140122f9e
mov r15, r13
sub r15, rdi
sar r15, 3
mov qword [rsp + 0x30], r15
mov r14, r15
sar r14, 1
test r14, r14
jle 0x140122ee0
lea r12, [r15 - 1]
sar r12, 1
lea rbx, [rdi + r14*8]
lea r13, [r15 - 1]
nop dword [rax]
dec r14
sub rbx, 8
mov rdx, rbx
lea rcx, [rsp + 0x80]
call fcn.1401134d0
nop
mov rbp, r14
mov rsi, r14
cmp r14, r12
jge 0x140122e46
nop dword [rax]
nop word [rax + rax]
add rsi, rsi
lea rcx, [rsi + 2]
lea rcx, [rdi + rcx*8]
lea rdx, [rcx - 8]
call fcn.140113920
movzx eax, al
xor rax, 1
inc rax
add rsi, rax
lea rdx, [rdi + rsi*8]
lea rcx, [rdi + rbp*8]
call fcn.140113850
mov rbp, rsi
cmp rsi, r12
jl 0x140122e10
cmp rbp, r12
jne 0x140122e65
test r15b, 1
jne 0x140122e65
lea rdx, [r15 - 1]
lea rdx, [rdi + rdx*8]
lea rcx, [rdi + rbp*8]
call fcn.140113850
mov rbp, r13
cmp r14, rbp
jge 0x140122ea8
nop word [rax + rax]
lea rsi, [rbp - 1]
sar rsi, 1
lea r15, [rdi + rsi*8]
lea rdx, [rsp + 0x80]
mov rcx, r15
call fcn.140113920
test al, al
je 0x140122ea3
lea rcx, [rdi + rbp*8]
mov rdx, r15
call fcn.140113850
mov rbp, rsi
cmp r14, rsi
jl 0x140122e70
mov r15, qword [rsp + 0x30]
lea rcx, [rdi + rbp*8]
lea rdx, [rsp + 0x80]
call fcn.140113850
nop
lea rcx, [rsp + 0x80]
call fcn.140102a60
test r14, r14
jg 0x140122de0
movzx ebx, byte [rsp + 0x98]
mov r13, qword [rsp + 0x88]
cmp r15, 2
jl 0x140122fca
lea rsi, [r13 - 8]
mov r14d, 8
sub r14, rdi
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x88]
call fcn.1401134d0
nop
mov rdx, rdi
mov rcx, rsi
call fcn.140113850
mov r8, rsi
sub r8, rdi
sar r8, 3
mov byte [rsp + 0x20], bl
lea r9, [rsp + 0x88]
xor edx, edx
mov rcx, rdi
call fcn.140122b60
nop
lea rcx, [rsp + 0x88]
call fcn.140102a60
sub rsi, 8
lea rax, [r14 + rsi]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x140122f00
jmp 0x140122fca
mov rbx, r14
mov rdx, r14
lea rcx, [rsp + 0x88]
call fcn.140113920
test al, al
je 0x140122f9b
mov rdx, rbx
mov rcx, rsi
call fcn.140113850
mov rsi, rbx
sub rbx, 8
mov rdx, rbx
lea rcx, [rsp + 0x88]
call fcn.140113920
test al, al
jne 0x140122f75
mov rcx, rsi
lea rdx, [rsp + 0x88]
call fcn.140113850
nop
lea rcx, [rsp + 0x88]
call fcn.140102a60
add rbp, 8
add r14, 8
cmp rbp, r13
jne 0x140122d50
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret