Function at 0x40c280
Capabilities:
Access peb ldr_data
Get common file path
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x46de36
mov eax, dword fs:[0]
push eax
sub esp, 0x58c
mov eax, dword [0x487fb0]
xor eax, esp
mov dword [esp + 0x588], eax
push ebx
push edi
mov eax, dword [0x487fb0]
xor eax, esp
push eax
lea eax, [esp + 0x598]
mov dword fs:[0], eax
lea ecx, [esp + 0x64]
call fcn.004186d2
lea ecx, [esp + 0xe8]
mov dword [esp + 0x5a0], 0
call fcn.004186d2
push 0x54
lea eax, [esp + 0x14]
mov ebx, 1
push 0
mov dword [esp + 0x5a8], ebx
push eax
mov dword [esp + 0x18], 0
call fcn.00451da0
push 0x208
lea ecx, [esp + 0x39c]
push 0
push ecx
call fcn.00451da0
push 0x208
lea edx, [esp + 0x1a0]
push 0
push edx
call fcn.00451da0
add esp, 0x24
lea eax, [esp + 0x184]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, dword [esi + 4]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xc]
lea edx, [esp + 0x38c]
lea eax, [esp + 0x184]
push ecx
mov dword [esp + 0x10], 0x58
mov dword [esp + 0x1c], str..ini
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 0x208
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], 0x806
mov dword [esp + 0x4c], 0x47f254
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x40ca27
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x38c]
push edx
push 0x104
lea eax, [esp + 0x18c]
push eax
push 0
push str.Vendor
push str.Bios
call edi
test eax, eax
je 0x40c3e9
mov ecx, dword [esi + 0x804]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push ebx
push ebx
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Version
push str.Bios
call edi
test eax, eax
je 0x40c437
mov ecx, dword [esi + 0x808]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7b4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push ebx
push ebx
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.ReleaseDate
push str.Bios
call edi
test eax, eax
je 0x40c485
mov ecx, dword [esi + 0x80c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7b8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push ebx
push ebx
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.SystemBiosRelease
push str.Bios
call edi
test eax, eax
je 0x40c4d3
mov ecx, dword [esi + 0x810]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7bc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push ebx
push ebx
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.OEMString
push 0x47f2d8
call edi
test eax, eax
je 0x40c56b
mov eax, dword [esi + 0x850]
mov edx, dword [eax + 0x690]
lea ecx, [eax + 0x690]
mov eax, dword [edx + 4]
call eax
mov ebx, eax
test ebx, ebx
jl 0x40c56b
mov eax, dword [esi + 0x850]
mov edx, dword [eax + 0x658]
lea ecx, [eax + 0x658]
mov eax, dword [edx]
push ebx
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0x3c]
lea ecx, [esp + 0x184]
push ecx
mov ecx, eax
call edx
mov eax, dword [esi + 0x850]
lea ecx, [eax + 0x690]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
push 1
push 0
push ebx
call edx
mov ecx, dword [esi + 0x7c0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Manufacturer
push str.Memory
call edi
test eax, eax
je 0x40c5bb
mov ecx, dword [esi + 0x814]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7c4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.SerialNumber
push str.Memory
call edi
test eax, eax
je 0x40c60b
mov ecx, dword [esi + 0x818]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7c8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.PartNumber
push str.Memory
call edi
test eax, eax
je 0x40c65b
mov ecx, dword [esi + 0x81c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7cc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Manufacturer
push str.Board
call edi
test eax, eax
je 0x40c6ab
mov ecx, dword [esi + 0x820]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7d0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Product
push str.Board
call edi
test eax, eax
je 0x40c6fb
mov ecx, dword [esi + 0x824]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7d4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Manufacturer
push str.System
call edi
test eax, eax
je 0x40c74b
mov ecx, dword [esi + 0x828]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7d8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push 0x47f36c
push str.System
call edi
test eax, eax
je 0x40c79b
mov ecx, dword [esi + 0x82c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7dc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.Uuid
push str.System
call edi
test eax, eax
je 0x40c7eb
mov ecx, dword [esi + 0x830]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7e0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.ProcessorManufacturer
push 0x47f3bc
call edi
test eax, eax
je 0x40c83b
mov ecx, dword [esi + 0x834]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7e4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.ProcessorVersion
push 0x47f3bc
call edi
test eax, eax
je 0x40c88b
mov ecx, dword [esi + 0x838]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7e8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.CPUID
push 0x47f3bc
call edi
test eax, eax
je 0x40c8db
mov ecx, dword [esi + 0x83c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7ec]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.SerialNumber
push str.Partition
call edi
test eax, eax
je 0x40c92b
mov ecx, dword [esi + 0x840]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7f0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.SerialNumber
push str.HardDisk
call edi
test eax, eax
je 0x40c97b
mov ecx, dword [esi + 0x844]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7f4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.FirmwareVersion
push str.HardDisk
call edi
test eax, eax
je 0x40c9cb
mov ecx, dword [esi + 0x84c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7fc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x38c]
push eax
push 0x104
lea ecx, [esp + 0x18c]
push ecx
push 0
push str.ModelNumber
push str.HardDisk
call edi
test eax, eax
je 0x40ca1b
mov ecx, dword [esi + 0x848]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x184]
push eax
call edx
mov ecx, dword [esi + 0x7f8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x64]
push eax
mov ecx, esi
call fcn.0040d880
lea ecx, [esp + 0x64]
mov dword [esp + 0x5a0], 0xffffffff
call fcn.0040b670
mov ecx, dword [esp + 0x598]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov ecx, dword [esp + 0x588]
xor ecx, esp
call fcn.0044f3b0
add esp, 0x598
ret