Function at 0x4bd8c1
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
push 0x6784a8
push 0
push 0x5c6424
push 0x5c6438
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x5edfec], eax
push 0x6784a8
push 0
push str.ReferenceMPEVN
push 0x5c6450
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x5edf40], eax
cmp dword [0x5edfec], 0
je 0x4bdb98
mov dword [ebp - 0x814], 0
mov dword [ebp - 0x70c], 0
mov dword [ebp - 0x708], 0
mov dword [ebp - 0x818], 0
push 0x104
push 0
lea eax, [ebp - 0x810]
push eax
call fcn.0054bf90
add esp, 0xc
push 0x6784a8
push 0x104
lea ecx, [ebp - 0x810]
push ecx
push 0x5c6458
push str.NewDriverSettingFile
push 0x5c648c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x6784a8
push 0x63
push str.MPEVNVIDPIDTotalCount
push str.INITIAL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x70c], eax
cmp dword [0x5edf40], 0
je 0x4bda86
push 0x104
push 0
lea edx, [ebp - 0x604]
push edx
call fcn.0054bf90
add esp, 0xc
push 0x6784a8
push 0x104
lea eax, [ebp - 0x604]
push eax
push str.C:MPEVNSMIInfUpdate.ini
push str.InfUpdate_ReferenceFile
push 0x5c64e8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push pe_nt_image_headers32
push 0
lea ecx, [ebp - 0x100]
push ecx
call fcn.0054bf90
add esp, 0xc
push 0x6784a8
push pe_nt_image_headers32
lea edx, [ebp - 0x100]
push edx
push 0x5c64f4
push str.InfUpdate_ReferenceSection
push 0x5c6518
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push pe_nt_image_headers32
push 0
lea eax, [ebp - 0x704]
push eax
call fcn.0054bf90
add esp, 0xc
push 0x6784a8
push pe_nt_image_headers32
lea ecx, [ebp - 0x704]
push ecx
push str.UpdateDriverVIDPID
push str.InfUpdate_ReferenceKeyName
push str.Reference
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x604]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4bda86
lea eax, [ebp - 0x604]
push eax
push 0x63
lea ecx, [ebp - 0x704]
push ecx
lea edx, [ebp - 0x100]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x70c], eax
mov dword [ebp - 0x814], 0
jmp 0x4bdaa1
mov eax, dword [ebp - 0x814]
add eax, 1
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0x814]
cmp ecx, dword [ebp - 0x70c]
jg 0x4bdb8d
mov dword [ebp - 0x708], 0
mov dword [ebp - 0x818], 0
push 0x200
push 0
lea edx, [ebp - 0x500]
push edx
call fcn.0054bf90
add esp, 0xc
push 0x200
push 0
lea eax, [ebp - 0x300]
push eax
call fcn.0054bf90
add esp, 0xc
mov ecx, dword [ebp - 0x814]
push ecx
push 0x5c6560
lea edx, [ebp - 0x300]
push edx
call fcn.0054c6e3
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
push 0x200
lea ecx, [ebp - 0x500]
push ecx
push 0x67fd90
lea edx, [ebp - 0x300]
push edx
push str.VIDPID
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x500]
push eax
call fcn.0054ce70
add esp, 4
test eax, eax
jne 0x4bdb50
jmp 0x4bda92
lea ecx, [ebp - 0x818]
push ecx
lea edx, [ebp - 0x708]
push edx
push str.0x_X_0x_X
lea eax, [ebp - 0x500]
push eax
call fcn.0054d536
add esp, 0x10
mov ecx, dword [ebp - 0x818]
push ecx
mov edx, dword [ebp - 0x708]
push edx
call fcn.00522585
add esp, 8
jmp 0x4bda92
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esp, ebp
pop ebp
ret