Function at 0x406ba0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x680
mov eax, dword [0x41403c]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 4], str._r_n_SourceDisksFiles__r_n
mov dword [ebp - 0x564], str._r_n_SetValue__r_n
mov dword [ebp - 0x67c], str._r_n_AddLine__r_n
push 0
push 1
push 0
push 0x4271b8
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0xffffffff
jne 0x406bf3
jmp 0x4073e5
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
push 0x426ea0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x54c], eax
cmp dword [ebp - 0x54c], 0xffffffff
je 0x4073d8
push 2
push 0
push 0
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0x4272d4
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x678]
push ecx
push 0
push str.SourceDisksFiles
mov edx, dword [ebp - 0x560]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x406d22
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x668]
push eax
push 0
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x148]
push edx
push 7
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0x668]
push ecx
push str.drivers_s4__1_r_n
push 0x400
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
push 0
push 0x4272d4
lea eax, [ebp - 0x548]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea ecx, [ebp - 0x548]
push ecx
mov edx, dword [ebp - 0x54c]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0x678]
push eax
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x406c7c
push 0
push 0x4272d4
mov edx, dword [ebp - 0x564]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [ebp - 0x564]
push eax
mov ecx, dword [ebp - 0x54c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0x678]
push edx
push 0
push str.SourceDisksFiles
mov eax, dword [ebp - 0x560]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x406e1b
push 0x4272d0
push 0xfe
lea ecx, [ebp - 0x668]
push ecx
push 0
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x148]
push eax
push 7
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea edx, [ebp - 0x148]
push edx
lea eax, [ebp - 0x668]
push eax
push str._txtsetup.sif___SourceDisksFiles____s___1_______s_4_1___1_4__r_n
push 0x400
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x548]
push eax
mov ecx, dword [ebp - 0x54c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0x678]
push edx
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x406d6e
lea ecx, [ebp - 0x678]
push ecx
push 0
push str.HardwareIdsDatabase
mov edx, dword [ebp - 0x560]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x406eeb
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x668]
push eax
push 0
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x148]
push edx
push 1
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0x148]
push ecx
lea edx, [ebp - 0x668]
push edx
push str._txtsetup.sif___HardwareIdsDatabase____s______s____r_n
push 0x400
lea eax, [ebp - 0x548]
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea edx, [ebp - 0x548]
push edx
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x678]
push ecx
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x406e3e
lea eax, [ebp - 0x678]
push eax
push 0
push str.SCSI.Load
mov ecx, dword [ebp - 0x560]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x406fbb
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x668]
push edx
push 0
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea ecx, [ebp - 0x148]
push ecx
push 1
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x668]
push ecx
push str._txtsetup.sif___SCSI.Load____s____s_4__r_n
push 0x400
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea eax, [ebp - 0x548]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea ecx, [ebp - 0x548]
push ecx
mov edx, dword [ebp - 0x54c]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0x678]
push eax
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x406f0e
lea edx, [ebp - 0x678]
push edx
push 0
push str.SCSI
mov eax, dword [ebp - 0x560]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x40708b
push 0x4272d0
push 0xfe
lea ecx, [ebp - 0x668]
push ecx
push 0
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x148]
push eax
push 1
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea edx, [ebp - 0x148]
push edx
lea eax, [ebp - 0x668]
push eax
push str._txtsetup.sif___SCSI____s______s____r_n
push 0x400
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x548]
push eax
mov ecx, dword [ebp - 0x54c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0x678]
push edx
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x406fde
lea ecx, [ebp - 0x678]
push ecx
push 0
push str.BusExtenders.Load
mov edx, dword [ebp - 0x560]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x40715b
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x668]
push eax
push 0
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x148]
push edx
push 1
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0x148]
push ecx
lea edx, [ebp - 0x668]
push edx
push str._txtsetup.sif___BusExtenders.Load____s____s__r_n
push 0x400
lea eax, [ebp - 0x548]
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea edx, [ebp - 0x548]
push edx
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x678]
push ecx
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x4070ae
lea eax, [ebp - 0x678]
push eax
push 0
push str.BusExtenders
mov ecx, dword [ebp - 0x560]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x407239
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x668]
push edx
push 0
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea ecx, [ebp - 0x148]
push ecx
push 1
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x668]
push ecx
lea edx, [ebp - 0x148]
push edx
lea eax, [ebp - 0x668]
push eax
push str._txtsetup.sif___BusExtenders____s______s___files._s__s__r_n
push 0x400
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x1c
push 0
push 0x4272d4
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x548]
push eax
mov ecx, dword [ebp - 0x54c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0x678]
push edx
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x40717e
push 0
push 0x4272d4
mov ecx, dword [ebp - 0x67c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov edx, dword [ebp - 0x67c]
push edx
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x678]
push ecx
push 0
push str.BusExtenders.Load
mov edx, dword [ebp - 0x560]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x4073cb
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x668]
push eax
push 0
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
push 0x4272d0
push 0xfe
lea edx, [ebp - 0x148]
push edx
push 1
lea eax, [ebp - 0x678]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0x668]
push ecx
push str.files._s
push 0x40
lea edx, [ebp - 0x48]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x668]
push ecx
push str._txtsetup.sif___files._s____s_4__r_n
push 0x400
lea edx, [ebp - 0x548]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
mov dword [ebp - 0x680], eax
lea eax, [ebp - 0x55c]
push eax
push 1
lea ecx, [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x560]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineByIndexA]
test eax, eax
je 0x407386
push 0x4272d0
push 0xfe
lea eax, [ebp - 0x148]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x55c]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextA]
lea edx, [ebp - 0x148]
push edx
lea eax, [ebp - 0x668]
push eax
push str._r_n_txtsetup.sif___files._s____s__r_n
mov ecx, 0x400
sub ecx, dword [ebp - 0x680]
push ecx
mov edx, dword [ebp - 0x680]
lea eax, [ebp + edx - 0x548]
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
push 0
push 0x4272d4
lea ecx, [ebp - 0x548]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea edx, [ebp - 0x548]
push edx
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0x678]
push ecx
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x407285
mov eax, dword [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x560]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00401035
mov esp, ebp
pop ebp
ret