Function at 0x1800f1670
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
push r14
push r15
sub rsp, 0x20
mov rbx, r8
lea r13, [rdx - 1]
lea r8, [rdx*8]
mov r14, rcx
mov rax, qword [rcx + r8*8]
xor qword [rbx], rax
mov rax, qword [rcx + r8*8 + 8]
xor qword [rbx + 8], rax
mov rax, qword [rcx + r8*8 + 0x10]
xor qword [rbx + 0x10], rax
mov rax, qword [rcx + r8*8 + 0x18]
xor qword [rbx + 0x18], rax
mov rax, qword [rcx + r8*8 + 0x20]
xor qword [rbx + 0x20], rax
mov rax, qword [rcx + r8*8 + 0x28]
xor qword [rbx + 0x28], rax
mov rax, qword [rcx + r8*8 + 0x30]
xor qword [rbx + 0x30], rax
mov rax, qword [rcx + r8*8 + 0x38]
mov rcx, rbx
xor qword [rbx + 0x38], rax
call fcn.1800f2020
mov rcx, rbx
call fcn.1800f3170
mov rcx, rbx
call fcn.1800f2e10
mov rcx, rbx
call fcn.1800f3170
test r13, r13
je 0x1800f1898
mov qword [rsp + 0x50], rbp
mov rax, r13
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r12
lea r12, [r14 + 0x10]
shl rax, 6
add r12, rax
nop dword [rax + rax]
mov rax, qword [r12 - 0x10]
mov rcx, rbx
xor qword [rbx], rax
mov rax, qword [r12 - 8]
xor qword [rbx + 8], rax
mov rax, qword [r12]
xor qword [rbx + 0x10], rax
mov rax, qword [r12 + 8]
xor qword [rbx + 0x18], rax
mov rax, qword [r12 + 0x10]
xor qword [rbx + 0x20], rax
mov rax, qword [r12 + 0x18]
xor qword [rbx + 0x28], rax
mov rax, qword [r12 + 0x20]
xor qword [rbx + 0x30], rax
mov rax, qword [r12 + 0x28]
xor qword [rbx + 0x38], rax
call fcn.1800f1e60
mov rcx, rbx
call fcn.1800f2020
mov r10, qword [rbx + 0x28]
mov r8, qword [rbx + 0x10]
mov rdi, qword [rbx]
mov rbp, qword [rbx + 8]
mov rdx, qword [rbx + 0x38]
mov rsi, qword [rbx + 0x30]
mov rax, rdx
mov r9, qword [rbx + 0x18]
xor rax, r10
mov r11, qword [rbx + 0x20]
xor rax, r8
not rax
mov rcx, rsi
mov qword [rbx], rax
xor rcx, r9
mov rax, rcx
xor rdx, r11
xor rax, rdi
xor rcx, rbp
mov qword [rbx + 8], rax
xor rsi, r11
mov rax, rdx
mov qword [rbx + 0x20], rcx
xor rax, rbp
xor rdx, r8
not rax
mov qword [rbx + 0x28], rdx
mov qword [rbx + 0x10], rax
xor rsi, rbp
mov rax, r10
mov qword [rbx + 0x38], rsi
xor rax, r8
xor r10, r9
xor rax, rdi
xor r10, rdi
mov rcx, rbx
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x30], r10
call fcn.1800f2e10
mov rdx, qword [rbx + 0x38]
mov rdi, qword [rbx]
mov r15, rdx
mov rbp, qword [rbx + 8]
mov rsi, qword [rbx + 0x30]
mov r9, qword [rbx + 0x18]
mov rcx, rsi
mov r11, qword [rbx + 0x20]
xor rcx, r9
mov r10, qword [rbx + 0x28]
xor rdx, r11
mov r8, qword [rbx + 0x10]
xor r15, r10
xor r15, r8
mov rax, rcx
xor rax, rdi
not r15
mov qword [rbx + 8], rax
mov rax, rdx
xor rax, rbp
mov qword [rbx], r15
not rax
mov qword [rbx + 0x10], rax
lea r12, [r12 - 0x40]
mov rax, r10
xor rsi, r11
xor rax, r8
xor r10, r9
xor rax, rdi
xor rcx, rbp
xor rdx, r8
mov qword [rbx + 0x18], rax
xor r10, rdi
mov qword [rbx + 0x20], rcx
xor rsi, rbp
mov qword [rbx + 0x28], rdx
mov qword [rbx + 0x30], r10
mov qword [rbx + 0x38], rsi
sub r13, 1
jne 0x1800f1720
mov r12, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
jmp 0x1800f18a0
mov r15, qword [rbx]
nop dword [rax + rax]
xor r15, qword [r14]
mov qword [rbx], r15
mov rax, qword [r14 + 8]
xor qword [rbx + 8], rax
mov rax, qword [r14 + 0x10]
xor qword [rbx + 0x10], rax
mov rax, qword [r14 + 0x18]
xor qword [rbx + 0x18], rax
mov rax, qword [r14 + 0x20]
xor qword [rbx + 0x20], rax
mov rax, qword [r14 + 0x28]
xor qword [rbx + 0x28], rax
mov rax, qword [r14 + 0x30]
xor qword [rbx + 0x30], rax
mov rax, qword [r14 + 0x38]
xor qword [rbx + 0x38], rax
add rsp, 0x20
pop r15
pop r14
pop r13
pop rdi
pop rbx
ret