Function at 0x40aaa0
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x650
mov dword [ebp - 0x650], ecx
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
cmp dword [ecx + 0x478], 0
jg 0x40aacb
mov eax, 1
jmp 0x40b0f2
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
jmp 0x40aaf0
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x110]
cmp edx, dword [ecx + 0x478]
jge 0x40ab34
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x110]
shl edx, 4
mov eax, dword [ecx + 0x78]
cmp dword [eax + edx + 4], 0
je 0x40ab32
mov ecx, dword [ebp - 0x10c]
add ecx, 1
mov dword [ebp - 0x10c], ecx
jmp 0x40aae1
cmp dword [ebp - 0x10c], 0
jg 0x40ab47
mov eax, 1
jmp 0x40b0f2
push 0
push 0
push 0
push str.install_drivrs
mov ecx, 0x42fdb8
call fcn.0041c530
push eax
push 0
mov ecx, dword [ebp - 0x650]
call fcn.0040c650
call fcn.0040f580
test eax, eax
je 0x40ad10
mov edx, dword [ebp - 0x650]
mov dword [edx + 0x2a4], 0
mov dword [ebp - 0x114], 0
jmp 0x40aba2
mov eax, dword [ebp - 0x114]
add eax, 1
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x114]
cmp eax, dword [edx + 0x478]
jge 0x40ad0b
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x114]
shl eax, 4
mov ecx, dword [edx + 0x78]
cmp dword [ecx + eax + 4], 0
je 0x40ad06
push 0
mov edx, dword [ebp - 0x650]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x114]
shl ecx, 4
mov edx, dword [eax + 0x78]
mov eax, dword [edx + ecx + 8]
push eax
mov ecx, dword [ebp - 0x650]
call fcn.0040c650
mov ecx, dword [ebp - 0x650]
call fcn.0040c600
mov ecx, dword [ebp - 0x650]
call fcn.0040dc60
test eax, eax
je 0x40ac25
xor eax, eax
jmp 0x40b0f2
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x468]
push eax
lea ecx, [ebp - 0x220]
push ecx
call fcn.0041e1b0
add esp, 8
push 0x42a740
lea edx, [ebp - 0x220]
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x114]
shl edx, 4
mov eax, dword [ecx + 0x78]
mov ecx, dword [eax + edx + 0xc]
push ecx
lea edx, [ebp - 0x220]
push edx
call fcn.0041e1c0
add esp, 8
push 0x104
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x42a744
lea ecx, [ebp - 0x108]
push ecx
call fcn.0041e1c0
add esp, 8
push 0x42a758
mov edx, dword [ebp - 0x650]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x468]
push ecx
lea edx, [ebp - 0x108]
push edx
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 0x180]
push ecx
mov ecx, dword [ebp - 0x650]
call fcn.0040d9d0
test eax, eax
jne 0x40ace6
xor eax, eax
jmp 0x40b0f2
lea edx, [ebp - 0x220]
push edx
mov ecx, dword [ebp - 0x650]
call fcn.0040a570
test eax, eax
jne 0x40ad06
mov eax, 1
jmp 0x40b0f2
jmp 0x40ab93
jmp 0x40b0ed
push 0
push 0
push 0
push 0
push 0x42a760
mov ecx, 0x42fdb8
call fcn.0041c530
push eax
mov ecx, dword [ebp - 0x650]
call fcn.0040c650
mov ecx, dword [ebp - 0x650]
call fcn.0040dc60
test eax, eax
je 0x40ad49
xor eax, eax
jmp 0x40b0f2
mov dword [ebp - 0x224], 0
jmp 0x40ad64
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x224]
cmp eax, dword [edx + 0x478]
jge 0x40b0ed
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x224]
shl eax, 4
mov ecx, dword [edx + 0x78]
cmp dword [ecx + eax + 4], 0
je 0x40b0e8
push 0
mov edx, dword [ebp - 0x650]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x224]
shl ecx, 4
mov edx, dword [eax + 0x78]
mov eax, dword [edx + ecx + 8]
push eax
mov ecx, dword [ebp - 0x650]
call fcn.0040c650
mov ecx, dword [ebp - 0x650]
call fcn.0040c600
mov ecx, dword [ebp - 0x650]
call fcn.0040dc60
test eax, eax
je 0x40ade7
xor eax, eax
jmp 0x40b0f2
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x468]
push eax
lea ecx, [ebp - 0x330]
push ecx
call fcn.0041e1b0
add esp, 8
push 0x42a76c
lea edx, [ebp - 0x330]
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x224]
shl edx, 4
mov eax, dword [ecx + 0x78]
mov ecx, dword [eax + edx + 0xc]
push ecx
lea edx, [ebp - 0x330]
push edx
call fcn.0041e1c0
add esp, 8
lea eax, [ebp - 0x330]
push eax
mov ecx, dword [ebp - 0x650]
call fcn.0040a7a0
test eax, eax
jne 0x40ae60
xor eax, eax
jmp 0x40b0f2
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.inf
lea edx, [ebp - 0x108]
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x224]
shl edx, 4
mov eax, dword [ecx + 0x78]
mov ecx, dword [eax + edx + 0xc]
push ecx
mov edx, dword [ebp - 0x650]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x468]
push ecx
lea edx, [ebp - 0x108]
push edx
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 0x180]
push ecx
mov ecx, dword [ebp - 0x650]
call fcn.0040d9d0
test eax, eax
jne 0x40aeda
xor eax, eax
jmp 0x40b0f2
push 0x104
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str._system32drivers
lea eax, [ebp - 0x108]
push eax
call fcn.0041e1c0
add esp, 8
push 0x42a78c
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x468]
push eax
lea ecx, [ebp - 0x108]
push ecx
mov edx, dword [ebp - 0x650]
mov eax, dword [edx + 0x180]
push eax
mov ecx, dword [ebp - 0x650]
call fcn.0040d9d0
test eax, eax
jne 0x40af3f
xor eax, eax
jmp 0x40b0f2
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x42a794
lea edx, [ebp - 0x108]
push edx
call fcn.0041e1c0
add esp, 8
push str..sys
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x468]
push edx
lea eax, [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0x650]
mov edx, dword [ecx + 0x180]
push edx
mov ecx, dword [ebp - 0x650]
call fcn.0040d9d0
test eax, eax
jne 0x40afa4
xor eax, eax
jmp 0x40b0f2
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x540]
push ecx
call fcn.0041e1b0
add esp, 8
push 0x42a7b0
lea edx, [ebp - 0x540]
push edx
call fcn.0041e1c0
add esp, 8
mov eax, dword [ebp - 0x650]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x224]
shl edx, 4
mov eax, dword [ecx + 0x78]
mov ecx, dword [eax + edx + 0xc]
push ecx
lea edx, [ebp - 0x540]
push edx
call fcn.0041e1c0
add esp, 8
lea eax, [ebp - 0x540]
push eax
push 0x104
lea ecx, [ebp - 0x438]
push ecx
push 0x42a7b2
push 0x42a7b4
push 0x42a7b8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx edx, byte [ebp - 0x438]
test edx, edx
je 0x40b0d8
push 0x2c
lea eax, [ebp - 0x438]
push eax
call fcn.00420500
add esp, 8
mov dword [ebp - 0x64c], eax
cmp dword [ebp - 0x64c], 0
jne 0x40b06a
lea ecx, [ebp - 0x438]
push ecx
call fcn.0041e990
add esp, 4
lea edx, [ebp + eax - 0x438]
mov dword [ebp - 0x64c], edx
push str.__0000_0000_
mov eax, dword [ebp - 0x64c]
push eax
call fcn.0041e1b0
add esp, 8
push 0x104
lea ecx, [ebp - 0x648]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.optionsinstall
lea edx, [ebp - 0x648]
push edx
call fcn.0041e1c0
add esp, 8
lea eax, [ebp - 0x648]
push eax
mov ecx, dword [ebp - 0x64c]
push ecx
call fcn.0041e1c0
add esp, 8
lea edx, [ebp - 0x540]
push edx
lea eax, [ebp - 0x438]
push eax
push 0x42a7f0
push str.SourceDisksNames
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 0x650]
mov dword [ecx + 0x2a4], 1
jmp 0x40ad55
mov eax, 1
mov esp, ebp
pop ebp
ret