Function at 0x1800f9880
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push r13
push r15
sub rsp, 0x38
mov rax, qword [rcx]
mov rbp, r9
mov r15, r8
mov rbx, rdx
mov r13, rcx
call qword [rax + 0x20]
test al, al
jne 0x1800f98b2
mov rcx, r13
call fcn.1800a53c0
lea rdx, [0x18036b900]
mov ecx, 0x100
call fcn.180158b00
lea rdx, [0x18036ba00]
mov ecx, 0x100
call fcn.180158b00
test rbp, rbp
je 0x1800f9f1f
mov qword [rsp + 0x68], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
lea r14, [r15 + 8]
sub r15, rbx
sub r15, 8
mov qword [rsp + 0x70], r15
nop word [rax + rax]
mov r12, qword [r13 + 8]
lea r15, [0x18036ba00]
mov r11d, dword [rax - 8]
lea rbp, [0x18036b900]
mov edi, dword [rax - 4]
add r12, 0xc
mov ebx, dword [rax]
mov r13d, 4
mov esi, dword [rax + 4]
bswap r11d
bswap edi
bswap ebx
bswap esi
mov r8d, esi
xor r8d, dword [r12 - 8]
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r12 - 0xc]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor edi, r9d
lea ecx, [r9 + r10]
xor r11d, ecx
mov r8d, edi
xor r8d, r11d
xor r8d, dword [r12]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r12 - 4]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor esi, r9d
lea ecx, [r9 + r10]
mov r8d, esi
xor r8d, dword [r12 + 8]
xor ebx, ecx
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r12 + 4]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea ecx, [r9 + r10]
xor edi, r9d
xor r11d, ecx
mov r8d, edi
xor r8d, dword [r12 + 0x10]
xor r8d, r11d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r12 + 0xc]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r15]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r15]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea r12, [r12 + 0x20]
xor esi, r9d
lea ecx, [r9 + r10]
xor ebx, ecx
sub r13, 1
jne 0x1800f9941
mov r15, qword [rsp + 0x70]
mov r13, qword [rsp + 0x60]
bswap ebx
bswap esi
bswap r11d
bswap edi
mov dword [r15 + rax], ebx
add rax, 0x10
mov dword [r14 - 4], esi
mov dword [r14], r11d
mov dword [r14 + 4], edi
add r14, 0x10
sub qword [rsp + 0x78], 1
jne 0x1800f9910
mov r14, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x68]
add rsp, 0x38
pop r15
pop r13
pop rbp
pop rbx
ret