Function at 0x1802f3080
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x28
call fcn.1802f01e0
sub rsp, rax
add rsp, 0x28
jmp 0x1802f3080
push rbx
mov eax, 0x20
call fcn.1802f01e0
sub rsp, rax
mov rbx, r8
call fcn.1802f20b0
test eax, eax
js 0x1802f32f4
mov ecx, dword [rbx + 0xf0]
lea eax, [rcx*4]
movsxd r9, eax
test eax, eax
jle 0x1802f3123
lea r8, [rbx + 8]
xor r10d, r10d
lea r8, [r8 + r9*4]
lea rax, [rbx + 8]
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rax - 8]
add r10, 4
mov ecx, dword [r8 - 8]
lea r8, [r8 - 0x10]
mov dword [rax - 8], ecx
lea rax, [rax + 0x10]
mov ecx, dword [r8 + 0xc]
sub r9, 4
mov dword [r8 + 8], edx
mov edx, dword [rax - 0x14]
mov dword [rax - 0x14], ecx
mov ecx, dword [r8 + 0x10]
mov dword [r8 + 0xc], edx
mov edx, dword [rax - 0x10]
mov dword [rax - 0x10], ecx
mov ecx, dword [r8 + 0x14]
mov dword [r8 + 0x10], edx
mov edx, dword [rax - 0xc]
mov dword [rax - 0xc], ecx
mov dword [r8 + 0x14], edx
cmp r10, r9
jl 0x1802f30d0
mov ecx, dword [rbx + 0xf0]
mov r11d, 1
cmp ecx, r11d
jle 0x1802f32f2
mov qword [rsp + 0x30], rdi
lea r10, [rbx + 4]
lea rdi, [0x180000000]
nop dword [rax]
nop word [rax + rax]
mov r9d, dword [r10 + 0x10]
lea r10, [r10 + 0x10]
mov edx, dword [r10 - 4]
inc r11d
movzx eax, byte [r10 - 3]
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
mov eax, edx
shr rax, 0x18
mov r8d, dword [rdi + rcx*4 + 0x4754d0]
movzx eax, byte [rdi + rax*4 + 0x4740d0]
xor r8d, dword [rdi + rax*4 + 0x474cd0]
movzx eax, dl
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
movzx eax, byte [r10 - 2]
xor r8d, dword [rdi + rcx*4 + 0x4758d0]
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
mov eax, r9d
shr eax, 0x10
xor r8d, dword [rdi + rcx*4 + 0x4750d0]
movzx ecx, al
mov eax, r9d
shr eax, 8
mov dword [r10 - 4], r8d
movzx edx, byte [rdi + rcx*4 + 0x4740d0]
movzx ecx, al
mov r8d, dword [rdi + rdx*4 + 0x4750d0]
movzx eax, byte [rdi + rcx*4 + 0x4740d0]
xor r8d, dword [rdi + rax*4 + 0x4754d0]
mov eax, r9d
shr rax, 0x18
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
movzx eax, r9b
mov r9d, dword [r10 + 4]
xor r8d, dword [rdi + rcx*4 + 0x474cd0]
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
mov eax, r9d
shr eax, 0x10
xor r8d, dword [rdi + rcx*4 + 0x4758d0]
movzx ecx, al
mov eax, r9d
shr eax, 8
mov dword [r10], r8d
movzx edx, byte [rdi + rcx*4 + 0x4740d0]
movzx ecx, al
mov r8d, dword [rdi + rdx*4 + 0x4750d0]
movzx eax, byte [rdi + rcx*4 + 0x4740d0]
xor r8d, dword [rdi + rax*4 + 0x4754d0]
mov eax, r9d
shr rax, 0x18
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
movzx eax, r9b
mov r9d, dword [r10 + 8]
xor r8d, dword [rdi + rcx*4 + 0x474cd0]
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
mov eax, r9d
shr eax, 0x10
xor r8d, dword [rdi + rcx*4 + 0x4758d0]
movzx ecx, al
mov eax, r9d
shr eax, 8
mov dword [r10 + 4], r8d
movzx edx, byte [rdi + rcx*4 + 0x4740d0]
movzx ecx, al
mov r8d, dword [rdi + rdx*4 + 0x4750d0]
movzx eax, byte [rdi + rcx*4 + 0x4740d0]
xor r8d, dword [rdi + rax*4 + 0x4754d0]
mov eax, r9d
shr rax, 0x18
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
movzx eax, r9b
xor r8d, dword [rdi + rcx*4 + 0x474cd0]
movzx ecx, byte [rdi + rax*4 + 0x4740d0]
xor r8d, dword [rdi + rcx*4 + 0x4758d0]
mov dword [r10 + 8], r8d
cmp r11d, dword [rbx + 0xf0]
jl 0x1802f3150
mov rdi, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rbx
ret