Function at 0x40c2b0
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
mov eax, 0x437c
push esi
push ebx
call fcn.005d4d10
xor ebp, ebp
sub esp, eax
mov ebx, ecx
mov dword [esp + 4], str.State::getsysinfo_fast_n
mov dword [esp], 0x835180
call fcn.0041f130
mov dword [esp + 4], str.State::getsysinfo_fast::GetSystemPowerStatus_n
mov dword [esp], 0x835180
call fcn.0041f130
lea eax, [ebx + 0x80c]
mov dword [esp], 0xc
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00403110
mov dword [ebx + 0x134], eax
add eax, dword [ebx + 0x828]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetSystemPowerStatus]
sub esp, 4
lea esi, [esp + 0x28]
mov dword [esp + 4], str.State::getsysinfo_fast::Monitors_n
mov dword [esp], 0x835180
call fcn.0041f130
mov edi, esi
mov ecx, 0xd2
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x28], 0x348
lea edi, [esp + 0x24]
mov word [esp + 0x370], cx
jmp 0x40c3ba
lea eax, [esp + 0x2370]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
call fcn.0040be70
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40c3b7
mov edx, dword [esp + 0x2370]
test edx, edx
je 0x40c3b7
movzx ecx, word [esp + 0x370]
mov word [esp + ecx*4 + 0x372], ax
movzx eax, word [esp + 0x370]
mov word [esp + eax*4 + 0x374], dx
add word [esp + 0x370], 1
add ebp, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov dword [esp], 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesW]
sub esp, 0x10
test eax, eax
jne 0x40c360
movzx eax, word [esp + 0x370]
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x370]
mov dword [esp], esi
lea eax, [eax*4 + 2]
mov dword [esp + 4], eax
call fcn.00402cb0
sub esp, 8
mov dword [ebx + 0x130], eax
mov dword [esp + 4], str.State::getsysinfo_fast::Windows_n
mov dword [esp], 0x835180
call fcn.0041f130
mov dword [ebx], 0x11c
mov dword [esp], ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
call edi
sub esp, 4
test eax, eax
je 0x40c671
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [esp + 4], str.State::getsysinfo_fast::Environment_n
mov dword [ebx + 0x11c], eax
mov dword [esp], 0x835180
call fcn.0041f130
mov ebp, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [esp + 8], 0x1000
mov dword [esp + 4], esi
mov dword [esp], str.windir
call ebp
sub esp, 0xc
mov dword [esp + 4], str.inf_
mov dword [esp], esi
call sub.msvcrt.dll_wcscat
mov ecx, dword [esp + 0x1c]
mov dword [esp], esi
call fcn.00402b00
sub esp, 4
mov dword [ebx + 0x138], eax
mov ecx, 0x800
lea edi, [esp + 0x2370]
xor eax, eax
rep stosd dword es:[edi], eax
lea edi, [esp + 0x2370]
mov dword [esp + 8], 0x1000
mov dword [esp], 0x71b8d0
mov dword [esp + 4], edi
call ebp
sub esp, 0xc
mov dword [esp + 4], 0x71b8e8
mov dword [esp], edi
call sub.msvcrt.dll_wcscat
mov dword [esp + 8], 0x1000
mov dword [esp + 4], esi
mov dword [esp], 0x71b8f4
call ebp
sub esp, 0xc
mov dword [esp], esi
call sub.msvcrt.dll_wcslen
test eax, eax
je 0x40c660
mov ecx, dword [esp + 0x1c]
mov dword [esp], esi
call fcn.00402b00
sub esp, 4
mov dword [ebx + 0x13c], eax
mov dword [esp + 4], str.State::getsysinfo_fast::Architecture_n
mov dword [esp], 0x835180
call fcn.0041f130
xor edx, edx
mov dword [ebx + 0x120], 0
mov dword [esp + 8], 0x1000
mov word [esp + 0x370], dx
mov dword [esp + 4], esi
mov dword [esp], str.PROCESSOR_ARCHITECTURE
call ebp
sub esp, 0xc
mov dword [esp + 4], str.AMD64
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
sub esp, 8
test eax, eax
jne 0x40c57e
mov dword [ebx + 0x120], 1
xor eax, eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], esi
mov word [esp + 0x370], ax
mov dword [esp], str.PROCESSOR_ARCHITEW6432
call ebp
sub esp, 0xc
cmp word [esp + 0x370], 0
je 0x40c5b5
mov dword [ebx + 0x120], 1
mov eax, dword [0x8531ec]
cmp eax, 0x20
je 0x40c6b0
cmp eax, 0x40
je 0x40c650
mov eax, dword [0x8531e8]
test eax, eax
je 0x40c61f
sub eax, 0x3e8
cmp eax, 0xf
ja 0x40c630
lea eax, [eax + eax*2]
mov edx, 0x66666667
shl eax, 2
mov ecx, dword [eax + 0x71bfa0]
movzx esi, byte [eax + 0x71bfa4]
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
lea eax, [edx + edx*4]
mov dword [ebx + 4], edx
add eax, eax
sub ecx, eax
mov eax, esi
test al, al
mov dword [ebx + 8], ecx
je 0x40c63e
mov byte [ebx + 0x11a], 3
add esp, 0x437c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0xffffffff
mov byte [ebx + 0x11a], 1
add esp, 0x437c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx + 0x120], 1
jmp 0x40c5cc
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_wcscpy
jmp 0x40c507
mov dword [ebx], 0x114
mov dword [esp], ebx
call edi
sub esp, 4
test eax, eax
jne 0x40c43d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 4], str.GetVersionEx__
mov dword [esp], eax
mov ecx, 0x835180
call fcn.0041f1f0
sub esp, 8
jmp 0x40c43d
mov dword [ebx + 0x120], 0
jmp 0x40c5cc