Function at 0x40d6a0
Capabilities:
Get system information on windows
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x100
mov eax, dword [0x8af4c0]
xor eax, esp
mov dword [esp + 0xfc], eax
cmp byte [0x8afd50], 0
jne 0x40e1de
xorps xmm0, xmm0
movups xmmword [esp + 0x68], xmm0
movups xmmword [esp + 0x78], xmm0
movups xmmword [esp + 0xd8], xmm0
movups xmmword [esp + 0xe8], xmm0
movups xmmword [esp + 0xc8], xmm0
movups xmmword [esp + 0xb8], xmm0
movups xmmword [esp + 0xa8], xmm0
movups xmmword [esp + 0x98], xmm0
movups xmmword [esp + 0x88], xmm0
mov dword [esp + 0xf8], 0
mov byte [esp + 0x68], 1
mov byte [esp + 0x6a], 1
mov dword [esp + 0x80], 1
mov dword [esp + 0xe4], 0x10
xor eax, eax
xor ecx, ecx
cpuid
cmp ebx, 0x746e6542
jg 0x40d767
cmp ebx, 0x414956
je 0x40d78e
cmp ebx, 0x68747541
jne 0x40d7ba
cmp edx, 0x69746e65
jne 0x40d7ba
xor edx, edx
cmp ecx, 0x444d4163
je 0x40d7bf
jmp 0x40d7ba
cmp ebx, 0x746e6543
je 0x40d7a5
cmp ebx, 0x756e6547
jne 0x40d7ba
cmp edx, 0x49656e69
jne 0x40d7ba
mov edx, 1
cmp ecx, 0x6c65746e
je 0x40d7bf
jmp 0x40d7ba
cmp edx, 0x414956
jne 0x40d7ba
mov edx, 3
cmp ecx, 0x414956
je 0x40d7bf
jmp 0x40d7ba
cmp edx, 0x48727561
jne 0x40d7ba
mov edx, 2
cmp ecx, 0x736c7561
je 0x40d7bf
mov edx, 4
shl edx, 2
mov ecx, dword [edx + edx*4 + 0x791954]
mov edx, dword [edx + edx*4 + 0x791958]
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
test eax, eax
je 0x40df19
mov dword [esp + 0xc], eax
mov eax, 1
xor ecx, ecx
cpuid
mov dword [esp], ecx
mov dword [esp + 8], edx
mov esi, eax
mov ecx, eax
shr ecx, 4
and ecx, 0xf
mov edx, eax
shr edx, 8
and edx, 0xf
cmp edx, 6
je 0x40d816
cmp edx, 0xf
jne 0x40d827
mov ebp, esi
shr ebp, 0xc
mov edi, ebp
and edi, 0xf0
or ecx, edi
jmp 0x40d82c
mov ebp, esi
shr ebp, 0xc
mov eax, esi
shr eax, 0x14
movzx eax, al
add eax, 0xf
cmp edx, 0xf
cmovne eax, edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], eax
movzx eax, bl
mov dword [esp + 0x74], eax
and ebp, 3
mov dword [esp + 0x7c], ebp
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x80], eax
and esi, 0xf
mov dword [esp + 0x78], esi
shr ebx, 5
and ebx, 0x7f8
mov dword [esp + 0x84], ebx
mov ebx, dword [esp]
mov eax, ebx
shl eax, 0xf
movzx eax, ax
mov ecx, ebx
and ecx, 2
shl ecx, 0x16
mov edx, ebx
and edx, 8
shl edx, 9
mov esi, ebx
and esi, 0x20
shl esi, 0x15
mov edi, ebx
and edi, 0x40
shl edi, 5
or edi, esi
mov esi, ebx
shl esi, 0xa
mov dword [esp + 0x10], esi
and esi, 0x80000
or esi, edi
or esi, eax
mov ebp, ebx
shr ebp, 3
and ebp, 0x30000
or ebp, esi
mov eax, ebx
shr eax, 8
mov dword [esp + 0x18], eax
and eax, 0x4000
mov esi, ebx
mov edi, ebx
and esi, 0x800000
lea eax, [eax + esi*4]
or eax, ecx
or eax, edx
shr edi, 0x1d
and edi, 2
or edi, ebp
mov ebp, dword [esp + 8]
mov edx, ebp
shr edx, 1
mov ecx, edx
and ecx, 8
or ecx, edi
mov ebx, ebp
and ebx, 0x20
shl ebx, 0xd
mov esi, ebp
shl esi, 9
and esi, 0x20000
and edx, 0x4000
or edx, esi
mov edi, ebp
shr edi, 9
and edi, 0x400
or edi, edx
mov edx, ebp
shr edx, 0xd
and edx, 0x400
or edx, ebx
mov esi, dword [esp]
and esi, 0x2000
lea ebx, [edi + esi*8]
mov esi, ebp
and esi, 1
shl esi, 0x18
or ebx, esi
mov esi, ebp
shl esi, 5
and esi, 0x20000000
or ebx, esi
mov edi, ebp
shr edi, 0x19
and edi, 1
mov esi, edi
shl esi, 0xb
or esi, edx
or esi, eax
mov eax, edi
shl eax, 0xd
shl edi, 0xe
or edi, eax
mov edx, dword [esp]
mov eax, edx
shr eax, 0x13
and eax, 0x40
or edi, ecx
mov ecx, edx
shr ecx, 0x1a
shr ebp, 0x1b
and ebp, 2
or ebp, eax
mov eax, edx
shr eax, 6
and eax, 0x200000
and ecx, 1
mov dword [esp + 0xec], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0xe0], ebx
lea esi, [eax + esi + 0x10]
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xdc], ebp
je 0x40da25
test eax, eax
je 0x40da25
xor ecx, ecx
xgetbv
test dword [esp], 0x10000000
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
je 0x40da31
and eax, 6
cmp eax, 6
jne 0x40da31
mov eax, dword [esp + 8]
or eax, 0x1000
mov dword [esp + 8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x10]
and eax, 0x400000
mov edx, dword [esp + 0x18]
and edx, 0x200000
or edx, eax
mov eax, dword [esp + 4]
or eax, edx
mov dword [esp + 4], eax
mov dword [esp + 0xe0], eax
jmp 0x40da31
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 7
jb 0x40df19
mov eax, 7
xor ecx, ecx
cpuid
mov dword [esp + 0x1c], eax
mov ebp, ecx
mov dword [esp + 0x10], edx
mov ecx, ebx
shr ecx, 6
mov dword [esp + 0x38], ecx
and ecx, 0x20
mov eax, ebx
shr eax, 0x10
and eax, 4
or eax, ecx
mov ecx, ebx
shr ecx, 2
and ecx, 4
or ecx, esi
mov dword [esp + 0x18], ecx
lea ecx, [ebx*8]
mov dword [esp + 0x3c], ecx
and ecx, 0x400
or eax, ecx
or eax, edi
mov edx, ebp
shr edx, 0xb
and edx, 0x10000
mov ecx, ebp
shr ecx, 0xd
and ecx, 0x8000
or ecx, edx
mov edx, ebp
shl edx, 0x12
mov dword [esp + 0x28], edx
and edx, 0x400000
or ecx, edx
mov edx, ebp
and edx, 1
shl edx, 0x1c
or ecx, edx
mov edx, ebp
shr edx, 7
and edx, 2
or ecx, edx
mov edx, ebp
shl edx, 9
and edx, 0x80000000
or ecx, edx
mov edx, ebp
and edx, 0x80
mov esi, ebp
shr esi, 0xa
and esi, 0x80000
or esi, edx
mov dword [esp], ebx
mov edx, ebx
shl edx, 0xb
and edx, 0x100000
or esi, edx
mov edx, ebx
shr edx, 3
mov dword [esp + 0x34], edx
and edx, 0x20
or esi, edx
mov edx, ebx
and edx, 1
shl edx, 0x19
or esi, edx
lea edx, [ebx + ebx]
and edx, 0x10
or esi, edx
mov edx, ebx
shr edx, 0xc
mov dword [esp + 0x2c], edx
and edx, 0x1800
or esi, edx
mov ebx, dword [esp + 0x10]
mov edi, ebx
shl edi, 0x16
mov dword [esp + 0x30], edi
and edi, 0x4000000
mov edx, dword [esp + 4]
or edx, edi
or edx, esi
mov dword [esp + 4], edx
mov edi, ebx
shl edi, 0x13
mov esi, ebx
shr esi, 8
or esi, edi
mov edi, ebx
shl edi, 7
and edi, 0x800000
and esi, 0x1000040
or esi, edi
mov edi, ebp
shl edi, 0x11
mov dword [esp + 0x20], edi
and edi, 0x8000000
or esi, edi
mov edi, ebp
shl edi, 0x10
and edi, 0x2000000
or esi, edi
mov edx, dword [esp]
mov edi, edx
shr edi, 0x16
and edi, 0x80
or esi, edi
mov edi, edx
shr edi, 0xb
and edi, 0x200
or esi, edi
mov edi, ebp
and edi, 0x20
shl edi, 0x17
or esi, edi
mov edx, ebx
shl edx, 6
and edx, 0x1000000
or edx, ecx
mov dword [esp + 0x40], ebp
shr ebp, 0x10
and ebp, 0x200
shr ebx, 0xe
mov dword [esp + 0x24], ebx
and ebx, 0x40
or ebx, ebp
or ebx, dword [esp + 4]
mov edi, dword [esp]
shr edi, 0xe
and edi, 0x20
mov ecx, dword [esp + 8]
or edi, ecx
or esi, eax
mov ebp, dword [esp + 0x18]
or edx, ebp
and ebp, 4
and eax, 0x20
or eax, ebp
mov dword [esp + 0xdc], edi
mov dword [esp + 0xe8], esi
mov dword [esp + 4], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0xe0], ebx
je 0x40dc25
or esi, 0x400000
mov dword [esp + 0xe8], esi
mov ebx, dword [esp]
mov eax, dword [esp + 0x14]
and eax, 0xe6
test bl, 0x20
je 0x40dc4b
and ecx, 0x1000
je 0x40dc4b
or edi, 0x2000
mov dword [esp + 0xdc], edi
mov edx, dword [esp + 0x14]
and edx, 0x60000
cmp eax, 0xe6
mov dword [esp + 8], edx
jne 0x40dd37
mov eax, ebx
and eax, 0x10000
je 0x40dd37
mov eax, dword [esp + 0x40]
mov edx, eax
and edx, 2
shl edx, 0x19
mov ebp, edi
mov edi, ebx
mov ecx, eax
and ecx, 0x40
shl ecx, 0x15
or ecx, edx
mov edx, dword [esp + 0x28]
and edx, 0x20000000
or edx, ecx
shl eax, 5
and eax, 0x20000
or eax, edx
mov edx, dword [esp + 0x20]
and edx, 0x80000000
or edx, eax
mov ebx, dword [esp + 0x10]
mov ecx, ebx
and ecx, 4
shl ecx, 0xd
or ecx, edx
mov eax, ebx
and eax, 8
shl eax, 0xb
or eax, ecx
mov ecx, ebx
and ecx, 0x800000
mov edx, dword [esp + 0x3c]
and edx, 0x1100000
or edx, ecx
mov ecx, edi
shr ecx, 1
and ecx, 0x2000000
or edx, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0x200000
or edx, ecx
mov ecx, edi
shr ecx, 9
and ecx, 0x80000
or edx, ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0x40000
or edx, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0x10000000
or edx, ecx
or edx, eax
mov edi, dword [esp + 0x30]
and edi, 0x40000000
or edi, ebp
or edi, edx
mov edx, dword [esp + 8]
or edi, 0x400000
mov dword [esp + 0xdc], edi
cmp edx, 0x60000
jne 0x40dd6d
mov ebx, dword [esp + 0x24]
and ebx, 0x100
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 0xd
and eax, 0x800
or eax, ebx
shr ecx, 0xf
and ecx, 0x400
or ecx, eax
or edi, ecx
mov dword [esp + 0xdc], edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40de99
mov eax, 7
mov ecx, 1
cpuid
mov ecx, eax
shl ecx, 0x1b
mov ebp, eax
shr ebp, 0x14
or ebp, ecx
mov ecx, eax
shl ecx, 8
and ecx, 0x8000
mov dword [esp + 0x10], edi
mov edi, eax
shl edi, 0x15
and edi, 0x80000000
or edi, ecx
mov ecx, eax
shl ecx, 0x11
and ecx, 0x10000000
or ecx, edi
mov edi, eax
shl edi, 0xf
and edi, 0x8000000
or edi, ecx
mov ecx, eax
shl ecx, 0xb
mov ebx, ecx
and ebx, 0x40000000
or esi, ebx
mov dword [esp + 0xe8], esi
mov esi, eax
shr esi, 0x13
and esi, 8
and ebp, 0x40000040
or ebp, esi
mov esi, eax
shr esi, 8
and esi, 0x80000
or ebp, esi
mov esi, edx
shl esi, 0xc
and esi, 0x4000000
or ebp, esi
or ebp, dword [esp + 4]
mov esi, edx
shr esi, 0xa
and esi, 0x100
or esi, edi
mov edi, dword [esp + 0x10]
or esi, dword [esp + 0x18]
mov dword [esp + 0xe4], ebp
test edi, 0x2000
je 0x40de58
mov edi, eax
shr edi, 2
and edi, 4
mov ebx, eax
shr ebx, 0x17
and ebx, 1
or ebx, edi
mov edi, edx
shr edi, 1
and edi, 8
or edi, ebx
shr edx, 4
and edx, 2
or edx, edi
mov edi, dword [esp + 0x10]
or esi, edx
mov edx, dword [esp + 8]
mov dword [esp + 0xe0], esi
test edi, 0x400000
je 0x40de7a
and ecx, 0x10000
or edi, ecx
mov dword [esp + 0xdc], edi
mov esi, dword [esp + 0xc]
cmp edx, 0x60000
jne 0x40dea1
shr eax, 0xc
and eax, 0x200
or edi, eax
mov dword [esp + 0xdc], edi
jmp 0x40dea1
mov ebp, dword [esp + 4]
mov esi, dword [esp + 0xc]
cmp esi, 0xd
jb 0x40df19
mov eax, 0xd
xor ecx, ecx
cpuid
test dword [esp], 0x4000
je 0x40ded3
mov ecx, dword [esp + 0x14]
and ecx, eax
and ecx, 0x18
cmp ecx, 0x18
jne 0x40ded3
or ebp, 0x20000
mov dword [esp + 0xe4], ebp
mov eax, 0xd
mov ecx, 1
cpuid
lea ecx, [eax*4]
and eax, 0xa
or eax, dword [esp + 0xec]
and ecx, 4
or eax, ecx
mov dword [esp + 0xec], eax
cmp esi, 0xe
jb 0x40df19
mov eax, 0xe
xor ecx, ecx
cpuid
and ebx, 0x10
shl ebx, 0x19
or ebx, ebp
mov dword [esp + 0xe4], ebx
mov dword [esp], 0x80000000
lea edi, [esp + 0x9c]
mov esi, 0x80000000
mov dword [esp + 8], edi
jmp 0x40df5a
and eax, 0x10
shl eax, 8
or dword [esp + 0xe8], eax
mov esi, 0x8000001f
nop word cs:[eax + eax]
inc esi
cmp esi, dword [esp]
ja 0x40e167
mov eax, esi
xor ecx, ecx
cpuid
mov ebp, ecx
lea ecx, [esi - 0x80000000]
cmp ecx, 0x1f
ja case.0x40df6d.2147483643
jmp dword [ecx*4 + 0x7919b8]
mov ecx, dword [esp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], edx
add ecx, 0x10
mov dword [esp + 8], ecx
cmp esi, 0x80000004
mov eax, 0x80000007
cmove esi, eax
jmp case.0x40df6d.2147483643
cmp eax, 0x8000001f
mov ecx, 0x8000001f
cmovae eax, ecx
mov esi, 0x80000000
mov dword [esp], eax
jmp case.0x40df6d.2147483643
mov esi, ebp
mov ebx, ebp
shl ebx, 5
and ebx, 0x20
mov eax, ebp
and eax, 4
shl eax, 0x12
mov dword [esp + 4], eax
lea eax, [ebp*8]
mov dword [esp + 0x14], eax
mov ebp, eax
and ebp, 0x100
mov eax, esi
shl eax, 0xd
and eax, 0x100000
mov ecx, esi
shl ecx, 0x13
and ecx, 0x8000000
or ecx, eax
mov eax, esi
and eax, 0x40
shl eax, 0xc
mov dword [esp + 0xc], eax
or ecx, ebx
or ecx, ebp
mov ebp, esi
shr ebp, 4
and ebp, 0x100
mov eax, esi
shr eax, 8
and eax, 0x80
or eax, ecx
mov ebx, esi
and ebx, 0x200000
add ebx, dword [esp + 4]
add ebx, dword [esp + 0xc]
or ebx, ebp
mov dword [esp + 0xc], esi
shr esi, 0x10
and esi, 0x2000
or esi, eax
mov ebp, edx
shr ebp, 0x12
and ebp, 4
mov eax, edx
shr eax, 0xb
and eax, 0x800
or eax, esi
mov dword [esp + 4], eax
mov esi, edx
shr esi, 0x17
and esi, 0x10
or esi, ebx
mov ecx, edx
shr ecx, 0x1e
and ecx, 1
mov ebx, ecx
shl ebx, 4
or ebx, ebp
mov ebp, edx
shl ebp, 9
and ebp, 0x40000000
or ebp, dword [esp + 0xe0]
shl ecx, 0xb
mov eax, edx
shr edx, 4
and edx, 0x8000000
or edx, ecx
shr eax, 2
and eax, 0x8000000
or edx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], ebp
or esi, dword [esp + 0xe8]
or edx, dword [esp + 4]
mov dword [esp + 0xe8], esi
or ebx, eax
mov dword [esp + 0xdc], ebx
or dword [esp + 0xe4], edx
test eax, 0x1000
je 0x40e0f6
mov ecx, dword [esp + 0xc]
mov eax, ecx
shl eax, 0x14
and eax, 0x80000000
or esi, eax
mov dword [esp + 0xe8], esi
shl ecx, 7
and ecx, 0x800000
or ebp, ecx
mov dword [esp + 0xe0], ebp
mov esi, 0x80000001
cmp dword [esp + 0x8c], 0x444d41
jne case.0x40df6d.2147483643
mov eax, dword [esp + 0x14]
and eax, 0x80
or ebx, eax
mov dword [esp + 0xdc], ebx
jmp case.0x40df6d.2147483643
mov eax, ebx
and eax, 1
mov ecx, eax
shl ecx, 0xd
or dword [esp + 0xe0], ecx
lea ecx, [ebx + ebx]
and ecx, 0x200
or dword [esp + 0xe4], ecx
shl ebx, 0x14
and ebx, 0x20000000
or ebx, dword [esp + 0xe8]
or ebx, eax
mov dword [esp + 0xe8], ebx
mov esi, 0x8000001e
jmp case.0x40df6d.2147483643
xor ecx, ecx
mov eax, edi
jmp 0x40e173
mov ebx, ecx
nop
inc edi
mov ecx, ebx
movzx edx, byte [edi]
mov byte [edi], 0
cmp edx, 0x20
je 0x40e190
test edx, edx
je 0x40e1a7
mov byte [eax], dl
inc eax
mov ebx, edx
jmp 0x40e170
mov bl, 0x40
cmp cl, 0x40
je 0x40e170
movzx esi, byte [edi + 1]
cmp esi, 0x20
je 0x40e16d
cmp esi, 0x40
je 0x40e16d
jmp 0x40e182
mov byte [eax], 0
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x68]
push 0x94
push eax
push 0x8afcbc
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [0x8afd50], 1
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.0055e764
mov eax, 0x8afcbc
add esp, 0x100
pop esi
pop edi
pop ebx
pop ebp
ret