Function at 0x401460
Capabilities:
Get common file path

Disassembly:
sub esp, 0x210
mov ax, word [0x4072fc]
push ebx
push ebp
push esi
push edi
mov word [esp + 0x18], ax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x1a]
mov dword [esp + 0x14], 0
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x22c]
push ecx
stosw word es:[edi], ax
call fcn.004017a0
mov edi, str.._
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x11c]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x11c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 0x104
rep movsb byte es:[edi], byte [esi]
mov edi, str.Pci_fix
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x1c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, str.pci_fix.sys
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x1c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push str.Pci_fix
call fcn.00401060
add esp, 0xc
test al, al
jne 0x40157c
push str.Unable_to_install_driver.__n
call fcn.004019f0
lea ecx, [esp + 0x1c]
push 2
push ecx
push str.Pci_fix
call fcn.00401060
add esp, 0x10
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x210
ret 0x10
push 0
push 0x80
push 3
push 0
push 0
lea edx, [esp + 0x130]
push 0xc0000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xffffffff
je 0x4015e6
test esi, esi
jne 0x4015e6
push eax
push eax
lea eax, [esp + 0x18]
push eax
push 0x400
call ebp
push eax
push esi
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0x10
push str.Ring_0_Access_Error_filename__Pci_Fix.sys_
mov ecx, dword [esp + 0x18]
push ecx
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x68b0
call fcn.00401cc1
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x401624
push str.Memory_allocation_failed___n
call fcn.004019f0
add esp, 4
cmp esi, 0xffffffff
je 0x401612
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x210
ret 0x10
mov edi, ebx
mov ecx, 0x1a2c
mov edx, edi
or eax, 0xffffffff
test edx, edx
rep stosd dword es:[edi], eax
jne 0x401655
push str.Memory_initialization_failed___n
call fcn.004019f0
add esp, 4
mov eax, 0xfffffff5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x210
ret 0x10
lea eax, [esp + 0x14]
push 0
push eax
push 0x68b0
push ebx
push 0
push 0
push 0x223400
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test al, al
jne 0x4016d2
push 0
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x400
call ebp
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0x10
push str.DeviceIoControl_attempt_failed
mov edx, dword [esp + 0x18]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
call ebp
push eax
push str.DeviceIoControl_failed___Error___d__n
call fcn.004019f0
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x210
ret 0x10
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x4016f6
push str._nNo_PCI_data_available.__n_n
call fcn.004019f0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x210
ret 0x10
mov eax, ecx
xor edx, edx
mov edi, 0x10c
div edi
test edx, edx
je 0x40170d
push ecx
push str.Data_size_returned_invalid:__d_bytes.__n
jmp 0x4016bb
mov edx, dword [0x407030]
lea ecx, [esp + 0x10]
push 0xa
push ecx
push edx
mov dword [esp + 0x1c], 0x4072fc
call fcn.00401aa2
mov ecx, dword [0x407034]
mov edi, eax
lea eax, [esp + 0x1c]
push 0xa
push eax
push ecx
call fcn.00401aa2
mov edx, dword [esp + 0x2c]
push 0x407e04
push eax
push edi
push edx
push ebx
call fcn.004012a0
push ebx
mov edi, eax
call fcn.00401a73
add esp, 0x30
test esi, esi
je 0x401765
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x18]
push 2
push eax
push str.Pci_fix
call fcn.00401060
add esp, 0xc
cmp edi, 1
jne 0x4016c3
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x210
ret 0x10