Function at 0x419040
Capabilities:
Reference processor manufacturer constants
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esp + 0xe8], eax
xor eax, eax
dec eax
lea edi, [esp + 0x3c]
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 [esp + 4], eax
mov dword [edi], ebx
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
mov byte [edi + 0xc], 0
lea ebx, [esi + 0x38]
push edi
call fcn.005338e0
add esp, 4
mov dword [esp + 0xc], ebx
mov ecx, ebx
push eax
push edi
call fcn.00508180
mov eax, dword [0x6bede0]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov dword [esp + 8], esi
jle 0x4193e9
push 0x6bede0
call fcn.00510c6d
add esp, 4
cmp dword [0x6bede0], 0xffffffff
jne 0x4193e9
lea ecx, [esp + 0x70]
push str.GenuineIntel
call fcn.00547270
lea ecx, [esp + 0x7c]
push 0x5db3f0
call fcn.00547270
lea ecx, [esp + 0x88]
push str.AuthenticAMD
call fcn.00547270
lea ecx, [esp + 0x94]
push 0x5db3f6
call fcn.00547270
lea ecx, [esp + 0xa0]
push str.HygonGenuine
call fcn.00547270
lea ecx, [esp + 0xac]
push str.hygon
call fcn.00547270
lea ecx, [esp + 0xb8]
push str.CentaurHauls
call fcn.00547270
lea ecx, [esp + 0xc4]
push str.centaur
call fcn.00547270
lea edi, [esp + 0xd0]
mov ecx, edi
push str.Shanghai
call fcn.00547270
lea ecx, [esp + 0xdc]
push str.zhaoxin
call fcn.00547270
pxor xmm0, xmm0
lea ebx, [esp + 0x20]
movdqa xmmword [ebx], xmm0
mov dword [ebx + 0x10], 0x3f800000
lea esi, [esp + 0x34]
mov ecx, ebx
lea eax, [esp + 0x70]
push eax
push eax
push esi
call fcn.00547eb0
mov ecx, ebx
lea eax, [esp + 0x88]
push eax
push eax
push esi
call fcn.00547eb0
mov ecx, ebx
lea eax, [esp + 0xa0]
push eax
push eax
push esi
call fcn.00547eb0
mov ecx, ebx
lea eax, [esp + 0xb8]
push eax
push eax
push esi
call fcn.00547eb0
mov ecx, ebx
push edi
push edi
push esi
call fcn.00547eb0
lea eax, [esp + 0xdc]
cmp byte [eax + 0xb], 0
js 0x419711
cmp byte [esp + 0xdb], 0
jns 0x41921a
push dword [esp + 0xd0]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0xcf], 0
mov esi, dword [esp + 8]
js 0x419725
cmp byte [esp + 0xc3], 0
jns 0x419245
push dword [esp + 0xb8]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0xb7], 0
js 0x419739
cmp byte [esp + 0xab], 0
jns 0x41926c
push dword [esp + 0xa0]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x9f], 0
js 0x41974d
cmp byte [esp + 0x93], 0
jns 0x419293
push dword [esp + 0x88]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x87], 0
js 0x419761
cmp byte [esp + 0x7b], 0
jns 0x4192b4
push dword [esp + 0x70]
call fcn.0050fc7c
add esp, 4
xor eax, eax
dec eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
movzx ebx, byte [esi + 0x43]
test bl, bl
jns 0x4192d5
mov eax, esi
mov esi, dword [esi + 0x38]
mov ebx, dword [eax + 0x3c]
jmp 0x4192dc
and ebx, 0x7f
mov esi, dword [esp + 0xc]
mov eax, 6
mov ecx, str._t_v_f__n_r
push 0
push eax
push ecx
push ebx
push esi
call fcn.005082b0
add esp, 0x14
mov edi, eax
xor eax, eax
dec eax
push eax
mov eax, 6
push eax
mov eax, str._t_v_f__n_r
push eax
push ebx
push esi
call fcn.00508410
add esp, 0x14
sub eax, edi
inc eax
cmp edi, ebx
cmovae edi, ebx
sub ebx, edi
cmp ebx, eax
cmovae ebx, eax
add edi, esi
lea esi, [esp + 0x70]
mov ecx, esi
push ebx
push edi
call fcn.00547a00
lea ecx, [esp + 0x20]
lea edi, [esp + 0x34]
mov edx, edi
push esi
call fcn.00548110
add esp, 4
mov esi, dword [edi]
push 0xc
call fcn.00510d64
add esp, 4
mov ebx, eax
test esi, esi
je 0x419772
cmp byte [esi + 0x1f], 0
js 0x419783
add esi, 0x14
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
movq xmm0, qword [esi]
movq qword [ebx], xmm0
cmp byte [esp + 0x7b], 0
jns 0x419385
push dword [esp + 0x70]
call fcn.0050fc7c
add esp, 4
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4193b9
mov edi, dword [esi]
cmp byte [esi + 0x1f], 0
js 0x4196af
cmp byte [esi + 0x13], 0
jns 0x4193aa
push dword [esi + 8]
call fcn.0050fc7c
add esp, 4
push esi
call fcn.0050fc7c
add esp, 4
mov esi, edi
test edi, edi
jne 0x41938d
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], 0
test eax, eax
je 0x4193d2
push eax
call fcn.0050fc7c
add esp, 4
mov dword [0x6beddc], ebx
push 0x6bede0
call fcn.00510d9d
add esp, 4
mov esi, dword [esp + 8]
mov eax, dword [0x6beddc]
lea ecx, [esi + 0x2c]
cmp ecx, eax
mov edi, dword [esp + 4]
je 0x41941d
cmp byte [esi + 0x37], 0
movzx edx, byte [eax + 0xb]
js 0x419695
test dl, dl
js 0x4194c1
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
test edi, edi
jle 0x4195c7
xor eax, eax
inc eax
mov dword [esp + 0x14], 0
xor ecx, ecx
cpuid
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
cmp edi, 7
jb 0x4196bf
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x20
shr cl, 3
and cl, 1
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi], ecx
mov eax, ecx
and eax, 0xf
mov dword [esi + 0x10], eax
mov eax, ecx
shr eax, 0xc
and eax, 3
mov dword [esi + 4], eax
mov esi, ecx
shr esi, 8
and esi, 0xf
mov edi, ecx
shr edi, 4
and edi, 0xf
cmp esi, 0xf
je 0x4194a3
cmp esi, 6
jne 0x419507
mov ecx, dword [esp + 8]
movzx eax, byte [ecx + 0x43]
test al, al
jns 0x4194d0
mov ecx, dword [ecx + 0x3c]
jmp 0x4194d5
mov eax, ecx
shr eax, 0x10
and eax, 0xf
shr ecx, 0x14
movzx edx, cl
mov ecx, eax
shl eax, 4
or edi, eax
mov dword [esp + 0x14], edx
lea esi, [edx + 0xf]
jmp 0x419509
push dword [eax + 4]
push dword [eax]
call fcn.004197a0
jmp 0x41941d
mov ecx, eax
and ecx, 0x7f
mov esi, 6
cmp ecx, 0xc
jne 0x419507
test al, al
jns 0x4194eb
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
jmp 0x4194ef
mov eax, dword [esp + 0xc]
push 0xc
push str.GenuineIntel
push eax
call fcn.0050fd3d
add esp, 0xc
test eax, eax
je 0x41967f
xor ecx, ecx
mov eax, dword [esp + 8]
mov dword [eax + 8], esi
mov esi, eax
mov dword [eax + 0xc], edi
mov eax, dword [esp + 0x14]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x1c]
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 ecx, dword [esp + 0x18]
mov eax, ecx
and al, 1
mov byte [esi + 0x1f], al
mov eax, ecx
shr eax, 9
and al, 1
mov byte [esi + 0x20], al
mov eax, ecx
shr eax, 0x13
and al, 1
mov byte [esi + 0x21], al
mov eax, ecx
shr eax, 0x14
and al, 1
mov byte [esi + 0x22], al
mov eax, ecx
shr eax, 0x17
and al, 1
mov byte [esi + 0x23], al
mov eax, ecx
shr eax, 0x1f
mov byte [esi + 0x2a], al
mov eax, ecx
not eax
test eax, 0x1c000000
jne 0x4196ce
xor ecx, ecx
xgetbv
not eax
test al, 6
sete al
mov byte [esi + 0x24], al
mov edx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 0x19
and cl, 1
mov byte [esi + 0x27], cl
shr edx, 0xc
and dl, 1
mov byte [esi + 0x25], dl
test al, al
setne al
test ebx, ebx
setne cl
and cl, al
mov byte [esi + 0x26], cl
mov eax, dword [esp + 4]
mov byte [esi + 0x28], al
mov eax, 0x80000000
xor ecx, ecx
cpuid
cmp eax, 0x80000004
jb 0x419661
mov edi, eax
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov eax, 0x80000004
mov ecx, 0
cpuid
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov byte [esp + 0x6c], 0
lea ebx, [esp + 0x3c]
push ebx
call fcn.005338e0
add esp, 4
lea ecx, [esi + 0x44]
push eax
push ebx
call fcn.00508180
cmp edi, 0x80000007
jb 0x419661
mov eax, 0x80000007
xor ecx, ecx
cpuid
and dh, 1
mov byte [esi + 0x29], dh
cmp byte [esi + 0x29], 0
je 0x4196d5
mov ecx, dword [esp + 0xe8]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
and ecx, 0xf
mov eax, ecx
shl eax, 4
or edi, eax
jmp 0x419509
test dl, dl
jns 0x4196a0
mov edx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x4196a3
and edx, 0x7f
push edx
push eax
call fcn.0040ce50
jmp 0x41941d
push dword [esi + 0x14]
call fcn.0050fc7c
add esp, 4
jmp 0x419399
xor ebx, ebx
mov dword [esp + 4], 0
jmp 0x41945f
xor eax, eax
jmp 0x419596
cmp byte [esi + 0x2a], 0
je 0x419667
mov eax, 0x40000000
xor ecx, ecx
cpuid
cmp ebx, 0x7263694d
jne 0x419667
cmp ecx, 0x666f736f
jne 0x419667
cmp edx, 0x76482074
jne 0x419667
mov byte [esi + 0x29], 1
jmp 0x419667
push dword [esp + 0xdc]
call fcn.0050fc7c
add esp, 4
jmp 0x419201
push dword [esp + 0xc4]
call fcn.0050fc7c
add esp, 4
jmp 0x41922c
push dword [esp + 0xac]
call fcn.0050fc7c
add esp, 4
jmp 0x419253
push dword [esp + 0x94]
call fcn.0050fc7c
add esp, 4
jmp 0x41927a
push dword [esp + 0x7c]
call fcn.0050fc7c
add esp, 4
jmp 0x4192a1
mov ecx, ebx
push 0x5db2a0
call fcn.00547270
jmp 0x419372
mov ecx, ebx
push dword [esi + 0x18]
push dword [esi + 0x14]
call fcn.00405760
jmp 0x419372