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

Disassembly:
push 0xffffffffffffffff
push 0x5c5916
mov eax, dword fs:[0]
push eax
sub esp, 0x58c
mov eax, dword [0x630160]
xor eax, esp
mov dword [esp + 0x588], eax
push ebx
push edi
mov eax, dword [0x630160]
xor eax, esp
push eax
lea eax, [esp + 0x598]
mov dword fs:[0], eax
lea ecx, [esp + 0x64]
call fcn.00473200
lea ecx, [esp + 0xe8]
mov dword [esp + 0x5a0], 0
call fcn.00473200
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.00422f70
push 0x208
lea ecx, [esp + 0x39c]
push 0
push ecx
call fcn.00422f70
push 0x208
lea edx, [esp + 0x1a0]
push 0
push edx
call fcn.00422f70
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], 0x626500
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x40c0b7
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 0x40ba79
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 0x40bac7
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 0x40bb15
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 0x40bb63
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 0x626584
call edi
test eax, eax
je 0x40bbfb
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 0x40bbfb
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 0x40bc4b
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 0x40bc9b
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 0x40bceb
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 0x40bd3b
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 0x40bd8b
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 0x40bddb
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 str.ProductName
push str.System
call edi
test eax, eax
je 0x40be2b
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 0x40be7b
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 0x626650
call edi
test eax, eax
je 0x40becb
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 0x626650
call edi
test eax, eax
je 0x40bf1b
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 0x626650
call edi
test eax, eax
je 0x40bf6b
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 0x40bfbb
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 0x40c00b
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 0x40c05b
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 0x40c0ab
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.0040cf30
lea ecx, [esp + 0x64]
mov dword [esp + 0x5a0], 0xffffffff
call fcn.0040b1e0
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.00418878
add esp, 0x598
ret