Function at 0x1400020e0
Capabilities:
Encode data using xor
Get file size
Hash data using fnv
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
mov rax, qword [0x1400420c0]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov ecx, 0x20
call fcn.14000f230
xor r12d, r12d
lea rcx, str.c:windows_system32_ntdll.dll
mov qword [rsp + 0x30], r12
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov qword [rax + 8], r12
mov r14, rax
lea r8d, [r12 + 1]
mov qword [rax], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov dword [rbp + 0x1f], r12d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rcx, rax
xor edx, edx
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, edi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
lea r9, [rbp + 0x1f]
mov qword [rsp + 0x20], r12
mov rdx, rax
mov qword [r14 + 8], rax
mov r8d, edi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140002224
mov r10, qword [r14 + 8]
test r10, r10
je 0x140002224
movsxd rcx, dword [r10 + 0x3c]
mov r8d, r12d
add rcx, r10
movzx eax, word [rcx + 0x14]
lea rdx, [rcx + 0x18]
mov r11d, dword [rcx + 0x88]
add rdx, rax
mov qword [r14 + 0x10], rdx
mov qword [r14 + 0x18], rdx
movzx r9d, word [rcx + 6]
test r9d, r9d
je 0x14000220e
lea rbx, [0x14003b3a8]
nop word [rax + rax]
mov rax, r12
movzx ecx, byte [rdx + rax]
inc rax
cmp cl, byte [rbx + rax - 1]
jne 0x140002577
cmp rax, 7
jne 0x1400021f3
mov qword [r14 + 0x18], rdx
mov rax, qword [r14 + 0x18]
mov ecx, dword [rax + 0x14]
mov eax, dword [rax + 0xc]
sub rcx, rax
add rcx, r10
add rcx, r11
mov qword [r14], rcx
mov ecx, 0x68
mov qword [0x1400451f0], r14
call fcn.14000f230
mov rcx, rax
call fcn.14000b2a0
xorps xmm0, xmm0
mov qword [rbp - 0x11], r12
mov r8d, 9
mov qword [rbp - 9], r12
lea rdx, str.autostart
mov r15, rax
lea rcx, [rbp - 0x21]
movups xmmword [rbp - 0x21], xmm0
call fcn.1400029d0
mov rsi, qword [rbp - 9]
lea r8, [rbp - 0x21]
mov rdi, qword [rbp - 0x21]
cmp rsi, 0xf
mov r9, qword [rbp - 0x11]
movabs rbx, 0xcbf29ce484222325
cmova r8, rdi
mov rcx, rbx
mov rdx, r12
movabs r13, 0x100000001b3
test r9, r9
je 0x1400022b4
nop dword [rax]
movzx eax, byte [rdx + r8]
inc rdx
xor rcx, rax
imul rcx, r13
cmp rdx, r9
jb 0x1400022a0
lea r8, [rbp + 0x1f]
mov qword [rbp + 0x1f], rcx
lea rdx, [rbp - 0x21]
call fcn.14000ad50
xorps xmm0, xmm0
lea r8, [rbp - 0x39]
lea rdx, [rbp - 1]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
movdqu xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], r12
call qword [rax]
mov rdx, qword [rbp + 0x17]
cmp rdx, 0xf
jbe 0x140002320
mov rcx, qword [rbp - 1]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000231b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002592
call fcn.14000f4b4
mov rcx, qword [rbp - 0x39]
mov qword [rbp + 0xf], r12
mov qword [rbp + 0x17], send
mov byte [rbp - 1], r12b
test rcx, rcx
je 0x140002387
mov rdx, qword [rbp - 0x31]
call fcn.140002ad0
mov rcx, qword [rbp - 0x39]
mov rdx, qword [rbp - 0x29]
mov rax, rcx
sub rdx, rcx
and rdx, 0xffffffffffffffe0
cmp rdx, 0x1000
jb 0x140002376
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002592
call fcn.14000f4b4
xorps xmm0, xmm0
mov qword [rbp - 0x29], r12
movdqu xmmword [rbp - 0x39], xmm0
cmp rsi, 0xf
jbe 0x1400023be
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x1400023b6
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002592
mov rcx, rdi
call fcn.14000f4b4
xorps xmm0, xmm0
mov qword [rbp - 0x11], r12
mov r8d, recv
mov qword [rbp - 9], r12
lea rdx, str.selfprotect
lea rcx, [rbp - 0x21]
movups xmmword [rbp - 0x21], xmm0
call fcn.1400029d0
mov rsi, qword [rbp - 9]
lea rdx, [rbp - 0x21]
mov rdi, qword [rbp - 0x21]
cmp rsi, 0xf
mov r8, qword [rbp - 0x11]
mov rcx, r12
cmova rdx, rdi
test r8, r8
je 0x140002423
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rdx]
inc rcx
xor rbx, rax
imul rbx, r13
cmp rcx, r8
jb 0x140002410
lea r8, [rbp + 0x1f]
mov qword [rbp + 0x1f], rbx
lea rdx, [rbp - 0x21]
call fcn.14000ad50
xorps xmm0, xmm0
lea r8, [rbp - 0x39]
lea rdx, [rbp - 1]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
movdqu xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], r12
call qword [rax]
mov rdx, qword [rbp + 0x17]
cmp rdx, 0xf
jbe 0x14000248f
mov rcx, qword [rbp - 1]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000248a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000258c
call fcn.14000f4b4
mov rcx, qword [rbp - 0x39]
mov qword [rbp + 0xf], r12
mov qword [rbp + 0x17], send
mov byte [rbp - 1], r12b
test rcx, rcx
je 0x1400024f6
mov rdx, qword [rbp - 0x31]
call fcn.140002ad0
mov rcx, qword [rbp - 0x39]
mov rdx, qword [rbp - 0x29]
mov rax, rcx
sub rdx, rcx
and rdx, 0xffffffffffffffe0
cmp rdx, 0x1000
jb 0x1400024e5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000258c
call fcn.14000f4b4
xorps xmm0, xmm0
mov qword [rbp - 0x29], r12
movdqu xmmword [rbp - 0x39], xmm0
cmp rsi, 0xf
jbe 0x140002529
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140002521
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000258c
mov rcx, rdi
call fcn.14000f4b4
test r15, r15
je 0x140002536
mov rcx, r15
call fcn.140002730
mov edx, 0x20
mov qword [0x1400451f0], r12
mov rcx, r14
call fcn.14000f4b4
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14000f210
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
add rdx, 0x28
inc r8d
cmp r8d, r9d
jl 0x1400021f0
jmp 0x14000220e
call fcn.140015f3c
int3
call fcn.140015f3c
int3