Function at 0x100255d0
Capabilities:
Check os version
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov edx, dword [str.No_CPUID___]
xor eax, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x40], edx
mov edx, dword [0x100402f4]
push ebx
push esi
push edi
mov dword [ebp - 0x3c], edx
mov edx, dword [0x100402f8]
mov dword [ecx + 0x4e7], eax
mov dword [ecx + 0x4eb], eax
mov dword [ecx + 0x4ef], eax
mov dword [ecx + 0x4f3], eax
mov dword [ecx + 0x4f7], eax
mov dword [ecx + 0x4fb], eax
mov dword [ecx + 0x4ff], eax
mov dword [ecx + 0x503], eax
mov dword [ecx + 0x507], eax
mov dword [ecx + 0x50b], eax
mov dword [ebp - 0x38], edx
lea edx, [ecx + 0x50f]
or ecx, 0xffffffff
mov edi, str.Unknown
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], eax
mov byte [ebp - 0xd], al
mov byte [ebp - 0x34], al
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov dword [ebp - 0xc], edx
rep movsb byte es:[edi], byte [esi]
pushaw
pushfd
push eax
push ebx
pushfd
pop eax
mov ebx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
xor eax, ebx
pop ebx
pop eax
je 0x1002569b
mov byte [ebp - 0xd], 1
popfd
popaw
mov al, byte [ebp - 0xd]
test al, al
je 0x1002698b
pushaw
mov eax, 0
cpuid
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bh
shr ebx, 0x10
mov byte [ebp - 0x3e], bl
mov byte [ebp - 0x3d], bh
mov byte [ebp - 0x3c], dl
mov byte [ebp - 0x3b], dh
shr edx, 0x10
mov byte [ebp - 0x3a], dl
mov byte [ebp - 0x39], dh
mov byte [ebp - 0x38], cl
mov byte [ebp - 0x37], ch
shr ecx, 0x10
mov byte [ebp - 0x36], cl
mov byte [ebp - 0x35], ch
mov byte [ebp - 0x34], 0
test eax, eax
popaw
mov eax, dword [ebp - 0x24]
and eax, 0xf
mov dword [ebp - 0x24], eax
je 0x1002698b
cmp eax, 1
jb 0x10025736
pushaw
mov eax, 1
cpuid
mov dword [ebp - 0x30], ebx
mov ebx, eax
shr ebx, 0xc
and ebx, 3
mov dword [ebp - 0x44], ebx
mov ebx, eax
shr ebx, 8
and ebx, 0xf
mov dword [ebp - 0x14], ebx
mov ebx, eax
shr ebx, 4
and ebx, 0xf
mov dword [ebp - 8], ebx
and eax, 0xf
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], edx
popaw
and dword [ebp - 0x30], 0xff
mov esi, str.GenuineIntel
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1002576d
test cl, cl
je 0x10025769
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1002576d
add eax, 2
add esi, 2
test cl, cl
jne 0x10025745
xor eax, eax
jmp 0x10025772
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1002578d
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 1
mov edi, str.Intel_unknown
jmp 0x10025915
mov esi, str.UMC_UMC_UMC
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x100257bd
test cl, cl
je 0x100257b9
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x100257bd
add eax, 2
add esi, 2
test cl, cl
jne 0x10025795
xor eax, eax
jmp 0x100257c2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100257dd
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 2
mov edi, str.UMC_unknown
jmp 0x10025915
mov esi, str.AuthenticAMD
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1002580d
test cl, cl
je 0x10025809
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1002580d
add eax, 2
add esi, 2
test cl, cl
jne 0x100257e5
xor eax, eax
jmp 0x10025812
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1002582d
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 3
mov edi, str.AMD_unknown
jmp 0x10025915
mov esi, str.CyrixInstead
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x1002585d
test cl, cl
je 0x10025859
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x1002585d
add eax, 2
add esi, 2
test cl, cl
jne 0x10025835
xor eax, eax
jmp 0x10025862
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1002587d
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 4
mov edi, str.Cyrix_unknown
jmp 0x10025915
mov esi, str.NexGenDriven
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x100258ad
test cl, cl
je 0x100258a9
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x100258ad
add eax, 2
add esi, 2
test cl, cl
jne 0x10025885
xor eax, eax
jmp 0x100258b2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100258ca
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 5
mov edi, str.NexGen_unknown
jmp 0x10025915
mov esi, str.CentaurHauls
lea eax, [ebp - 0x40]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x100258fa
test cl, cl
je 0x100258f6
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x100258fa
add eax, 2
add esi, 2
test cl, cl
jne 0x100258d2
xor eax, eax
jmp 0x100258ff
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10025933
mov eax, dword [ebp - 4]
mov dword [eax + 0x507], 6
mov edi, str.Centaur_unknown
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp - 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pushaw
mov eax, 0x80000000
cpuid
mov dword [ebp - 0x28], eax
popaw
cmp dword [ebp - 0x28], 0x80000001
jb 0x10025958
pushaw
mov eax, 0x80000001
cpuid
mov dword [ebp - 0x20], edx
popaw
mov edx, dword [ebp - 0x18]
test edx, 0x800000
mov ebx, dword [ebp - 4]
je 0x1002596d
or dword [ebx + 0x503], 1
mov eax, dword [ebx + 0x507]
cmp eax, 1
je 0x1002597d
cmp eax, 3
jne 0x1002598c
test edx, 0x10000
je 0x1002598c
or dword [ebx + 0x503], 4
mov esi, 4
cmp eax, esi
jne 0x100259a0
test dh, 0x80
je 0x100259a0
or dword [ebx + 0x503], esi
cmp eax, 3
je 0x100259ae
cmp eax, 6
je 0x100259ae
cmp eax, esi
jne 0x100259c2
mov ecx, dword [ebp - 0x20]
test ecx, 0x80000000
je 0x100259c5
or dword [ebx + 0x503], 2
jmp 0x100259c5
mov ecx, dword [ebp - 0x20]
cmp eax, 3
jne 0x100259e1
test ecx, 0x400000
je 0x100259e1
test ecx, 0x40000000
je 0x100259e1
or dword [ebx + 0x503], 8
test dl, 0x10
je 0x100259ed
or dword [ebx + 0x503], 0x10
test edx, 0x6000000
je 0x10025a60
lea eax, [ebp - 0x108]
push eax
mov dword [ebp - 0x108], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0xf8]
cmp ecx, 1
mov eax, dword [ebp - 0x104]
jne 0x10025a21
cmp eax, esi
ja 0x10025a38
cmp eax, esi
jne 0x10025a2f
mov edx, dword [ebp - 0x100]
test edx, edx
ja 0x10025a38
cmp ecx, 2
jne 0x10025a60
cmp eax, esi
jbe 0x10025a60
orps xmm7, xmm7
mov edx, dword [ebx + 0x503]
mov ecx, dword [ebp - 0x18]
or edx, 0x20
test ecx, 0x4000000
mov dword [ebx + 0x503], edx
mov eax, edx
je 0x10025a60
or eax, 0x40
mov dword [ebx + 0x503], eax
cmp dword [ebx + 0x507], 1
jne 0x10025ac6
cmp dword [ebp - 0x14], esi
jne 0x10025ac6
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10025a9a
mov edx, dword [ebp - 0xc]
or ecx, 0xffffffff
mov edi, str.Intel_486DX_25_33
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025ac9
cmp eax, 1
jne 0x10025b34
mov edi, str.Intel_486DX_50
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp - 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x507], 2
jne 0x10025b0a
cmp dword [ebp - 0x14], 4
jne 0x10025b0a
cmp eax, 1
je 0x10025ae5
cmp eax, 2
jne 0x10025b0a
or ecx, 0xffffffff
xor eax, eax
mov edi, str.UMC_486
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx + 0x507], 3
jne 0x10025c0e
cmp dword [ebp - 0x14], 4
jne 0x10025c0e
cmp eax, 3
jne 0x10025bb4
mov edi, str.AMD_486DX2
jmp 0x10025bee
cmp eax, 2
jne 0x10025b5c
mov edi, str.Intel_486SX
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp - 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x10025ac1
cmp eax, 3
jne 0x10025b6b
mov edi, str.Intel_486DX2
jmp 0x10025aa8
cmp eax, esi
jne 0x10025b76
mov edi, str.Intel_486SL
jmp 0x10025b3e
cmp eax, 5
jne 0x10025b85
mov edi, str.Intel_486SX2
jmp 0x10025aa8
cmp eax, 7
jne 0x10025b91
mov edi, str.Intel_486DX2WB
jmp 0x10025b3e
cmp eax, 8
jne 0x10025ba0
mov edi, str.Intel_486DX4
jmp 0x10025aa8
cmp eax, 9
jne 0x10025bac
mov edi, str.Intel_486DX4WB
jmp 0x10025b3e
mov edx, dword [ebp - 0xc]
jmp 0x10025acc
cmp eax, 7
jne 0x10025bc0
mov edi, str.AMD_486DX2WB
jmp 0x10025bee
cmp eax, 8
jne 0x10025bcc
mov edi, str.AMD_486DX4
jmp 0x10025bee
cmp eax, 9
jne 0x10025bd8
mov edi, str.AMD_486DX4WB
jmp 0x10025bee
cmp eax, 0xe
jne 0x10025be4
mov edi, str.AMD_486_5x86
jmp 0x10025bee
cmp eax, 0xf
jne 0x10025c0e
mov edi, str.AMD_486_5x86WB
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 0x507]
mov ecx, 4
cmp esi, ecx
jne 0x10025c88
cmp dword [ebp - 0x14], ecx
jne 0x10025c88
cmp eax, 9
jne 0x10025c55
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Cyrix_5x86
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x15
jmp 0x10025c85
cmp eax, ecx
jne 0x10025c88
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Cyrix_MediaGX
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x18
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x507], 1
jne 0x10025ce8
cmp dword [ebp - 0x14], 5
jne 0x10025ce8
test eax, eax
je 0x10025cb9
cmp eax, 1
je 0x10025cb9
cmp eax, 2
je 0x10025cb9
cmp eax, 3
je 0x10025cb9
cmp eax, 4
je 0x10025cb9
cmp eax, 7
je 0x10025cb9
cmp eax, 8
jne 0x10025ce8
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Intel_Pentium
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x19
mov esi, dword [ebx + 0x507]
mov ecx, 5
cmp esi, ecx
jne 0x10025d2d
cmp dword [ebp - 0x14], ecx
jne 0x10025d2d
test eax, eax
jne 0x10025d2d
or ecx, 0xffffffff
mov edi, str.NexGen_Nx586
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x1c
cmp dword [ebx + 0x507], 4
jne 0x10025de7
cmp dword [ebp - 0x14], 5
jne 0x10025da7
cmp eax, 2
jne 0x10025d73
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Cyrix_6x86
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x16
jmp 0x10025da4
cmp eax, 4
jne 0x10025da7
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Cyrix_MediaGX
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x18
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x507], 4
jne 0x10025de7
cmp dword [ebp - 0x14], 6
jne 0x10025de7
test eax, eax
jne 0x10025de7
or ecx, 0xffffffff
mov edi, str.Cyrix_6x86MX
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x17
cmp dword [ebx + 0x507], 3
jne 0x10025fc7
cmp dword [ebp - 0x14], 5
jne 0x10025fc7
test eax, eax
jne 0x10025e34
or ecx, 0xffffffff
mov dword [ebx + 0x50b], 0x13
mov edi, str.AMD_K5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
cmp eax, 1
jne 0x10025e6d
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x50b], 0x13
mov edi, str.AMD_K5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
cmp eax, 2
jne 0x10025ea6
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x50b], 0x13
mov edi, str.AMD_K5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
cmp eax, 3
jne 0x10025edf
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x50b], 0x13
mov edi, str.AMD_K5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
cmp eax, 6
jne 0x10025f14
or ecx, 0xffffffff
mov dword [ebx + 0x50b], eax
xor eax, eax
mov edi, str.AMD_K6
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
mov edi, 7
cmp eax, edi
jne 0x10025f4e
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x50b], 6
mov edi, str.AMD_K6
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x10025fc7
cmp eax, 8
jne 0x10025f5b
mov dword [ebx + 0x50b], edi
jmp 0x10025fc7
mov esi, 9
cmp eax, esi
je 0x10025fc1
cmp eax, 0xc
jne 0x10025f87
mov ecx, dword [ebp - 0x2c]
cmp ecx, 8
je 0x10025f7f
cmp ecx, esi
je 0x10025f7f
cmp ecx, 0xa
je 0x10025f7f
cmp ecx, 0xb
jne 0x10025fc7
mov dword [ebx + 0x50b], edi
jmp 0x10025fc7
cmp eax, 0xd
jne 0x10025fc7
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x10025fa2
cmp ecx, 1
je 0x10025fa2
cmp ecx, 2
je 0x10025fa2
cmp ecx, 3
jne 0x10025fae
mov dword [ebx + 0x50b], 8
jmp 0x10025fc7
cmp ecx, 4
je 0x10025fc1
cmp ecx, 5
je 0x10025fc1
cmp ecx, 6
je 0x10025fc1
cmp ecx, edi
jne 0x10025fc7
mov dword [ebx + 0x50b], esi
cmp dword [ebx + 0x507], 6
jne 0x1002607c
cmp dword [ebp - 0x14], 5
jne 0x1002607c
cmp eax, 4
jne 0x10026011
or ecx, 0xffffffff
xor eax, eax
mov edi, str.IDT_WinChip_C6
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0xd
jmp 0x10026079
cmp eax, 8
jne 0x1002607c
test byte [ebx + 0x503], 2
je 0x1002604d
or ecx, 0xffffffff
xor eax, eax
mov edi, str.IDT_WinChip_2_3D
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0xf
jmp 0x10026079
or ecx, 0xffffffff
xor eax, eax
mov edi, str.IDT_WinChip_2
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0xe
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x507]
cmp ecx, 6
mov edi, dword [ebp - 0x14]
jne 0x100260d1
cmp edi, 6
jne 0x100260d1
cmp eax, edi
jne 0x100260a5
cmp dword [ebp - 0x2c], 0xf
ja 0x100260d1
mov dword [ebx + 0x50b], 0x10
jmp 0x100260d1
cmp eax, 7
jne 0x100260d1
mov esi, dword [ebp - 0x2c]
cmp esi, eax
ja 0x100260bd
mov dword [ebx + 0x50b], 0x11
jmp 0x100260d1
cmp esi, 8
jb 0x100260d1
cmp esi, 0xf
ja 0x100260d1
mov dword [ebx + 0x50b], 0x12
cmp ecx, 1
jne 0x10026210
cmp edi, 6
jne 0x100261d7
test eax, eax
jne 0x10026116
or ecx, 0xffffffff
mov edi, str.Intel_Pentium_Pro
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x1a
jmp 0x1002620d
cmp eax, 1
jne 0x1002614c
or ecx, 0xffffffff
xor eax, eax
mov edi, str.Intel_Pentium_Pro
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0x50b], 0x1a
jmp 0x1002620d
cmp eax, 3
jne 0x10026165
mov dword [ebx + 0x50b], 2
mov edi, str.Intel_Pentium_II
jmp 0x100261f0
cmp eax, 5
jne 0x1002617b
mov dword [ebx + 0x50b], 2
mov edi, str.Intel_Pentium_II
jmp 0x100261f0
cmp eax, 6
jne 0x10026191
mov dword [ebx + 0x50b], 0x1b
mov edi, str.Intel_Celeron_A
jmp 0x100261f0
cmp eax, 7
jne 0x100261a7
mov dword [ebx + 0x50b], 4
mov edi, str.Intel_Pentium_III
jmp 0x100261f0
cmp eax, 8
jne 0x10026210
mov eax, dword [ebp - 0x30]
cmp eax, 1
jne 0x100261c1
mov dword [ebx + 0x50b], eax
mov edi, str.Intel_Celeron
jmp 0x100261f0
cmp eax, 3
jne 0x10026196
mov dword [ebx + 0x50b], 5
mov edi, str.Intel_Pentium_III_Xeon
jmp 0x100261f0
cmp ecx, 1
jne 0x10026210
cmp edi, 0xf
jne 0x10026210
mov dword [ebx + 0x50b], 0xc
mov edi, str.Intel_Pentium_4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x507]
cmp ecx, 3
jne 0x10026269
cmp dword [ebp - 0x14], 6
jne 0x10026264
test eax, eax
je 0x1002625a
cmp eax, 1
je 0x1002625a
cmp eax, 2
je 0x1002625a
cmp eax, 4
je 0x1002625a
cmp eax, 5
je 0x1002625a
cmp eax, ecx
jne 0x10026249
mov dword [ebx + 0x50b], 0xb
jmp 0x10026264
cmp eax, 6
jne 0x10026264
mov dword [ebx + 0x50b], 0x14
jmp 0x10026264
mov dword [ebx + 0x50b], 0xa
cmp ecx, 3
je 0x1002627c
cmp ecx, 6
je 0x1002627c
cmp ecx, 4
je 0x1002627c
cmp ecx, 1
jne 0x1002630e
cmp dword [ebp - 0x28], 0x80000004
jb 0x1002630e
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], ecx
pushaw
mov esi, dword [ebp - 0x18]
mov eax, 0x80000002
cpuid
mov dword [esi], eax
add esi, 4
mov dword [esi], ebx
add esi, 4
mov dword [esi], ecx
add esi, 4
mov dword [esi], edx
add esi, 4
mov eax, 0x80000003
cpuid
mov dword [esi], eax
add esi, 4
mov dword [esi], ebx
add esi, 4
mov dword [esi], ecx
add esi, 4
mov dword [esi], edx
add esi, 4
mov eax, 0x80000004
cpuid
mov dword [esi], eax
add esi, 4
mov dword [esi], ebx
add esi, 4
mov dword [esi], ecx
add esi, 4
mov dword [esi], edx
add esi, 4
popaw
or ecx, 0xffffffff
xor eax, eax
lea edi, [ebp - 0x74]
repne scasb al, byte es:[edi]
mov ebx, dword [ebp - 4]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp - 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [ebp - 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx + 0x507], 4
jne 0x10026375
cmp dword [ebp - 0x24], 2
jb 0x100264e8
pushaw
mov eax, 2
cpuid
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], edx
popaw
mov eax, dword [ebp - 0x18]
and eax, 0xff00
cmp eax, 0x7000
jne 0x10026355
mov eax, dword [ebp - 4]
mov ecx, 0x1000
mov dword [eax + 0x4e7], ecx
mov dword [eax + 0x4eb], ecx
cmp byte [ebp - 0x20], 0x80
jne 0x1002636f
mov eax, dword [ebp - 4]
mov ecx, 0x2000
mov dword [eax + 0x4ef], ecx
mov dword [eax + 0x4f3], ecx
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0x507]
cmp eax, 3
je 0x10026385
cmp eax, 6
jne 0x100263cd
cmp dword [ebp - 0x28], 0x80000005
jb 0x100263cd
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
pushaw
mov eax, 0x80000005
cpuid
shr ecx, 0x18
mov dword [ebp - 0x18], ecx
shr edx, 0x18
mov dword [ebp - 0x20], edx
popaw
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
shl ecx, 0xa
shl edx, 0xa
mov dword [eax + 0x4ef], edx
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x4f3], ecx
mov ebx, eax
cmp dword [ebx + 0x507], 3
jne 0x1002641d
cmp dword [ebp - 0x28], 0x80000006
jb 0x1002641d
mov dword [ebp - 0x18], 0
pushaw
mov eax, 1
cpuid
cmp ax, 0x630
mov ecx, 0x40
je 0x10026404
mov eax, 0x80000006
cpuid
shr ecx, 0x10
mov dword [ebp - 0x18], ecx
popaw
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
shl eax, 0xa
mov dword [ecx + 0x4f7], eax
mov ebx, ecx
mov ecx, dword [ebx + 0x507]
mov eax, 6
cmp ecx, eax
jne 0x10026466
cmp dword [ebp - 0x14], eax
jne 0x10026466
cmp dword [ebp - 0x28], 0x80000006
jb 0x10026466
mov dword [ebp - 0x18], 0
pushaw
mov eax, 0x80000006
cpuid
shr ecx, 0x18
mov dword [ebp - 0x18], ecx
popaw
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
shl edx, 0xa
mov dword [eax + 0x4f7], edx
mov edx, dword [ebp - 0xc]
mov ebx, eax
mov eax, dword [ebx + 0x507]
cmp eax, 3
je 0x100268a1
cmp eax, 4
je 0x100268a1
cmp eax, 6
jne 0x1002648d
cmp dword [ebp - 0x14], 6
je 0x100268a1
cmp dword [ebp - 0x24], 2
jb 0x100268a1
mov byte [ebp - 0x19], 0
mov byte [ebp - 0xd], 0
mov byte [ebp - 0x1a], 0
pushaw
mov eax, 2
cpuid
mov byte [ebp - 0x19], al
mov al, 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], edx
popaw
inc byte [ebp - 0xd]
lea edi, [ebp - 0x40]
mov ebx, 4
mov esi, dword [edi]
xor ecx, ecx
mov eax, esi
shr eax, cl
cmp al, 1
jne 0x1002650f
mov edx, dword [ebp - 4]
mov dword [edx + 0x4e7], 0x1000
jmp 0x10026855
mov eax, 0x1000
mov dword [ebx + 0x4e7], eax
mov dword [ebx + 0x4eb], eax
mov eax, 0x2000
mov dword [ebx + 0x4ef], eax
mov dword [ebx + 0x4f3], eax
jmp 0x10026375
cmp al, 2
jne 0x10026525
mov eax, dword [ebp - 4]
mov dword [eax + 0x4e7], 0x400000
jmp 0x10026855
cmp al, 3
jne 0x1002653b
mov edx, dword [ebp - 4]
mov dword [edx + 0x4eb], 0x1000
jmp 0x10026855
cmp al, 4
jne 0x10026551
mov eax, dword [ebp - 4]
mov dword [eax + 0x4eb], 0x400000
jmp 0x10026855
cmp al, 6
jne 0x10026567
mov edx, dword [ebp - 4]
mov dword [edx + 0x4ef], 0x2000
jmp 0x10026855
cmp al, 8
jne 0x1002657d
mov eax, dword [ebp - 4]
mov dword [eax + 0x4ef], 0x4000
jmp 0x10026855
cmp al, 0xa
jne 0x10026593
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f3], 0x2000
jmp 0x10026855
cmp al, 0xc
jne 0x100265a9
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f3], 0x4000
jmp 0x10026855
cmp al, 0x22
jne 0x100265bf
mov edx, dword [ebp - 4]
mov dword [edx + 0x4fb], 0x80000
jmp 0x10026855
cmp al, 0x23
jne 0x100265d5
mov eax, dword [ebp - 4]
mov dword [eax + 0x4fb], 0x100000
jmp 0x10026855
cmp al, 0x25
jne 0x100265eb
mov edx, dword [ebp - 4]
mov dword [edx + 0x4fb], 0x200000
jmp 0x10026855
cmp al, 0x29
jne 0x10026601
mov eax, dword [ebp - 4]
mov dword [eax + 0x4fb], 0x400000
jmp 0x10026855
mov edx, 0x40
cmp al, dl
jne 0x10026613
mov byte [ebp - 0x1a], 1
jmp 0x10026855
cmp al, 0x41
jne 0x10026629
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x20000
jmp 0x10026855
cmp al, 0x42
jne 0x1002663f
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x40000
jmp 0x10026855
cmp al, 0x43
jne 0x10026655
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x80000
jmp 0x10026855
cmp al, 0x44
jne 0x1002666b
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x100000
jmp 0x10026855
cmp al, 0x45
je 0x10026848
cmp al, 0x46
jne 0x10026689
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x400000
jmp 0x10026855
cmp al, 0x50
jne 0x1002669b
mov eax, dword [ebp - 4]
mov dword [eax + 0x4e7], edx
jmp 0x10026855
cmp al, 0x51
jne 0x100266b1
mov edx, dword [ebp - 4]
mov dword [edx + 0x4e7], 0x80
jmp 0x10026855
cmp al, 0x52
jne 0x100266c7
mov eax, dword [ebp - 4]
mov dword [eax + 0x4e7], 0x100
jmp 0x10026855
cmp al, 0x5b
jne 0x100266d9
mov eax, dword [ebp - 4]
mov dword [eax + 0x4eb], edx
jmp 0x10026855
cmp al, 0x5c
jne 0x100266ef
mov edx, dword [ebp - 4]
mov dword [edx + 0x4eb], 0x80
jmp 0x10026855
cmp al, 0x5d
jne 0x10026705
mov eax, dword [ebp - 4]
mov dword [eax + 0x4eb], 0x100
jmp 0x10026855
cmp al, 0x66
jne 0x1002671b
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f3], 0x2000
jmp 0x10026855
cmp al, 0x67
jne 0x10026731
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f3], 0x4000
jmp 0x10026855
cmp al, 0x68
jne 0x10026747
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f3], 0x8000
jmp 0x10026855
cmp al, 0x70
jne 0x1002675d
mov eax, dword [ebp - 4]
mov dword [eax + 0x4ff], 0x3000
jmp 0x10026855
cmp al, 0x71
jne 0x10026773
mov edx, dword [ebp - 4]
mov dword [edx + 0x4ff], 0x4000
jmp 0x10026855
cmp al, 0x72
jne 0x10026789
mov eax, dword [ebp - 4]
mov dword [eax + 0x4ff], 0x8000
jmp 0x10026855
cmp al, 0x79
jne 0x1002679f
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x20000
jmp 0x10026855
cmp al, 0x7a
jne 0x100267b5
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x40000
jmp 0x10026855
cmp al, 0x7b
jne 0x100267cb
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x80000
jmp 0x10026855
cmp al, 0x7c
jne 0x100267de
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x100000
jmp 0x10026855
cmp al, 0x80
jne 0x100267f8
mov eax, dword [ebp - 4]
mov edx, 0x4000
mov dword [eax + 0x4ef], edx
mov dword [eax + 0x4f3], edx
jmp 0x10026855
cmp al, 0x81
jne 0x1002680b
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x20000
jmp 0x10026855
cmp al, 0x82
jne 0x1002681e
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x40000
jmp 0x10026855
cmp al, 0x83
jne 0x10026831
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x80000
jmp 0x10026855
cmp al, 0x84
jne 0x10026844
mov eax, dword [ebp - 4]
mov dword [eax + 0x4f7], 0x100000
jmp 0x10026855
cmp al, 0x85
jne 0x10026855
mov edx, dword [ebp - 4]
mov dword [edx + 0x4f7], 0x200000
add ecx, 8
cmp ecx, 0x20
jb 0x100264ce
add edi, 4
dec ebx
jne 0x100264ca
mov al, byte [ebp - 0xd]
cmp al, byte [ebp - 0x19]
jb 0x100264a3
mov al, byte [ebp - 0x1a]
test al, al
je 0x1002689b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4f7]
xor ecx, ecx
cmp edx, ecx
jne 0x10026895
mov dword [eax + 0x4f7], ecx
jmp 0x1002689b
mov dword [eax + 0x4fb], ecx
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov ecx, 1
cmp eax, ecx
jb 0x100268dc
cmp eax, 2
jae 0x100268dc
cmp dword [ebx + 0x507], ecx
jne 0x1002693e
test byte [ebx + 0x503], cl
mov eax, 0x4000
jne 0x100268d0
mov eax, 0x2000
mov dword [ebx + 0x4ef], eax
mov dword [ebx + 0x4f3], eax
cmp dword [ebx + 0x507], ecx
jne 0x1002693e
cmp dword [ebp - 0x14], 6
jne 0x1002693e
cmp dword [ebp - 8], 5
jne 0x1002693e
mov eax, dword [ebx + 0x4f7]
test eax, eax
jne 0x1002690b
mov dword [ebx + 0x50b], 1
mov edi, str.Intel_Celeron
jmp 0x10026921
cmp eax, 0x100000
jb 0x1002693e
mov dword [ebx + 0x50b], 3
mov edi, str.Intel_Pentium_II_Xeon
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx + 0x507], 1
jne 0x1002698b
cmp dword [ebp - 0x14], 6
jne 0x1002698b
cmp dword [ebp - 8], 7
jne 0x1002698b
cmp dword [ebx + 0x4f7], 0x100000
jb 0x1002698b
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0x50b], 5
mov edi, str.Intel_Pentium_III_Xeon
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret