Function at 0x10018690
Capabilities:
Inspect section memory permissions

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x10
pushfd
pop eax
mov ecx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
cmp eax, ecx
je 0x100186bd
push ecx
popfd
xor eax, eax
cpuid
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
cmp dword [esp], 0
jne 0x100186df
mov dword [0x103e6cc8], 1
mov dword [0x103e6ccc], 0
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x24], 1
je 0x100189c2
mov eax, 1
cpuid
mov ebp, edx
mov edi, edx
and ebp, 1
and edi, 0x8000
mov dword [esp], eax
mov esi, ecx
shr edi, 0xd
mov dword [esp + 4], 0
lea eax, [ebp + ebp + 1]
or eax, edi
mov ecx, eax
or ecx, 8
test edx, 0x800000
jne 0x10018723
mov ecx, eax
mov dword [esp + 8], ecx
test edx, 0x1000000
jne 0x10018736
xor edx, edx
jmp 0x100187f1
mov edi, ecx
mov ebx, esi
or edi, 0x10
and ebx, 0x80000
mov ebp, edi
or ebp, 0x20
test edx, 0x2000000
jne 0x10018752
mov ebp, edi
and edx, 0x4000000
mov edi, esi
shr edx, 0x14
and edi, 0x200
or ebp, edx
mov edx, esi
mov eax, ebp
and edx, 0x800000
or eax, 0x80
test esi, 1
jne 0x1001877e
mov eax, ebp
shr edi, 1
or eax, edi
mov ecx, eax
or ecx, 0x800
test esi, 0x400000
jne 0x10018794
mov ecx, eax
shr ebx, 0xa
mov eax, esi
or ecx, ebx
and eax, 0x2000000
mov edi, ecx
or edi, 0x400
test esi, 0x100000
jne 0x100187b2
mov edi, ecx
shr edx, 0xb
or edi, edx
mov ebx, edi
or ebx, 0x2000
test esi, 2
jne 0x100187c9
mov ebx, edi
shr eax, 0xb
or ebx, eax
mov dword [esp + 8], ebx
mov eax, 7
xor ecx, ecx
cpuid
mov edi, ebx
mov edx, 1
mov ebp, edi
and ebp, 0x20000000
shr ebp, 0x1a
mov dword [esp + 4], ebp
mov eax, dword [esp + 8]
mov ebp, eax
or ebp, 0x20000
test esi, 0x40000000
jne 0x10018807
mov ebp, eax
test edx, edx
jne 0x10018816
mov eax, 7
xor ecx, ecx
cpuid
mov edi, ebx
mov ebx, edi
mov eax, 0x80000
and ebx, 0x108
cmp ebx, 0x108
je 0x10018830
mov eax, 0
or ebp, eax
mov eax, SysReAllocString
cpuid
mov ebx, ebp
mov eax, edi
or ebx, 0x100000
test cl, 0x20
jne 0x1001884a
mov ebx, ebp
mov ebp, edi
and eax, 0x80000
and ebp, 0x10
shl ebp, 0x11
or ebx, ebp
mov edx, ebx
or edx, 0x400000
test edi, 0x800
jne 0x1001886b
mov edx, ebx
shl eax, 9
or edx, eax
mov ebx, edx
or ebx, 0x20000000
test edi, 0x40000
jne 0x10018882
mov ebx, edx
test esi, 0x8000000
je 0x10018957
xor ecx, ecx
xgetbv
or ebx, 1
mov edx, eax
and edx, 6
cmp edx, 6
jne 0x10018957
mov edx, ebx
mov ecx, eax
or edx, 0x10000
test esi, 0x10000000
jne 0x100188b8
mov edx, ebx
mov ebx, esi
and esi, 0x1000
and ebx, 0x20000000
and ecx, 0x18
shr ebx, 0xe
or edx, ebx
mov ebx, edx
or ebx, 0x800000
test edi, 0x20
jne 0x100188e0
mov ebx, edx
shl esi, 6
or ebx, esi
cmp ecx, 0x18
jne 0x10018904
mov ecx, dword [esp + 4]
mov edx, ecx
or edx, 0x10
test edi, 0x4000
je 0x100188fd
mov ecx, edx
mov dword [esp + 4], ecx
or ebx, 1
and eax, 0xe0
cmp eax, 0xe0
jne 0x10018957
or ebx, 1
mov ecx, edi
mov eax, ebx
and ecx, 0x8000000
or eax, 0x8000000
test edi, 0x10000
mov edx, dword [esp + 4]
mov ebp, edx
je 0x10018932
mov ebx, eax
or ebp, 4
test edi, 0x10000000
jne 0x1001893f
mov ebp, edx
shr ecx, 0x1b
or ebp, ecx
mov esi, ebp
or esi, 2
test edi, 0x4000000
jne 0x10018953
mov esi, ebp
mov dword [esp + 4], esi
mov eax, dword [esp]
mov edx, eax
shr edx, 0xc
shr eax, 4
and edx, 0xf0
and eax, 0xf
add edx, eax
cmp edx, 0x1c
je 0x1001897c
cmp edx, 0x26
je 0x1001897c
cmp edx, 0x27
jne 0x10018982
or ebx, 0x80000000
cmp dword [esp + 0x24], 1
je 0x100189a0
mov eax, dword [esp + 4]
mov dword [0x103e6cd0], ebx
mov dword [0x103e6cd4], eax
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 4]
mov dword [0x103e6cc8], ebx
mov dword [0x103e6ccc], eax
mov dword [0x103e6cd0], ebx
mov dword [0x103e6cd4], eax
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 4], 0x756e6547
jne 0x100186c3
cmp dword [esp + 0xc], 0x49656e69
jne 0x100186c3
cmp dword [esp + 8], 0x6c65746e
jne 0x100186c3
jmp 0x100186ea