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

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x1a4]
push ebx
sub esp, 0x1d4
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x190]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x190], 0x18
mov dword [ebp - 0x1a4], 0x4e004c
mov dword [ebp - 0x1a0], str.KernelObjects__wine_user_shared_data
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x184], pe_nt_image_headers32
mov dword [esp + 4], 0xf001f
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtOpenSection]
sub esp, 0xc
test eax, eax
je 0x401af4
test byte [0x40a160], 2
jne 0x401fc5
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x1ac]
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 - 0x1ac]
sub esp, 0x14
mov dword [esp], eax
call dword [sym.imp.kernelbase.dll_CloseHandle]
push esi
test edi, edi
je 0x4020ce
mov dword [ebp - 0x12c], 0x11c
lea eax, [ebp - 0x12c]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_RtlGetVersion]
lea eax, [ebp - 0x158]
push ebx
mov ebx, dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x2c
mov dword [esp + 4], eax
mov dword [esp], 0
call ebx
lea eax, [ebp - 0x19c]
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 - 0x120]
sub esp, 0x10
mov byte [edi + 0x268], 1
mov dword [edi + 0x260], eax
movzx eax, byte [ebp - 0x12]
mov dword [edi + 0x244], 0x200000
mov dword [edi + 0x264], eax
movzx eax, word [ebp - 0x19c]
mov byte [edi + 0x2d5], 2
mov word [edi + 0x26a], ax
mov eax, dword [ebp - 0x128]
mov dword [edi + 0x26c], eax
mov eax, dword [ebp - 0x124]
mov dword [edi + 0x270], eax
movzx eax, word [ebp - 0x14]
mov dword [edi + 0x2d0], eax
mov eax, dword [ebp - 0x14c]
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 - 0x19c]
cmp ax, 9
je 0x402104
ja 0x401ec5
test ax, ax
je 0x402104
cmp ax, 5
jne 0x401c84
mov eax, dword [ebp - 0x194]
mov byte [edi + 0x286], al
shr eax, 1
and eax, 1
and byte [edi + 0x286], 1
cmp word [ebp - 0x19a], 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 0x401fb6
xor eax, eax
mov ecx, eax
cpuid
mov esi, eax
test byte [0x40a160], 8
jne 0x401ff2
cmp eax, 0xc
jle 0x401fb6
mov eax, 1
xor ecx, ecx
cpuid
and ecx, 0x8000000
je 0x401fb6
mov eax, 0xd
xor ecx, ecx
cpuid
mov dword [ebp - 0x1b8], ebx
mov esi, eax
mov dword [esp], 0
call sym._do_xgetbv_4
and esi, eax
push edx
xor edx, edx
and esi, 0xfc
mov ebx, esi
mov eax, esi
mov esi, edx
shr esi, 2
shrd ebx, edx, 2
mov dword [ebp - 0x1b4], ebx
mov ecx, esi
or ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1b0], esi
je 0x401fb6
or eax, 3
mov ecx, 1
mov dword [edi + 0x3dc], 0
mov esi, 2
mov dword [edi + 0x3d8], eax
mov dword [edi + 0x3e0], eax
mov eax, dword [ebp - 0x1b8]
mov dword [edi + 0x3e4], 0
mov dword [edi + 0x600], eax
mov eax, 0xd
cpuid
mov dword [edi + 0x604], 0xa0
mov edx, eax
and eax, 1
mov dword [edi + 0x3f4], 0xa0
shr edx, 1
mov dword [edi + 0x608], 0x100
and edx, 1
mov dword [edi + 0x3fc], 0x100
add edx, edx
mov dword [edi + 0x3f8], 0xa0
or edx, eax
movzx eax, byte [edi + 0x3ec]
mov dword [ebp - 0x1bc], 0x240
and eax, 0xfffffffc
or edx, eax
mov byte [edi + 0x3ec], dl
jmp 0x401df7
mov ebx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b4]
lea eax, [esi + 1]
shrd ecx, ebx, 1
shr ebx, 1
mov edx, ebx
mov dword [ebp - 0x1b4], ecx
or edx, ecx
mov dword [ebp - 0x1b0], ebx
je 0x401f7e
mov esi, eax
mov eax, dword [ebp - 0x1b4]
and eax, 1
je 0x401dca
mov eax, 0xd
mov ecx, esi
cpuid
and ecx, 2
mov dword [edi + esi*8 + 0x3f0], ebx
mov dword [ebp - 0x1b8], eax
mov dword [edi + esi*4 + 0x604], eax
mov dword [ebp - 0x1c0], ecx
mov dword [edi + esi*8 + 0x3f4], eax
je 0x401e66
mov ecx, esi
mov eax, 1
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x401e48
mov edx, eax
xor eax, eax
mov ecx, dword [ebp - 0x1bc]
or dword [edi + 0x5f8], eax
or dword [edi + 0x5fc], edx
add ecx, 0x3f
and ecx, 0xffffffc0
mov dword [ebp - 0x1bc], ecx
mov eax, dword [ebp - 0x1b8]
add dword [ebp - 0x1bc], eax
test byte [0x40a160], 8
je 0x401dca
mov ecx, dword [ebp - 0x1c0]
xor edx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
test ecx, ecx
mov dword [esp + 0x10], esi
setne dl
mov dword [esp + 0xc], str.xstate__d__offset__lu__size__lu__aligned__d._n
mov dword [esp + 0x1c], edx
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x40a160
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x401dca
cmp ax, 0xc
jne 0x401c84
mov eax, dword [ebp - 0x194]
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 - 0x178]
mov byte [edi + 0x293], dl
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1a8]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x20
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], 0xb5
call dword [sym.imp.ntdll.dll_NtQuerySystemInformationEx]
sub esp, 0x18
test eax, eax
jne 0x401c84
xor edx, edx
movzx eax, word [ebp + edx*4 - 0x178]
test ax, ax
je 0x401c84
cmp ax, 0x14c
je 0x402269
cmp ax, 0x1c4
jne 0x401f7b
mov word [edi + 0x286], 0x101
inc edx
jmp 0x401f51
movzx eax, byte [edi + 0x3ec]
test al, 2
jne 0x401f9d
mov edx, dword [edi + esi*8 + 0x3f0]
add edx, dword [edi + esi*8 + 0x3f4]
mov dword [ebp - 0x1bc], edx
mov esi, dword [ebp - 0x1bc]
mov dword [edi + 0x3e8], esi
test byte [0x40a160], 8
jne 0x402225
mov dword [esp], edi
call dword [sym.imp.kernelbase.dll_UnmapViewOfFile]
push eax
jmp 0x401ae8
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], 0x40a160
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x401ae8
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Max_cpuid_level__x._n
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 4], 0x40a160
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
cmp esi, 0xc
jle 0x401fb6
mov eax, 1
xor ecx, ecx
cpuid
mov esi, ecx
test byte [0x40a160], 8
je 0x401cd1
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], 0x40a160
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
and esi, 0x8000000
je 0x401fb6
mov eax, 0xd
xor ecx, ecx
cpuid
mov dword [ebp - 0x1b8], ebx
mov esi, eax
test byte [0x40a160], 8
je 0x401cee
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], 0x40a160
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x401cee
test byte [0x40a160], 2
je 0x401ae8
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], 0x40a160
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x401ae8
mov eax, dword [ebp - 0x194]
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 0x401c84
and eax, 1
mov dword [esp + 0x18], eax
movzx eax, byte [edi + 0x3ec]
mov dword [esp + 0x10], esi
shr al, 1
mov dword [esp + 0xc], str.xstate_size__lu__compacted__d__optimized__d._n
and eax, 1
mov dword [esp + 8], str.initialize_xstate_features
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x40a160
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x401fb6
mov byte [edi + 0x277], 1
inc edx
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 0x401f51