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:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
mov r10, qword [0x140005650]
mov r11, rdx
mov r14d, ecx
test r10, r10
jne 0x1400010e6
mov rax, qword gs:[0x60]
test rax, rax
je 0x1400010ce
cmp dword [rax + 0x118], 0xa
jne 0x1400010ce
mov rax, qword [rax + 0x18]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx]
mov r10, qword [rax + 0x20]
test r10, r10
je 0x1400010ce
mov eax, 0x5a4d
cmp word [r10], ax
jne 0x1400010ce
movsxd rax, dword [r10 + 0x3c]
cmp dword [rax + r10], 0x4550
jne 0x1400010ce
mov ecx, dword [rax + r10 + 0x88]
add rcx, r10
je 0x1400010ce
mov edx, dword [rcx + 0x18]
mov esi, dword [rcx + 0x20]
mov edi, dword [rcx + 0x1c]
add rsi, r10
mov ebx, dword [rcx + 0x24]
add rdi, r10
add rbx, r10
mov qword [0x140005650], r10
mov dword [0x140005648], edx
mov qword [0x140005638], rsi
mov qword [0x140005630], rdi
mov qword [0x140005640], rbx
test edx, edx
je 0x1400010ce
test rsi, rsi
je 0x1400010ce
test rdi, rdi
je 0x1400010ce
test rbx, rbx
jne 0x140001101
xor eax, eax
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret
mov edx, dword [0x140005648]
mov rbx, qword [0x140005640]
mov rsi, qword [0x140005638]
mov rdi, qword [0x140005630]
xor r15d, r15d
mov qword [rsp + 0x20], rbp
mov dword [r11 + 4], r14d
mov r8d, r15d
mov ebp, edx
mov r12d, 0xff
test edx, edx
je 0x140001389
mov r9d, dword [rsi + r8*4]
mov edx, 0xffffffff
movzx eax, word [rbx + r8*2]
add r9, r10
mov eax, dword [rdi + rax*4]
movzx ecx, byte [r9]
add rax, r10
test cl, cl
je 0x1400011e0
movsx ecx, cl
lea r9, [r9 + 1]
xor edx, ecx
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, edx
mov edx, ecx
shr ecx, 1
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, edx
mov edx, ecx
shr ecx, 1
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, edx
mov edx, ecx
shr ecx, 1
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov ecx, edx
shr edx, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, edx
mov edx, ecx
shr ecx, 1
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
movzx ecx, byte [r9]
test cl, cl
jne 0x140001143
not edx
cmp edx, r14d
je 0x1400011f8
inc r8
cmp r8, rbp
jb 0x140001120
jmp 0x140001389
mov qword [r11 + 8], rax
mov r9d, 1
movzx ecx, byte [rax]
cmp cl, 0x4c
jne 0x140001251
cmp byte [rax + 1], 0x8b
jne 0x1400012f4
cmp byte [rax + 2], 0xd1
jne 0x1400012f4
cmp byte [rax + 3], 0xb8
jne 0x1400012f4
cmp byte [rax + 6], r15b
jne 0x1400012f4
cmp byte [rax + 7], r15b
jne 0x1400012f4
movzx edx, byte [rax + 5]
movzx ecx, byte [rax + 4]
shl edx, 8
or edx, ecx
mov dword [r11], edx
jmp 0x140001389
cmp cl, 0xe9
jne 0x1400012f4
movzx edx, r9w
nop
movzx r10d, dx
mov r8d, r10d
shl r8d, 5
add r8, rax
cmp byte [r8], 0x4c
jne 0x140001295
cmp byte [r8 + 1], 0x8b
jne 0x140001295
cmp byte [r8 + 2], 0xd1
jne 0x140001295
cmp byte [r8 + 3], 0xb8
jne 0x140001295
cmp byte [r8 + 6], r15b
jne 0x140001295
cmp byte [r8 + 7], r15b
je 0x1400012d5
mov ecx, r10d
neg ecx
shl ecx, 5
movsxd r8, ecx
add r8, rax
cmp byte [r8], 0x4c
jne 0x1400012ca
cmp byte [r8 + 1], 0x8b
jne 0x1400012ca
cmp byte [r8 + 2], 0xd1
jne 0x1400012ca
cmp byte [r8 + 3], 0xb8
jne 0x1400012ca
cmp byte [r8 + 6], r15b
jne 0x1400012ca
cmp byte [r8 + 7], r15b
je 0x1400012df
inc dx
cmp dx, r12w
jbe 0x140001260
jmp 0x1400012f4
movzx ecx, byte [r8 + 4]
sub ecx, r10d
jmp 0x1400012e7
movzx ecx, byte [r8 + 4]
add ecx, r10d
movzx edx, byte [r8 + 5]
shl edx, 8
or edx, ecx
mov dword [r11], edx
cmp byte [rax + 3], 0xe9
jne 0x140001389
nop
movzx r8d, r9w
mov edx, r8d
shl edx, 5
add rdx, rax
cmp byte [rdx], 0x4c
jne 0x140001330
cmp byte [rdx + 1], 0x8b
jne 0x140001330
cmp byte [rdx + 2], 0xd1
jne 0x140001330
cmp byte [rdx + 3], 0xb8
jne 0x140001330
cmp byte [rdx + 6], r15b
jne 0x140001330
cmp byte [rdx + 7], r15b
je 0x14000136d
mov ecx, r8d
neg ecx
shl ecx, 5
movsxd rdx, ecx
add rdx, rax
cmp byte [rdx], 0x4c
jne 0x140001361
cmp byte [rdx + 1], 0x8b
jne 0x140001361
cmp byte [rdx + 2], 0xd1
jne 0x140001361
cmp byte [rdx + 3], 0xb8
jne 0x140001361
cmp byte [rdx + 6], r15b
jne 0x140001361
cmp byte [rdx + 7], r15b
je 0x140001376
inc r9w
cmp r9w, r12w
jbe 0x140001300
jmp 0x140001389
movzx eax, byte [rdx + 4]
sub eax, r8d
jmp 0x14000137d
movzx eax, byte [rdx + 4]
add eax, r8d
movzx ecx, byte [rdx + 5]
shl ecx, 8
or ecx, eax
mov dword [r11], ecx
mov r8, qword [r11 + 8]
mov rbp, qword [rsp + 0x20]
test r8, r8
je 0x1400010ce
mov ecx, r15d
nop
mov edx, ecx
add rdx, r12
add rdx, r8
inc ecx
cmp byte [rdx], 0xf
jne 0x1400013ba
cmp byte [rcx + r8 + 0xff], 5
je 0x1400013c1
cmp ecx, r12d
jbe 0x1400013a0
jmp 0x1400013c5
mov qword [r11 + 0x10], rdx
cmp dword [r11], r15d
je 0x1400010ce
cmp qword [r11 + 0x10], r15
setne r15b
mov eax, r15d
jmp 0x1400010d0