Function at 0x406240
Capabilities:
Delete directory
Delete file
Move file

Disassembly:
push 0xffffffffffffffff
push 0x4189f1
mov eax, dword fs:[0]
push eax
sub esp, 0x22c
mov eax, dword [0x4212d0]
xor eax, esp
mov dword [esp + 0x228], eax
push ebx
push ebp
push edi
mov eax, dword [0x4212d0]
xor eax, esp
push eax
lea eax, [esp + 0x23c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x24c]
mov ebx, ecx
push ebx
push esi
mov dword [esp + 0x18], esi
call fcn.004012c0
xor edi, edi
mov dword [esp + 0x244], edi
mov dword [esi], vtable.CSilentInstaller.0
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], edi
mov byte [esp + 0x18], 0
push 0x9c
lea eax, [esp + 0x50]
push edi
push eax
mov byte [esp + 0x250], 1
call fcn.00413190
add esp, 0xc
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x50], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esi + 0xd8]
cmp eax, edi
je 0x4062fa
push edi
push edi
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
mov eax, 0x41e5f8
jne 0x4062ff
mov eax, 0x41e5fc
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
push ecx
push str.Windows__d._d_build__d__s
lea edx, [esp + 0x14c]
push 0x100
push edx
call fcn.0040eb9d
add esp, 0x1c
push edi
push esi
mov ecx, str.USB_Redirector_Technician_Edition___Customer_Module_Version_1.9.7
call fcn.004029e0
push edi
push esi
lea ecx, [esp + 0x140]
call fcn.004029e0
push 0x2f
lea eax, [esp + 0x10d]
push edi
push eax
mov byte [esp + 0x114], 0
call fcn.00413190
add esp, 0xc
mov edi, edi
call fcn.0040edcb
and eax, 0x8000000f
jns 0x406371
dec eax
or eax, 0xfffffff0
inc eax
inc eax
push eax
lea ecx, [esp + edi + 0x10c]
push 0x41e61c
push ecx
call fcn.0040e433
inc edi
add esp, 0xc
cmp edi, 0x20
jl 0x406360
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406393
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x1c]
call fcn.00403a90
push 1
push 0x41e460
lea eax, [esp + 0x1c]
call fcn.00402ad0
lea eax, [esp + 0x108]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4063c1
sub eax, edx
push eax
lea edx, [esp + 0x10c]
push edx
lea eax, [esp + 0x1c]
call fcn.00402ad0
mov eax, dword [esp + 0x18]
mov edi, 0x10
cmp dword [esp + 0x2c], edi
jae 0x4063ef
lea eax, [esp + 0x18]
mov ecx, esi
call fcn.00402620
push 0
push esi
mov ecx, str._unpack_files_
call fcn.004029e0
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], edi
jae 0x406411
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.00406820
push 0
push esi
mov ecx, str._launch_CM_
call fcn.004029e0
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x2c], edi
jae 0x406433
lea edx, [esp + 0x18]
push esi
mov ecx, ebx
call fcn.00406640
push 0
push esi
mov ecx, str._cleanup_files_
call fcn.004029e0
push esi
call fcn.004027d0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
call fcn.004030a0
mov byte [esp + 0x244], 2
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x4064a1
push 0
push 0
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
je 0x4064a1
push 6
push str._amd64
jmp 0x4064a8
push 4
push str.x86
lea eax, [esp + 0x38]
call fcn.00402ad0
cmp dword [esp + 0x48], edi
mov edi, dword [esp + 0x34]
jae 0x4064bf
lea edi, [esp + 0x34]
push edi
push esi
mov ecx, str.DeleteDirectory:
call fcn.004029e0
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push edi
call ebx
mov ebp, dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x406528
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
je 0x406528
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0xec]
push str._0x_x_
push ecx
call fcn.0040e433
add esp, 0xc
lea edx, [esp + 0xe8]
push edx
push esi
mov ecx, str.Warning:__Reboot_required_to_complete_operation_
call fcn.004029e0
push 4
push 0
push edi
call ebp
mov eax, dword [esi + 4]
mov dword [eax], 1
cmp dword [esp + 0x2c], 0x10
mov edi, dword [esp + 0x18]
jae 0x406537
lea edi, [esp + 0x18]
push edi
push esi
mov ecx, str.DeleteDirectory:
call fcn.004029e0
push edi
call ebx
test eax, eax
jne 0x406592
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp eax, 3
je 0x406592
call ebx
push eax
lea ecx, [esp + 0xec]
push str._0x_x_
push ecx
call fcn.0040e433
add esp, 0xc
lea edx, [esp + 0xe8]
push edx
push esi
mov ecx, str.Warning:__Reboot_required_to_complete_operation_
call fcn.004029e0
push 4
push 0
push edi
call ebp
mov eax, dword [esi + 4]
mov dword [eax], 1
push 0
push esi
mov ecx, str._end_
call fcn.004029e0
mov edi, 0x10
cmp dword [esp + 0x48], edi
jb 0x4065b7
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0040eded
add esp, 4
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
cmp dword [esp + 0x2c], edi
jb 0x4065df
mov edx, dword [esp + 0x18]
push edx
call fcn.0040eded
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x23c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x228]
xor ecx, esp
call fcn.0040e340
add esp, 0x238
ret 4