Function at 0x18005c160
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x1800fe280]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rax, rdx
mov qword [rsp + 0x40], rdx
sub rax, rcx
movzx ebx, r9b
and rax, 0xfffffffffffffff8
mov rbp, r8
mov r13, rdx
mov rsi, rcx
cmp rax, 0x100
jle 0x18005c24c
movzx edi, byte [rsp + 0xe0]
test rbp, rbp
jle 0x18005c2d8
xorps xmm0, xmm0
mov byte [rsp + 0x20], dil
mov r8, r13
lea rcx, [rsp + 0x58]
mov rdx, rsi
movups xmmword [rsp + 0x58], xmm0
call fcn.18005dbb0
mov r15, qword [rsp + 0x58]
mov rcx, rbp
mov r14, qword [rsp + 0x60]
mov rax, r15
sar rcx, 2
sub rax, rsi
sar rbp, 1
and rax, 0xfffffffffffffff8
add rbp, rcx
mov byte [rsp + 0x20], dil
mov rcx, r13
movzx r9d, bl
sub rcx, r14
mov r8, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x18005c223
mov rdx, r15
mov rcx, rsi
call fcn.18005c160
mov rsi, r14
jmp 0x18005c236
mov rdx, r13
mov rcx, r14
call fcn.18005c160
mov r13, r15
mov qword [rsp + 0x40], r15
mov rax, r13
sub rax, rsi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x18005c1b1
cmp rsi, r13
je 0x18005c2b9
lea r14, [rsi + 8]
cmp r14, r13
je 0x18005c2b9
mov rbp, rsi
nop dword [rax]
mov rax, qword [r14]
lea rdx, [rsp + 0x50]
mov r8, rbp
mov qword [rsp + 0x50], rax
mov rbx, r14
mov rdi, rbp
call fcn.18005e7d0
test al, al
je 0x18005c2a4
nop
mov rax, qword [rdi]
mov qword [rbx], rax
sub rbx, 8
cmp rbx, rsi
je 0x18005c2a4
sub rdi, 8
lea rdx, [rsp + 0x50]
mov r8, rdi
call fcn.18005e7d0
test al, al
jne 0x18005c280
mov rax, qword [rsp + 0x50]
add r14, 8
add rbp, 8
mov qword [rbx], rax
cmp r14, r13
jne 0x18005c260
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1800a8bf0
add rsp, 0x80
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x78], r12
mov rbp, r13
sub rbp, rsi
sar rbp, 3
mov r12, rbp
mov qword [rsp + 0x58], rbp
sar r12, 1
test r12, r12
jle 0x18005c3ea
lea r13, [rbp - 1]
mov rdi, r13
sar rdi, 1
nop word [rax + rax]
mov rcx, qword [rsi + r12*8 - 8]
dec r12
mov qword [rsp + 0x48], rcx
mov r15, r12
mov qword [rsp + 0x50], rcx
mov rdx, r12
cmp r12, rdi
jge 0x18005c377
nop dword [rax]
lea rbx, [rdx + rdx]
lea rbp, [rbx + 2]
lea rbp, [rsi + rbp*8]
lea r14, [rbp - 8]
mov rdx, rbp
mov r8, r14
call fcn.18005e7d0
movzx edx, al
xor rdx, 1
inc rdx
add rdx, rbx
test al, al
cmove r14, rbp
mov rax, qword [r14]
mov qword [rsi + r15*8], rax
mov r15, rdx
cmp rdx, rdi
jl 0x18005c330
mov rcx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x58]
cmp r15, rdi
jne 0x18005c38e
test bpl, 1
jne 0x18005c38e
mov rax, qword [rsi + rbp*8 - 8]
mov qword [rsi + r15*8], rax
mov r15, r13
cmp r12, r15
jge 0x18005c3d0
nop dword [rax]
nop word [rax + rax]
lea rbx, [r15 - 1]
sar rbx, 1
lea r8, [rsp + 0x50]
lea r14, [rsi + rbx*8]
mov rdx, r14
call fcn.18005e7d0
test al, al
je 0x18005c3cb
mov rax, qword [r14]
mov qword [rsi + r15*8], rax
mov r15, rbx
cmp r12, rbx
jl 0x18005c3a0
mov rcx, qword [rsp + 0x50]
mov qword [rsi + r15*8], rcx
test r12, r12
jg 0x18005c310
movzx edi, byte [rsp + 0xe0]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x78]
cmp rbp, 2
jl 0x18005c2b9
mov r14d, 8
lea rbx, [r13 - 8]
sub r14, rsi
nop word [rax + rax]
mov rax, qword [rbx]
lea r9, [rsp + 0x58]
mov qword [rsp + 0x58], rax
mov r8, rbx
mov rax, qword [rsi]
sub r8, rsi
sar r8, 3
xor edx, edx
mov rcx, rsi
mov qword [rbx], rax
mov byte [rsp + 0x30], dil
call fcn.18005e910
sub rbx, 8
lea rax, [r14 + rbx]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x18005c410
jmp 0x18005c2b9