Function at 0x1002e290
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x10
push ebx
push esi
mov esi, dword [esp + 0x28]
push edi
test eax, 0x8000
je 0x1002e2a8
or dword [esi], 1
test eax, 0x800000
je 0x1002e2b2
or dword [esi], 2
test eax, 0x2000000
je 0x1002e2bc
or dword [esi], 8
test eax, 0x4000000
je 0x1002e2c6
or dword [esi], 0x10
mov eax, dword [esp + 0x20]
test al, 1
je 0x1002e2d1
or dword [esi], 0x20
test al, 2
je 0x1002e2db
or dword [esi], 0x80000
test eax, 0x200
je 0x1002e2e5
or dword [esi], 0x40
test eax, 0x1000
je 0x1002e2f2
or dword [esi], 0x4000
test eax, 0x80000
je 0x1002e2ff
or dword [esi], 0x80
test eax, 0x100000
je 0x1002e313
or dword [esi], 0x100
or dword [esi + 4], 0x80000
test eax, 0x800000
je 0x1002e31d
or dword [esi], 4
test eax, 0x2000000
je 0x1002e32a
or dword [esi], 0x40000
test eax, 0x400000
je 0x1002e338
or dword [esi + 4], 0x20000000
and eax, 0x18000000
cmp eax, 0x18000000
jne 0x1002e36c
xor ecx, ecx
xgetbv
mov ecx, eax
mov dword [esp + 0x10], edx
and ecx, 6
cmp cl, 6
jne 0x1002e36c
and eax, 0xe0
mov cl, 1
mov byte [esp + 0x20], cl
cmp al, 0xe0
jne 0x1002e372
mov byte [esp + 0x24], cl
jmp 0x1002e37b
xor cl, cl
mov byte [esp + 0x20], cl
mov byte [esp + 0x24], 0
test cl, cl
je 0x1002e381
or dword [esi], 0x200
mov edi, dword [esp + 0x28]
cmp edi, 7
jb 0x1002e56a
xor ecx, ecx
mov eax, 7
cpuid
push ebp
lea ebp, [esp + 0x10]
mov dword [ebp], eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
mov ecx, dword [esp + 0x14]
pop ebp
test cl, 8
je 0x1002e3b8
or dword [esi], 0x10000
mov dl, byte [esp + 0x20]
test cl, 0x20
je 0x1002e3cb
test dl, dl
je 0x1002e3cb
or dword [esi], 0x400
test ecx, 0x100
je 0x1002e3d9
or dword [esi], 0x20000
mov al, byte [esp + 0x24]
test ecx, 0x10000
je 0x1002e3ef
test al, al
je 0x1002e3ef
or dword [esi], 0x8000
test ecx, 0x20000
je 0x1002e401
test al, al
je 0x1002e401
or dword [esi], 0x400000
test ecx, 0x80000
je 0x1002e410
or dword [esi + 4], 0x200
test ecx, 0x200000
je 0x1002e422
test al, al
je 0x1002e422
or dword [esi], 0x8000000
test ecx, 0x800000
je 0x1002e431
or dword [esi + 4], 0x4000
test ecx, 0x4000000
je 0x1002e443
test al, al
je 0x1002e443
or dword [esi], 0x2000000
test ecx, 0x8000000
je 0x1002e455
test al, al
je 0x1002e455
or dword [esi], 0x1000000
test ecx, sym.cpu_device32_emu.dll_Ordinal_0
je 0x1002e467
test al, al
je 0x1002e467
or dword [esi], 0x800000
test ecx, 0x20000000
je 0x1002e476
or dword [esi + 8], 0x2000
test ecx, 0x40000000
je 0x1002e488
test al, al
je 0x1002e488
or dword [esi], 0x200000
test ecx, ecx
jns 0x1002e496
test al, al
je 0x1002e496
or dword [esi], 0x100000
mov ecx, dword [esp + 0x14]
test cl, 2
je 0x1002e4a9
test al, al
je 0x1002e4a9
or dword [esi], 0x4000000
test cl, 0x40
je 0x1002e4b8
test al, al
je 0x1002e4b8
or dword [esi], 0x80000000
test ecx, 0x100
je 0x1002e4c4
or dword [esi + 4], 1
test ecx, 0x400
je 0x1002e4d4
test dl, dl
je 0x1002e4d4
or dword [esi + 4], 2
test ecx, 0x800
je 0x1002e4e4
test al, al
je 0x1002e4e4
or dword [esi + 4], 4
test ecx, 0x1000
je 0x1002e4f4
test al, al
je 0x1002e4f4
or dword [esi + 4], 8
test ecx, 0x4000
je 0x1002e506
test al, al
je 0x1002e506
or dword [esi], 0x40000000
mov ecx, dword [esp + 0x18]
test cl, 4
je 0x1002e519
test al, al
je 0x1002e519
or dword [esi], sym.cpu_device32_emu.dll_Ordinal_0
test cl, 8
je 0x1002e528
test al, al
je 0x1002e528
or dword [esi], 0x20000000
test ecx, 0x100
je 0x1002e538
test al, al
je 0x1002e538
or dword [esi + 4], 0x20
cmp edi, 7
jb 0x1002e56a
lea edi, [esp + 0xc]
mov eax, 7
mov ecx, 1
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
test byte [esp + 0xc], 0x20
je 0x1002e56a
cmp byte [esp + 0x24], 0
je 0x1002e56a
or dword [esi + 4], 0x10
lea edi, [esp + 0xc]
xor ecx, ecx
mov eax, 0x80000000
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
cmp dword [esp + 0xc], 0x80000001
jb 0x1002e5dd
lea edi, [esp + 0xc]
xor ecx, ecx
mov eax, 0x80000001
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov eax, dword [esp + 0x14]
test al, 0x40
je 0x1002e5b2
or dword [esi], 0x800
test eax, 0x800
je 0x1002e5bf
or dword [esi], 0x2000
test eax, 0x10000
je 0x1002e5cc
or dword [esi], 0x1000
test dword [esp + 0x18], 0x20000000
je 0x1002e5dd
or dword [esi + 4], 0x100
pop edi
pop esi
pop ebx
add esp, 0x10
ret