Function at 0x601000
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
xor eax, eax
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
test edi, edi
je 0x601022
mov dword [edi], eax
call fcn.00672400
test eax, eax
je 0x601551
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 4]
push eax
push 0
call fcn.00672390
add esp, 0x14
cmp dword [ebp - 4], 0
je 0x601551
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
push 1
call fcn.00672390
mov eax, dword [ebp - 0xc]
add esp, 0x14
test eax, 0x800000
je 0x601551
push ebx
mov ebx, 8
push esi
mov dword [ebp + 8], ebx
test eax, 0x2000000
je 0x601096
mov dword [ebp + 8], 0x38
mov ebx, dword [ebp + 8]
test eax, 0x4000000
je 0x6010a3
or ebx, 0x40
mov dword [ebp + 8], ebx
mov eax, dword [ebp - 8]
test al, 1
je 0x6010b3
or ebx, 0x200
mov dword [ebp + 8], ebx
test eax, 0x200
je 0x6010c3
or ebx, 0x400
mov dword [ebp + 8], ebx
test eax, 0x80000
je 0x6010d3
or ebx, 0x2000
mov dword [ebp + 8], ebx
test eax, 0x100000
je 0x6010e3
or ebx, 0x4000
mov dword [ebp + 8], ebx
and eax, 0x18000000
cmp eax, 0x18000000
jne 0x601127
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 4]
push eax
push 0
call fcn.006723d0
mov ecx, dword [ebp - 4]
and ecx, 6
add esp, 0xc
cmp cl, 6
jne 0x601127
or ebx, 0x400000
test dword [ebp - 8], 0x1000
mov dword [ebp + 8], ebx
je 0x601127
or ebx, 0x4000000
mov dword [ebp + 8], ebx
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
push 7
call fcn.00672390
mov eax, dword [ebp - 0x10]
add esp, 0x14
test ebx, 0x400000
je 0x601159
test al, 0x20
je 0x601159
or ebx, 0x2000000
mov dword [ebp + 8], ebx
test al, 8
je 0x601176
or ebx, 0x8000000
mov dword [ebp + 8], ebx
test eax, 0x100
je 0x601176
or ebx, 0x10000000
mov dword [ebp + 8], ebx
test ebx, 0x400
je 0x601187
or ebx, 0x100
mov dword [ebp + 8], ebx
test ebx, 0x2000
je 0x601198
or ebx, 0x800
mov dword [ebp + 8], ebx
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 4]
push eax
push 0x80000000
call fcn.00672390
mov esi, dword [ebp - 4]
add esp, 0x14
mov ecx, 0x69f97c
lea eax, [ebp - 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x6011e0
test dl, dl
je 0x6011dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x6011e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x6011c0
xor eax, eax
jmp 0x6011e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x6011f3
test edi, edi
je 0x6011f3
mov dword [edi], 2
mov ecx, 0x69f97c
lea eax, [ebp - 0x28]
jmp 0x601200
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x601220
test dl, dl
je 0x60121c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x601220
add eax, 2
add ecx, 2
test dl, dl
jne 0x601200
xor eax, eax
jmp 0x601225
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x6012f9
cmp esi, 0x80000001
jb 0x6012f9
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
or ebx, 0x100000
push 0x80000001
mov dword [ebp + 8], ebx
call fcn.00672390
mov ecx, dword [ebp - 0xc]
add esp, 0x14
test ecx, 0x400000
je 0x601270
or ebx, 0x10
mov dword [ebp + 8], ebx
test bl, 0x40
je 0x6012db
mov eax, dword [ebp - 8]
test al, 0x40
je 0x60128d
and ebx, 0xffefffff
or ebx, 0x10900
mov dword [ebp + 8], ebx
jmp 0x601296
or ebx, 0x80
mov dword [ebp + 8], ebx
test al, al
jns 0x6012a3
or ebx, 0x8000
mov dword [ebp + 8], ebx
test ebx, 0x400000
je 0x6012cb
test eax, 0x800
je 0x6012bb
or ebx, 0x800000
mov dword [ebp + 8], ebx
test eax, 0x10000
je 0x6012cb
or ebx, 0x1000000
mov dword [ebp + 8], ebx
test eax, 0x200000
je 0x6012db
or ebx, 0x20000000
mov dword [ebp + 8], ebx
test ecx, ecx
jns 0x6012e8
or ebx, 0x40000000
mov dword [ebp + 8], ebx
test ecx, 0x40000000
je 0x6012f9
or ebx, 0x80000000
mov dword [ebp + 8], ebx
mov ecx, str.GenuineIntel
lea eax, [ebp - 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x601321
test dl, dl
je 0x60131d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x601321
add eax, 2
add ecx, 2
test dl, dl
jne 0x601301
xor eax, eax
jmp 0x601326
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x6013b4
test edi, edi
je 0x601338
mov dword [edi], 1
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
push 1
call fcn.00672390
mov eax, dword [ebp - 4]
mov ecx, eax
mov edx, eax
shr edx, 4
and edx, 0xf
shr ecx, 0xc
and ecx, 0xf0
add ecx, edx
mov edx, eax
shr edx, 0x14
shr eax, 8
and edx, 0xff
and eax, 0xf
add edx, eax
add esp, 0x14
cmp edx, 6
jne 0x6013b4
cmp ecx, 9
je 0x6013ab
cmp ecx, 0xd
je 0x6013ab
cmp ecx, 0xe
je 0x6013ab
cmp ecx, 0x1c
jne 0x60139e
or ebx, 0x300000
jmp 0x6013b1
cmp ecx, 0x17
jl 0x6013b4
or ebx, 0x800
jmp 0x6013b1
and ebx, 0xfffffdbf
mov dword [ebp + 8], ebx
mov ecx, str.GenuineIntel
lea eax, [ebp - 0x28]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x6013e0
test dl, dl
je 0x6013dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x6013e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x6013c0
xor eax, eax
jmp 0x6013e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x60141e
mov ecx, str.CyrixInstead
lea eax, [ebp - 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x601411
test dl, dl
je 0x60140d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x601411
add eax, 2
add ecx, 2
test dl, dl
jne 0x6013f1
xor eax, eax
jmp 0x601416
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x601548
test ebx, 0x4000
jne 0x601548
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 4]
push eax
push 1
call fcn.00672390
mov edi, dword [ebp - 0x10]
shr edi, 5
add esp, 0x14
and edi, 0x7f8
jne 0x60152f
cmp esi, 0x80000006
jb 0x60148a
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
push 0x80000006
call fcn.00672390
mov edi, dword [ebp - 8]
add esp, 0x14
and edi, 0xff
jne 0x60152f
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x38]
push edx
push 2
call fcn.00672390
mov eax, dword [ebp - 0x38]
mov ebx, eax
add esp, 0x14
and ebx, 0xff
and eax, 0xffffff00
mov dword [ebp - 0x38], eax
lea esi, [ebp - 0x38]
mov dword [ebp - 0x14], 4
mov eax, dword [esi]
test eax, eax
js 0x601515
je 0x601515
mov eax, dword [esi]
and eax, 0xff
push eax
push str._n_fABCDE
call fcn.006793c0
add esp, 8
test eax, eax
je 0x6014ee
mov edi, 0x20
mov ecx, dword [esi]
and ecx, 0xff
push ecx
push str.____FGI_fghxyz
call fcn.006793c0
add esp, 8
test eax, eax
je 0x60150d
mov edi, 0x40
shr dword [esi], 8
cmp dword [esi], 0
jne 0x6014d0
add esi, 4
dec dword [ebp - 0x14]
jne 0x6014c8
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, ebx
jl 0x601491
mov ebx, dword [ebp + 8]
cmp edi, 0x20
jne 0x601540
or ebx, 1
pop esi
mov eax, ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
cmp edi, 0x40
jne 0x601548
or ebx, 2
pop esi
mov eax, ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret