Function at 0x1800ad480
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 0x1800ad4af
call fcn.1800331f0
test r15, r15
je 0x1800ad72d
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
lea rcx, [rbx - 8]
mov qword [rsp + 0x20], rcx
mov r12, qword [r13 + 8]
lea r15, [0x180000000]
mov ebx, dword [rax - 8]
add r12, 0xc
mov esi, dword [rax - 4]
mov r13d, 8
mov edi, dword [rax]
mov ebp, dword [rax + 4]
bswap ebx
bswap esi
bswap edi
bswap ebp
nop dword [rax + rax]
mov r9d, dword [r12 - 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 [r15 + r8*4 + 0x1d81a0]
xor r10d, dword [r15 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
mov r9d, dword [r12 - 0xc]
xor r9d, edi
xor r10d, dword [r15 + rdx*4 + 0x1d79a0]
xor r10d, dword [r15 + 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 [r15 + r8*4 + 0x1d81a0]
xor r11d, dword [r15 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
xor r11d, dword [r15 + rdx*4 + 0x1d79a0]
xor r11d, dword [r15 + 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 [r15 + r8*4 + 0x1d81a0]
xor r9d, dword [r15 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r10b
xor r9d, dword [r15 + rdx*4 + 0x1d79a0]
xor r9d, dword [r15 + rcx*4 + 0x1d75a0]
xor esi, r9d
lea ecx, [r9 + r11]
mov r9d, dword [r12]
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 [r15 + r8*4 + 0x1d81a0]
xor r10d, dword [r15 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r9b
mov r9d, dword [r12 - 4]
xor r9d, ebx
xor r10d, dword [r15 + rdx*4 + 0x1d79a0]
xor r10d, dword [r15 + 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 [r15 + r8*4 + 0x1d81a0]
xor r11d, dword [r15 + rdx*4 + 0x1d7da0]
shr ecx, 8
lea r12, [r12 + 0x10]
movzx edx, cl
movzx ecx, r9b
xor r11d, dword [r15 + rdx*4 + 0x1d79a0]
xor r11d, dword [r15 + 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 [r15 + r8*4 + 0x1d81a0]
xor r9d, dword [r15 + rdx*4 + 0x1d7da0]
movzx edx, cl
movzx ecx, r10b
xor r9d, dword [r15 + rdx*4 + 0x1d79a0]
xor r9d, dword [r15 + rcx*4 + 0x1d75a0]
xor ebp, r9d
lea ecx, [r9 + r11]
xor edi, ecx
sub r13, 1
jne 0x1800ad510
mov rcx, qword [rsp + 0x20]
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
jne 0x1800ad4e0
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