Function at 0x180104160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x1802453c8]
xor rax, rsp
mov qword [rbp - 8], rax
mov rdi, qword [rbp + 0x60]
mov r15, rdx
mov rbx, r8
lea rdx, [rbp - 0x20]
mov r14, rcx
mov r8d, 0x17
mov rcx, r15
mov rsi, r9
call r14
cmp rax, 0x17
jne 0x180104418
add dword [rsi], eax
lea r12, [0x18017ac80]
mov rax, qword [rbp - 0x1e]
movzx edx, byte [rbp - 0x20]
movzx r8d, byte [rbp - 0x1f]
movzx r9d, byte [rbp - 0xa]
mov qword [rbx + 8], rax
mov eax, dword [rbp - 0x16]
mov dword [rbx + 0x10], eax
mov eax, dword [rbp - 0x12]
mov dword [rbx + 0x14], eax
mov eax, dword [rbp - 0xe]
mov dword [rbx + 0x18], eax
movzx eax, byte [rbp - 0x1e]
mov dword [rbx], 0x5367674f
mov byte [rbx + 4], dl
mov byte [rbx + 5], r8b
mov byte [rbx + 0x1c], r9b
mov r10d, dword [rdi]
mov ecx, r10d
mov dword [rbp - 0xe], 0
shr rcx, 0x18
xor rcx, rdx
shl r10d, 8
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, r8
shl r10d, 8
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x1d]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x1c]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x1b]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x1a]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x19]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x18]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x17]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
shl r10d, 8
movzx eax, byte [rbp - 0x16]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x15]
shl r10d, 8
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x14]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x13]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x12]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x11]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0x10]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
movzx eax, byte [rbp - 0xf]
xor r10d, dword [r12 + rcx*4]
mov ecx, r10d
shl r10d, 8
shr rcx, 0x18
xor rcx, rax
xor r10d, dword [r12 + rcx*4]
mov rcx, r15
mov eax, r10d
shl r10d, 8
shr rax, 0x18
xor r10d, dword [r12 + rax*4]
mov eax, r10d
shl r10d, 8
shr rax, 0x18
xor r10d, dword [r12 + rax*4]
mov eax, r10d
shl r10d, 8
shr rax, 0x18
xor r10d, dword [r12 + rax*4]
mov eax, r10d
shl r10d, 8
shr rax, 0x18
xor r10d, dword [r12 + rax*4]
mov edx, r10d
shr rdx, 0x18
xor rdx, r9
shl r10d, 8
xor r10d, dword [r12 + rdx*4]
lea rdx, [rbx + 0x1d]
mov dword [rdi], r10d
movzx r8d, byte [rbx + 0x1c]
call r14
movzx ecx, byte [rbx + 0x1c]
cmp rax, rcx
jne 0x180104418
add dword [rsi], ecx
xor r8d, r8d
cmp byte [rbx + 0x1c], r8b
jbe 0x180104414
mov eax, dword [rdi]
movzx edx, byte [r8 + rbx + 0x1d]
inc r8d
mov ecx, eax
shr rcx, 0x18
xor rdx, rcx
shl eax, 8
xor eax, dword [r12 + rdx*4]
mov dword [rdi], eax
movzx ecx, byte [rbx + 0x1c]
cmp r8d, ecx
jb 0x1801043f0
xor eax, eax
jmp 0x18010441d
mov eax, 0xffffffef
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.180129de0
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret