Function at 0x402a90
Capabilities:
Check os version
Get system information on windows
Make suspicious ntquerysysteminformation call

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x1ac]
push ebx
sub esp, 0x1dc
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x198]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x198], 0x18
mov dword [ebp - 0x1ac], 0x4e004c
mov dword [ebp - 0x1a8], str.KernelObjects__wine_user_shared_data
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x18c], pe_nt_image_headers32
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0
mov dword [esp + 4], 0xf001f
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtOpenSection]
sub esp, 0xc
test eax, eax
je 0x402b44
test byte [0x409010], 2
jne 0x402e96
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x1b4]
mov dword [esp + 0x10], 0x710
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [sym.imp.kernelbase.dll_MapViewOfFile]
mov edi, eax
mov eax, dword [ebp - 0x1b4]
sub esp, 0x14
mov dword [esp], eax
call dword [sym.imp.kernelbase.dll_CloseHandle]
push ecx
test edi, edi
je 0x402fee
mov dword [ebp - 0x134], 0x11c
lea eax, [ebp - 0x134]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_RtlGetVersion]
lea eax, [ebp - 0x160]
mov ebx, dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
push edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x2c
mov dword [esp + 4], eax
mov dword [esp], 0
call ebx
lea eax, [ebp - 0x1a4]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], eax
mov dword [esp], 1
call ebx
mov dword [edi + 4], 0x1000000
mov eax, dword [ebp - 0x128]
sub esp, 0x10
mov byte [edi + 0x268], 1
mov dword [edi + 0x260], eax
movzx eax, byte [ebp - 0x1a]
mov dword [edi + 0x244], 0x200000
mov dword [edi + 0x264], eax
movzx eax, word [ebp - 0x1a4]
mov byte [edi + 0x2d5], 2
mov word [edi + 0x26a], ax
mov eax, dword [ebp - 0x130]
mov dword [edi + 0x26c], eax
mov eax, dword [ebp - 0x12c]
mov dword [edi + 0x270], eax
movzx eax, word [ebp - 0x1c]
mov dword [edi + 0x2d0], eax
mov eax, dword [ebp - 0x154]
mov dword [edi + 0x2e8], eax
lea eax, [edi + 0x30]
mov dword [esp + 4], str.C:windows
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcscpy]
movzx eax, word [ebp - 0x1a4]
cmp ax, 9
je 0x403024
ja 0x402dea
test ax, ax
je 0x403024
cmp ax, 5
jne 0x402cd4
mov eax, dword [ebp - 0x19c]
mov byte [edi + 0x286], al
shr eax, 1
and eax, 1
and byte [edi + 0x286], 1
cmp word [ebp - 0x1a2], 7
mov byte [edi + 0x287], al
seta byte [edi + 0x291]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
cmp byte [edi + 0x29b], 0
mov eax, dword [eax + 0x64]
mov byte [edi + 0x3c4], 1
mov dword [edi + 0x3c0], eax
je 0x402ddb
xor esi, esi
mov eax, esi
mov ecx, esi
cpuid
test byte [0x409010], 8
jne 0x402f0a
cmp eax, 0xc
jle 0x402ddb
mov eax, 1
mov ecx, esi
cpuid
and ecx, 0x8000000
je 0x402ddb
mov eax, 0xd
xor ecx, ecx
cpuid
mov esi, eax
and esi, 2
je 0x402ddb
mov esi, 0xd
mov dword [edi + 0x600], ebx
mov ecx, 1
movdqu xmm0, xmmword [0x40bac0]
mov dword [edi + 0x604], 0xa0
mov eax, esi
cpuid
mov edx, eax
and eax, 1
movups xmmword [edi + 0x3f4], xmm0
movdqu xmm0, xmmword [0x40bad0]
shr edx, 1
mov ecx, 2
mov dword [edi + 0x608], 0x100
and edx, 1
mov dword [edi + 0x60c], 0x100
add edx, edx
movups xmmword [edi + 0x3d8], xmm0
mov dword [edi + 0x404], 0x100
or edx, eax
movzx eax, byte [edi + 0x3ec]
mov dword [edi + 0x3e8], 0x340
and eax, 0xfffffffc
or edx, eax
mov eax, esi
mov byte [edi + 0x3ec], dl
cpuid
test byte [0x409010], 8
jne 0x403145
mov dword [esp], edi
call dword [sym.imp.kernelbase.dll_UnmapViewOfFile]
push eax
jmp 0x402b38
cmp ax, 0xc
jne 0x402cd4
mov eax, dword [ebp - 0x19c]
lea ebx, [ebp - 0x180]
mov byte [edi + 0x291], 1
mov byte [edi + 0x276], 1
mov edx, eax
shr eax, 3
mov byte [edi + 0x280], 1
and eax, 1
shr edx, 2
mov byte [edi + 0x28b], 1
mov byte [edi + 0x292], al
and edx, 1
lea eax, [ebp - 0x1b0]
mov byte [edi + 0x293], dl
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], 0xb5
call dword [sym.imp.ntdll.dll_NtQuerySystemInformationEx]
mov edx, ebx
sub esp, 0x18
test eax, eax
jne 0x402cd4
mov eax, dword [edx]
test eax, eax
je 0x402cd4
movzx ecx, ax
cmp ax, 0x14c
je 0x402ece
cmp ecx, 0x1c4
je 0x402ec3
add edx, 4
jmp 0x402e76
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.cannot_open___wine_user_shared_data:__lx_n
mov dword [esp + 8], str.create_user_shared_data
mov dword [esp + 4], 0x409010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x402b38
mov word [edi + 0x286], 0x101
jmp 0x402e91
mov byte [edi + 0x277], 1
mov byte [edi + 0x27a], 1
mov byte [edi + 0x27c], 1
mov byte [edi + 0x27e], 1
mov byte [edi + 0x281], 1
mov byte [edi + 0x294], 1
mov word [edi + 0x298], 0x101
mov byte [edi + 0x29a], 1
jmp 0x402e91
mov dword [esp + 0x10], eax
mov ebx, eax
mov dword [esp + 0xc], str.Max_cpuid_level__x._n
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x409010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
cmp ebx, 0xc
jle 0x402ddb
mov eax, 1
mov ecx, esi
cpuid
mov dword [ebp - 0x1bc], ecx
test byte [0x409010], 8
je 0x402d21
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.CPU_features__x___x___x___x._n
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x409010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
test dword [ebp - 0x1bc], 0x8000000
je 0x402ddb
mov ecx, esi
mov eax, 0xd
cpuid
mov esi, eax
test byte [0x409010], 8
je 0x402d38
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.XSAVE_details__x___x___x___x._n
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x409010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x402d38
test byte [0x409010], 2
je 0x402b38
mov dword [esp + 0xc], str.cannot_map___wine_user_shared_data_n
mov dword [esp + 8], str.create_user_shared_data
mov dword [esp + 4], 0x409010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x402b38
mov eax, dword [ebp - 0x19c]
mov byte [edi + 0x28b], 1
mov edx, eax
shr dl, 7
mov byte [edi + 0x276], dl
mov edx, eax
shr edx, 8
and edx, 1
mov byte [edi + 0x277], dl
mov edx, eax
shr edx, 0xd
and edx, 1
mov byte [edi + 0x27a], dl
mov edx, eax
shr edx, 0xe
and edx, 1
mov byte [edi + 0x27b], dl
mov edx, eax
shr edx, 1
and edx, 1
mov byte [edi + 0x27c], dl
mov edx, eax
shr edx, 0x15
and edx, 1
mov byte [edi + 0x27d], dl
mov edx, eax
shr edx, 0x10
and edx, 1
mov byte [edi + 0x27e], dl
mov edx, eax
shr edx, 0x13
and edx, 1
mov byte [edi + 0x281], dl
mov edx, eax
shr edx, 0xf
and edx, 1
mov byte [edi + 0x298], dl
mov edx, eax
shr edx, 0x17
and edx, 1
mov byte [edi + 0x285], dl
mov edx, eax
shr edx, 0x14
and edx, 1
mov byte [edi + 0x282], dl
mov edx, eax
shr edx, 0x16
and edx, 1
mov byte [edi + 0x27f], dl
mov edx, eax
shr edx, 0x1d
and edx, 1
mov byte [edi + 0x280], dl
mov edx, eax
shr edx, 0x1a
and edx, 1
mov byte [edi + 0x288], dl
mov edx, eax
shr edx, 0x1b
and edx, 1
mov byte [edi + 0x289], dl
mov edx, eax
shr edx, 0x1c
and edx, 1
mov byte [edi + 0x28a], dl
mov edx, eax
shr edx, 0x18
and edx, 1
mov byte [edi + 0x299], dl
mov edx, eax
shr edx, 0x19
and edx, 1
mov byte [edi + 0x29a], dl
mov edx, eax
shr eax, 0x1f
shr edx, 0x1e
mov byte [edi + 0x29c], al
and edx, 1
mov byte [edi + 0x29b], dl
jmp 0x402cd4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.XSAVE_feature_2__x___x___x___x._n
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x409010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x402ddb