Function at 0x40c300
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
mov eax, 0x237c
push esi
push ebx
call fcn.005d34c0
xor ebx, ebx
sub esp, eax
mov esi, ecx
mov dword [esp + 4], str.State::getsysinfo_fast_n
mov dword [esp], 0x833180
call fcn.0041f0d0
mov dword [esp + 4], str.State::getsysinfo_fast::GetSystemPowerStatus_n
mov dword [esp], 0x833180
call fcn.0041f0d0
lea eax, [esi + 0x80c]
mov dword [esp], 0xc
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00403110
mov dword [esi + 0x134], eax
add eax, dword [esi + 0x828]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetSystemPowerStatus]
sub esp, 4
lea ebp, [esp + 0x28]
mov dword [esp + 4], str.State::getsysinfo_fast::Monitors_n
mov dword [esp], 0x833180
call fcn.0041f0d0
mov edi, ebp
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 0x40c404
lea eax, [esp + 0x20]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
call fcn.0040bec0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40c401
mov edx, dword [esp + 0x24]
test edx, edx
je 0x40c401
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 ebx, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesW]
sub esp, 0x10
test eax, eax
jne 0x40c3b0
movzx eax, word [esp + 0x370]
mov ecx, dword [esp + 0x1c]
lea ebx, [esp + 0x370]
mov dword [esp], ebx
lea eax, [eax*4 + 2]
mov dword [esp + 4], eax
call fcn.00402cb0
sub esp, 8
mov dword [esi + 0x130], eax
mov dword [esp + 4], str.State::getsysinfo_fast::Windows_n
mov dword [esp], 0x833180
call fcn.0041f0d0
mov dword [esi], 0x11c
mov dword [esp], esi
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
call edi
sub esp, 4
test eax, eax
je 0x40c650
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [esp + 4], str.State::getsysinfo_fast::Environment_n
mov dword [esi + 0x11c], eax
mov dword [esp], 0x833180
call fcn.0041f0d0
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [esp + 8], 0x1000
mov dword [esp + 4], ebx
mov dword [esp], str.windir
call edi
sub esp, 0xc
mov dword [esp + 4], str.inf_
mov dword [esp], ebx
call sub.msvcrt.dll_wcscat
mov ebp, dword [esp + 0x1c]
mov dword [esp], ebx
mov ecx, ebp
call fcn.00402b00
sub esp, 4
mov dword [esi + 0x138], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], ebx
mov dword [esp], 0x71a8f0
call edi
sub esp, 0xc
mov ecx, ebp
mov dword [esp], ebx
call fcn.00402b00
sub esp, 4
mov dword [esi + 0x13c], eax
mov dword [esp + 4], str.State::getsysinfo_fast::Architecture_n
mov dword [esp], 0x833180
call fcn.0041f0d0
xor edx, edx
mov dword [esi + 0x120], 0
mov dword [esp + 8], 0x1000
mov word [esp + 0x370], dx
mov dword [esp + 4], ebx
mov dword [esp], str.PROCESSOR_ARCHITECTURE
call edi
sub esp, 0xc
mov dword [esp + 4], str.AMD64
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
sub esp, 8
test eax, eax
jne 0x40c579
mov dword [esi + 0x120], 1
xor eax, eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], ebx
mov word [esp + 0x370], ax
mov dword [esp], str.PROCESSOR_ARCHITEW6432
call edi
sub esp, 0xc
cmp word [esp + 0x370], 0
je 0x40c5b0
mov dword [esi + 0x120], 1
mov eax, dword [0x8511ec]
cmp eax, 0x20
je 0x40c690
cmp eax, 0x40
je 0x40c640
mov eax, dword [0x8511e8]
test eax, eax
je 0x40c614
sub eax, 0x3e8
cmp eax, 0xf
ja 0x40c620
lea eax, [eax + eax*2]
mov edx, 0x66666667
shl eax, 2
mov ecx, dword [eax + 0x71afa0]
movzx ebx, byte [eax + 0x71afa4]
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
lea eax, [edx + edx*4]
mov dword [esi + 4], edx
add eax, eax
sub ecx, eax
test bl, bl
mov dword [esi + 8], ecx
je 0x40c62e
mov byte [esi + 0x11a], 3
add esp, 0x237c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 4], 0
mov dword [esi + 8], 0xffffffff
mov byte [esi + 0x11a], 1
add esp, 0x237c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esi + 0x120], 1
jmp 0x40c5c3
mov dword [esi], 0x114
mov dword [esp], esi
call edi
sub esp, 4
test eax, eax
jne 0x40c487
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 4], str.GetVersionEx__
mov dword [esp], eax
mov ecx, 0x833180
call fcn.0041f190
sub esp, 8
jmp 0x40c487
mov dword [esi + 0x120], 0
jmp 0x40c5c3