Function at 0x44621a
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ecx, esi
shr ecx, 0xf
and ecx, 1
mov dword [ebp - 0xc], 0
mov edx, ecx
or edx, 2
test esi, 0x800000
push edi
cmove edx, ecx
mov ecx, edx
or ecx, 8
test esi, 0x2000000
cmove ecx, edx
mov edx, ecx
or edx, 0x10
test esi, 0x4000000
mov esi, dword [ebp + 8]
mov eax, esi
cmove edx, ecx
mov ebx, esi
mov ecx, edx
or ecx, 0x20
test al, 1
cmove ecx, edx
mov edx, ecx
or edx, 0x80000
test al, 2
cmove edx, ecx
mov ecx, edx
or ecx, 0x40
test esi, 0x200
cmove ecx, edx
mov edx, ecx
or edx, 0x4000
test esi, 0x1000
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test esi, 0x80000
cmove ecx, edx
mov edx, ecx
or edx, 0x100
test esi, 0x100000
cmove edx, ecx
mov ecx, edx
or ecx, 4
test esi, 0x800000
cmove ecx, edx
mov edi, ecx
or edi, 0x40000
and eax, 0x2000000
cmove edi, ecx
shr ebx, 0x16
and ebx, 1
and esi, 0x18000000
mov dword [ebp - 8], ebx
cmp esi, 0x18000000
jne 0x44632f
xor ecx, ecx
xgetbv
mov ecx, eax
mov dword [ebp - 0x10], edx
and ecx, 6
cmp cl, 6
jne 0x44632f
and eax, 0xe0
mov byte [ebp - 2], 1
cmp al, 0xe0
jne 0x44631e
mov byte [ebp - 1], 1
or edi, 0x200
jmp 0x446338
xor al, al
mov byte [ebp - 2], 1
mov byte [ebp - 1], al
or edi, 0x200
jmp 0x446338
xor al, al
mov byte [ebp - 2], 0
mov byte [ebp - 1], al
cmp dword [ebp + 0x10], 7
jb 0x4464ea
mov eax, 7
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
nop
lea ebx, [ebp - 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
test cl, 8
je 0x44636f
or edi, 0x10000
test cl, 0x20
je 0x446380
cmp byte [ebp - 2], 0
je 0x446380
or edi, 0x400
mov al, byte [ebp - 1]
mov edx, edi
or edx, 0x20000
test ecx, 0x200
cmove edx, edi
mov edi, edx
test ecx, 0x10000
je 0x4463a8
test al, al
je 0x4463a8
or edi, 0x8000
test ecx, 0x20000
je 0x4463ba
test al, al
je 0x4463ba
or edi, 0x400000
mov edx, dword [ebp - 8]
test ecx, 0x80000
je 0x4463cb
or edx, 2
mov dword [ebp - 8], edx
test ecx, 0x200000
je 0x4463dd
test al, al
je 0x4463dd
or edi, 0x8000000
test ecx, 0x800000
je 0x4463eb
or edx, 8
mov dword [ebp - 8], edx
test ecx, 0x4000000
je 0x4463fd
test al, al
je 0x4463fd
or edi, 0x2000000
test ecx, 0x8000000
je 0x44640f
test al, al
je 0x44640f
or edi, 0x1000000
test ecx, 0x10000000
je 0x446421
test al, al
je 0x446421
or edi, 0x800000
test ecx, 0x20000000
je 0x44642f
or edx, 0x10
mov dword [ebp - 8], edx
test ecx, 0x40000000
je 0x446441
test al, al
je 0x446441
or edi, 0x200000
test ecx, ecx
jns 0x44644f
test al, al
je 0x44644f
or edi, 0x100000
test bl, 2
je 0x44645e
test al, al
je 0x44645e
or edi, 0x4000000
test bl, 0x40
je 0x44646d
test al, al
je 0x44646d
or edi, 0x80000000
mov edx, ebx
shr edx, 8
and edx, 1
mov ecx, edx
mov dword [ebp - 0xc], ecx
test ebx, 0x400
je 0x446491
cmp byte [ebp - 2], 0
mov dword [ebp - 0xc], ecx
je 0x446491
or ecx, 2
mov dword [ebp - 0xc], ecx
test ebx, 0x800
je 0x4464a3
test al, al
je 0x4464a3
or ecx, 4
mov dword [ebp - 0xc], ecx
test ebx, 0x1000
je 0x4464b5
test al, al
je 0x4464b5
or ecx, 8
mov dword [ebp - 0xc], ecx
test ebx, 0x4000
je 0x4464c7
test al, al
je 0x4464c7
or edi, 0x40000000
mov ecx, dword [ebp - 0x10]
test cl, 4
je 0x4464d9
test al, al
je 0x4464d9
or edi, 0x10000000
test cl, 8
je 0x4464ed
test al, al
je 0x4464ed
or edi, 0x20000000
jmp 0x4464ed
mov dword [ebp - 8], ebx
mov eax, SysReAllocString
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
nop
lea ebx, [ebp - 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
cmp dword [ebp - 0x1c], 0x80000001
jb 0x446570
mov eax, SysReAllocString
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
nop
lea ebx, [ebp - 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
mov edx, dword [ebp - 0x14]
test dl, 0x40
je 0x44653c
or edi, 0x800
mov ecx, edi
or ecx, 0x2000
test edx, 0x800
cmove ecx, edi
mov edi, ecx
or edi, 0x1000
test dword [ebp - 0x14], 0x10000
cmove edi, ecx
test dword [ebp - 0x10], 0x20000000
mov ecx, dword [ebp - 8]
je 0x446573
or ecx, 4
jmp 0x446573
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0xc]
mov dword [eax], edi
mov eax, dword [ebp + 0x18]
pop edi
pop esi
pop ebx
mov dword [eax], edx
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov esp, ebp
pop ebp
ret