Function at 0x180057fc0
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 [0x1800f8280]
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 0x1800580b3
movzx ebx, byte [rsp + 0xf0]
test rbp, rbp
jle 0x180058148
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.180059950
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 0x18005808a
mov rdx, r12
mov rcx, rsi
call fcn.180057fc0
mov rsi, r14
jmp 0x18005809d
mov rdx, r15
mov rcx, r14
call fcn.180057fc0
mov r15, r12
mov qword [rsp + 0x48], r12
mov rax, r15
sub rax, rsi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x180058016
cmp rsi, r15
je 0x180058129
lea r14, [rsi + 8]
cmp r14, r15
je 0x180058129
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.18005a480
test al, al
je 0x180058114
nop
mov rax, qword [rdi]
mov qword [rbx], rax
sub rbx, 8
cmp rbx, rsi
je 0x180058114
sub rdi, 8
lea rdx, [rsp + 0x58]
mov r8, rdi
call fcn.18005a480
test al, al
jne 0x1800580f0
mov rax, qword [rsp + 0x58]
add r14, 8
add rbp, 8
mov qword [rbx], rax
cmp r14, r15
jne 0x1800580d0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1800a3290
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 0x180058270
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 0x1800581e6
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.18005a480
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 0x1800581a0
mov rcx, qword [rsp + 0x60]
lea r8, [rdi - 1]
cmp r13, rbx
jne 0x1800581fd
test dil, 1
jne 0x1800581fd
mov rax, qword [rsi + rdi*8 - 8]
mov qword [rsi + r13*8], rax
mov r13, r8
cmp r12, r13
jge 0x180058240
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.18005a480
test al, al
je 0x18005823b
mov rax, qword [r14]
mov qword [rsi + r13*8], rax
mov r13, rbp
cmp r12, rbp
jl 0x180058210
mov rcx, qword [rsp + 0x58]
mov qword [rsi + r13*8], rcx
lea r8, [rdi - 1]
test r12, r12
jg 0x180058180
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 0x180058129
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.18005a5c0
sub r14, 8
lea rax, [r15 + r14]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x180058290
jmp 0x180058129