Function at 0x140045c50
Capabilities:
Reference processor manufacturer constants

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, rcx
mov rax, qword [0x140125058]
xor rax, rsp
mov qword [rsp + 0x60], rax
xor eax, eax
xor ecx, ecx
cpuid
mov r15d, eax
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x28], ecx
mov byte [rsp + 0x2c], 0
lea rsi, [r14 + 0x28]
lea rcx, [rsp + 0x20]
call fcn.1400dff30
mov rdi, rax
mov rax, qword [r14 + 0x40]
cmp rax, rdi
jae 0x140045cbf
lea r9, [rsp + 0x20]
mov rcx, rsi
mov rdx, rdi
call fcn.140001700
test r15d, r15d
jg 0x140045ce5
mov bpl, 1
jmp 0x140045df8
cmp rax, 0x10
jb 0x140045cc8
mov rsi, qword [rsi]
mov qword [r14 + 0x38], rdi
lea rdx, [rsp + 0x20]
mov rcx, rsi
mov r8, rdi
call fcn.1400cc760
mov byte [rsi + rdi], 0
test r15d, r15d
jle 0x140045cb7
xor r8d, r8d
mov eax, 1
xor ecx, ecx
cpuid
mov esi, ecx
mov edi, edx
mov ebp, eax
cmp r15d, 7
jl 0x140045d11
mov eax, 7
xor ecx, ecx
cpuid
mov r8d, ebx
shr r8b, 5
and r8b, 1
mov dword [r14], ebp
mov eax, ebp
and eax, 0xf
mov dword [r14 + 0x10], eax
mov eax, ebp
shr eax, 4
and eax, 0xf
mov ecx, ebp
shr ecx, 0xc
mov edx, ecx
and edx, 0xf0
or edx, eax
mov dword [r14 + 0xc], edx
mov eax, ebp
shr eax, 8
and eax, 0xf
mov dword [r14 + 8], eax
and ecx, 3
mov dword [r14 + 4], ecx
mov eax, ebp
shr eax, 0x10
and eax, 0xf
mov dword [r14 + 0x14], eax
shr ebp, 0x14
movzx eax, bpl
mov dword [r14 + 0x18], eax
mov eax, edi
shr eax, 0x17
and al, 1
mov byte [r14 + 0x1c], al
mov eax, edi
shr eax, 0x19
and al, 1
mov byte [r14 + 0x1d], al
shr edi, 0x1a
and dil, 1
mov byte [r14 + 0x1e], dil
mov eax, esi
and al, 1
mov byte [r14 + 0x1f], al
mov eax, esi
shr eax, 9
and al, 1
mov byte [r14 + 0x20], al
mov eax, esi
shr eax, 0x13
and al, 1
mov byte [r14 + 0x21], al
mov eax, esi
shr eax, 0x14
and al, 1
mov byte [r14 + 0x22], al
mov eax, esi
shr eax, 0x17
and al, 1
mov byte [r14 + 0x23], al
test esi, esi
setns bpl
mov eax, esi
and eax, 0x1c000000
cmp eax, 0x1c000000
jne 0x140045ddc
xor ecx, ecx
xgetbv
and eax, 6
cmp rax, 6
sete al
jmp 0x140045dde
xor eax, eax
mov byte [r14 + 0x24], al
shr esi, 0x19
and sil, 1
mov byte [r14 + 0x26], sil
test al, al
je 0x140045df4
mov eax, r8d
mov byte [r14 + 0x25], al
mov eax, 0x80000000
xor ecx, ecx
cpuid
cmp eax, 0x80000004
jl 0x140045ece
mov esi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], ebx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], edx
mov eax, 0x80000003
xor ecx, ecx
cpuid
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], edx
mov eax, 0x80000004
xor ecx, ecx
cpuid
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x4c], edx
mov byte [rsp + 0x50], 0
lea rdi, [r14 + 0x48]
lea rcx, [rsp + 0x20]
call fcn.1400dff30
mov rbx, rax
mov rax, qword [r14 + 0x60]
cmp rax, rbx
jae 0x140045e92
lea r9, [rsp + 0x20]
mov rcx, rdi
mov rdx, rbx
call fcn.140001700
cmp esi, 0x80000007
jge 0x140045ebb
jmp 0x140045ece
cmp rax, 0x10
jb 0x140045e9b
mov rdi, qword [rdi]
mov qword [r14 + 0x58], rbx
lea rdx, [rsp + 0x20]
mov rcx, rdi
mov r8, rbx
call fcn.1400cc760
mov byte [rdi + rbx], 0
cmp esi, 0x80000007
jl 0x140045ece
mov eax, 0x80000007
xor ecx, ecx
cpuid
shr edx, 8
and dl, 1
mov byte [r14 + 0x27], dl
cmp byte [r14 + 0x27], 0
setne al
or bpl, al
jne 0x140045f01
mov eax, 0x40000000
xor ecx, ecx
cpuid
cmp edx, 0x76482074
jne 0x140045f01
cmp ebx, 0x7263694d
jne 0x140045f01
cmp ecx, 0x666f736f
jne 0x140045f01
mov byte [r14 + 0x27], 1
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400a8dd0
nop
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret