Function at 0x407de0
Capabilities:
Inspect section memory permissions

Disassembly:
push edx
push ecx
push ebx
push esi
push edi
push ebp
sub esp, 0x1c
mov esi, eax
pushfd
pop eax
mov ecx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
cmp eax, ecx
je 0x407e11
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 0x407e35
mov ebx, 1
xor ecx, ecx
mov ebp, 0x44fc20
xor eax, eax
xor edx, edx
cmpxchg8b qword [ebp]
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
cmp esi, 1
je 0x4081b7
mov eax, 1
cpuid
mov ebp, edx
mov edi, edx
and ebp, 0x8000
and edi, 1
shr ebp, 0xd
test edx, 0x800000
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
lea eax, [ebp + edi*2 + 1]
lea ebp, [eax + 8]
jne 0x407e6e
mov ebp, eax
test edx, 0x1000000
jne 0x407ea5
mov edi, ecx
mov dword [esp + 0xc], 0
and edi, 0x40000000
shr edi, 0xd
mov eax, 7
xor ecx, ecx
cpuid
add ebp, edi
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x18], ebx
jmp 0x407f74
lea edi, [ebp + 0x10]
add ebp, 0x30
test edx, 0x2000000
jne 0x407eb5
mov ebp, edi
and edx, 0x4000000
shr edx, 0x14
or ebp, edx
mov eax, ebp
mov edi, ecx
or eax, 0x80
test edi, 1
mov edx, edi
mov ebx, edi
jne 0x407ed7
mov eax, ebp
mov ebp, edi
and edx, 0x80000
and ebp, 0x200
and ebx, 0x800000
shr ebp, 1
or eax, ebp
mov ecx, eax
or ecx, 0x800
test edi, 0x400000
jne 0x407f01
mov ecx, eax
shr edx, 0xa
or ecx, edx
mov edx, edi
mov eax, ecx
and edx, 0x2000000
or eax, 0x400
test edi, 0x100000
jne 0x407f1f
mov eax, ecx
shr ebx, 0xb
or eax, ebx
mov ecx, eax
or ecx, 0x2000
test edi, 2
jne 0x407f36
mov ecx, eax
shr edx, 0xb
or ecx, edx
mov dword [esp], ecx
mov eax, 7
xor ecx, ecx
cpuid
mov ebp, dword [esp]
or ebp, 0x20000
test edi, 0x40000000
mov dword [esp + 0x18], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x407f67
mov ebp, dword [esp]
and ebx, 0x20000000
shr ebx, 0x1a
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x18]
mov edi, ebp
and ebx, 0x108
or edi, 0x80000
cmp ebx, 0x108
je 0x407f90
mov edi, ebp
mov eax, 0x80000001
cpuid
and ecx, 0x20
shl ecx, 0xf
or edi, ecx
mov eax, edi
or eax, 0x200000
test byte [esp + 0x18], 0x10
mov ebp, dword [esp + 0x18]
jne 0x407fb3
mov eax, edi
and ebp, 0x800
shl ebp, 0xb
or eax, ebp
mov ebx, eax
or ebx, 0x10000000
test dword [esp + 0x18], 0x80000
mov edx, dword [esp + 0x18]
jne 0x407fd6
mov ebx, eax
and edx, 0x40000
shl edx, 0xb
or ebx, edx
test dword [esp + 0x14], 0x8000000
je 0x408144
xor ecx, ecx
xgetbv
or ebx, 1
mov edx, eax
and edx, 6
cmp edx, 6
jne 0x408144
mov edx, ebx
mov ebp, eax
mov ecx, dword [esp + 0x14]
or edx, 0x10000
test ecx, 0x10000000
jne 0x40801d
mov edx, ebx
mov ebx, ecx
and ecx, 0x1000
and ebx, 0x20000000
and ebp, 0x18
shr ebx, 0xe
or edx, ebx
mov ebx, edx
or ebx, 0x800000
test byte [esp + 0x18], 0x20
jne 0x408044
mov ebx, edx
shl ecx, 6
or ebx, ecx
cmp ebp, 0x18
jne 0x40806a
mov ecx, dword [esp + 0xc]
mov edx, ecx
or edx, 0x10
or ebx, 1
test dword [esp + 0x18], 0x4000
je 0x408066
mov ecx, edx
mov dword [esp + 0xc], ecx
and eax, 0xe0
cmp eax, 0xe0
jne 0x408144
or ebx, 1
mov ebp, ebx
mov ecx, dword [esp + 0x18]
or ebp, 0x8000000
test ecx, 0x10000
mov edx, ecx
mov edi, dword [esp + 0xc]
mov eax, edi
jne 0x40809b
mov ebp, ebx
or eax, 4
test ecx, 0x10000000
mov ebx, ecx
jne 0x4080aa
mov eax, edi
and ebx, 0x8000000
and edx, 0x20000
shr ebx, 0x1b
mov edi, ecx
or eax, ebx
and edi, 0x80000000
mov ebx, eax
or ebx, 2
test ecx, 0x4000000
jne 0x4080d2
mov ebx, eax
mov eax, ecx
and eax, 0x40000000
shr eax, 0x19
shl edx, 7
or ebx, eax
or ebp, edx
mov edx, ebx
or edx, 0x40
cmp edi, 0x80000000
je 0x4080f2
mov edx, ebx
mov ebx, ebp
or ebx, 0x40000000
test ecx, 0x200000
jne 0x408104
mov ebx, ebp
mov ebp, dword [esp + 4]
mov ecx, ebp
and ecx, 2
shl ecx, 6
or edx, ecx
mov eax, edx
or eax, 0x400
test ebp, 0x4000
mov ecx, dword [esp + 8]
jne 0x408127
mov eax, edx
mov edx, ecx
and edx, 4
shl edx, 7
or eax, edx
mov edi, eax
or edi, 0x100
test cl, 8
jne 0x408140
mov edi, eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x10]
mov edx, eax
shr edx, 0xc
shr eax, 4
and edx, 0xf0
and eax, 0xf
add edx, eax
cmp edx, 0x1c
je 0x40816a
cmp edx, 0x26
je 0x40816a
cmp edx, 0x27
jne 0x408170
or ebx, 0x80000000
cmp esi, 1
je 0x408190
mov ecx, dword [esp + 0xc]
mov ebp, 0x44fc28
xor eax, eax
xor edx, edx
cmpxchg8b qword [ebp]
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
mov ecx, dword [esp + 0xc]
mov ebp, 0x44fc20
xor eax, eax
xor edx, edx
cmpxchg8b qword [ebp]
mov esi, 0x44fc28
xor eax, eax
xor edx, edx
cmpxchg8b qword [esi]
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
cmp dword [esp + 4], 0x756e6547
jne 0x407e17
cmp dword [esp + 0xc], 0x49656e69
jne 0x407e17
cmp dword [esp + 8], 0x6c65746e
jne 0x407e17
jmp 0x407e3e