Function at 0x409660
Capabilities:
Inspect section memory permissions
Parse pe header
Query environment variable

Disassembly:
mov eax, 1
jmp 0x409670
push edx
push ecx
push ebx
push esi
push edi
push ebp
sub esp, 0xb8
mov edi, eax
movups xmmword [esp + 0x68], xmm7
movups xmmword [esp + 0x38], xmm6
movups xmmword [esp + 0x58], xmm5
movups xmmword [esp + 0x48], xmm4
movups xmmword [esp + 0x98], xmm3
movups xmmword [esp + 0xa8], xmm2
movups xmmword [esp + 0x78], xmm1
movups xmmword [esp + 0x88], xmm0
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
pushfd
pop eax
mov ecx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
cmp eax, ecx
je 0x40970e
push ecx
popfd
xor eax, eax
cpuid
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
cmp dword [esp + 8], 0
jne 0x409763
mov eax, 0x4143b0
lea ecx, [esp + 0x18]
call fcn.00408ae0
movups xmm0, xmmword [esp + 0x88]
movups xmm1, xmmword [esp + 0x78]
movups xmm2, xmmword [esp + 0xa8]
movups xmm3, xmmword [esp + 0x98]
movups xmm4, xmmword [esp + 0x48]
movups xmm5, xmmword [esp + 0x58]
movups xmm6, xmmword [esp + 0x38]
movups xmm7, xmmword [esp + 0x68]
xor eax, eax
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
cmp edi, 1
je 0x40a445
mov eax, 1
cpuid
mov dword [esp + 0x14], ecx
test dl, 1
je 0x409792
mov ecx, 2
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, 0x8000
je 0x4097b0
mov ecx, 3
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, 0x800000
je 0x4097ce
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, 0x1000000
jne 0x4097eb
test dword [esp + 0x14], 0x40000000
je 0x40998f
xor edx, edx
jmp 0x409975
mov ecx, 5
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, 0x2000000
je 0x40981f
mov ecx, 6
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, 0x4000000
je 0x40983d
mov ecx, 7
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0x14], 1
je 0x40985a
mov ecx, 8
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x200
je 0x40987a
mov ecx, 9
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x400000
je 0x40989a
mov ecx, 0xc
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x80000
je 0x4098ba
mov ecx, 0xa
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x100000
je 0x4098da
mov ecx, 0xb
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x800000
je 0x4098fa
mov ecx, 0xd
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0x14], 2
je 0x409917
mov ecx, 0xe
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x2000000
je 0x409937
mov ecx, 0xf
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 7
xor ecx, ecx
cpuid
mov esi, ebx
mov ebp, ecx
mov dword [esp + 0x10], edx
test esi, 0x20000000
je 0x409966
mov ecx, 0x24
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x40000000
je 0x4099a0
mov edx, 1
mov ecx, 0x12
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test edx, edx
jne 0x4099a0
mov eax, 7
xor ecx, ecx
cpuid
mov dword [esp + 0x10], edx
mov ebp, ecx
mov esi, ebx
mov eax, esi
and eax, 0x108
cmp eax, 0x108
jne 0x4099c4
mov ecx, 0x14
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 4
je 0x4099e2
mov ecx, 0x36
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x10
je 0x409a00
mov ecx, 0x16
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x800
je 0x409a1e
mov ecx, 0x17
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x80000
je 0x409a3c
mov ecx, 0x1d
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x40000
je 0x409a5a
mov ecx, 0x1e
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x1000000
je 0x409a78
mov ecx, 0x32
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 0x80000001
cpuid
test cl, 0x20
je 0x409a9a
mov ecx, 0x15
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 0x80000008
cpuid
test ebx, 0x200
je 0x409abf
mov ecx, 0x37
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x20
je 0x409add
mov ecx, 0x3e
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x80
je 0x409afb
mov ecx, 0x35
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x100
je 0x409b19
mov ecx, 0x2e
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x400000
je 0x409b37
mov ecx, 0x33
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x2000000
je 0x409b55
mov ecx, 0x3b
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x8000000
je 0x409b73
mov ecx, 0x3c
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x10000000
je 0x409b91
mov ecx, 0x3d
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x20000000
je 0x409baf
mov ecx, 0x40
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x100000
je 0x409bcf
mov ecx, 0x34
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x40000
je 0x409bef
mov ecx, 0x38
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 0x14
xor ecx, ecx
cpuid
test bl, 0x10
je 0x409c13
mov ecx, 0x1b
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x800000
je 0x409c70
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 0x19
xor ecx, ecx
cpuid
test bl, 1
je 0x409c55
mov ecx, 0x45
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test bl, 4
je 0x409c70
mov ecx, 0x46
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 7
mov ecx, 1
cpuid
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
test eax, 0x400000
je 0x409ca1
mov ecx, 0x47
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0x10], 0x20
je 0x409cbe
mov ecx, 0x48
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x4000
je 0x409cde
mov ecx, 0x49
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 8], 0x80
je 0x409cfe
mov ecx, 0x4b
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 8
je 0x409d1b
mov ecx, 0x4e
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x8000
je 0x409d3b
mov ecx, 0x55
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x200000
je 0x409d5b
mov ecx, 0x58
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 8], 0x8000000
je 0x409d7b
mov ecx, 0x59
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 8], 0x80000
je 0x409d9b
mov ecx, 0x5a
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test bl, 2
je 0x409db6
mov ecx, 0x5b
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x80000
je 0x409e1b
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, 0x24
xor ecx, ecx
cpuid
test ebx, 0x20000
je 0x409dfd
mov ecx, 0x56
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebx, 0x40000
je 0x409e1b
mov ecx, 0x57
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x8000000
je 0x40a397
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
xor ecx, ecx
xgetbv
mov edx, eax
mov ecx, edx
and ecx, 0x60000
cmp ecx, 0x60000
jne 0x409f14
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x1000000
je 0x409f14
mov ecx, 0x42
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 8], 0x200000
je 0x409eb4
mov ecx, 0x4f
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x100
je 0x409ed4
mov ecx, 0x50
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x2000000
je 0x409ef4
mov ecx, 0x43
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x400000
je 0x409f14
mov ecx, 0x44
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, edx
and eax, 6
cmp eax, 6
jne 0x40a397
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x10000000
je 0x409fb1
mov ecx, 0x10
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x200
je 0x409f76
mov ecx, 0x2f
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x400
je 0x409f94
mov ecx, 0x30
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 2
je 0x409fb1
mov ecx, 0x52
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x20000000
je 0x409fd1
mov ecx, 0x11
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x20
je 0x40a0a7
mov ecx, 0x18
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0xc], 0x10
je 0x40a010
mov ecx, 0x4a
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 8], 0x800000
je 0x40a030
mov ecx, 0x4c
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0xc], 0x20
je 0x40a04d
mov ecx, 0x4d
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 1
je 0x40a06a
mov ecx, 0x51
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 4
je 0x40a087
mov ecx, 0x53
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0xc], 0x400
je 0x40a0a7
mov ecx, 0x54
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x14], 0x1000
je 0x40a0c7
mov ecx, 0x13
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, edx
and eax, 0x18
cmp eax, 0x18
jne 0x40a105
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x4000
je 0x40a105
mov ecx, 0x25
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 0x10
je 0x40a122
mov ecx, 0x41
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
and edx, 0xe0
cmp edx, 0xe0
jne 0x40a397
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x10000
je 0x40a168
mov ecx, 0x19
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x10000000
je 0x40a186
mov ecx, 0x23
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x8000000
je 0x40a1a4
mov ecx, 0x21
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x4000000
je 0x40a1c2
mov ecx, 0x22
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x20000
je 0x40a1e0
mov ecx, 0x1a
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x40000000
je 0x40a1fe
mov ecx, 0x26
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
mov eax, esi
and eax, 0x80000000
cmp eax, 0x80000000
jne 0x40a222
mov ecx, 0x27
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test esi, 0x200000
je 0x40a240
mov ecx, 0x1f
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 2
je 0x40a25e
mov ecx, 0x28
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x4000
je 0x40a27c
mov ecx, 0x2b
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0x10], 4
je 0x40a299
mov ecx, 0x2a
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 0x10], 8
je 0x40a2b6
mov ecx, 0x29
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x1000
je 0x40a2d4
mov ecx, 0x2c
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x40
je 0x40a2ee
mov ecx, 0x2d
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test ebp, 0x800
je 0x40a308
mov ecx, 0x31
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test byte [esp + 8], 0x20
je 0x40a321
mov ecx, 0x3f
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x800000
je 0x40a33d
mov ecx, 0x3a
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
jne 0x40a359
test dword [esp + 0x10], 0x100
je 0x40a397
mov ecx, 0x39
lea eax, [esp + 0x18]
call fcn.00408b10
test eax, eax
je 0x40a397
movups xmm0, xmmword [esp + 0x88]
movups xmm1, xmmword [esp + 0x78]
movups xmm2, xmmword [esp + 0xa8]
movups xmm3, xmmword [esp + 0x98]
movups xmm4, xmmword [esp + 0x48]
movups xmm5, xmmword [esp + 0x58]
movups xmm6, xmmword [esp + 0x38]
movups xmm7, xmmword [esp + 0x68]
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
push str.INTEL_ISA_DISABLE
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
jne 0x40a40b
cmp edi, 1
je 0x40a3fb
mov eax, 0x4143c0
lea ecx, [esp + 0x18]
call fcn.00408ae0
movups xmm0, xmmword [esp + 0x88]
movups xmm1, xmmword [esp + 0x78]
movups xmm2, xmmword [esp + 0xa8]
movups xmm3, xmmword [esp + 0x98]
movups xmm4, xmmword [esp + 0x48]
movups xmm5, xmmword [esp + 0x58]
movups xmm6, xmmword [esp + 0x38]
movups xmm7, xmmword [esp + 0x68]
xor eax, eax
add esp, 0xb8
pop ebp
pop edi
pop esi
pop ebx
pop ecx
pop edx
ret
mov eax, 0x4143b0
lea ecx, [esp + 0x18]
call fcn.00408ae0
jmp 0x40a3ad
lea edx, [esp + 0x28]
call fcn.00408960
test eax, eax
jle 0x40a3a8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
not eax
mov ecx, dword [esp + 0x30]
not edx
mov ebx, dword [esp + 0x34]
not ecx
not ebx
and dword [esp + 0x18], eax
and dword [esp + 0x1c], edx
and dword [esp + 0x20], ecx
and dword [esp + 0x24], ebx
jmp 0x40a3a8
cmp dword [esp + 0xc], 0x756e6547
jne 0x409715
cmp dword [esp + 0x14], 0x49656e69
jne 0x409715
cmp dword [esp + 0x10], 0x6c65746e
jne 0x409715
jmp 0x40976c