Function at 0x14004ccd0
Capabilities:
Check os version
Get number of processors

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x6a8
movaps xmmword [rsp + 0x690], xmm9
movaps xmmword [rsp + 0x680], xmm8
movaps xmmword [rsp + 0x670], xmm7
movaps xmmword [rsp + 0x660], xmm6
mov r15, r9
mov rbp, r8
mov r14, rdx
mov rbx, rcx
mov eax, dword [r9 + 0xa8]
lea ecx, [rax - 0x1f]
cmp cx, 4
setb dl
cmp cx, 1
setne cl
test dl, cl
jne 0x14004cd39
cmp ax, 0xc
jne 0x14004cd39
lea r13, [r15 + 0x18]
jmp 0x14004cd95
lea r8, [0x1401af95a]
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x28], 1
lea rsi, [rsp + 0x140]
mov r9d, 1
mov rcx, rsi
mov rdx, r15
call fcn.14004d956
mov al, byte [rsi]
mov ecx, dword [rsi + 1]
mov dword [rsp + 0x338], ecx
mov ecx, dword [rsi + 4]
mov dword [rsp + 0x33b], ecx
mov r13, qword [rsi + 8]
movups xmm0, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x4a0], xmm0
cmp al, 0x14
jne 0x14004ce63
mov rsi, qword [r14 + 0x90]
cmp qword [rsi + 0xb8], 0
je 0x14004cdca
mov rax, qword [rsi + 0x38]
mov rcx, qword [rsi + 0x48]
shl rcx, 4
xor edx, edx
cmp rcx, rdx
setne r12b
je 0x14004cdcd
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x14004cdb4
jmp 0x14004cdcd
xor r12d, r12d
movzx eax, word [r13 + 0x66]
cmp ax, 4
jne 0x14004cdeb
mov rcx, qword [r13 + 0x48]
mov rdx, qword [r13 + 0x58]
call fcn.1400405f2
cmp ax, 0xa
je 0x14004ce04
cmp ax, 5
je 0x14004ce8b
movzx eax, ax
mov dil, 9
cmp eax, 4
jne 0x14004ce9f
mov dil, 0xb
cmp qword [rsi + 0xb0], 0
je 0x14004ce9f
mov rax, qword [rsi + 0x38]
mov rcx, qword [rsi + 0x48]
shl rcx, 4
xor edx, edx
cmp rcx, rdx
je 0x14004ce9f
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
jne 0x14004ce23
mov rax, qword [rbp + 8]
movzx eax, byte [rax + 0x18]
dec rax
cmp rax, 1
ja 0x14004cf61
mov rax, qword [rbp]
cmp byte [rax + 0x140], 0
je 0x14004cf61
mov word [rbx], 0x2208
jmp 0x14004cee5
mov ecx, dword [rsp + 0x338]
mov edx, dword [rsp + 0x33b]
mov dword [rbx + 4], edx
mov dword [rbx + 1], ecx
movaps xmm0, xmmword [rsp + 0x4a0]
movups xmmword [rbx + 0x10], xmm0
mov byte [rbx], al
mov qword [rbx + 8], r13
jmp 0x14004cee5
mov dil, 0xb
test r12b, r12b
je 0x14004ce9f
mov di, 5
mov sil, 1
jmp 0x14004cf7e
mov rsi, qword [rbp]
mov bpl, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], bpl
mov byte [rdx + 2], 0x13
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.14004663f
mov byte [rsi + 0x141], bpl
mov byte [rbx], 7
mov byte [rbx + 1], dil
mov rcx, r15
call fcn.140040b89
lea rcx, [r14 + 0x10]
call fcn.14004f0ed
cmp qword [r14 + 0x148], 0
je 0x14004cf16
mov r8, qword [r14 + 0x140]
mov rcx, qword [0x14024a5f8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [0x14024a5f8]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x660]
movaps xmm7, xmmword [rsp + 0x670]
movaps xmm8, xmmword [rsp + 0x680]
movaps xmm9, xmmword [rsp + 0x690]
add rsp, 0x6a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r13 + 0x48]
mov rdx, qword [r13 + 0x58]
call fcn.1400405f2
cmp ax, 0xa
jne 0x14004d185
mov di, 4
xor esi, esi
cmp byte [r13 + 0x64], 0
je 0x14004cfce
mov rsi, qword [rbp]
mov dil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], dil
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.14004663f
mov byte [rsi + 0x141], dil
mov word [rbx], 0x3208
jmp 0x14004cee5
mov eax, dword [0x14024aad0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x60], 0
jne 0x14004cfef
call fcn.14009ac24
mov eax, dword [0x14024aad0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rcx, qword [rax + 0x68]
mov rdx, qword [rax + 0x70]
lea r8, [rcx + 1]
mov qword [rax + 0x68], r8
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rdx
lea rax, [0x1401dd660]
mov qword [rsp + 0x140], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x148], xmm0
mov qword [rsp + 0x158], 0
mov rax, qword [r13 + 0x58]
test rax, rax
mov qword [rsp + 0x98], rbp
je 0x14004d101
mov dword [rsp + 0x80], esi
mov word [rsp + 0x90], di
mov qword [rsp + 0x88], r15
mov rsi, qword [r13 + 0x48]
shl rax, 3
lea r15, [rax + rax*4]
lea rdi, [rsp + 0x140]
mov rcx, rsi
call fcn.14003dbf3
mov ecx, eax
call case.0x14003d96b.425
mov ebp, eax
mov rcx, rdi
mov edx, eax
call fcn.14003b22a
test al, al
jne 0x14004d295
add rsi, 0x28
mov rcx, rdi
mov edx, ebp
call fcn.14003b2e3
add r15, 0xffffffffffffffd8
jne 0x14004d091
mov rdx, qword [rsp + 0x148]
test rdx, rdx
mov r15, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x98]
movzx edi, word [rsp + 0x90]
mov esi, dword [rsp + 0x80]
je 0x14004d101
mov rcx, qword [rsp + 0x140]
call fcn.14003aea2
lea rax, [rsp + 0xbc]
mov word [rax], 0x23
mov r8, qword [r13 + 0x48]
mov r9, qword [r13 + 0x58]
mov rcx, qword [r14 + 0x78]
mov rdx, qword [r14 + 0x88]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 1
call fcn.14004d9e8
mov rbp, qword [rbp]
test al, al
je 0x14004d1ce
mov sil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], sil
mov byte [rdx + 2], 0x1a
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rbp + 0x40], 2
sete r8b
mov rcx, rbp
call fcn.14004663f
mov byte [rbp + 0x141], sil
mov word [rbx], 0x4008
jmp 0x14004cee5
mov rsi, qword [rbp]
mov dil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], dil
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.14004663f
mov byte [rsi + 0x141], dil
mov word [rbx], 0x2f08
jmp 0x14004cee5
mov word [rbp + 0x138], di
test sil, sil
jne 0x14004d21d
mov rsi, qword [r14 + 0x90]
mov rcx, qword [r13 + 0x48]
mov rdx, qword [r13 + 0x58]
call fcn.14004083a
mov r8, qword [rsi + 0x68]
mov r9, qword [rsi + 0x78]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea rsi, [rsp + 0x140]
mov rcx, rsi
mov rdx, rbp
call fcn.14004daa5
mov al, byte [rsi]
cmp al, 0x14
jne 0x14004d3ec
mov rcx, qword [r13 + 0x48]
mov rdx, qword [r13 + 0x58]
call fcn.1400405a2
test rax, rax
je 0x14004d307
test rdx, rdx
je 0x14004d250
add rdx, rdx
xor ecx, ecx
cmp byte [rax + rcx], 0
je 0x14004d307
add rcx, 2
cmp rdx, rcx
jne 0x14004d23d
mov sil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], sil
mov byte [rdx + 2], 6
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rbp + 0x40], 2
sete r8b
mov rcx, rbp
call fcn.14004663f
mov byte [rbp + 0x141], sil
mov word [rbx], 0x3608
jmp 0x14004cee5
mov rdx, qword [rsp + 0x148]
test rdx, rdx
je 0x14004d2af
mov rcx, qword [rsp + 0x140]
call fcn.14003aea2
mov rax, qword [rsp + 0x98]
mov rsi, qword [rax]
mov dil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], dil
mov byte [rdx + 2], 0x10
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rsi + 0x40], 2
sete r8b
mov rcx, rsi
call fcn.14004663f
mov byte [rsi + 0x141], dil
mov word [rbx], 0x708
mov r15, qword [rsp + 0x88]
jmp 0x14004cee5
mov rax, qword [r14 + 0x90]
movzx edx, word [r13 + 0x60]
movzx r8d, word [r13 + 0x62]
mov r9, qword [rax + 0x38]
mov rax, qword [rax + 0x48]
shl rax, 4
add rax, r9
lea rcx, [rsp + 0x4a0]
mov qword [rcx], r9
mov qword [rcx + 8], rax
call fcn.140037b15
mov r8, rdx
lea rsi, [rsp + 0x140]
mov rcx, rsi
mov rdx, rax
mov r9, rbp
call fcn.14004dbac
mov al, byte [rsi]
cmp al, 0x14
jne 0x14004d40b
mov rsi, qword [rsp + 0x148]
cmp rsi, 1
mov ax, 5
sbb ax, 0
cmp di, ax
jne 0x14004d43e
mov rdi, qword [rsp + 0x150]
mov rcx, qword [r14]
cmp rcx, 2
je 0x14004d483
mov rdx, qword [r14 + 8]
mov r8, rsi
mov r9, rdi
call fcn.14004dc17
test al, al
je 0x14004d483
mov sil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], sil
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rbp + 0x40], 2
sete r8b
mov rcx, rbp
call fcn.14004663f
mov byte [rbp + 0x141], sil
mov word [rbx], 0x2d08
jmp 0x14004cee5
movups xmm0, xmmword [rsp + 0x141]
movups xmm1, xmmword [rsp + 0x150]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx + 1], xmm0
mov byte [rbx], al
jmp 0x14004cee5
mov ecx, dword [rsp + 0x141]
mov edx, dword [rsp + 0x144]
mov dword [rbx + 4], edx
mov dword [rbx + 1], ecx
movups xmm0, xmmword [rsp + 0x148]
mov rcx, qword [rsp + 0x158]
mov byte [rbx], al
movups xmmword [rbx + 8], xmm0
mov qword [rbx + 0x18], rcx
jmp 0x14004cee5
mov sil, 1
lea rdx, [rsp + 0x140]
mov byte [rdx], sil
mov byte [rdx + 2], 0xd
mov word [rdx + 0xa8], 0x1f
mov word [rdx + 0xb8], 4
cmp byte [rbp + 0x40], 2
sete r8b
mov rcx, rbp
call fcn.14004663f
mov byte [rbp + 0x141], sil
mov word [rbx], 0x3508
jmp 0x14004cee5
lea rax, [r14 + 0x78]
mov qword [rsp + 0x80], rax
xor eax, eax
test rsi, rsi
sete al
mov qword [r14], rsi
mov qword [r14 + 8], rdi
mov qword [rbp + 0xd8], rsi
mov qword [rbp + 0xe0], rdi
movups xmm0, xmmword [r14 + 0x140]
movups xmm1, xmmword [r14 + 0x150]
lea rdx, [rsp + 0x140]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
shl rax, 4
mov qword [rsp + 0x90], rdi
mov r8, qword [rdi + rax]
lea rdi, [rsp + 0x4a0]
mov rcx, rdi
call fcn.14004dc6d
mov rcx, rdi
mov rdx, r15
call fcn.14004dd78
movups xmm7, xmmword [r14 + 0x10]
movups xmm9, xmmword [r14 + 0x20]
movups xmm6, xmmword [r13]
movups xmm8, xmmword [r13 + 0x10]
test rsi, rsi
je 0x14004d5b0
mov r9d, dword [r14 + 0x130]
cmp r9d, 0x3b9aca00
je 0x14004d67e
mov r8, qword [r14 + 0x98]
lea rax, [r14 + 0xa0]
mov r10d, dword [r14 + 0x134]
lea rdx, [rsp + 0x148]
mov qword [rdx - 8], r8
mov ecx, 0xc
mov rdi, rdx
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
movups xmm0, xmmword [r14 + 0x100]
movups xmm1, xmmword [r14 + 0x110]
movups xmm2, xmmword [r14 + 0x120]
movups xmmword [rdx + 0x80], xmm2
movups xmmword [rdx + 0x70], xmm1
movups xmmword [rdx + 0x60], xmm0
mov dword [rdx + 0x90], r9d
mov dword [rdx + 0x94], r10d
cmp byte [rdx + 0x80], 2
jne 0x14004d676
lea rdi, [rsp + 0x598]
mov ecx, 0xc
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
jmp 0x14004d681
mov qword [rsp + 0x88], r15
mov esi, dword [r14 + 0x130]
mov bpl, 2
cmp esi, 0x3b9aca00
je 0x14004d844
lea rdx, [r14 + 0x98]
mov bpl, byte [r14 + 0x120]
lea r15, [r14 + 0x121]
mov eax, dword [r14 + 0x134]
mov dword [rsp + 0xa4], eax
mov rax, qword [r14 + 0x128]
mov qword [rsp + 0xb0], rax
lea rdi, [rsp + 0x140]
mov r8d, 0x88
mov rcx, rdi
mov qword [rsp + 0xa8], rdx
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + 0x88], bpl
mov eax, dword [r15]
mov ecx, dword [r15 + 3]
mov dword [rdi + 0x89], eax
mov dword [rdi + 0x8c], ecx
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 0x90], rax
mov dword [rdi + 0x98], esi
mov eax, dword [rsp + 0xa4]
mov dword [rdi + 0x9c], eax
cmp bpl, 2
jne 0x14004d814
lea rcx, [rsp + 0x148]
call fcn.140037f25
jmp 0x14004d844
mov rcx, rdx
call fcn.140037f25
xor r8d, r8d
mov r12, qword [rsp + 0x80]
mov rax, qword [r14 + 0x90]
mov qword [rsp + 0x88], rax
lea rdi, [rsp + 0x600]
mov qword [rdi - 8], r8
lea rsi, [rsp + 0x598]
mov ecx, 0xc
rep movsq qword [rdi], qword [rsi]
movups xmm0, xmmword [r14 + 0x30]
movups xmm1, xmmword [r14 + 0x40]
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0x110], xmm9
movups xmmword [rsp + 0x100], xmm7
movups xmmword [rsp + 0x130], xmm8
movups xmmword [rsp + 0x120], xmm6
lea rsi, [rsp + 0x140]
lea rdx, [rsp + 0x4a0]
mov r8d, 0xf0
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [r14 + 0x160]
lea rdi, [rsp + 0x3f8]
mov r8d, 0xa8
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0xc0], xmm0
mov rax, qword [r14 + 0x208]
test rax, rax
je 0x14004d93c
lea rdx, [r14 + 0x210]
lea rcx, [rsp + 0x340]
mov qword [rcx - 8], rax
mov r8d, 0xb8
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [r14 + 0x139]
mov rcx, qword [rsp + 0x98]
mov r9, qword [rcx + 8]
mov rcx, qword [r13 + 0x48]
mov rdx, qword [r13 + 0x58]
mov byte [rsp + 0x70], al
lea rax, [rsp + 0x338]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rsi
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x5f8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
mov rcx, rbx
mov rdx, qword [rsp + 0x88]
mov r8, rbp
call fcn.14004ddb0
mov rcx, r15
call fcn.140040b89
jmp 0x14004cf16
lea rcx, [rsp + 0x338]
mov r8d, 0x88
mov rdx, qword [rsp + 0xa8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r15]
mov ecx, dword [r15 + 3]
mov dword [rsp + 0x3f8], eax
mov dword [rsp + 0x3fb], ecx
mov rdi, qword [r14 + 0x90]
lea rsi, [rsp + 0x160]
lea rdx, [rsp + 0x338]
mov r8d, 0x88
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x3f8]
mov ecx, dword [rsp + 0x3fb]
mov dword [rsi + 0x8c], ecx
mov dword [rsi + 0x89], eax
movups xmm0, xmmword [r14 + 0x30]
movups xmm1, xmmword [r14 + 0x40]
movaps xmmword [rsi - 0x20], xmm0
movaps xmmword [rsi - 0x10], xmm1
mov r15b, byte [r14 + 0x138]
lea rsi, [rsp + 0x1f8]
lea rdx, [rsp + 0x4a0]
mov r8d, 0xf0
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi - 8], rdi
mov byte [rsi - 0x10], bpl
movups xmmword [rsi + 0x100], xmm9
movups xmmword [rsi + 0xf0], xmm7
movups xmmword [rsi + 0x120], xmm8
movups xmmword [rsi + 0x110], xmm6
mov byte [rsi + 0x130], r15b
mov byte [rsp + 0x28], r12b
mov qword [rsp + 0x20], r13
lea rdx, [rsp + 0x140]
mov rcx, rbx
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x90]
call fcn.14004e724
mov rcx, qword [rsp + 0x88]
call fcn.140040b89
cmp qword [r14 + 0x80], 0
je 0x14004cf16
mov rax, qword [rsp + 0x80]
mov r8, qword [rax]
jmp 0x14004cf07
lea rcx, str.called__Option::unwrap____on_a__None__valueC:UsersSheft.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
lea r8, str.C:UsersSheft.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rustls_0.21.7_srcclienths.rs
mov edx, 0x2b
call fcn.14018c980
ud2