Function at 0x4087c0
Capabilities:
Copy file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x41403c]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
push 0x426fa8
push 0x4271b8
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0
push 1
push 0
push 0x426fa8
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xffffffff
jne 0x408804
jmp 0x408d3a
movzx eax, byte [0x4272c6]
test eax, eax
je 0x408868
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
push 0x426ea0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xa4], eax
push 0
push 0x4272d4
mov ecx, dword [str._Version__r_nSignature____Windows_NT___r_n_r_n_PEBuilder__r_nName_____MassStorage_drivers_Integrating_Plugin__r_nEnable__1_r_n_r_n_SetupReg.AddReg__r_n]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov edx, dword [str._Version__r_nSignature____Windows_NT___r_n_r_n_PEBuilder__r_nName_____MassStorage_drivers_Integrating_Plugin__r_nEnable__1_r_n_r_n_SetupReg.AddReg__r_n]
push edx
mov eax, dword [ebp - 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0xa4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
push 0x416548
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xffffffff
je 0x408b68
mov dword [ebp - 0xb0], str._Files__r_n
mov dword [ebp - 0xac], str._r_n_FloppyFiles.1__r_n
mov dword [ebp - 0xa8], str._r_n_FloppyFiles.2__r_n
push 0
push 0x4272d4
mov edx, dword [ebp - 0xb0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [ebp - 0xb0]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0xa0]
push edx
push 0
push str.BusExtenders.Load
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x408965
push 0x4272d0
push 0x40
lea ecx, [ebp - 0x48]
push ecx
push 1
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea eax, [ebp - 0x48]
push eax
push str.d1__s_r_n
push 0x40
lea ecx, [ebp - 0x90]
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
push 0
push 0x4272d4
lea edx, [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x4088f2
lea ecx, [ebp - 0xa0]
push ecx
push 0
push str.SCSI.Load
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x4089f4
push 0x4272d0
push 0x40
lea eax, [ebp - 0x48]
push eax
push 1
lea ecx, [ebp - 0xa0]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea edx, [ebp - 0x48]
push edx
push str.d1__s_r_n
push 0x40
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
push 0
push 0x4272d4
lea ecx, [ebp - 0x90]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea edx, [ebp - 0x90]
push edx
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [ebp - 0xa0]
push ecx
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x408981
push 0
push 0x4272d4
mov eax, dword [ebp - 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0xa0]
push eax
push 0
push str.BusExtenders.Load
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x408aa9
push 0x4272d0
push 0x40
lea edx, [ebp - 0x48]
push edx
push 1
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0x48]
push ecx
push str.d1__s_r_n
push 0x40
lea edx, [ebp - 0x90]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
push 0
push 0x4272d4
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea ecx, [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0xa0]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x408a36
push 0
push 0x4272d4
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0xa0]
push edx
push 0
push str.SCSI.Load
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x408b5e
push 0x4272d0
push 0x40
lea ecx, [ebp - 0x48]
push ecx
push 1
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea eax, [ebp - 0x48]
push eax
push str.d1__s_r_n
push 0x40
lea ecx, [ebp - 0x90]
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
push 0
push 0x4272d4
lea edx, [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x408aeb
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [ebp - 0xa0]
push edx
push 0
push str.PnpInterface
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x408c94
mov dword [ebp - 0xb4], 0
mov byte [0x4272be], 1
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
push 0x416018
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x41664c], eax
push 2
push 0
push 0
mov ecx, dword [0x41664c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0x80
push 4
push 0
push 0
push 0x40000000
push 0x416a70
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x416964], eax
push 0
push 0x4272d4
mov edx, dword [str.Windows_Registry_Editor_Version_5.00_r_n_r_n]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [str.Windows_Registry_Editor_Version_5.00_r_n_r_n]
push eax
mov ecx, dword [0x416964]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x4272d0
push 0x40
lea edx, [ebp - 0x90]
push edx
push 0
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
lea ecx, [ebp - 0xb4]
push ecx
push 1
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetIntField]
test eax, eax
je 0x408c62
mov eax, dword [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x90]
push ecx
call fcn.00407d50
lea edx, [ebp - 0xa0]
push edx
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindNextLine]
test eax, eax
jne 0x408c18
mov ecx, dword [0x41664c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x416964]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.BusExtenders
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountA]
test eax, eax
jne 0x408cbb
push 0x4271b8
push 0
push 0
push str.BusExtenders
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.BusExtenders.Load
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountA]
test eax, eax
jne 0x408ce2
push 0x4271b8
push 0
push 0
push str.BusExtenders.Load
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.SCSI
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountA]
test eax, eax
jne 0x408d09
push 0x4271b8
push 0
push 0
push str.SCSI
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.SCSI.Load
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetLineCountA]
test eax, eax
jne 0x408d30
push 0x4271b8
push 0
push 0
push str.SCSI.Load
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401035
mov esp, ebp
pop ebp
ret