Function at 0x1800e92e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, rdx
mov rbx, r9
sub rax, rcx
mov rbp, r8
and rax, 0xfffffffffffffff8
mov r15, rdx
mov rsi, rcx
cmp rax, 0x100
jle 0x1800e93b8
movzx edi, byte [rsp + 0xc0]
nop dword [rax]
test rbp, rbp
jle 0x1800e9437
mov r9, rbx
mov byte [rsp + 0x20], dil
mov r8, r15
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.1800e9680
mov r12, qword [rsp + 0x50]
mov rcx, rbp
mov r14, qword [rsp + 0x58]
mov rax, r12
sar rcx, 2
sub rax, rsi
sar rbp, 1
and rax, 0xfffffffffffffff8
add rbp, rcx
mov byte [rsp + 0x20], dil
mov rcx, r15
mov r9, rbx
sub rcx, r14
mov r8, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x1800e938c
mov rdx, r12
mov rcx, rsi
call fcn.1800e92e0
mov rsi, r14
jmp 0x1800e93a2
mov rdx, r15
mov rcx, r14
call fcn.1800e92e0
mov r15, r12
mov qword [rsp + 0xa8], r12
mov rax, r15
sub rax, rsi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x1800e9320
mov qword [rsp + 0xa8], rbx
cmp rsi, r15
je 0x1800e9428
lea r14, [rsi + 8]
cmp r14, r15
je 0x1800e9428
nop
mov rbp, qword [r14]
lea rdi, [r14 - 8]
mov r8, qword [rdi]
lea rcx, [rsp + 0xa8]
mov rdx, rbp
mov rbx, r14
call fcn.1800e8980
test al, al
je 0x1800e941c
mov rax, qword [rdi]
mov qword [rbx], rax
sub rbx, 8
cmp rbx, rsi
je 0x1800e941c
mov r8, qword [rdi - 8]
lea rcx, [rsp + 0xa8]
sub rdi, 8
mov rdx, rbp
call fcn.1800e8980
test al, al
jne 0x1800e93f1
add r14, 8
mov qword [rbx], rbp
cmp r14, r15
jne 0x1800e93d0
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, r15
sub rcx, rsi
sar rcx, 3
mov r12, rcx
mov qword [rsp + 0xa0], rcx
sar r12, 1
test r12, r12
jle 0x1800e956d
lea r8, [rcx - 1]
mov qword [rsp + 0xb0], r13
mov rdi, r8
mov qword [rsp + 0x50], r8
sar rdi, 1
nop
mov r14, qword [rsi + r12*8 - 8]
dec r12
mov qword [rsp + 0x48], r14
mov rax, rbx
mov qword [rsp + 0x40], rbx
mov r13, r12
mov rdx, r12
cmp r12, rdi
jge 0x1800e94eb
lea rbp, [rdx + rdx]
lea r15, [rbp + 2]
mov rdx, qword [rsi + r15*8]
lea r15, [rsi + r15*8]
mov r8, qword [r15 - 8]
lea r14, [r15 - 8]
lea rcx, [rsp + 0x40]
call fcn.1800e8980
movzx edx, al
xor rdx, 1
inc rdx
add rdx, rbp
test al, al
cmove r14, r15
mov rax, qword [r14]
mov qword [rsi + r13*8], rax
mov r13, rdx
cmp rdx, rdi
jl 0x1800e9490
mov rax, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x50]
cmp r13, rdi
jne 0x1800e9501
test cl, 1
jne 0x1800e9501
mov rcx, qword [rsi + rcx*8 - 8]
mov qword [rsi + r13*8], rcx
mov r13, r8
mov qword [rsp + 0x48], rax
cmp r12, r13
jge 0x1800e953c
nop dword [rax + rax]
lea rbp, [r13 - 1]
mov r8, r14
sar rbp, 1
lea rcx, [rsp + 0x48]
mov rdx, qword [rsi + rbp*8]
call fcn.1800e8980
test al, al
je 0x1800e953c
mov rax, qword [rsi + rbp*8]
mov qword [rsi + r13*8], rax
mov r13, rbp
cmp r12, rbp
jl 0x1800e9510
mov rcx, qword [rsp + 0xa0]
mov qword [rsi + r13*8], r14
lea r8, [rcx - 1]
test r12, r12
jg 0x1800e9470
mov r13, qword [rsp + 0xb0]
movzx edi, byte [rsp + 0xc0]
mov r15, qword [rsp + 0xa8]
cmp rcx, 2
jl 0x1800e9428
lea r14, [r15 - 8]
mov r15d, 8
sub r15, rsi
mov rax, qword [r14]
lea r9, [rsp + 0xa8]
mov qword [rsp + 0xa8], rax
mov r8, r14
mov rax, qword [rsi]
sub r8, rsi
mov byte [rsp + 0x30], dil
xor edx, edx
sar r8, 3
mov rcx, rsi
mov byte [rsp + 0x28], dil
mov qword [r14], rax
mov qword [rsp + 0x20], rbx
call fcn.1800e9940
sub r14, 8
lea rax, [r15 + r14]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x1800e9584
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret