Function at 0x1800f8ad0
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 0x1800f8b03
mov rcx, r12
call fcn.1800a53c0
mov qword [rsp + 0x48], rdi
call fcn.180158260
test al, al
je 0x1800f8b4c
cmp r13, 4
jb 0x1800f8b4c
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.18017aee0
add rbx, 0x40
add r14, 0x40
sub rdi, 1
jne 0x1800f8b30
test r13, r13
je 0x1800f8f86
mov qword [rsp + 0x88], rbp
lea rdx, str.e6lM
mov qword [rsp + 0x50], rsi
lea rsi, [rbx + 8]
mov qword [rsp + 0x40], r15
lea r15, [r14 + 8]
sub r14, rbx
mov qword [rsp + 0x28], r15
sub r14, 8
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x90], r14
nop
mov rcx, qword [r12 + 8]
mov eax, dword [rsi - 8]
mov edi, 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]
mov qword [rsp + 0x30], 0
mov r12, qword [rsp + 0x30]
bswap eax
bswap edi
bswap ebx
bswap ebp
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r12 + rdx - 1]
mov r8d, ebx
xor eax, ecx
xor r8d, eax
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 edi, ecx
mov ecx, esi
xor ecx, r8d
xor ebp, ecx
mov r9d, ebp
mov r8d, ebp
xor r9d, edi
shr r8d, 0x1e
ror edi, 0x1f
mov edx, r9d
ror edx, 0x18
mov ecx, r9d
ror ecx, 8
xor edx, ecx
mov ecx, r13d
xor r9d, edx
xor ecx, r9d
xor ebx, ecx
lea ecx, [rbp*4]
or r8d, ecx
lea rbp, str.e6lM
mov ecx, r8d
mov edx, ebx
shr edx, 0x1b
shl ebx, 5
or edx, ebx
or ecx, edx
mov r11d, edx
not ecx
xor edi, ecx
mov ecx, r8d
and r11d, edi
xor r11d, r14d
xor r11d, r9d
xor r11d, eax
xor ecx, r11d
mov eax, r11d
xor ecx, edx
ror r11d, 2
xor ecx, edi
xor r11d, esi
or eax, ecx
mov r10d, ecx
not eax
xor edi, eax
movzx eax, byte [r12 + rbp]
and r10d, edi
ror edi, 1
xor r10d, r8d
xor edi, r15d
mov r8d, ecx
xor r10d, eax
shr ecx, 5
shl r8d, 0x1b
or r8d, ecx
mov edx, r8d
xor edx, r10d
mov ecx, edx
mov eax, edx
ror ecx, 0x18
ror eax, 8
xor ecx, eax
xor edx, ecx
xor r11d, edx
xor edi, edx
mov r9d, r11d
xor r9d, edi
mov ecx, r9d
ror ecx, 0x18
ror edi, 0x1f
mov eax, r9d
ror eax, 8
xor ecx, eax
mov eax, r13d
xor r9d, ecx
xor eax, r9d
xor r8d, eax
lea eax, [r11*4]
mov edx, r8d
shl r8d, 5
shr edx, 0x1b
or edx, r8d
mov r8d, r11d
shr r8d, 0x1e
mov r11d, edx
or r8d, eax
mov eax, r8d
mov ecx, r8d
or eax, edx
not eax
xor edi, eax
and r11d, edi
xor r11d, r14d
xor r11d, r9d
xor r11d, r10d
xor ecx, r11d
mov eax, r11d
xor ecx, edx
ror r11d, 2
xor ecx, edi
xor r11d, esi
or eax, ecx
mov r10d, ecx
not eax
xor edi, eax
movzx eax, byte [r12 + rbp + 1]
and r10d, edi
ror edi, 1
xor r10d, r8d
xor edi, r15d
xor r10d, eax
mov r8d, ecx
shr ecx, 5
shl r8d, 0x1b
or r8d, ecx
mov edx, r8d
xor edx, r10d
mov ecx, edx
mov eax, edx
ror eax, 8
ror ecx, 0x18
xor ecx, eax
xor edx, ecx
xor r11d, edx
xor edi, edx
mov r9d, r11d
xor r9d, edi
ror edi, 0x1f
mov ecx, r9d
mov eax, r9d
ror eax, 8
ror ecx, 0x18
xor ecx, eax
mov eax, r13d
xor r9d, ecx
xor eax, r9d
xor r8d, eax
lea eax, [r11*4]
mov edx, r8d
shl r8d, 5
shr edx, 0x1b
or edx, r8d
mov r8d, r11d
shr r8d, 0x1e
mov r11d, edx
or r8d, eax
mov eax, r8d
or eax, edx
not eax
xor edi, eax
and r11d, edi
mov ecx, r8d
xor r11d, r14d
xor r11d, r9d
xor r11d, r10d
xor ecx, r11d
mov eax, r11d
xor ecx, edx
ror r11d, 2
xor ecx, edi
xor r11d, esi
or eax, ecx
mov ebx, ecx
not eax
mov r9d, ecx
xor edi, eax
shr ecx, 5
movzx eax, byte [r12 + rbp + 2]
and ebx, edi
shl r9d, 0x1b
xor ebx, r8d
xor ebx, eax
ror edi, 1
or r9d, ecx
xor edi, r15d
mov edx, r9d
xor edx, ebx
mov ecx, edx
mov eax, edx
ror eax, 8
ror ecx, 0x18
xor ecx, eax
xor edx, ecx
xor r11d, edx
xor edi, edx
mov r10d, r11d
xor r10d, edi
ror edi, 0x1f
mov ecx, r10d
mov eax, r10d
ror eax, 8
ror ecx, 0x18
xor ecx, eax
mov eax, r13d
xor r10d, ecx
xor eax, r10d
xor r9d, eax
lea eax, [r11*4]
mov r8d, r9d
shl r9d, 5
shr r8d, 0x1b
or r8d, r9d
mov r9d, r11d
shr r9d, 0x1e
mov r11d, r8d
or r9d, eax
mov eax, r9d
mov ecx, r9d
or eax, r8d
not eax
xor edi, eax
and r11d, edi
mov edx, edi
xor r11d, r14d
xor r11d, r10d
xor r11d, ebx
xor ecx, r11d
mov eax, r11d
xor ecx, r8d
xor ecx, edi
or eax, ecx
mov ebx, ecx
not eax
xor edx, eax
mov eax, ecx
and eax, edx
mov edi, edx
xor eax, r9d
shl edi, 0x1f
shr edx, 1
or edi, edx
mov ebp, r11d
shl ebx, 0x1b
shl ebp, 0x1e
lea rdx, str.e6lM
shr ecx, 5
add r12, 4
shr r11d, 2
or ebx, ecx
or ebp, r11d
cmp r12, 0x10
jne 0x1800f8bd0
mov r15, qword [rsp + 0x28]
mov edx, ebx
mov rsi, qword [rsp + 0x20]
xor edx, eax
mov r12, qword [rsp + 0x80]
xor edx, 0xd4
mov r14, qword [rsp + 0x90]
mov r11d, edx
ror r11d, 0x18
mov ecx, edx
ror ecx, 8
mov r10, qword [r12 + 8]
xor r11d, ecx
xor r11d, edx
mov r9d, r11d
xor eax, dword [r10]
xor r11d, dword [r10 + 0xc]
xor r9d, dword [r10 + 4]
xor r11d, ebp
xor r9d, edi
mov r8d, r11d
xor r8d, r9d
mov edx, r8d
mov ecx, r8d
ror ecx, 8
ror edx, 0x18
xor edx, ecx
mov ecx, dword [r10 + 8]
xor r8d, edx
lea rdx, str.e6lM
xor eax, r8d
xor ecx, r8d
xor eax, 0xd4
xor ecx, ebx
bswap eax
bswap ecx
bswap r9d
bswap r11d
mov dword [r14 + rsi], eax
add rsi, 0x10
mov dword [r15], ecx
mov dword [r15 - 4], r9d
mov dword [r15 + 4], r11d
add r15, 0x10
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], r15
jne 0x1800f8b90
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