Function at 0x40bcd4
Capabilities:
Copy file
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
push ebx
push esi
push edi
push 0x64
push 0x422fe0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x454b20
push 0x422fe0
call fcn.0041a84c
add esp, 8
push 0x454b28
push 0x422fe0
call fcn.0041a84c
add esp, 8
cmp dword [ebp + 8], 0
je 0x40bdbd
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x1cc]
push eax
call fcn.0041a850
add esp, 8
push 0x454b34
lea eax, [ebp - 0x1cc]
push eax
call fcn.0041a84c
add esp, 8
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x1cc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0xffffffff
je 0x40bdbd
push 0
push 0x422fe0
lea eax, [ebp - 0x1cc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x40bda9
mov eax, dword [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x4000c
call fcn.004054a2
add esp, 4
mov eax, 0xffffffff
jmp 0x40be96
mov eax, dword [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x40be96
push 0
push pe_nt_image_headers32
push 2
push 0x423140
push 0
push 0xc0000000
push 0x422fe0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x422ed4], eax
cmp dword [0x422ed4], 0xffffffff
jne 0x40be06
push 0x40003
call fcn.004054a2
add esp, 4
mov eax, 0xffffffff
jmp 0x40be96
push 0
lea eax, [ebp - 4]
push eax
call fcn.0041570c
push eax
push str.___Id:_aksusb.inf_1.3_1998_08_30_06:09:50_CHARLIEH_QC___r_n__r_n__INF_File_for_USB_Hardlock_r_n_____________________________r_n__r_n___c__Copyright_1997_1998_by_Aladdin_Knowledge_Systems_r_n__r_n___Revision:_1.3___r_n___Date:_1998_08_30_06:09:50___r_n___Author:_CHARLIEH___r_n__r_n___Log:_aksusb.inf___r_n__Revision_1.3__1998_08_30_06:09:50__CHARLIEH_r_n__Revision_1.2__1998_07_24_09:58:21__CHARLIEH_r_n__Remove_the_copy_directives_r_n__Revision_1.1__1998_07_14_12:16:28__CHARLIEH_r_n__Initial_revision_r_n__Revision_1.1__1998_04_27_06:10:47__CHARLIEH_r_n__Initial_revision_r_n__Revision_1.1__1998_03_18_19:10:16__CHARLIEH_r_n__Initial_revision_r_n__Revision_1.7__1998_03_11_14:00:26__chris_r_n__usbpd____aksusb_name_change_r_n___r_n__Revision_1.6__1998_03_09_13:31:01__chris_r_n__added_NT_5_Beta_support_r_n___r_n__Revision_1.5__1998_03_06_13:08:59__chris_r_n__added_hardlock.vxd_to_copylist_r_n__r_n_r_n_Version__r_nsignature__CHICAGO___r_nProvider_Fast__r_nLayoutFileLAYOUT.INF_r_nClassUSB_r_n_r_n__Table_of_Contents_r_n_Manufacturer__r_n_FastMfg_Aladdin_r_n_r_n_PreCopySection__r_nHKR__NoSetupUI__1_r_n_r_n_DestinationDirs__r_naksusb.CopyList__10_system32drivers_r_naksusb.CopyList.NT__10_system32drivers_r_nvxd.CopyList__11_r_n_DefaultDestDir10_system32drivers_r_n_r_n_Aladdin__r_n_USBVID_0529PID_0001.DeviceDesc_aksusb__USBVID_0529PID_0001__USB_Protection_Device_r_n_r_n_NODRIVER__r_n_r_n_ControlFlags__r_nExcludeFromSelectUSBVID_0529PID_0001_r_n_r_n_aksusb__r_n_CopyFilesaksusb.CopyList_vxd.CopyList_r_nAddRegaksusb.AddReg_r_n_r_n_aksusb.NT__r_n_CopyFilesaksusb.CopyList.NT_r_nAddRegaksusb.AddReg.NT_r_n_r_n_aksusb.AddReg__r_nHKR__DevLoader__ntkern_r_nHKR__NTMPDriver__aksusb.sys_r_n_HKR__MyLittleTag__MyEntryInTheRegistry_r_n_r_n_aksusb.AddReg.NT__r_n_BUGBUG:_PropPageProvider_stuff_not_enabled_for_setupapi_yet__r_nHKR__EnumPropPages32___sysclass.dll_USBEnumPropPages__r_n_r_n_aksusb.CopyList__r_naksusb.sys_r_n_r_n_aksusb.CopyList.NT__r_naksusb.sys_r_n_r_n_vxd.CopyList__r_nhardlock.vxd_r_n_r_n_aksusb.NT.Services__r_nAddServiceaksusb_0x02_aksusb.addservices_r_n_r_n_aksusb.addservices__r_nDisplayName______svcdesc__r_nServiceType_____1_t_t_SERVICE_KERNEL_DRIVER_r_nStartType_______2_t_t_SERVICE_AUTO_START_r_nErrorControl____1_t_t_SERVICE_ERROR_NORMAL_r_nServiceBinary____12__aksusb.sys_r_nLoadOrderGroup__Base_r_n_r_n_Strings__r_nFast_Aladdin_Knowledge_Systems__r_nFastMfg_Aladdin_Knowledge_Systems__r_nsvcdesc_Aladdin_USB_Key__r_nUSBVID_0529PID_0001.DeviceDesc_Aladdin_USB_Key__r_n_r_nMZ
mov eax, dword [0x422ed4]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40be53
mov eax, dword [0x422ed4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x40004
call fcn.004054a2
add esp, 4
mov eax, 0xffffffff
jmp 0x40be96
mov eax, dword [0x422ed4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40be8f
mov eax, dword [0x422ed4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x40005
call fcn.004054a2
add esp, 4
mov eax, 0xffffffff
jmp 0x40be96
xor eax, eax
jmp 0x40be96
pop edi
pop esi
pop ebx
leave
ret