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

Disassembly:
mov eax, 1
jmp 0x409780
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.00408c20
test eax, eax
jne 0x40a469
pushfd
pop eax
mov ecx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
cmp eax, ecx
je 0x40981e
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 0x409873
mov eax, 0x4143b0
lea ecx, [esp + 0x18]
call fcn.00408bf0
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 0x40a555
mov eax, 1
cpuid
mov dword [esp + 0x14], ecx
test dl, 1
je 0x4098a2
mov ecx, 2
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, 0x8000
je 0x4098c0
mov ecx, 3
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, 0x800000
je 0x4098de
mov ecx, 4
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, 0x1000000
jne 0x4098fb
test dword [esp + 0x14], 0x40000000
je 0x409a9f
xor edx, edx
jmp 0x409a85
mov ecx, 5
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, 0x2000000
je 0x40992f
mov ecx, 6
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, 0x4000000
je 0x40994d
mov ecx, 7
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0x14], 1
je 0x40996a
mov ecx, 8
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x200
je 0x40998a
mov ecx, 9
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x400000
je 0x4099aa
mov ecx, 0xc
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x80000
je 0x4099ca
mov ecx, 0xa
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x100000
je 0x4099ea
mov ecx, 0xb
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x800000
je 0x409a0a
mov ecx, 0xd
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0x14], 2
je 0x409a27
mov ecx, 0xe
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x2000000
je 0x409a47
mov ecx, 0xf
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 7
xor ecx, ecx
cpuid
mov esi, ebx
mov ebp, ecx
mov dword [esp + 0x10], edx
test esi, 0x20000000
je 0x409a76
mov ecx, 0x24
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x40000000
je 0x409ab0
mov edx, 1
mov ecx, 0x12
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test edx, edx
jne 0x409ab0
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 0x409ad4
mov ecx, 0x14
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 4
je 0x409af2
mov ecx, 0x36
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x10
je 0x409b10
mov ecx, 0x16
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x800
je 0x409b2e
mov ecx, 0x17
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x80000
je 0x409b4c
mov ecx, 0x1d
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x40000
je 0x409b6a
mov ecx, 0x1e
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x1000000
je 0x409b88
mov ecx, 0x32
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 0x80000001
cpuid
test cl, 0x20
je 0x409baa
mov ecx, 0x15
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 0x80000008
cpuid
test ebx, 0x200
je 0x409bcf
mov ecx, 0x37
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x20
je 0x409bed
mov ecx, 0x3e
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x80
je 0x409c0b
mov ecx, 0x35
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x100
je 0x409c29
mov ecx, 0x2e
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x400000
je 0x409c47
mov ecx, 0x33
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x2000000
je 0x409c65
mov ecx, 0x3b
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x8000000
je 0x409c83
mov ecx, 0x3c
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x10000000
je 0x409ca1
mov ecx, 0x3d
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x20000000
je 0x409cbf
mov ecx, 0x40
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x100000
je 0x409cdf
mov ecx, 0x34
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x40000
je 0x409cff
mov ecx, 0x38
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 0x14
xor ecx, ecx
cpuid
test bl, 0x10
je 0x409d23
mov ecx, 0x1b
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x800000
je 0x409d80
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 0x19
xor ecx, ecx
cpuid
test bl, 1
je 0x409d65
mov ecx, 0x45
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test bl, 4
je 0x409d80
mov ecx, 0x46
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 7
mov ecx, 1
cpuid
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
test eax, 0x400000
je 0x409db1
mov ecx, 0x47
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0x10], 0x20
je 0x409dce
mov ecx, 0x48
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x4000
je 0x409dee
mov ecx, 0x49
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 8], 0x80
je 0x409e0e
mov ecx, 0x4b
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 8
je 0x409e2b
mov ecx, 0x4e
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x8000
je 0x409e4b
mov ecx, 0x55
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x200000
je 0x409e6b
mov ecx, 0x58
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 8], 0x8000000
je 0x409e8b
mov ecx, 0x59
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 8], 0x80000
je 0x409eab
mov ecx, 0x5a
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test bl, 2
je 0x409ec6
mov ecx, 0x5b
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x80000
je 0x409f2b
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, 0x24
xor ecx, ecx
cpuid
test ebx, 0x20000
je 0x409f0d
mov ecx, 0x56
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebx, 0x40000
je 0x409f2b
mov ecx, 0x57
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x8000000
je 0x40a4a7
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
xor ecx, ecx
xgetbv
mov edx, eax
mov ecx, edx
and ecx, 0x60000
cmp ecx, 0x60000
jne 0x40a024
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x1000000
je 0x40a024
mov ecx, 0x42
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 8], 0x200000
je 0x409fc4
mov ecx, 0x4f
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x100
je 0x409fe4
mov ecx, 0x50
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x2000000
je 0x40a004
mov ecx, 0x43
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x400000
je 0x40a024
mov ecx, 0x44
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, edx
and eax, 6
cmp eax, 6
jne 0x40a4a7
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x10000000
je 0x40a0c1
mov ecx, 0x10
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x200
je 0x40a086
mov ecx, 0x2f
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x400
je 0x40a0a4
mov ecx, 0x30
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 2
je 0x40a0c1
mov ecx, 0x52
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x20000000
je 0x40a0e1
mov ecx, 0x11
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x20
je 0x40a1b7
mov ecx, 0x18
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0xc], 0x10
je 0x40a120
mov ecx, 0x4a
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 8], 0x800000
je 0x40a140
mov ecx, 0x4c
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0xc], 0x20
je 0x40a15d
mov ecx, 0x4d
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 1
je 0x40a17a
mov ecx, 0x51
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 4
je 0x40a197
mov ecx, 0x53
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0xc], 0x400
je 0x40a1b7
mov ecx, 0x54
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x14], 0x1000
je 0x40a1d7
mov ecx, 0x13
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, edx
and eax, 0x18
cmp eax, 0x18
jne 0x40a215
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x4000
je 0x40a215
mov ecx, 0x25
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 0x10
je 0x40a232
mov ecx, 0x41
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
and edx, 0xe0
cmp edx, 0xe0
jne 0x40a4a7
mov ecx, 1
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x10000
je 0x40a278
mov ecx, 0x19
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x10000000
je 0x40a296
mov ecx, 0x23
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x8000000
je 0x40a2b4
mov ecx, 0x21
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x4000000
je 0x40a2d2
mov ecx, 0x22
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x20000
je 0x40a2f0
mov ecx, 0x1a
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x40000000
je 0x40a30e
mov ecx, 0x26
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
mov eax, esi
and eax, 0x80000000
cmp eax, 0x80000000
jne 0x40a332
mov ecx, 0x27
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test esi, 0x200000
je 0x40a350
mov ecx, 0x1f
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 2
je 0x40a36e
mov ecx, 0x28
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x4000
je 0x40a38c
mov ecx, 0x2b
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0x10], 4
je 0x40a3a9
mov ecx, 0x2a
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 0x10], 8
je 0x40a3c6
mov ecx, 0x29
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x1000
je 0x40a3e4
mov ecx, 0x2c
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x40
je 0x40a3fe
mov ecx, 0x2d
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test ebp, 0x800
je 0x40a418
mov ecx, 0x31
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test byte [esp + 8], 0x20
je 0x40a431
mov ecx, 0x3f
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x800000
je 0x40a44d
mov ecx, 0x3a
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
jne 0x40a469
test dword [esp + 0x10], 0x100
je 0x40a4a7
mov ecx, 0x39
lea eax, [esp + 0x18]
call fcn.00408c20
test eax, eax
je 0x40a4a7
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 0x40a51b
cmp edi, 1
je 0x40a50b
mov eax, 0x4143c0
lea ecx, [esp + 0x18]
call fcn.00408bf0
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.00408bf0
jmp 0x40a4bd
lea edx, [esp + 0x28]
call fcn.00408a70
test eax, eax
jle 0x40a4b8
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 0x40a4b8
cmp dword [esp + 0xc], 0x756e6547
jne 0x409825
cmp dword [esp + 0x14], 0x49656e69
jne 0x409825
cmp dword [esp + 0x10], 0x6c65746e
jne 0x409825
jmp 0x40987c