Function at 0x1800ad1a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rdi
push r13
push r15
sub rsp, 0x48
mov rax, qword [rcx + 0x10]
mov r15, r9
mov rbx, r8
mov rdi, rdx
mov r13, rcx
cmp qword [rcx + 8], rax
jne 0x1800ad1cf
call fcn.1800331f0
test r15, r15
je 0x1800ad469
mov qword [rsp + 0x78], rbp
lea rax, [rdi + 8]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r14
lea r14, [rbx + 8]
sub rbx, rdi
mov qword [rsp + 0x20], r14
lea rcx, [rbx - 8]
mov qword [rsp + 0x28], rcx
nop word [rax + rax]
mov rcx, qword [r13 + 8]
lea r14, [0x180000000]
mov ebx, dword [rax - 8]
mov r15d, 8
mov esi, dword [rax - 4]
mov edi, dword [rax]
mov ebp, dword [rax + 4]
lea r12, [rcx + 0x70]
lea r13, [rcx + 0x74]
bswap ebx
bswap esi
bswap edi
bswap ebp
nop dword [rax]
mov r9d, dword [r13 + 8]
xor r9d, ebp
xor r9d, edi
mov ecx, r9d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr ecx, 8
mov r10d, dword [r14 + r8*4 + 0x1d81a0]
xor r10d, dword [r14 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
mov r9d, dword [r12 + 8]
xor r9d, edi
xor r10d, dword [r14 + rdx*4 + 0x1d79a0]
xor r10d, dword [r14 + rcx*4 + 0x1d75a0]
add r9d, r10d
mov ecx, r9d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr ecx, 8
mov r11d, dword [r14 + r8*4 + 0x1d81a0]
xor r11d, dword [r14 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
xor r11d, dword [r14 + rdx*4 + 0x1d79a0]
xor r11d, dword [r14 + rcx*4 + 0x1d75a0]
add r10d, r11d
mov ecx, r10d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr ecx, 8
mov r9d, dword [r14 + r8*4 + 0x1d81a0]
xor r9d, dword [r14 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r10b
xor r9d, dword [r14 + rdx*4 + 0x1d79a0]
xor r9d, dword [r14 + rcx*4 + 0x1d75a0]
xor esi, r9d
lea ecx, [r9 + r11]
mov r9d, dword [r13]
xor ebx, ecx
xor r9d, esi
xor r9d, ebx
mov ecx, r9d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr ecx, 8
mov r10d, dword [r14 + r8*4 + 0x1d81a0]
xor r10d, dword [r14 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
mov r9d, ebx
xor r9d, dword [r12]
xor r10d, dword [r14 + rdx*4 + 0x1d79a0]
xor r10d, dword [r14 + rcx*4 + 0x1d75a0]
add r9d, r10d
mov ecx, r9d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
mov r11d, dword [r14 + r8*4 + 0x1d81a0]
xor r11d, dword [r14 + rdx*4 + 0x1d7da0]
shr ecx, 8
lea r13, [r13 - 0x10]
movzx edx, cl
lea r12, [r12 - 0x10]
movzx ecx, r9b
xor r11d, dword [r14 + rdx*4 + 0x1d79a0]
xor r11d, dword [r14 + rcx*4 + 0x1d75a0]
add r10d, r11d
mov ecx, r10d
shr ecx, 0x18
movzx r8d, cl
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr ecx, 8
mov r9d, dword [r14 + r8*4 + 0x1d81a0]
xor r9d, dword [r14 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r10b
xor r9d, dword [r14 + rdx*4 + 0x1d79a0]
xor r9d, dword [r14 + rcx*4 + 0x1d75a0]
xor ebp, r9d
lea ecx, [r9 + r11]
xor edi, ecx
sub r15, 1
jne 0x1800ad240
mov r14, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov r13, qword [rsp + 0x70]
bswap edi
bswap ebp
bswap ebx
bswap esi
mov dword [rcx + rax], edi
add rax, 0x10
mov dword [r14 - 4], ebp
mov dword [r14], ebx
mov dword [r14 + 4], esi
add r14, 0x10
sub qword [rsp + 0x88], 1
mov qword [rsp + 0x20], r14
jne 0x1800ad210
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x78]
add rsp, 0x48
pop r15
pop r13
pop rdi
pop rbx
ret