Function at 0x40d900
Capabilities:
Get common file path
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46dcb6
mov eax, dword fs:[0]
push eax
sub esp, 0x5d0
mov eax, dword [0x487fb0]
xor eax, esp
mov dword [esp + 0x5cc], eax
push ebp
push esi
push edi
mov eax, dword [0x487fb0]
xor eax, esp
push eax
lea eax, [esp + 0x5e0]
mov dword fs:[0], eax
lea ecx, [esp + 0xac]
call fcn.0041a76d
xor esi, esi
lea ecx, [esp + 0x130]
mov dword [esp + 0x5e8], esi
call fcn.0041a76d
push 0x54
lea eax, [esp + 0x5c]
mov edi, 1
push esi
mov dword [esp + 0x5f0], edi
push eax
mov dword [esp + 0x60], esi
call fcn.00453a00
push 0x208
lea ecx, [esp + 0x3e4]
push esi
push ecx
call fcn.00453a00
push 0x208
lea edx, [esp + 0x1e8]
push esi
push edx
call fcn.00453a00
add esp, 0x24
lea eax, [esp + 0x1cc]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x54]
lea edx, [esp + 0x3d4]
lea eax, [esp + 0x1cc]
push ecx
mov dword [esp + 0x58], 0x58
mov dword [esp + 0x64], str..ini
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], 0x208
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], 0x806
mov dword [esp + 0x94], 0x47f20c
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x40df49
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [esp + 0x3d4]
push edx
push 0x104
lea eax, [esp + 0x1d4]
push eax
push esi
push str.ComputerName
push str.systeminfo
call ebp
test eax, eax
je 0x40da6c
mov ecx, dword [ebx + 0x7b4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x778]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push edi
push edi
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.ProductId
push str.systeminfo
call ebp
test eax, eax
je 0x40dab9
mov ecx, dword [ebx + 0x7b8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x780]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push edi
push edi
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.ProductKey
push str.systeminfo
call ebp
test eax, eax
je 0x40db06
mov ecx, dword [ebx + 0x7bc]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x784]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push edi
push edi
call edx
lea eax, [esp + 0x3d4]
push eax
push esi
push str.InstallDate
push str.systeminfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, esi
jbe 0x40dbd5
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
call fcn.004522fd
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
movzx ecx, word [esp + 0x4c]
add edx, 0x76c
mov word [esp + 0x18], dx
movzx edx, word [esp + 0x40]
inc eax
mov word [esp + 0x1a], ax
mov ax, word [esp + 0x3c]
mov word [esp + 0x1c], cx
movzx ecx, word [esp + 0x38]
mov word [esp + 0x1e], dx
movzx edx, word [esp + 0x34]
mov word [esp + 0x20], ax
xor eax, eax
mov word [esp + 0x22], cx
mov ecx, dword [esp + 0x18]
mov word [esp + 0x26], ax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov word [esp + 0x30], dx
mov edx, dword [esp + 0x28]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, ebx
mov dword [eax + 0xc], edx
call fcn.0040e0c0
mov ecx, dword [ebx + 0x790]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
xor esi, esi
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.SystemBios
push str.systeminfo
call ebp
test eax, eax
je 0x40dc24
mov ecx, dword [ebx + 0x7c0]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x794]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.SerialNumber
push str.Partition
call ebp
test eax, eax
je 0x40dc73
mov ecx, dword [ebx + 0x834]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7f4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.PartitionGuid
push str.Partition
call ebp
test eax, eax
je 0x40dcc2
mov ecx, dword [ebx + 0x838]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7f8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.SymbolicLink
push str.Partition
call ebp
test eax, eax
je 0x40dd11
mov ecx, dword [ebx + 0x83c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7fc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.SerialNumber
push str.HardDisk
call ebp
test eax, eax
je 0x40dd60
mov ecx, dword [ebx + 0x844]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x808]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.FirmwareVersion
push str.HardDisk
call ebp
test eax, eax
je 0x40ddaf
mov ecx, dword [ebx + 0x848]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x80c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.ModelNumber
push str.HardDisk
call ebp
test eax, eax
je 0x40ddfe
mov ecx, dword [ebx + 0x840]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x804]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.DiskSize
push str.HardDisk
call ebp
test eax, eax
je 0x40de4d
mov ecx, dword [ebx + 0x84c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x810]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.PhysicalAddress
push str.NetworkCard
call ebp
test eax, eax
je 0x40de9c
mov ecx, dword [ebx + 0x7e8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7c8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.CutrrentAddress
push str.NetworkCard
call ebp
test eax, eax
je 0x40deeb
mov ecx, dword [ebx + 0x7e4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7cc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0x3d4]
push eax
push 0x104
lea ecx, [esp + 0x1d4]
push ecx
push esi
push str.SystemAddress
push str.NetworkCard
call ebp
test eax, eax
je 0x40df3a
mov ecx, dword [ebx + 0x7ec]
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [esp + 0x1cc]
push eax
call edx
mov ecx, dword [ebx + 0x7d0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x158]
push 1
push 1
call edx
lea eax, [esp + 0xac]
push eax
mov ecx, ebx
call fcn.00410c30
lea ecx, [esp + 0xac]
mov dword [esp + 0x5e8], 0xffffffff
call fcn.0040ced0
mov ecx, dword [esp + 0x5e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x5cc]
xor ecx, esp
call fcn.00451380
add esp, 0x5dc
ret