Function at 0x4a1fa0
Capabilities:
Reference processor manufacturer constants

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov esi, ecx
mov eax, dword [0x538010]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
lea edi, [ebp - 0x44]
mov dword [edi + 0x2d], eax
mov dword [edi + 0x29], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [edi + 0x1c], xmm0
movdqu xmmword [edi + 0xc], xmm0
xor eax, eax
xor ecx, ecx
cpuid
mov dword [ebp - 0x5c], eax
mov dword [edi], ebx
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov byte [edi + 0xc], 0
lea ebx, [esi + 0x2c]
push edi
call fcn.004ec0f0
add esp, 4
mov ecx, eax
mov dword [ebp - 0x58], esi
movzx eax, byte [esi + 0x37]
test al, al
mov dword [ebp - 0x60], ebx
js 0x4a200e
mov edi, ebx
cmp ecx, 0xa
jbe 0x4a2046
mov edx, 0xa
jmp 0x4a2024
mov edx, 0x7fffffff
mov eax, dword [ebp - 0x58]
and edx, dword [eax + 0x34]
dec edx
cmp edx, ecx
jae 0x4a2044
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x30]
mov edi, ecx
sub edi, edx
mov dword [ebp - 0x64], ecx
mov ecx, ebx
lea esi, [ebp - 0x44]
push esi
push dword [ebp - 0x64]
push eax
push 0
push eax
push edi
push edx
call fcn.0046e480
mov esi, dword [ebp - 0x5c]
jmp 0x4a2080
mov edi, dword [ebx]
push ecx
lea eax, [ebp - 0x44]
push eax
push edi
mov ebx, ecx
call fcn.004d3ed0
add esp, 0xc
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x37], 0
js 0x4a2073
cmp ebx, 0xb
mov esi, dword [ebp - 0x5c]
jae 0x4a2331
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x37], bl
jmp 0x4a207c
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], ebx
mov esi, dword [ebp - 0x5c]
mov byte [edi + ebx], 0
test esi, esi
jle 0x4a21ad
xor eax, eax
inc eax
mov dword [ebp - 0x5c], 0
xor ecx, ecx
cpuid
mov edi, eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], edx
mov ecx, 0
cmp esi, 7
jb 0x4a20bd
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x20
mov dword [ebp - 0x5c], ebx
shr cl, 4
and cl, 1
mov dword [ebp - 0x6c], ecx
mov esi, dword [ebp - 0x58]
mov dword [esi], edi
mov eax, edi
and eax, 0xf
mov dword [esi + 0x10], eax
mov eax, edi
shr eax, 0xc
and eax, 3
mov dword [esi + 4], eax
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x54]
movdqu xmmword [ebx], xmm0
push edi
push dword [ebp - 0x60]
push ebx
call fcn.004a1ed0
add esp, 0xc
mov eax, dword [ebx]
mov dword [esi + 8], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x14], eax
mov ecx, dword [ebp - 0x68]
mov eax, ecx
shr eax, 0x17
and al, 1
mov byte [esi + 0x1c], al
mov eax, ecx
shr eax, 0x19
and al, 1
mov byte [esi + 0x1d], al
shr ecx, 0x1a
and cl, 1
mov byte [esi + 0x1e], cl
mov ebx, dword [ebp - 0x64]
mov eax, ebx
and al, 1
mov byte [esi + 0x1f], al
mov eax, ebx
shr eax, 9
and al, 1
mov byte [esi + 0x20], al
mov eax, ebx
shr eax, 0x13
and al, 1
mov byte [esi + 0x21], al
mov eax, ebx
shr eax, 0x14
and al, 1
mov byte [esi + 0x22], al
mov eax, ebx
shr eax, 0x17
and al, 1
mov byte [esi + 0x23], al
mov eax, ebx
shr eax, 0x1f
mov byte [esi + 0x2a], al
mov eax, ebx
not eax
test eax, 0x1c000000
jne 0x4a217a
xor ecx, ecx
xgetbv
not eax
test al, 6
sete al
jmp 0x4a217c
xor eax, eax
mov edx, dword [ebp - 0x58]
mov byte [edx + 0x24], al
mov ecx, ebx
shr ecx, 0x19
and cl, 1
mov byte [edx + 0x27], cl
shr ebx, 0xc
and bl, 1
mov byte [edx + 0x25], bl
test al, al
setne al
cmp dword [ebp - 0x5c], 0
setne cl
and cl, al
mov byte [edx + 0x26], cl
mov eax, dword [ebp - 0x6c]
mov byte [edx + 0x28], al
mov eax, 0x80000000
xor ecx, ecx
cpuid
cmp eax, 0x80000004
jb 0x4a22ce
mov edi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
mov eax, 0x80000004
mov ecx, 0
cpuid
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
mov byte [ebp - 0x14], 0
mov esi, dword [ebp - 0x58]
lea ebx, [esi + 0x38]
lea eax, [ebp - 0x44]
push eax
call fcn.004ec0f0
add esp, 4
mov ecx, eax
movzx edx, byte [esi + 0x43]
test dl, dl
js 0x4a223a
cmp ecx, 0xa
jbe 0x4a227c
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], ebx
mov eax, 0xa
jmp 0x4a225a
mov eax, 0x7fffffff
mov esi, ecx
mov ecx, dword [ebp - 0x58]
and eax, dword [ecx + 0x40]
dec eax
cmp eax, esi
jae 0x4a2278
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], ebx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx + 0x3c]
mov ecx, esi
mov ebx, ecx
sub ebx, eax
mov edi, ecx
mov ecx, dword [ebp - 0x5c]
lea esi, [ebp - 0x44]
push esi
push edi
push edx
push 0
push edx
push ebx
push eax
call fcn.0046e480
mov edi, dword [ebp - 0x60]
jmp 0x4a22b4
mov ecx, esi
mov ebx, dword [ebx]
push ecx
lea eax, [ebp - 0x44]
push eax
push ebx
mov esi, ecx
call fcn.004d3ed0
add esp, 0xc
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x43], 0
js 0x4a22a8
cmp esi, 0xb
jae 0x4a2331
mov ecx, esi
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x43], cl
jmp 0x4a22b0
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x3c], esi
mov ecx, esi
mov byte [ebx + ecx], 0
cmp edi, 0x80000007
jb 0x4a22ce
mov eax, 0x80000007
xor ecx, ecx
cpuid
and dh, 1
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x29], dh
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x29], 0
jne 0x4a231d
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x2a], 0
je 0x4a231d
mov eax, 0x40000000
xor ecx, ecx
cpuid
cmp ebx, 0x7263694d
jne 0x4a2301
cmp ecx, 0x666f736f
jne 0x4a2301
cmp edx, 0x76482074
je 0x4a2316
cmp ebx, 0x4b4d564b
jne 0x4a231d
cmp ecx, 0x564b4d56
jne 0x4a231d
cmp edx, 0x4d
jne 0x4a231d
mov eax, dword [ebp - 0x58]
mov byte [eax + 0x29], 1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d1573
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 4
push str.__s_should_never_be_greater_than_or_equal_to_the_short_string_capacity
push str.__s_____min_cap
push 0x6c6
push str....._buildtools_third_partylibc_trunkinclude_string
push str._s:_d:_assertion__s_failed:__s
call fcn.00448430
int3