Function at 0x100417f0
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea esi, [esp + 0x14]
xor eax, eax
xor ecx, ecx
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
xor esi, esi
cmp dword [esp + 0x1c], 0x444d4163
mov eax, dword [esp + 0x14]
mov dword [edi], 0
mov dword [esp + 0x10], eax
jne 0x10041894
lea esi, [esp + 0x14]
mov dword [edi], 0x2000000
xor ecx, ecx
mov eax, SysReAllocString
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov esi, 0x2000000
mov eax, dword [esp + 0x20]
test eax, eax
jns 0x1004185e
mov dword [edi], 0x2010000
mov esi, 0x2010000
test eax, 0x8000
je 0x1004186a
or esi, 4
mov dword [edi], esi
test eax, 0x40000000
je 0x10041879
or esi, 0x20000
mov dword [edi], esi
test eax, 0x400000
je 0x10041885
or esi, 2
mov dword [edi], esi
test eax, 0x8000000
je 0x10041894
or esi, 0x80000
mov dword [edi], esi
cmp dword [esp + 0x1c], 0x6c65746e
jne 0x100418e0
lea ebp, [esp + 0x14]
xor ecx, ecx
mov eax, SysReAllocString
or esi, 0x1000000
cpuid
mov dword [ebp], eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
test dword [esp + 0x20], 0x8000000
mov dword [edi], esi
je 0x100418d1
or esi, 0x80000
mov dword [edi], esi
test byte [esp + 0x1c], 0x20
je 0x100418e0
or esi, 0x800000
mov dword [edi], esi
lea ebp, [esp + 0x14]
xor ecx, ecx
mov eax, 1
cpuid
mov dword [ebp], eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
mov ebx, dword [esp + 0x1c]
test bl, 1
je 0x10041907
or esi, 0x20
mov dword [edi], esi
test ebx, 0x200
je 0x10041914
or esi, 0x40
mov dword [edi], esi
test ebx, 0x80000
je 0x10041924
or esi, 0x80
mov dword [edi], esi
test ebx, 0x100000
je 0x10041934
or esi, 0x100
mov dword [edi], esi
test ebx, 0x800000
je 0x10041944
or esi, 0x200
mov dword [edi], esi
test ebx, 0x2000000
je 0x10041954
or esi, 0x400
mov dword [edi], esi
test bl, 2
je 0x10041961
or esi, 0x2000
mov dword [edi], esi
test ebx, 0x8000000
je 0x10041971
or esi, 0x1000
mov dword [edi], esi
test ebx, 0x40000000
je 0x10041981
or esi, 0x8000000
mov dword [edi], esi
mov eax, dword [esp + 0x20]
test eax, 0x8000
je 0x10041991
or esi, 4
mov dword [edi], esi
test eax, 0x800000
je 0x1004199d
or esi, 1
mov dword [edi], esi
test eax, 0x2000000
je 0x100419a9
or esi, 0xa
mov dword [edi], esi
test eax, 0x4000000
je 0x100419b5
or esi, 0x10
mov dword [edi], esi
mov ebp, esi
test esi, 0x1000
je 0x100419ec
xor ecx, ecx
xgetbv
and eax, 6
cmp eax, 6
jne 0x100419ec
test ebx, 0x10000000
je 0x100419dc
or ebp, 0x4000
mov dword [edi], ebp
test ebx, 0x1000
je 0x100419ec
or ebp, 0x8000
mov dword [edi], ebp
cmp dword [esp + 0x10], 7
jb 0x10041a80
xor ecx, ecx
lea esi, [esp + 0x14]
mov eax, 7
cpuid
mov dword [esi], eax
mov eax, ebp
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [esp + 0x18]
test ebp, 0x4000
je 0x10041a29
test cl, 0x20
je 0x10041a29
or eax, 0x100000
mov dword [edi], eax
test cl, 8
je 0x10041a35
or eax, 0x200000
mov dword [edi], eax
test ecx, 0x100
je 0x10041a44
or eax, 0x400000
mov dword [edi], eax
test ecx, 0x200
je 0x10041a53
or eax, 0x4000000
mov dword [edi], eax
test ecx, 0x40000
je 0x10041a62
or eax, 0x20000000
mov dword [edi], eax
test ecx, 0x80000
je 0x10041a71
or eax, 0x10000000
mov dword [edi], eax
test ecx, 0x100000
je 0x10041a80
or eax, 0x40000000
mov dword [edi], eax
xor ecx, ecx
lea esi, [esp + 0x14]
mov eax, 1
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xf
mov esi, ecx
mov dword [edi + 0xc], eax
mov edx, ecx
mov eax, ecx
shr esi, 4
shr eax, 8
and esi, 0xf
shr edx, 0x10
and eax, 0xf
shr ecx, 0x14
and edx, 0xf
movzx ecx, cl
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ecx
cmp eax, 0xf
jne 0x10041aeb
lea eax, [ecx + 0xf]
mov dword [edi + 0x18], eax
shl edx, 4
mov eax, edi
add edx, esi
mov dword [edi + 0x1c], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov dword [edi + 0x18], eax
cmp eax, 6
je 0x10041ad9
mov dword [edi + 0x1c], esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret