Function at 0x180009070
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rax, qword [0x18003a7d8]
xor rax, rsp
mov qword [rsp + 0x18], rax
mov r12d, dword [rcx + 0x10ac]
mov rax, qword [rdx]
mov r13d, dword [rdx]
xor r13d, dword [rcx + 0x10a4]
mov ebp, dword [rdx + 4]
mov r14d, dword [rdx + 0xc]
xor ebp, dword [rcx + 0x10a8]
xor r12d, dword [rdx + 8]
xor r14d, dword [rcx + 0x10b0]
mov rdi, rcx
lea rcx, [rsp + 8]
mov qword [rsp], rdx
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov esi, 8
mov qword [rcx + 8], rax
mov r15d, 0x1d
lea rax, [r15 - 2]
mov edx, r14d
and eax, 3
rol edx, 0xb
mov r8d, dword [rdi + rax*4 + 0x10a4]
add edx, r12d
xor edx, r8d
mov eax, edx
shr eax, 0x10
movzx eax, al
movzx r9d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
movzx eax, al
or r9d, ecx
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl r9d, 8
mov edx, r12d
or r9d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r9d, 8
or r9d, eax
xor r9d, r13d
ror edx, 0xf
xor edx, r14d
add edx, r8d
lea r8, [r15 + 1]
mov eax, edx
and r8d, 3
shr eax, 0x10
movzx eax, al
movzx r10d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
movzx eax, al
or r10d, ecx
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl r10d, 8
or r10d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r10d, 8
or r10d, eax
xor r10d, ebp
mov edx, r10d
rol edx, 0xb
add edx, r9d
xor edx, dword [rdi + r8*4 + 0x10a4]
mov eax, edx
shr eax, 0x10
movzx eax, al
movzx r11d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
or r11d, ecx
movzx ecx, dl
movzx eax, al
movzx eax, byte [rax + rdi + 0xfa4]
shl r11d, 8
mov edx, r9d
or r11d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r11d, 8
or r11d, eax
xor r11d, r12d
ror edx, 0xf
xor edx, r10d
add edx, dword [rdi + r8*4 + 0x10a4]
mov eax, edx
mov r8, r15
shr eax, 0x10
and r8d, 3
movzx eax, al
movzx ebx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
movzx eax, al
or ebx, ecx
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl ebx, 8
or ebx, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl ebx, 8
or ebx, eax
xor ebx, r14d
mov edx, ebx
rol edx, 0xb
add edx, r11d
xor edx, dword [rdi + r8*4 + 0x10a4]
mov eax, edx
shr eax, 0x10
movzx eax, al
movzx r13d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
movzx eax, al
or r13d, ecx
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl r13d, 8
mov edx, r11d
or r13d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r13d, 8
or r13d, eax
xor r13d, r9d
ror edx, 0xf
xor edx, ebx
add edx, dword [rdi + r8*4 + 0x10a4]
lea r8, [r15 - 1]
mov eax, edx
and r8d, 3
shr eax, 0x10
movzx eax, al
movzx ebp, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
or ebp, ecx
movzx eax, al
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl ebp, 8
or ebp, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl ebp, 8
or ebp, eax
xor ebp, r10d
mov edx, ebp
rol edx, 0xb
add edx, r13d
xor edx, dword [rdi + r8*4 + 0x10a4]
mov eax, edx
shr eax, 0x10
movzx eax, al
movzx r12d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
sub r15, 4
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
movzx eax, al
or r12d, ecx
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl r12d, 8
mov edx, r13d
or r12d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r12d, 8
or r12d, eax
xor r12d, r11d
ror edx, 0xf
xor edx, ebp
add edx, dword [rdi + r8*4 + 0x10a4]
mov eax, edx
shr eax, 0x10
movzx eax, al
movzx r14d, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [rax + rdi + 0xfa4]
mov eax, edx
shr eax, 8
shl ecx, 8
or r14d, ecx
movzx eax, al
movzx ecx, dl
movzx eax, byte [rax + rdi + 0xfa4]
shl r14d, 8
or r14d, eax
movzx eax, byte [rcx + rdi + 0xfa4]
shl r14d, 8
or r14d, eax
xor r14d, ebx
sub rsi, 1
jne 0x1800090e1
xor r12d, dword [rdi + 0x10a4]
mov rsi, qword [rsp]
mov dword [rsi], r12d
mov eax, dword [rdi + 0x10a8]
xor eax, r14d
mov dword [rsi + 4], eax
mov eax, dword [rdi + 0x10ac]
xor eax, r13d
mov dword [rsi + 8], eax
xor ebp, dword [rdi + 0x10b0]
xor edx, edx
mov dword [rsi + 0xc], ebp
nop word [rax + rax]
movzx eax, byte [rsp + rdx + 8]
add rdx, 4
mov ecx, dword [rdi + rax*4 + 0xba4]
movzx eax, byte [rsp + rdx + 5]
xor dword [rdi + 0x10a4], ecx
mov ecx, dword [rdi + rax*4 + 0xba4]
movzx eax, byte [rsp + rdx + 6]
xor dword [rdi + 0x10a8], ecx
mov ecx, dword [rdi + rax*4 + 0xba4]
movzx eax, byte [rsp + rdx + 7]
xor dword [rdi + 0x10ac], ecx
mov ecx, dword [rdi + rax*4 + 0xba4]
xor dword [rdi + 0x10b0], ecx
cmp rdx, 0x10
jl 0x180009440
mov rcx, qword [rsp + 0x18]
xor rcx, rsp
call fcn.180025eb0
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret