Function at 0x1800f9f30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push r12
push r15
sub rsp, 0x48
mov rax, qword [rcx]
mov rbp, r9
mov r15, r8
mov rbx, rdx
mov r12, rcx
call qword [rax + 0x20]
test al, al
jne 0x1800f9f62
mov rcx, r12
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 0x1800fa5ee
mov qword [rsp + 0x78], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r14
lea r14, [r15 + 8]
sub r15, rbx
mov qword [rsp + 0x20], r14
sub r15, 8
mov qword [rsp + 0x80], r15
nop dword [rax]
mov rcx, qword [r12 + 8]
lea rbp, [0x18036ba00]
mov r11d, dword [rax - 8]
lea r14, [0x18036b900]
mov edi, dword [rax - 4]
mov r15d, 4
mov ebx, dword [rax]
mov esi, dword [rax + 4]
lea r13, [rcx + 0x70]
lea r12, [rcx + 0x74]
bswap r11d
bswap edi
bswap ebx
bswap esi
nop word [rax + rax]
mov r8d, esi
xor r8d, dword [r12 + 8]
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r13 + 8]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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, dword [r12]
xor r8d, r11d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r13]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r13 - 8]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r13 - 0x10]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea r12, [r12 - 0x20]
xor esi, r9d
lea r13, [r13 - 0x20]
lea ecx, [r9 + r10]
xor ebx, ecx
sub r15, 1
jne 0x1800fa000
mov r14, qword [rsp + 0x20]
mov r15, qword [rsp + 0x80]
mov r12, qword [rsp + 0x70]
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 + 0x88], 1
mov qword [rsp + 0x20], r14
jne 0x1800f9fc0
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
add rsp, 0x48
pop r15
pop r12
pop rbp
pop rbx
ret