Function at 0x1801afc20
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x18029e198]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov esi, edx
mov r14, r8
mov edx, dword [rcx + 0x68]
mov rbx, rcx
mov rcx, qword [rcx + 0x28]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
jne 0x1801afc72
mov dword [0x18029ccf4], 0x65
jmp 0x1801afea7
mov rcx, qword [rbx + 0x28]
lea r9, [rbp - 0x4c]
xor r15d, r15d
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x20], r15
lea r8d, [r15 + 1]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1801afe9d
cmp dword [rbp - 0x4c], 1
jne 0x1801afe9d
cmp byte [rbp - 0x50], 0xfa
ja 0x1801afe91
mov edx, dword [rbx + 0x6c]
xorps xmm0, xmm0
mov rcx, qword [rbx + 0x28]
xor eax, eax
add edx, 0x14
mov qword [rbp - 0x18], rax
xor r9d, r9d
xor r8d, r8d
mov edi, r15d
movups xmmword [rbp - 0x48], xmm0
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm0
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x1801afc63
mov rcx, qword [rbx + 0x28]
lea r9, [rbp - 0x4c]
lea r8d, [r15 + 0x1d]
mov qword [rsp + 0x20], r15
lea rdx, [rbp - 0x34]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1801afe9d
cmp dword [rbp - 0x4c], 0x1d
jne 0x1801afe9d
movzx eax, byte [rbp - 0x34]
lea r8, [rbp - 0x30]
movzx ecx, byte [rbp - 0x31]
movzx edx, byte [rbp - 0x33]
shl cx, 8
shl dx, 8
or dx, ax
movzx eax, byte [rbp - 0x32]
or cx, ax
add dx, cx
lea ecx, [r15 + 0x18]
nop dword [rax]
nop dword [rax + rax]
xor byte [r8], dl
lea r8, [r8 + 1]
movzx eax, dx
add dx, dx
shr ax, 0xf
add ax, dx
movzx edx, ax
add ax, ax
shr dx, 0xf
add dx, ax
sub rcx, 1
jne 0x1801afd40
movzx eax, byte [rbp - 0x19]
shl ax, 8
movzx edx, ax
movzx eax, byte [rbp - 0x1a]
or edx, eax
movzx eax, byte [rbp - 0x1b]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rbp - 0x1c]
shl edx, 0x10
or edx, ecx
or edx, eax
jne 0x1801afc63
movzx ecx, byte [rbp - 0x2f]
movzx eax, byte [rbp - 0x30]
shl cx, 8
or cx, ax
cmp cx, word [rbx + 0x60]
jne 0x1801afe91
mov ecx, dword [rbx + 0x78]
test ecx, ecx
je 0x1801afdbc
call fcn.1801b4dc0
mov rdi, rax
test r14, r14
je 0x1801afe21
test rdi, rdi
je 0x1801afe21
cmp dword [rdi + 0x1c], 1
jne 0x1801afe21
cmp byte [rbp - 0x50], 0xfa
jae 0x1801afe21
mov rax, qword [rbp - 0x18]
test al, al
jne 0x1801afe02
test byte [rdi + 0x40], 0x80
jne 0x1801afe02
mov edx, dword [rbx + 0x70]
mov rcx, rbx
add edx, dword [rbx + 0x6c]
mov r9d, dword [rdi + 0x58]
mov r8, qword [rdi + 0x48]
call fcn.1801afa50
test eax, eax
je 0x1801afea7
mov rax, qword [rbp - 0x18]
movzx eax, al
mov ecx, r15d
mov dword [rdi + 0x20], eax
test eax, eax
mov dword [rdi + 0x1c], 2
sete cl
mov dword [rdi + 0x24], ecx
mov dword [rbx + 0x78], r15d
mov qword [r14], rdi
test esi, esi
je 0x1801afe8a
mov edx, dword [rbx + 0x48]
mov ecx, r15d
mov r8d, dword [rbx + 0x50]
cmp edx, r8d
jbe 0x1801afe49
mov eax, dword [rbx + 0x44]
cmp dword [rbx + 0x4c], eax
jbe 0x1801afe4e
mov ecx, r8d
sub ecx, edx
add ecx, 0xa8c0
jmp 0x1801afe4e
mov ecx, r8d
sub ecx, edx
lea eax, [rcx + rcx]
mov ecx, r15d
test eax, eax
cmovns ecx, eax
mov eax, 0xffff
cmp ecx, eax
jg 0x1801afe65
movzx eax, cx
cmp eax, esi
jae 0x1801afe86
sub esi, eax
xor edx, edx
mov eax, esi
div dword [rbx + 0x40]
mov dword [rbx + 0x14], eax
cmp eax, 1
jbe 0x1801afe8a
mov dword [0x18029ccf4], 0x63
jmp 0x1801afea7
mov dword [rbx + 0x14], r15d
mov eax, 1
jmp 0x1801afea9
mov dword [0x18029ccf4], 0x67
jmp 0x1801afea7
mov dword [0x18029ccf4], 0x62
xor eax, eax
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1801e68c0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x80
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret