Function at 0x140001000
Capabilities:
Check os version
Encode data using xor
Get number of processors
Hash data with crc32
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
xor eax, eax
test ecx, ecx
je 0x140001337
mov r8, qword [0x140003120]
test r8, r8
jne 0x14000104d
xor eax, eax
cmp qword [0x140003140], 0
je 0x1400011ff
cmp qword [0x140003148], 0
je 0x1400011ff
cmp qword [0x140003150], 0
je 0x1400011ff
xor r8d, r8d
mov rax, qword [0x140003138]
mov r9d, dword [rax + 0x14]
mov eax, 0
test r9, r9
je 0x140001337
mov rdx, qword [0x140003160]
mov r11, qword [0x140003148]
mov rax, qword [0x140003140]
mov r10, qword [0x140003150]
lea rdi, [r8 + 1]
xor esi, esi
movdqa xmm0, xmmword [section..rdata]
movdqa xmm1, xmmword [0x140002010]
nop dword [rax + rax]
mov ebx, dword [r11 + rsi*4]
movzx ebp, byte [r8 + rbx]
mov r14d, 0
test bpl, bpl
je 0x14000116f
add rbx, rdi
mov r14d, 0xffffffff
nop word cs:[rax + rax]
movzx ebp, bpl
xor ebp, r14d
mov r14d, ebp
and r14d, 1
neg r14d
mov r15d, ebp
shr r15d, 1
and r14d, 0xedb88320
xor r14d, r15d
mov r15d, r14d
shr r15d, 1
movd xmm2, ebp
shl ebp, 0x1e
sar ebp, 0x1f
and ebp, 0xedb88320
xor ebp, r15d
mov r15d, ebp
shr r15d, 6
pshufd xmm2, xmm2, 0
pand xmm2, xmm0
pcmpeqd xmm2, xmm0
pand xmm2, xmm1
shl r14d, 0x1a
sar r14d, 0x1f
and r14d, 0x76dc4190
shl ebp, 0x1a
sar ebp, 0x1f
and ebp, 0xedb88320
xor ebp, r15d
xor ebp, r14d
pshufd xmm3, xmm2, 0xee
pxor xmm3, xmm2
pshufd xmm2, xmm3, 0x55
pxor xmm2, xmm3
movd r14d, xmm2
xor r14d, ebp
movzx ebp, byte [rbx]
inc rbx
test bpl, bpl
jne 0x1400010d0
not r14d
cmp r14d, ecx
je 0x140001187
inc rsi
cmp rsi, r9
jb 0x1400010a0
xor eax, eax
jmp 0x140001337
mov dword [0x140003174], ecx
movzx ecx, word [r10 + rsi*2]
mov eax, dword [rax + rcx*4]
lea r9, [r8 + rax]
mov qword [0x140003168], r9
movzx r10d, byte [r8 + rax]
xor eax, eax
cmp r10b, 0xc3
jne 0x1400011b6
test rdx, rdx
je 0x140001337
mov r8d, 1
mov rcx, r9
nop
cmp r10b, 0x4c
jne 0x1400011e0
cmp byte [rcx + 1], 0x8b
jne 0x1400011e0
cmp byte [rcx + 2], 0xd1
jne 0x1400011e0
cmp byte [rcx + 3], 0xb8
je 0x1400012d9
nop dword [rax]
mov r10d, r8d
lea rcx, [r9 + r10]
movzx r10d, byte [r9 + r10]
inc r8d
cmp r10b, 0xc3
jne 0x1400011c0
test rdx, rdx
jne 0x1400011c0
jmp 0x140001337
pxor xmm0, xmm0
movdqu xmmword [0x140003140], xmm0
movdqu xmmword [0x140003130], xmm0
movdqu xmmword [0x140003120], xmm0
mov qword [0x140003150], 0
mov rdx, qword gs:[0x60]
test rdx, rdx
je 0x140001337
cmp dword [rdx + 0x118], 0xa
jne 0x140001337
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx]
mov r8, qword [rdx + 0x20]
mov qword [0x140003120], r8
mov qword [0x140003128], r8
movzx edx, word [r8]
cmp edx, 0x5a4d
jne 0x140001337
movsxd r9, dword [r8 + 0x3c]
lea rdx, [r8 + r9]
mov qword [0x140003130], rdx
cmp dword [r8 + r9], 0x4550
jne 0x140001337
mov r9d, dword [rdx + 0x88]
lea rdx, [r8 + r9]
mov qword [0x140003138], rdx
cmp dword [r8 + r9 + 0x10], 0
je 0x140001337
mov eax, dword [rdx + 0x1c]
add rax, r8
mov qword [0x140003140], rax
mov eax, dword [rdx + 0x20]
add rax, r8
mov qword [0x140003148], rax
mov eax, dword [rdx + 0x24]
add rax, r8
mov qword [0x140003150], rax
jmp 0x14000104d
movzx eax, word [rcx + 4]
mov word [0x140003170], ax
xor r8d, r8d
jmp 0x1400012ed
add r8, 2
cmp byte [rcx + r8], 0xf
jne 0x1400012fc
cmp byte [rcx + r8 + 1], 5
je 0x140001315
cmp r8, 0x1e
je 0x140001326
cmp byte [rcx + r8 + 1], 0xf
jne 0x1400012e9
cmp byte [rcx + r8 + 2], 5
jne 0x1400012e9
inc r8
mov edx, r8d
add rcx, rdx
mov qword [0x140003160], rcx
mov cl, 1
jmp 0x14000132c
test rdx, rdx
setne cl
test ax, ax
setne al
and al, cl
movzx eax, al
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret