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

Disassembly:
sub esp, 0x20c
lea eax, [esp + 0x108]
push ebx
mov ebx, dword [esp + 0x214]
push esi
push edi
push ebp
push ebx
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push eax
call ebp
cmp byte [esp + 0x118], 0x22
jne 0x5fda489e
lea eax, [esp + 0x119]
push 0x5fdaf5cc
mov dword [esp + 0x14], eax
jmp 0x5fda48ae
lea eax, [esp + 0x118]
push 0x5fdaf5c8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.5fda47e0
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x10]
push eax
call fcn.5fda50b0
add esp, 4
test eax, eax
jne 0x5fda48ee
lea eax, [esp + 0x14]
push 0x5fdb3fa4
push eax
call ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.5fda5070
add esp, 8
jmp 0x5fda48fa
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
push ecx
call ebp
mov eax, dword [esp + 0x10]
push 0x2e
push eax
call fcn.5fda9940
add esp, 8
test eax, eax
je 0x5fda4abc
push str..INF
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push eax
call esi
test eax, eax
jne 0x5fda4ac2
mov dword [esp + 0x10], edi
push 0x5fdaf5bc
lea edi, [esp + 0x14]
push edi
call fcn.5fda47e0
add esp, 8
mov edi, eax
push str.DefaultInstall
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test edi, edi
je 0x5fda497d
cmp byte [edi], 0
je 0x5fda4959
mov dword [esp + 0x10], edi
lea eax, [esp + 0x10]
push 0x5fdaf5b8
push eax
call fcn.5fda47e0
mov eax, dword [esp + 0x18]
add esp, 8
cmp byte [eax], 0
je 0x5fda497d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
mov edi, str.rundll32.exe_syssetup.dll_SetupInfObjectInstallAction__s_128__s
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
mov edi, str.rundll32.exe_setupx.dll_InstallHinfSection__s_128__s
sub eax, eax
lea edx, [ecx - 1]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jae 0x5fda49ac
mov edi, str.rundll32.exe_setupx.dll_InstallHinfSection__s_128__s
jmp 0x5fda49b1
mov edi, str.rundll32.exe_syssetup.dll_SetupInfObjectInstallAction__s_128__s
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea edi, [esp + 0x14]
sub eax, eax
lea edx, [ecx - 1]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + esi - 1]
add eax, edx
add eax, 0x10
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x5fda4a07
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.5fda25f0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20c
ret
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x5fda4a15
mov eax, str.DefaultInstall
lea ecx, [esp + 0x14]
push ecx
push 0
push str.Reboot
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [esp + 0x228]
lea edx, [esp + 0x14]
push edx
mov dword [0x5fdb4800], eax
push 8
mov dword [ecx], 1
push esi
push 0x5fdaf220
push str.AdvancedINF
push str.Version
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x5fda4a7e
mov eax, dword [esp + 0x10]
or dword [0x5fdb47f4], 4
cmp byte [eax], 0
jne 0x5fda4a70
mov eax, str.DefaultInstall
push eax
push ebx
call ebp
lea eax, [esp + 0x14]
push eax
jmp 0x5fda4bca
and dword [0x5fdb47f4], 0xfffffffb
cmp word [0x5fdb4f34], 0
mov edx, str.rundll32.exe_setupx.dll_InstallHinfSection__s_128__s
je 0x5fda4a99
mov edx, str.rundll32.exe_syssetup.dll_SetupInfObjectInstallAction__s_128__s
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne 0x5fda4aa7
mov eax, str.DefaultInstall
lea ecx, [esp + 0x14]
push ecx
push eax
push edx
push esi
call fcn.5fda9830
add esp, 0x10
jmp 0x5fda4bcd
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov eax, dword [esp + 0x10]
push 0x2e
push eax
call fcn.5fda9940
add esp, 8
test eax, eax
je 0x5fda4b47
push str..BAT
push eax
call esi
test eax, eax
jne 0x5fda4b47
push str.Command.com__c__s
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add esi, eax
add esi, 8
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x5fda4b2e
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.5fda25f0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20c
ret
lea eax, [esp + 0x14]
push eax
push str.Command.com__c__s
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x5fda4bcd
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add esi, eax
add esi, 0xa
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x5fda4b90
push 0
push 0x10
push 0
push 0
push 0x4b5
push 0
call fcn.5fda25f0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20c
ret
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x5fda4bc9
test al, 0x10
jne 0x5fda4bc9
lea eax, [esp + 0x14]
push eax
push esi
call ebp
test edi, edi
je 0x5fda4bcd
cmp byte [edi], 0
je 0x5fda4bcd
push 0x5fdaf5c8
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call ebx
push edi
push esi
call ebx
jmp 0x5fda4bcd
push ebx
push esi
call ebp
mov eax, dword [esp + 0x224]
pop ebp
pop edi
mov dword [eax], esi
mov eax, 1
pop esi
pop ebx
add esp, 0x20c
ret