Function at 0x1800555a0
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 [0x1800f7280]
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 0x180055693
movzx ebx, byte [rsp + 0xf0]
test rbp, rbp
jle 0x180055728
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.1800570f0
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 0x18005566a
mov rdx, r12
mov rcx, rsi
call fcn.1800555a0
mov rsi, r14
jmp 0x18005567d
mov rdx, r15
mov rcx, r14
call fcn.1800555a0
mov r15, r12
mov qword [rsp + 0x48], r12
mov rax, r15
sub rax, rsi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x1800555f6
cmp rsi, r15
je 0x180055709
lea r14, [rsi + 8]
cmp r14, r15
je 0x180055709
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.180057bb0
test al, al
je 0x1800556f4
nop
mov rax, qword [rdi]
mov qword [rbx], rax
sub rbx, 8
cmp rbx, rsi
je 0x1800556f4
sub rdi, 8
lea rdx, [rsp + 0x58]
mov r8, rdi
call fcn.180057bb0
test al, al
jne 0x1800556d0
mov rax, qword [rsp + 0x58]
add r14, 8
add rbp, 8
mov qword [rbx], rax
cmp r14, r15
jne 0x1800556b0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1800a1f30
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 0x180055850
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 0x1800557c6
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.180057bb0
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 0x180055780
mov rcx, qword [rsp + 0x60]
lea r8, [rdi - 1]
cmp r13, rbx
jne 0x1800557dd
test dil, 1
jne 0x1800557dd
mov rax, qword [rsi + rdi*8 - 8]
mov qword [rsi + r13*8], rax
mov r13, r8
cmp r12, r13
jge 0x180055820
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.180057bb0
test al, al
je 0x18005581b
mov rax, qword [r14]
mov qword [rsi + r13*8], rax
mov r13, rbp
cmp r12, rbp
jl 0x1800557f0
mov rcx, qword [rsp + 0x58]
mov qword [rsi + r13*8], rcx
lea r8, [rdi - 1]
test r12, r12
jg 0x180055760
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 0x180055709
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.180057cf0
sub r14, 8
lea rax, [r15 + r14]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x180055870
jmp 0x180055709