Function at 0x1801afb40
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 0x1801afb92
mov dword [0x18029ccf4], 0x65
jmp 0x1801afdc7
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 0x1801afdbd
cmp dword [rbp - 0x4c], 1
jne 0x1801afdbd
cmp byte [rbp - 0x50], 0xfa
ja 0x1801afdb1
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 0x1801afb83
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 0x1801afdbd
cmp dword [rbp - 0x4c], 0x1d
jne 0x1801afdbd
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 0x1801afc60
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 0x1801afb83
movzx ecx, byte [rbp - 0x2f]
movzx eax, byte [rbp - 0x30]
shl cx, 8
or cx, ax
cmp cx, word [rbx + 0x60]
jne 0x1801afdb1
mov ecx, dword [rbx + 0x78]
test ecx, ecx
je 0x1801afcdc
call fcn.1801b4ce0
mov rdi, rax
test r14, r14
je 0x1801afd41
test rdi, rdi
je 0x1801afd41
cmp dword [rdi + 0x1c], 1
jne 0x1801afd41
cmp byte [rbp - 0x50], 0xfa
jae 0x1801afd41
mov rax, qword [rbp - 0x18]
test al, al
jne 0x1801afd22
test byte [rdi + 0x40], 0x80
jne 0x1801afd22
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.1801af970
test eax, eax
je 0x1801afdc7
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 0x1801afdaa
mov edx, dword [rbx + 0x48]
mov ecx, r15d
mov r8d, dword [rbx + 0x50]
cmp edx, r8d
jbe 0x1801afd69
mov eax, dword [rbx + 0x44]
cmp dword [rbx + 0x4c], eax
jbe 0x1801afd6e
mov ecx, r8d
sub ecx, edx
add ecx, 0xa8c0
jmp 0x1801afd6e
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 0x1801afd85
movzx eax, cx
cmp eax, esi
jae 0x1801afda6
sub esi, eax
xor edx, edx
mov eax, esi
div dword [rbx + 0x40]
mov dword [rbx + 0x14], eax
cmp eax, 1
jbe 0x1801afdaa
mov dword [0x18029ccf4], 0x63
jmp 0x1801afdc7
mov dword [rbx + 0x14], r15d
mov eax, 1
jmp 0x1801afdc9
mov dword [0x18029ccf4], 0x67
jmp 0x1801afdc7
mov dword [0x18029ccf4], 0x62
xor eax, eax
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1801e67e0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x80
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret