Function at 0x1800fe630
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rsi, r9
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov rax, qword [rcx]
call qword [rax + 0x20]
test al, al
jne 0x1800fe66c
mov rcx, r14
call fcn.1800a53c0
call fcn.1800ff8a0
test al, al
je 0x1800fe68b
mov r9, rsi
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.180184200
jmp 0x1800feac9
mov eax, dword [0x18043b6e4]
test al, 1
jne 0x1800fe6ab
or eax, 1
mov dword [0x18043b6e4], eax
lea rcx, [0x18043b6e0]
call fcn.1801587d0
nop
test byte [0x18043b6e0], 4
je 0x1800fe6f2
cmp rsi, 8
jb 0x1800fe6f2
mov rbp, rsi
shr rbp, 3
imul rax, rbp, 0xfffffffffffffff8
add rsi, rax
mov qword [rsp + 0x98], rsi
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.1801821f0
add rbx, 0x100
add rdi, 0x100
sub rbp, 1
jne 0x1800fe6d0
call fcn.180158260
test al, al
je 0x1800fe73c
cmp rsi, 4
jb 0x1800fe73c
mov rbp, rsi
shr rbp, 2
imul rax, rbp, 0xfffffffffffffffc
add rsi, rax
mov qword [rsp + 0x98], rsi
nop word [rax + rax]
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.180180c10
sub rbx, 0xffffffffffffff80
sub rdi, 0xffffffffffffff80
sub rbp, 1
jne 0x1800fe720
test rsi, rsi
je 0x1800feac9
lea rsi, [rdi + 8]
mov qword [rsp + 0x30], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x28], rax
sub rdi, rbx
sub rdi, 8
mov qword [rsp + 0x90], rdi
nop word [rax + rax]
mov ebp, dword [rax - 8]
bswap ebp
mov r11d, dword [rax - 4]
bswap r11d
mov ebx, dword [rax]
bswap ebx
mov r14d, dword [rax + 4]
bswap r14d
mov r15d, dword [rax + 8]
bswap r15d
mov r12d, dword [rax + 0xc]
bswap r12d
mov r13d, dword [rax + 0x10]
bswap r13d
mov esi, dword [rax + 0x14]
bswap esi
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 8]
mov r10d, ebx
xor r10d, r11d
add rax, 8
mov edi, 8
nop dword [rax]
mov edx, r15d
ror edx, 0x19
mov ecx, r15d
ror ecx, 0xb
xor edx, ecx
mov ecx, r15d
ror ecx, 6
xor edx, ecx
mov ecx, r13d
xor ecx, r12d
and ecx, r15d
xor ecx, r13d
add edx, ecx
add edx, dword [rax - 8]
add esi, edx
add r14d, esi
mov r8d, r11d
xor r8d, ebp
mov edx, ebp
ror edx, 0x16
mov ecx, ebp
ror ecx, 0xd
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
and r10d, r8d
xor r10d, r11d
add esi, r10d
add esi, edx
mov edx, r14d
ror edx, 0x19
mov ecx, r14d
ror ecx, 0xb
xor edx, ecx
mov ecx, r14d
ror ecx, 6
xor edx, ecx
mov ecx, r12d
xor ecx, r15d
and ecx, r14d
xor ecx, r12d
add edx, ecx
add edx, dword [rax - 4]
add r13d, edx
add ebx, r13d
mov r9d, esi
xor r9d, ebp
mov edx, esi
ror edx, 0x16
mov ecx, esi
ror ecx, 0xd
xor edx, ecx
mov ecx, esi
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, ebp
add r13d, ecx
add r13d, edx
mov edx, ebx
ror edx, 0x19
mov ecx, ebx
ror ecx, 0xb
xor edx, ecx
mov ecx, ebx
ror ecx, 6
xor edx, ecx
mov ecx, r15d
xor ecx, r14d
and ecx, ebx
xor ecx, r15d
add edx, ecx
add edx, dword [rax]
add r12d, edx
add r11d, r12d
mov r10d, esi
xor r10d, r13d
mov edx, r13d
ror edx, 0x16
mov ecx, r13d
ror ecx, 0xd
xor edx, ecx
mov ecx, r13d
ror ecx, 2
xor edx, ecx
mov ecx, r10d
and ecx, r9d
xor ecx, esi
add r12d, ecx
add r12d, edx
mov edx, r11d
ror edx, 0x19
mov ecx, r11d
ror ecx, 0xb
xor edx, ecx
mov ecx, r11d
ror ecx, 6
xor edx, ecx
mov ecx, r14d
xor ecx, ebx
and ecx, r11d
xor ecx, r14d
add edx, ecx
add edx, dword [rax + 4]
add r15d, edx
add ebp, r15d
mov r8d, r13d
xor r8d, r12d
mov edx, r12d
ror edx, 0x16
mov ecx, r12d
ror ecx, 0xd
xor edx, ecx
mov ecx, r12d
ror ecx, 2
xor edx, ecx
and r10d, r8d
xor r10d, r13d
add r15d, r10d
add r15d, edx
mov edx, ebp
ror edx, 0x19
mov ecx, ebp
ror ecx, 0xb
xor edx, ecx
mov ecx, ebp
ror ecx, 6
xor edx, ecx
mov ecx, ebx
xor ecx, r11d
and ecx, ebp
xor ecx, ebx
add edx, ecx
add edx, dword [rax + 8]
add r14d, edx
add esi, r14d
mov r9d, r12d
xor r9d, r15d
mov edx, r15d
ror edx, 0x16
mov ecx, r15d
ror ecx, 0xd
xor edx, ecx
mov ecx, r15d
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r12d
add r14d, ecx
add r14d, edx
mov edx, esi
ror edx, 0x19
mov ecx, esi
ror ecx, 0xb
xor edx, ecx
mov ecx, esi
ror ecx, 6
xor edx, ecx
mov ecx, r11d
xor ecx, ebp
and ecx, esi
xor ecx, r11d
add edx, ecx
add edx, dword [rax + 0xc]
add ebx, edx
add r13d, ebx
mov r8d, r15d
xor r8d, r14d
mov edx, r14d
ror edx, 0x16
mov ecx, r14d
ror ecx, 0xd
xor edx, ecx
mov ecx, r14d
ror ecx, 2
xor edx, ecx
mov ecx, r8d
and ecx, r9d
xor ecx, r15d
add ebx, ecx
add ebx, edx
mov edx, r13d
ror edx, 0x19
mov ecx, r13d
ror ecx, 0xb
xor edx, ecx
mov ecx, r13d
ror ecx, 6
xor edx, ecx
mov ecx, esi
xor ecx, ebp
and ecx, r13d
xor ecx, ebp
add edx, ecx
add edx, dword [rax + 0x10]
add r11d, edx
add r12d, r11d
mov r9d, r14d
xor r9d, ebx
mov edx, ebx
ror edx, 0x16
mov ecx, ebx
ror ecx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r14d
add r11d, ecx
add r11d, edx
mov edx, r12d
ror edx, 0x19
mov ecx, r12d
ror ecx, 0xb
xor edx, ecx
mov ecx, r12d
ror ecx, 6
xor edx, ecx
mov ecx, esi
xor ecx, r13d
and ecx, r12d
xor ecx, esi
add edx, ecx
add edx, dword [rax + 0x14]
add ebp, edx
add r15d, ebp
mov r10d, ebx
xor r10d, r11d
mov edx, r11d
ror edx, 0x16
mov ecx, r11d
ror ecx, 0xd
xor edx, ecx
mov ecx, r11d
ror ecx, 2
xor edx, ecx
and r9d, r10d
xor r9d, ebx
add ebp, r9d
add ebp, edx
lea rax, [rax + 0x20]
sub rdi, 1
jne 0x1800fe7c0
mov dword [rsp + 0x20], esi
bswap ebp
mov rax, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x90]
mov dword [rdi + rax], ebp
bswap r11d
mov rsi, qword [rsp + 0x30]
mov dword [rsi - 4], r11d
bswap ebx
mov dword [rsi], ebx
bswap r14d
mov dword [rsi + 4], r14d
bswap r15d
mov dword [rsi + 8], r15d
bswap r12d
mov dword [rsi + 0xc], r12d
bswap r13d
mov dword [rsi + 0x10], r13d
mov ecx, dword [rsp + 0x20]
bswap ecx
mov dword [rsi + 0x14], ecx
add rax, 0x20
mov qword [rsp + 0x28], rax
add rsi, 0x20
mov qword [rsp + 0x30], rsi
sub qword [rsp + 0x98], 1
jne 0x1800fe770
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret