Function at 0x41f880
Capabilities:
Inspect section memory permissions

Disassembly:
push ebx
push esi
push edi
pushfd
pushal
push es
cld
pushfd
pop eax
mov ebx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
cmp eax, ebx
je 0x41faeb
lea edi, [0x517c80]
xor eax, eax
cpuid
mov dword [0x517cd0], eax
mov dword [edi], ebx
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
lea esi, str.GenuineIntelAuthenticAMDCyrixInsteadCentaurHaulsRiseRiseRiseSAVE
xor eax, eax
cmp dword [esi], ebx
jne 0x41f8cf
cmp dword [esi + 4], edx
jne 0x41f8cf
cmp dword [esi + 8], ecx
jne 0x41f8cf
inc eax
mov dword [edi + 0x10], eax
jmp 0x41f8df
add esi, 0xc
inc eax
cmp eax, 5
jne 0x41f8bb
mov dword [edi + 0x10], 6
cmp dword [0x517cd0], 1
jb 0x41faeb
mov eax, 1
cpuid
push ecx
mov ebx, eax
mov ecx, eax
mov esi, eax
and eax, 0xf
shr ebx, 4
and ebx, 0xf
shr ecx, 8
and ecx, 0xf
shr esi, 0xc
cmp dword [edi + 0x10], 2
jne 0x41f916
xor esi, esi
jmp 0x41f924
cmp dword [edi + 0x10], 3
jne 0x41f921
and esi, 0xf
jmp 0x41f924
and esi, 3
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], eax
pop ecx
test edx, 0x10
je 0x41f940
or dword [edi + 0x24], 0x80000000
test edx, 0x800000
je 0x41f94c
or dword [edi + 0x24], 1
test edx, 0x2000000
je 0x41f958
or dword [edi + 0x24], 4
test edx, 0x4000000
je 0x41f964
or dword [edi + 0x24], 0x10
test ecx, 1
je 0x41f973
or dword [edi + 0x24], 0x80
test ecx, 0x200
je 0x41f982
or dword [edi + 0x24], 0x100
test ecx, 0x80000
je 0x41f991
or dword [edi + 0x24], 0x80
test ecx, 0x100000
je 0x41f9a0
or dword [edi + 0x24], 0x100
cmp dword [edi + 0x10], 1
jne 0x41f9d0
mov eax, 0x80000000
cpuid
cmp eax, 0x80000001
jb 0x41fa63
mov eax, 0x80000001
cpuid
test edx, 0x20000000
je 0x41f9cb
or dword [edi + 0x24], 0x20
jmp 0x41fa63
cmp dword [edi + 0x10], 2
jne 0x41faeb
mov eax, 0x80000000
cpuid
mov esi, eax
cmp eax, 0x80000001
jb 0x41fa63
mov eax, 0x80000001
cpuid
test edx, 0x80000000
je 0x41f9fd
or dword [edi + 0x24], 2
test edx, 0x40000000
je 0x41fa11
test edx, 0x400000
je 0x41fa11
or dword [edi + 0x24], 8
test edx, 0x20000000
je 0x41fa1d
or dword [edi + 0x24], 0x40
cmp esi, 0x80000005
jb 0x41faeb
mov eax, 0x80000005
cpuid
shr ecx, 0x18
shr edx, 0x18
mov dword [edi + 0x2c], edx
mov dword [edi + 0x30], ecx
cmp esi, 0x80000006
jb 0x41faeb
mov eax, 0x80000006
cpuid
shr ecx, 0x10
shr edx, 0x12
shl edx, 9
mov dword [edi + 0x34], ecx
mov dword [edi + 0x38], edx
jmp 0x41faeb
mov eax, 2
cpuid
dec al
jne 0x41faeb
mov ebp, 0x80000000
lea esi, [0x517cc0]
test ebp, eax
je 0x41fa7f
xor eax, eax
test ebp, edx
je 0x41fa85
xor edx, edx
test ebp, ebx
je 0x41fa8b
xor ebx, ebx
test ebp, ecx
je 0x41fa91
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ecx
mov ebx, esi
mov edx, 0x10
movzx eax, byte [ebx]
or eax, eax
je 0x41fae7
mov esi, str.pqrs
mov ecx, 0x7f
cmp al, byte [esi + ecx]
je 0x41fabe
dec ecx
jns 0x41fab4
jmp 0x41fae7
mov esi, 0x46fc10
mov eax, dword [esi + ecx*4]
shr ecx, 5
jne 0x41fad0
mov dword [edi + 0x2c], eax
jmp 0x41fae7
cmp ecx, 1
jne 0x41fada
mov dword [edi + 0x30], eax
jmp 0x41fae7
cmp ecx, 2
jne 0x41fae4
mov dword [edi + 0x34], eax
jmp 0x41fae7
mov dword [edi + 0x38], eax
inc ebx
dec edx
jne 0x41faa3
pop es
popal
popfd
pop edi
pop esi
pop ebx
ret