Function at 0x18005e6c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x180100280]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rax, rdx
mov byte [rsp + 0x40], r9b
sub rax, rcx
mov qword [rsp + 0x48], rdx
and rax, 0xfffffffffffffff8
movzx edi, r9b
mov rbp, r8
mov r15, rdx
mov rsi, rcx
cmp rax, 0x100
jle 0x18005e7b3
movzx ebx, byte [rsp + 0xf0]
test rbp, rbp
jle 0x18005e848
xorps xmm0, xmm0
mov byte [rsp + 0x20], bl
movzx r9d, dil
lea rcx, [rsp + 0x60]
mov r8, r15
mov rdx, rsi
movups xmmword [rsp + 0x60], xmm0
call fcn.180060210
mov r12, qword [rsp + 0x60]
mov rcx, rbp
mov r14, qword [rsp + 0x68]
mov rax, r12
sar rcx, 2
sub rax, rsi
sar rbp, 1
and rax, 0xfffffffffffffff8
add rbp, rcx
mov byte [rsp + 0x20], bl
mov rcx, r15
movzx r9d, dil
sub rcx, r14
mov r8, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x18005e78a
mov rdx, r12
mov rcx, rsi
call fcn.18005e6c0
mov rsi, r14
jmp 0x18005e79d
mov rdx, r15
mov rcx, r14
call fcn.18005e6c0
mov r15, r12
mov qword [rsp + 0x48], r12
mov rax, r15
sub rax, rsi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x18005e716
cmp rsi, r15
je 0x18005e829
lea r14, [rsi + 8]
cmp r14, r15
je 0x18005e829
mov rbp, rsi
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [r14]
lea rdx, [rsp + 0x58]
mov r8, rbp
mov qword [rsp + 0x58], rax
mov rbx, r14
mov rdi, rbp
call fcn.180060cd0
test al, al
je 0x18005e814
nop
mov rax, qword [rdi]
mov qword [rbx], rax
sub rbx, 8
cmp rbx, rsi
je 0x18005e814
sub rdi, 8
lea rdx, [rsp + 0x58]
mov r8, rdi
call fcn.180060cd0
test al, al
jne 0x18005e7f0
mov rax, qword [rsp + 0x58]
add r14, 8
add rbp, 8
mov qword [rbx], rax
cmp r14, r15
jne 0x18005e7d0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1800ab070
add rsp, 0x90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, r15
sub rax, rsi
sar rax, 3
mov r12, rax
mov qword [rsp + 0x50], rax
sar r12, 1
test r12, r12
jle 0x18005e970
lea r8, [rax - 1]
mov qword [rsp + 0x88], r13
mov rbx, r8
mov rdi, rax
sar rbx, 1
nop dword [rax + rax]
mov rcx, qword [rsi + r12*8 - 8]
dec r12
mov qword [rsp + 0x60], rcx
mov r13, r12
mov qword [rsp + 0x58], rcx
mov rdx, r12
cmp r12, rbx
jge 0x18005e8e6
nop dword [rax]
lea rbp, [rdx + rdx]
lea r15, [rbp + 2]
lea r15, [rsi + r15*8]
lea r14, [r15 - 8]
mov rdx, r15
mov r8, r14
call fcn.180060cd0
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, rbx
jl 0x18005e8a0
mov rcx, qword [rsp + 0x60]
lea r8, [rdi - 1]
cmp r13, rbx
jne 0x18005e8fd
test dil, 1
jne 0x18005e8fd
mov rax, qword [rsi + rdi*8 - 8]
mov qword [rsi + r13*8], rax
mov r13, r8
cmp r12, r13
jge 0x18005e940
nop dword [rax]
nop word [rax + rax]
lea rbp, [r13 - 1]
sar rbp, 1
lea r8, [rsp + 0x58]
lea r14, [rsi + rbp*8]
mov rdx, r14
call fcn.180060cd0
test al, al
je 0x18005e93b
mov rax, qword [r14]
mov qword [rsi + r13*8], rax
mov r13, rbp
cmp r12, rbp
jl 0x18005e910
mov rcx, qword [rsp + 0x58]
mov qword [rsi + r13*8], rcx
lea r8, [rdi - 1]
test r12, r12
jg 0x18005e880
mov r13, qword [rsp + 0x88]
movzx ebx, byte [rsp + 0xf0]
movzx edi, byte [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
cmp rax, 2
jl 0x18005e829
lea r14, [r15 - 8]
mov r15d, 8
sub r15, rsi
nop word [rax + rax]
mov rax, qword [r14]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x60], rax
mov r8, r14
mov rax, qword [rsi]
sub r8, rsi
mov byte [rsp + 0x30], bl
xor edx, edx
sar r8, 3
mov rcx, rsi
mov byte [rsp + 0x28], bl
mov qword [r14], rax
mov byte [rsp + 0x20], dil
call fcn.180060e10
sub r14, 8
lea rax, [r15 + r14]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x18005e990
jmp 0x18005e829