Function at 0x1800f8fa0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push r12
push r13
push r14
sub rsp, 0x58
mov rax, qword [rcx]
mov r13, r9
mov r14, r8
mov rbx, rdx
mov r12, rcx
call qword [rax + 0x20]
test al, al
jne 0x1800f8fd3
mov rcx, r12
call fcn.1800a53c0
mov qword [rsp + 0x48], rdi
call fcn.180158260
test al, al
je 0x1800f901c
cmp r13, 4
jb 0x1800f901c
mov rdi, r13
shr rdi, 2
imul rax, rdi, 0xfffffffffffffffc
add r13, rax
mov qword [rsp + 0x98], r13
nop dword [rax]
mov r8, r14
mov rdx, rbx
mov rcx, r12
call fcn.18017b330
add rbx, 0x40
add r14, 0x40
sub rdi, 1
jne 0x1800f9000
test r13, r13
je 0x1800f943c
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x50], rsi
lea rsi, [rbx + 8]
mov qword [rsp + 0x40], r15
lea r15, [r14 + 8]
sub r14, rbx
mov qword [rsp + 0x30], r15
sub r14, 8
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x90], r14
nop dword [rax + rax]
mov rcx, qword [r12 + 0x20]
lea r12, [0x18036b856]
mov edi, dword [rsi - 8]
mov eax, dword [rsi - 4]
mov ebx, dword [rsi]
mov ebp, dword [rsi + 4]
mov r15d, dword [rcx + 4]
mov esi, dword [rcx + 0xc]
mov r13d, dword [rcx + 8]
mov r14d, dword [rcx]
bswap edi
bswap eax
bswap ebx
bswap ebp
mov qword [rsp + 0x20], 4
nop word [rax + rax]
mov r8d, ebx
xor r8d, edi
mov edx, r8d
mov ecx, r8d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r15d
xor r8d, edx
xor ecx, r8d
xor eax, ecx
mov ecx, esi
xor ecx, r8d
xor ebp, ecx
mov r10d, ebp
mov r9d, ebp
xor r10d, eax
shr r9d, 0x1e
ror eax, 0x1f
mov edx, r10d
ror edx, 0x18
mov ecx, r10d
ror ecx, 8
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor ebx, ecx
lea ecx, [rbp*4]
or r9d, ecx
mov r8d, ebx
shl ebx, 5
mov ecx, r9d
shr r8d, 0x1b
mov edx, r9d
or r8d, ebx
movzx ebx, byte [r12 + 2]
or ecx, r8d
not ecx
xor eax, ecx
mov ecx, r8d
and ecx, eax
xor ebx, ecx
xor ebx, r14d
xor ebx, r10d
xor ebx, edi
xor edx, ebx
mov ecx, ebx
xor edx, r8d
ror ebx, 2
xor edx, eax
xor ebx, esi
or ecx, edx
mov r11d, edx
not ecx
xor eax, ecx
and r11d, eax
ror eax, 1
xor r11d, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, r11d
mov edx, r8d
mov ecx, r8d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r8d, edx
xor ebx, r8d
xor eax, r8d
mov r10d, ebx
xor r10d, eax
mov edx, r10d
mov ecx, r10d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r10d, edx
ror eax, 0x1f
mov ecx, r13d
xor ecx, r10d
xor r9d, ecx
lea ecx, [rbx*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, ebx
movzx ebx, byte [r12 + 1]
shr r9d, 0x1e
or r9d, ecx
mov ecx, r9d
mov edx, r9d
or ecx, r8d
not ecx
xor eax, ecx
mov ecx, r8d
and ecx, eax
xor ebx, ecx
xor ebx, r14d
xor ebx, r10d
xor ebx, r11d
xor edx, ebx
mov ecx, ebx
xor edx, r8d
ror ebx, 2
xor edx, eax
xor ebx, esi
or ecx, edx
mov r11d, edx
not ecx
xor eax, ecx
and r11d, eax
ror eax, 1
xor r11d, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, r11d
mov edx, r8d
mov ecx, r8d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
xor r8d, edx
xor ebx, r8d
xor eax, r8d
mov r10d, ebx
xor r10d, eax
ror eax, 0x1f
mov edx, r10d
mov ecx, r10d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor r9d, ecx
lea ecx, [rbx*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, ebx
shr r9d, 0x1e
mov edi, r8d
or r9d, ecx
mov ecx, r9d
or ecx, r8d
not ecx
xor eax, ecx
movzx ecx, byte [r12]
and edi, eax
xor edi, ecx
xor edi, r14d
mov edx, r9d
xor edi, r10d
xor edi, r11d
movzx r11d, byte [r12 - 1]
xor edx, edi
mov ecx, edi
xor edx, r8d
ror edi, 2
xor edx, eax
xor edi, esi
or ecx, edx
mov ebx, edx
not ecx
xor eax, ecx
and ebx, eax
ror eax, 1
xor ebx, r9d
xor eax, r15d
mov r9d, edx
shr edx, 5
shl r9d, 0x1b
or r9d, edx
mov r8d, r9d
xor r8d, ebx
mov edx, r8d
mov ecx, r8d
ror edx, 0x18
ror ecx, 8
xor edx, ecx
xor r8d, edx
xor eax, r8d
xor edi, r8d
mov r10d, edi
xor r10d, eax
ror eax, 0x1f
mov edx, r10d
mov ecx, r10d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, r13d
xor r10d, edx
xor ecx, r10d
xor r9d, ecx
lea ecx, [rdi*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, edi
shr r9d, 0x1e
or r9d, ecx
mov edx, r9d
mov ecx, r9d
or edx, r8d
not edx
xor edx, eax
mov eax, r8d
and eax, edx
xor r11d, eax
xor r11d, r14d
xor r11d, r10d
xor r11d, ebx
xor ecx, r11d
mov eax, r11d
xor ecx, r8d
xor ecx, edx
or eax, ecx
mov edi, ecx
not eax
mov ebx, ecx
xor edx, eax
shl ebx, 0x1b
and edi, edx
mov eax, edx
shl eax, 0x1f
xor edi, r9d
shr edx, 1
or eax, edx
shr ecx, 5
mov ebp, r11d
lea r12, [r12 - 4]
shl ebp, 0x1e
or ebx, ecx
shr r11d, 2
or ebp, r11d
sub qword [rsp + 0x20], 1
jne 0x1800f90a0
mov r15, qword [rsp + 0x30]
mov r10d, ebx
mov rsi, qword [rsp + 0x28]
xor r10d, edi
mov r12, qword [rsp + 0x80]
mov edx, r10d
mov r14, qword [rsp + 0x90]
mov ecx, r10d
ror ecx, 8
ror edx, 0x18
mov r9, qword [r12 + 0x20]
xor edx, ecx
xor r10d, edx
mov r8d, r10d
xor r10d, dword [r9 + 0xc]
xor r8d, dword [r9 + 4]
xor r10d, ebp
xor r8d, eax
mov ecx, r10d
xor ecx, r8d
mov edx, ecx
mov eax, ecx
ror eax, 8
ror edx, 0x18
xor edx, eax
xor edx, ecx
mov ecx, dword [r9 + 8]
xor ecx, edx
mov eax, edx
xor eax, dword [r9]
xor ecx, ebx
xor eax, edi
btc eax, 7
bswap eax
bswap r8d
bswap ecx
bswap r10d
mov dword [r14 + rsi], eax
add rsi, 0x10
mov dword [r15 - 4], r8d
mov dword [r15], ecx
mov dword [r15 + 4], r10d
add r15, 0x10
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r15
jne 0x1800f9060
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x48]
add rsp, 0x58
pop r14
pop r13
pop r12
pop rbx
ret