Function at 0x40bd90
Capabilities:
Contain obfuscated stackstrings
Get geographical location
Get memory capacity

Disassembly:
push 0x5d8
mov eax, 0x42f224
call fcn.0042c6f8
mov edi, ecx
mov dword [ebp - 0x3ac], edi
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x3a4], esi
xor ebx, ebx
call fcn.00404be5
lea eax, [ebp - 0x3b4]
mov dword [ebp - 4], ebx
push eax
mov ecx, esi
call fcn.00404fac
push 0x436adc
mov edx, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3ec]
call fcn.004039c4
pop ecx
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x3b4]
lea ecx, [ecx - 0x10]
call fcn.00401592
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3e4]
call fcn.00401c55
mov dword [ebp - 0x3f8], ebx
mov dword [ebp - 0x3f4], ebx
mov dword [ebp - 0x3f0], ebx
push ecx
push ecx
lea ecx, [ebp - 0x5e4]
call fcn.004106d0
mov byte [ebp - 4], 6
mov dword [ebp - 0x3d4], ebx
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3e0]
call fcn.00401c55
mov byte [ebp - 4], 7
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3d8]
call fcn.00401c55
mov byte [ebp - 4], 8
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00401c55
mov byte [ebp - 4], 9
call fcn.004015b8
push eax
lea ecx, [ebp - 0x400]
call fcn.00401c55
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3b4]
mov edx, dword [edi + 0x10]
push str.DescXML
push str.DetailDlg
mov dword [ebp - 0x414], ebx
call fcn.00402e3e
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 0xb
call fcn.00403de0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x3b4]
lea ecx, [ecx - 0x10]
call fcn.00401592
push str.crashrpt.xml
lea ecx, [ebp - 0x420]
call fcn.00401b68
lea eax, [ebp - 0x3ec]
push eax
lea ecx, [ebp - 0x41c]
call fcn.00403de0
lea eax, [ebp - 0x3e4]
push eax
lea ecx, [ebp - 0x40c]
call fcn.00403de0
lea eax, [ebp - 0x420]
push eax
push eax
lea ecx, [esi + 0x78]
call fcn.004074cb
mov ecx, eax
call fcn.004050bd
push ebx
lea ecx, [ebp - 0x5e4]
call fcn.00410ba0
push eax
lea ecx, [ebp - 0x5e4]
call fcn.0040f2f0
push 0x436fa4
lea ecx, [ebp - 0x5e4]
call fcn.00410b40
mov ebx, eax
lea ecx, [ebp - 0x5e4]
push ebx
mov dword [ebp - 0x3c4], ebx
call fcn.0040f2f0
push 0x57b
lea eax, [ebp - 0x3d8]
push 0x437be0
push eax
call fcn.004041d6
mov edi, dword [ebp - 0x3d8]
lea ecx, [ebp - 0x3f8]
add esp, 0xc
push edi
call fcn.00404634
lea ecx, [ebp - 0x3b4]
mov dword [ebp - 0x3b4], ebx
mov esi, eax
call fcn.00404ba5
push str.version
mov ecx, eax
call fcn.0040fec0
push ecx
push esi
lea ecx, [eax + 0x10]
call fcn.0040e800
push ebx
push ecx
mov ecx, dword [ebp - 0x3a4]
mov esi, esp
mov dword [ebp - 0x3a0], esi
mov dword [ebp - 0x3cc], esp
mov ecx, dword [ecx + 0xc]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xc
push str.CrashGUID
call fcn.00403e7d
mov byte [ebp - 4], 0xa
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
push 0x10
mov dword [ebp - 0x3a0], esi
mov ecx, dword [eax + 0x10]
pop edi
sub ecx, edi
call fcn.00401ccd
add eax, edi
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xd
push str.AppName
call fcn.00403e7d
mov byte [ebp - 4], 0xa
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ecx, dword [eax + 0x14]
sub ecx, edi
call fcn.00401ccd
add eax, edi
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xe
push str.AppVersion
call fcn.00403e7d
mov byte [ebp - 4], 0xa
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ecx, dword [eax + 0x18]
sub ecx, edi
call fcn.00401ccd
add eax, edi
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0xf
push str.ImageName
call fcn.00403e7d
mov byte [ebp - 4], 0xa
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ecx, dword [eax + 0x5c]
sub ecx, edi
call fcn.00401ccd
add eax, edi
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x10
push str.OperatingSystem
call fcn.00403e7d
mov byte [ebp - 4], 0xa
call fcn.0040bcff
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3e8]
call fcn.00401c55
push 0x344
xor esi, esi
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x398]
push esi
push eax
call fcn.00414d30
add esp, 0xc
mov dword [ebp - 0x39c], 0x348
mov edi, esi
push esi
lea eax, [ebp - 0x39c]
push eax
push edi
push esi
call dword [sym.imp.USER32.dll_EnumDisplayDevicesW]
test eax, eax
je 0x40c167
test byte [ebp - 0x258], 8
jne 0x40c161
test byte [ebp - 0x258], 1
je 0x40c161
test edi, edi
jle 0x40c14f
push 0x4367cc
lea ecx, [ebp - 0x3e8]
call fcn.00403da5
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x3e8]
call fcn.00403da5
inc edi
cmp edi, 0x10
jl 0x40c115
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov eax, dword [ebp - 0x3e8]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x408], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x12
push str.DispalyDevice
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ecx, dword [eax + 0x2c]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x13
push 0x437c7c
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov ecx, dword [ebp - 0x3ac]
mov eax, dword [ecx + 0xdc]
cmp eax, 0xd
jne 0x40c2a5
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3c0]
call fcn.00401c55
push 0x100
lea eax, [ebp - 0x154]
mov byte [ebp - 4], 0x14
push 0
push eax
call fcn.00414d30
mov eax, dword [ebp - 0x3a4]
movsd xmm0, qword [eax + 0x30]
lea eax, [ebp - 0x154]
movsd qword [esp + 4], xmm0
mov dword [esp], 0x437470
push eax
call fcn.0040e256
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x3c0]
push 0x436930
push eax
call fcn.004041d6
add esp, 0x1c
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ebx, dword [ebp - 0x3c0]
lea ecx, [ebx - 0x10]
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x15
push str.CPUUsage
call fcn.00403e7d
mov byte [ebp - 4], 0x14
jmp 0x40c342
cmp eax, 4
jne 0x40c359
mov ecx, dword [ecx + 0xd0]
lea edx, [ebp - 0x3d0]
xor eax, eax
mov dword [ebp - 0x3d0], eax
mov dword [ebp - 0x3c0], eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.00402dce
pop ecx
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3bc]
call fcn.00401c55
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x3bc]
push dword [ebp - 0x3c0]
push dword [ebp - 0x3d0]
push str._d____p
push eax
call fcn.004041d6
add esp, 0x10
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esp
mov dword [ebp - 0x3a0], esi
mov ebx, dword [ebp - 0x3bc]
lea ecx, [ebx - 0x10]
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x17
push str.VMUsage
call fcn.00403e7d
mov byte [ebp - 4], 0x16
call fcn.0040bcff
lea ecx, [ebx - 0x10]
mov byte [ebp - 4], 0x11
call fcn.00401592
mov ebx, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x3a4]
mov edi, 0x437be0
push dword [eax + 0x60]
lea eax, [ebp - 0x3fc]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3cc], esi
mov eax, dword [ebp - 0x3fc]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x3cc], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x18
push str.OSIs64Bit
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [eax + 0x64]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x19
push str.GeoLocation
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [eax + 0x28]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x1a
push str.SystemTimeUTC
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov eax, ecx
or eax, edx
je 0x40c593
push edx
push ecx
mov edi, str.0x_I64x
lea eax, [ebp - 0x3e0]
push edi
push eax
call fcn.004041d6
add esp, 0x10
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [ebp - 0x3e0]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x1b
push str.ExceptionAddress
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov dword [ebp - 0x3a0], esp
mov ebx, esp
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [eax + 0x40]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.00402f5f
mov ecx, esp
mov byte [ebp - 4], 0x1c
push str.ExceptionModule
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push dword [eax + 0x4c]
push dword [eax + 0x48]
lea eax, [ebp - 0x3e0]
push edi
push eax
call fcn.004041d6
mov ebx, dword [ebp - 0x3c4]
add esp, 0x10
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [ebp - 0x3e0]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x1d
push str.ExceptionModuleBase
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a0], esp
mov dword [ebp - 0x3a8], esi
mov ecx, dword [eax + 0x44]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x1e
push str.ExceptionModuleVersion
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov edi, 0x437be0
mov ecx, dword [ebp - 0x3ac]
lea eax, [ebp - 0x400]
push dword [ecx + 0xdc]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3a0], esi
mov eax, dword [ebp - 0x400]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x3a0], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x1f
push str.ExceptionType
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
mov esi, dword [ebp - 0x3ac]
mov eax, dword [esi + 0xdc]
test eax, eax
jne 0x40c670
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3bc]
call fcn.00401c55
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x3bc]
push dword [esi + 0xe0]
push str.0x_x
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov ebx, dword [ebp - 0x3bc]
lea ecx, [ebx - 0x10]
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x21
push str.ExceptionCode
call fcn.00403e7d
mov byte [ebp - 4], 0x20
jmp 0x40c818
cmp eax, 8
jne 0x40c6dd
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3bc]
call fcn.00401c55
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x3bc]
push dword [esi + 0xe4]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov ebx, dword [ebp - 0x3bc]
lea ecx, [ebx - 0x10]
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x23
push str.FPESubcode
call fcn.00403e7d
mov byte [ebp - 4], 0x22
jmp 0x40c818
cmp eax, 6
jne 0x40c82f
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov ecx, dword [ebp - 0x3ac]
mov ecx, dword [ecx + 0xe8]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x24
push str.InvParamExpression
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov eax, dword [ebp - 0x3ac]
mov ecx, dword [eax + 0xec]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x25
push str.InvParamFunction
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov eax, dword [ebp - 0x3ac]
mov ecx, dword [eax + 0xf0]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x26
push str.InvParamFile
call fcn.00403e7d
mov byte [ebp - 4], 0x11
call fcn.0040bcff
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3bc]
call fcn.00401c55
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x3ac]
push dword [eax + 0xf4]
lea eax, [ebp - 0x3bc]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3a8], esp
mov dword [ebp - 0x3b8], esi
mov ebx, dword [ebp - 0x3bc]
lea ecx, [ebx - 0x10]
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x28
push str.InvParamLine
call fcn.00403e7d
mov byte [ebp - 4], 0x27
call fcn.0040bcff
lea ecx, [ebx - 0x10]
mov byte [ebp - 4], 0x11
call fcn.00401592
mov ebx, dword [ebp - 0x3c4]
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3bc]
call fcn.00401c55
mov eax, dword [ebp - 0x3a4]
mov byte [ebp - 4], 0x29
push dword [eax + 0x50]
lea eax, [ebp - 0x3bc]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3b8], esp
mov dword [ebp - 0x3a8], esi
mov eax, dword [ebp - 0x3bc]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x3a8], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x2a
push str.GUIResourceCount
call fcn.00403e7d
mov byte [ebp - 4], 0x29
call fcn.0040bcff
call fcn.004015b8
push eax
lea ecx, [ebp - 0x404]
call fcn.00401c55
mov eax, dword [ebp - 0x3a4]
mov byte [ebp - 4], 0x2b
push dword [eax + 0x54]
lea eax, [ebp - 0x404]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b8], esi
mov eax, dword [ebp - 0x404]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x3b8], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x2c
push str.OpenHandleCount
call fcn.00403e7d
mov byte [ebp - 4], 0x2b
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [eax + 0x58]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [ebp - 4], 0x2d
mov ecx, esp
push str.MemoryUsageKbytes
call fcn.00403e7d
mov byte [ebp - 4], 0x2b
call fcn.0040bcff
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3ac]
call fcn.00401c55
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x3ac]
push dword [ebp - 0x50]
push edi
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x2f
push str.MemoryLoad
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x4c]
mov edi, 0xfffff
mov eax, dword [ebp - 0x48]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
lea eax, [ebp - 0x3ac]
push ecx
push 0x437be0
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x30
push str.TotalPhysicalMemory
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
lea eax, [ebp - 0x3ac]
push ecx
push 0x437be0
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x31
push str.AvailablePhysicalMemory
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
lea eax, [ebp - 0x3ac]
push ecx
push 0x437be0
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x32
push str.TotalPageFile
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
lea eax, [ebp - 0x3ac]
push ecx
push 0x437be0
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x33
push str.AvailablePageFile
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
push ecx
push 0x437be0
lea eax, [ebp - 0x3ac]
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3c8], esp
mov dword [ebp - 0x3b0], esi
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xfffffff0
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x34
push str.TotalVirtualMemory
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
add ecx, edi
adc eax, 0
shrd ecx, eax, 0x14
lea eax, [ebp - 0x3ac]
push ecx
push 0x437be0
push eax
call fcn.004041d6
add esp, 0xc
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3b0], esp
mov dword [ebp - 0x3c8], esi
mov eax, dword [ebp - 0x3ac]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x3c8], eax
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x35
push str.AvailableVirtualMemory
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
mov eax, dword [ebp - 0x3a4]
mov edi, dword [ebp - 0x3d8]
mov ecx, dword [eax + 0x90]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x3dc], eax
cmp ecx, eax
je 0x40cc8c
mov edi, ecx
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x3b0], esp
mov dword [ebp - 0x3b4], esi
mov ecx, dword [edi]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
mov dword [esi], eax
push ecx
mov ecx, esp
mov byte [ebp - 4], 0x36
push str.GPUInfo
call fcn.00403e7d
mov byte [ebp - 4], 0x2e
call fcn.0040bcff
add edi, 4
cmp edi, dword [ebp - 0x3dc]
jne 0x40cc42
mov edi, dword [ebp - 0x3d8]
push str.CustomProps
lea ecx, [ebp - 0x5e4]
call fcn.00410b40
push eax
mov ecx, ebx
mov dword [ebp - 0x3b0], eax
call fcn.0040f2f0
mov eax, dword [ebp - 0x3a4]
xor esi, esi
mov dword [ebp - 0x3c0], esi
cmp dword [eax + 0x8c], esi
jle 0x40cde8
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3d0]
call fcn.00401c55
mov byte [ebp - 4], 0x37
call fcn.004015b8
push eax
lea ecx, [ebp - 0x3dc]
call fcn.00401c55
mov ecx, dword [ebp - 0x3a4]
lea eax, [ebp - 0x3dc]
push eax
lea eax, [ebp - 0x3d0]
mov byte [ebp - 4], 0x38
push eax
push dword [ebp - 0x3c0]
call fcn.00405105
push str.Prop
lea ecx, [ebp - 0x5e4]
call fcn.00410b40
push dword [ebp - 0x3d0]
mov edi, eax
lea ecx, [ebp - 0x3f8]
mov dword [ebp - 0x3b4], edi
call fcn.00404634
lea ecx, [ebp - 0x3b4]
mov esi, eax
call fcn.00404ba5
push str.name
mov ecx, eax
call fcn.0040fec0
push ecx
push esi
lea ecx, [eax + 0x10]
call fcn.0040e800
mov esi, dword [ebp - 0x3dc]
lea ecx, [ebp - 0x3f8]
push esi
call fcn.00404634
lea ecx, [ebp - 0x3b4]
mov ebx, eax
call fcn.00404ba5
push str.value
mov ecx, eax
call fcn.0040fec0
push ecx
push ebx
lea ecx, [eax + 0x10]
call fcn.0040e800
lea ecx, [ebp - 0x3b0]
call fcn.00404ba5
push edi
mov ecx, eax
call fcn.0040f2f0
lea ecx, [esi - 0x10]
call fcn.00401592
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x3d0]
lea ecx, [ecx - 0x10]
call fcn.00401592
mov ecx, dword [ebp - 0x3c0]
mov eax, dword [ebp - 0x3a4]
inc ecx
mov dword [ebp - 0x3c0], ecx
cmp ecx, dword [eax + 0x8c]
jl 0x40ccc4
mov edi, dword [ebp - 0x3d8]
xor esi, esi
mov ebx, dword [ebp - 0x3c4]
push str.FileList
lea ecx, [ebp - 0x5e4]
call fcn.00410b40
push eax
mov ecx, ebx
mov dword [ebp - 0x3dc], eax
call fcn.0040f2f0
mov ebx, dword [ebp - 0x3a4]
mov eax, esi
mov dword [ebp - 0x3b4], esi
cmp dword [ebx + 0x7c], esi
jle 0x40cf8b
xor edi, edi
push eax
mov ecx, ebx
call fcn.00404fc6
push str.FileItem
lea ecx, [ebp - 0x5e4]
mov dword [ebp - 0x3c0], eax
call fcn.00410b40
push ecx
mov ebx, esp
mov esi, eax
mov dword [ebp - 0x3d0], ebx
mov ecx, dword [ebp - 0x3c0]
mov dword [ebp - 0x3c4], esi
mov ecx, dword [ecx + 4]
sub ecx, 0x10
call fcn.00401ccd
add eax, 0x10
lea ecx, [ebp - 0x3b0]
mov dword [ebx], eax
call fcn.00402f5f
pop ecx
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x3f8]
push dword [eax]
call fcn.00404634
lea ecx, [ebp - 0x3c4]
mov ebx, eax
call fcn.00404ba5
push str.name
mov ecx, eax
call fcn.0040fec0
push ecx
push ebx
lea ecx, [eax + 0x10]
call fcn.0040e800
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x3b0]
lea ecx, [ecx - 0x10]
call fcn.00401592
mov eax, dword [ebp - 0x3c0]
lea ecx, [ebp - 0x3f8]
push dword [eax + 8]
call fcn.00404634
lea ecx, [ebp - 0x3c4]
mov ebx, eax
call fcn.00404ba5
push str.description
mov ecx, eax
call fcn.0040fec0
push ecx
push ebx
lea ecx, [eax + 0x10]
call fcn.0040e800
mov ebx, dword [ebp - 0x3c0]
cmp dword [ebx + 0x10], edi
je 0x40cf1d
lea ecx, [ebp - 0x3c4]
call fcn.00404ba5
push str.optional
mov ecx, eax
call fcn.0040fec0
push ecx
push 0x436f90
lea ecx, [eax + 0x10]
call fcn.0040e800
mov eax, dword [ebx + 0x14]
cmp dword [eax - 0xc], edi
je 0x40cf54
push eax
lea ecx, [ebp - 0x3f8]
call fcn.00404634
lea ecx, [ebp - 0x3c4]
mov ebx, eax
call fcn.00404ba5
push str.error
mov ecx, eax
call fcn.0040fec0
push ecx
push ebx
lea ecx, [eax + 0x10]
call fcn.0040e800
lea ecx, [ebp - 0x3dc]
call fcn.00404ba5
push esi
mov ecx, eax
call fcn.0040f2f0
mov eax, dword [ebp - 0x3b4]
mov ebx, dword [ebp - 0x3a4]
inc eax
mov dword [ebp - 0x3b4], eax
cmp eax, dword [ebx + 0x7c]
jl 0x40ce1f
mov edi, dword [ebp - 0x3d8]
xor esi, esi
push 0x436ff8
push dword [ebp - 0x3ec]
lea eax, [ebp - 0x3d4]
push eax
call fcn.0041b5f0
add esp, 0xc
cmp dword [ebp - 0x3d4], 0
jne 0x40cfc6
push str.Error_opening_file_for_writing
lea ecx, [ebp - 0x3e4]
call fcn.00401b68
mov eax, dword [ebp - 0x3d4]
jmp 0x40d028
push ecx
push dword [ebp - 0x3d4]
lea ecx, [ebp - 0x5e4]
mov byte [ebp - 0x5b0], 1
call fcn.00410cc0
test eax, eax
jne 0x40d011
mov eax, dword [ebp - 0x5a0]
cmp eax, dword [ebp - 0x59c]
jne 0x40cff8
mov eax, 0x436804
jmp 0x40d003
lea ecx, [ebp - 0x5a4]
call fcn.0040e9e0
push eax
lea ecx, [ebp - 0x3e4]
call fcn.00401b10
jmp 0x40cfbe
push dword [ebp - 0x3d4]
call fcn.0041b6ae
mov eax, esi
xor esi, esi
pop ecx
mov dword [ebp - 0x3d4], eax
inc esi
test eax, eax
je 0x40d033
push eax
call fcn.0041b6ae
pop ecx
test esi, esi
jne 0x40d053
lea eax, [ebp - 0x3e4]
mov ecx, ebx
push eax
push dword [ebp - 0x420]
call fcn.00404fff
lea ecx, [eax + 0x14]
call fcn.00403de0
mov ecx, dword [ebp - 0x3c8]
call fcn.00401592
mov ecx, dword [ebp - 0x3b8]
call fcn.00401592
mov ecx, dword [ebp - 0x3a8]
call fcn.00401592
mov ecx, dword [ebp - 0x408]
call fcn.00401592
mov ecx, dword [ebp - 0x3a0]
call fcn.00401592
mov ecx, dword [ebp - 0x3cc]
call fcn.00401592
lea ecx, [edi - 0x10]
call fcn.00401592
mov ecx, dword [ebp - 0x3e0]
lea ecx, [ecx - 0x10]
call fcn.00401592
lea ecx, [ebp - 0x5e4]
call fcn.00410930
lea ecx, [ebp - 0x3f8]
call fcn.00402862
mov ecx, dword [ebp - 0x3e4]
add ecx, 0xfffffff0
call fcn.00401592
mov ecx, dword [ebp - 0x3ec]
add ecx, 0xfffffff0
call fcn.00401592
lea ecx, [ebp - 0x420]
call fcn.0040683b
mov eax, esi
call fcn.0042c6a7
ret 4