Function at 0x401d00
Capabilities:
Get common file path

Disassembly:
sub esp, 0x108
mov eax, dword [0x40b540]
push ebx
push esi
mov ebx, edx
test ebx, ebx
mov esi, ecx
mov dword [esp + 8], esi
jne 0x401d92
push str.Checking_USB_driver_files_...
push 0x3eb
push eax
call fcn.00401000
add esp, 0xc
mov edx, 0x40a730
mov ecx, esi
call fcn.00401530
cmp eax, 1
je 0x401d61
mov edx, 0x40a740
mov ecx, esi
call fcn.00401530
cmp eax, 1
je 0x401d61
mov ecx, dword [0x40b540]
push str.Installing_USB_lock_files_for_PnP_...
push 0x3eb
push ecx
jmp 0x401d9d
mov edx, dword [0x40b540]
push 0x40a750
push 0x40a760
push str.File_not_found__s__s___skipped.
push 0x3eb
push edx
call fcn.00401000
add esp, 0x14
pop esi
mov eax, 1
pop ebx
add esp, 0x108
ret
push str.Removing_USB_lock_files_...
push 0x3eb
push eax
call fcn.00401000
add esp, 0xc
push 0x104
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x401de7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [0x40b540]
push eax
push str.GetWindowsDirectory_failed.___d__n
push 0x3eb
push edx
call fcn.00401000
add esp, 0x10
pop esi
mov eax, 1
pop ebx
add esp, 0x108
ret
mov eax, 0x40a800
mov edx, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401df0
push ebp
push edi
lea edi, [esp + 0x14]
sub eax, edx
dec edi
lea ebp, [edi + 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401e03
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, 0x40a7fc
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401e22
sub eax, ecx
dec ebp
mov esi, ecx
mov edi, ebp
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401e30
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jne 0x401e77
mov ecx, dword [esp + 0x10]
push 0x40a804
lea eax, [esp + 0x18]
push eax
mov edx, str.Sntnlusb2k.inf
call fcn.004016e0
cmp eax, 1
jne 0x401e85
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
add esp, 0x108
ret
mov edx, 0x40a824
lea ecx, [esp + 0x14]
call fcn.004015f0
push 0x104
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x401ebd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetSystemDirectory_failed.___d__n
call fcn.00402acf
add esp, 8
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
add esp, 0x108
ret
mov eax, 0x40a860
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401ec4
lea edi, [esp + 0x14]
sub eax, edx
dec edi
lea ebp, [edi + 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401ed5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, str.drivers
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401ef4
sub eax, ecx
dec ebp
mov esi, ecx
mov edi, ebp
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401f02
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jne 0x401f57
mov ecx, dword [esp + 0x10]
push 0x40a864
lea edx, [esp + 0x18]
push edx
mov edx, 0x40a874
call fcn.004016e0
cmp eax, 1
je 0x401e67
mov eax, dword [0x40b540]
push str.USB_driver_files_setup.
push 0x3eb
push eax
call fcn.00401000
add esp, 0xc
jmp 0x401f94
mov edx, 0x40a89c
lea ecx, [esp + 0x14]
call fcn.004015f0
mov ecx, dword [0x40b540]
push str.USB_files_removed.
push 0x3eb
push ecx
call fcn.00401000
mov edx, dword [0x40b540]
push str._You_can_remove_the_key_using_Device_Manager_to_remove_all_trace_
push 0x3eb
push edx
call fcn.00401000
add esp, 0x18
mov eax, dword [0x40b540]
push 0x40b547
push 0x3eb
push eax
call fcn.00401000
add esp, 0xc
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x108
ret