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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r15
mov r10, qword [0x140005650]
mov rbx, rdx
mov r15d, ecx
test r10, r10
jne 0x1400010e4
mov rax, qword gs:[0x60]
test rax, rax
je 0x1400010cd
cmp dword [rax + 0x118], 0xa
jne 0x1400010cd
mov rax, qword [rax + 0x18]
mov rdx, qword [rax + 0x20]
mov rax, qword [rdx]
mov r10, qword [rax + 0x20]
test r10, r10
je 0x1400010cd
mov eax, 0x5a4d
cmp word [r10], ax
jne 0x1400010cd
movsxd rax, dword [r10 + 0x3c]
cmp dword [rax + r10], 0x4550
jne 0x1400010cd
mov ecx, dword [rax + r10 + 0x88]
add rcx, r10
je 0x1400010cd
mov edx, dword [rcx + 0x18]
mov ebp, dword [rcx + 0x20]
mov esi, dword [rcx + 0x1c]
add rbp, r10
mov edi, dword [rcx + 0x24]
add rsi, r10
add rdi, r10
mov qword [0x140005650], r10
mov dword [0x140005648], edx
mov qword [0x140005638], rbp
mov qword [0x140005630], rsi
mov qword [0x140005640], rdi
test edx, edx
je 0x1400010cd
test rbp, rbp
je 0x1400010cd
test rsi, rsi
je 0x1400010cd
test rdi, rdi
jne 0x1400010ff
xor eax, eax
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
pop r15
pop r12
pop rdi
ret
mov edx, dword [0x140005648]
mov rdi, qword [0x140005640]
mov rbp, qword [0x140005638]
mov rsi, qword [0x140005630]
xor r12d, r12d
mov qword [rsp + 0x20], r14
mov dword [rbx + 4], r15d
mov r11d, r12d
mov r14d, edx
test edx, edx
je 0x1400013a9
nop dword [rax]
movzx eax, word [rdi + r11*2]
mov r8d, 0xffffffff
mov r9d, dword [rbp + r11*4]
add r9, r10
mov eax, dword [rsi + rax*4]
add rax, r10
mov qword [rbx + 8], rax
movsx ecx, byte [r9]
test ecx, ecx
je 0x1400011f5
nop dword [rax]
xor r8d, ecx
lea r9, [r9 + 1]
mov edx, r8d
mov ecx, r8d
shl ecx, 0x1f
sar ecx, 0x1f
and ecx, 0x77073096
shl edx, 0x18
sar edx, 0x1f
and edx, 0xedb88320
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1d
sar ecx, 0x1f
and ecx, 0x76dc419
xor edx, ecx
mov ecx, r8d
shl ecx, 0x19
sar ecx, 0x1f
and ecx, 0x76dc4190
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0x3b6e20c8
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1e
sar ecx, 0x1f
and ecx, 0xee0e612c
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1b
sar ecx, 0x1f
and ecx, 0x1db71064
xor edx, ecx
mov ecx, r8d
shl ecx, 0x1c
sar ecx, 0x1f
and ecx, 0xedb8832
xor edx, ecx
mov ecx, r8d
shr ecx, 8
mov r8d, edx
xor r8d, ecx
movsx ecx, byte [r9]
test ecx, ecx
jne 0x140001150
not r8d
cmp r8d, r15d
je 0x14000120e
inc r11
cmp r11, r14
jb 0x140001120
jmp 0x1400013a9
movzx ecx, byte [rax]
mov r9d, 1
mov r11d, 0xff
cmp cl, 0x4c
jne 0x140001261
cmp byte [rax + 1], 0x8b
jne 0x140001303
cmp byte [rax + 2], 0xd1
jne 0x140001303
cmp byte [rax + 3], 0xb8
jne 0x140001303
cmp byte [rax + 6], r12b
jne 0x140001303
cmp byte [rax + 7], r12b
jne 0x140001303
movzx edx, byte [rax + 5]
movzx ecx, byte [rax + 4]
jmp 0x1400013a2
cmp cl, 0xe9
jne 0x140001303
movzx edx, r9w
nop
movzx r10d, dx
mov r8d, r10d
shl r8d, 5
add r8, rax
cmp byte [r8], 0x4c
jne 0x1400012a5
cmp byte [r8 + 1], 0x8b
jne 0x1400012a5
cmp byte [r8 + 2], 0xd1
jne 0x1400012a5
cmp byte [r8 + 3], 0xb8
jne 0x1400012a5
cmp byte [r8 + 6], r12b
jne 0x1400012a5
cmp byte [r8 + 7], r12b
je 0x1400012e5
mov ecx, r10d
neg ecx
shl ecx, 5
movsxd r8, ecx
add r8, rax
cmp byte [r8], 0x4c
jne 0x1400012da
cmp byte [r8 + 1], 0x8b
jne 0x1400012da
cmp byte [r8 + 2], 0xd1
jne 0x1400012da
cmp byte [r8 + 3], 0xb8
jne 0x1400012da
cmp byte [r8 + 6], r12b
jne 0x1400012da
cmp byte [r8 + 7], r12b
je 0x1400012ef
inc dx
cmp dx, r11w
jbe 0x140001270
jmp 0x140001303
movzx ecx, byte [r8 + 4]
sub ecx, r10d
jmp 0x1400012f7
movzx ecx, byte [r8 + 4]
add ecx, r10d
movzx edx, byte [r8 + 5]
shl edx, 8
or edx, ecx
mov dword [rbx], edx
cmp byte [rax + 3], 0xe9
jne 0x1400013a9
nop dword [rax]
movzx r10d, r9w
mov edx, r10d
shl edx, 5
add rdx, rax
cmp byte [rdx], 0x4c
jne 0x140001340
cmp byte [rdx + 1], 0x8b
jne 0x140001340
cmp byte [rdx + 2], 0xd1
jne 0x140001340
cmp byte [rdx + 3], 0xb8
jne 0x140001340
cmp byte [rdx + 6], r12b
jne 0x140001340
cmp byte [rdx + 7], r12b
je 0x140001381
mov ecx, r10d
neg ecx
shl ecx, 5
movsxd r8, ecx
add r8, rax
cmp byte [r8], 0x4c
jne 0x140001375
cmp byte [r8 + 1], 0x8b
jne 0x140001375
cmp byte [r8 + 2], 0xd1
jne 0x140001375
cmp byte [r8 + 3], 0xb8
jne 0x140001375
cmp byte [r8 + 6], r12b
jne 0x140001375
cmp byte [r8 + 7], r12b
je 0x140001395
inc r9w
cmp r9w, r11w
jbe 0x140001310
jmp 0x1400013a9
movzx ecx, byte [rdx + 4]
movzx eax, byte [rdx + 5]
sub ecx, r10d
shl eax, 8
or ecx, eax
mov dword [rbx], ecx
jmp 0x1400013a9
movzx ecx, byte [r8 + 4]
movzx edx, byte [r8 + 5]
add ecx, r10d
shl edx, 8
or edx, ecx
mov dword [rbx], edx
mov r14, qword [rsp + 0x20]
cmp dword [rbx], r12d
je 0x1400010cd
cmp qword [rbx + 8], r12
setne r12b
mov eax, r12d
jmp 0x1400010cf