Function at 0x407120
Capabilities:
Create process on windows
Delete directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
mov eax, dword [0x4e0214]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x20a]
push ecx
mov word [ebp - 0x20c], ax
call fcn.0047c5e0
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x61a]
push eax
mov word [ebp - 0x61c], dx
call fcn.0047c5e0
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x412]
push edx
mov word [ebp - 0x414], cx
call fcn.0047c5e0
add esp, 0x24
lea eax, [ebp - 0x620]
push eax
push 0x19
push 0
mov dword [ebp - 0x620], 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x4071c7
mov edx, dword [ebp - 0x620]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x620]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push str.3uTools
push str._s.lnk
lea edx, [ebp - 0x61c]
call fcn.004079a0
lea eax, [ebp - 0x61c]
add esp, 8
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4071e7
push edi
lea edi, [ebp - 0x20c]
sub eax, edx
add edi, 0xfffffffe
mov edi, edi
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x407200
push ebx
push esi
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x20c]
push ecx
push str.TaskbarUnPin
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [ebp - 0x20c]
push edx
call ebx
lea eax, [ebp - 0x638]
push eax
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x40727d
mov edx, dword [ebp - 0x638]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x638]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x407286
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4072a3
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea eax, [ebp - 0x61c]
mov edx, eax
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4072e0
lea edi, [ebp - 0x20c]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4072f6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [ebp - 0x20c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call ebx
lea eax, [ebp - 0x62c]
push eax
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x407351
mov edx, dword [ebp - 0x62c]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x62c]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x407360
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407380
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
push str.3uTools
push 0x4d004c
lea edx, [ebp - 0x414]
mov dword [eax + 0xc], ecx
call fcn.004079a0
lea eax, [ebp - 0x414]
add esp, 8
mov edx, eax
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4073d0
lea edi, [ebp - 0x20c]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4073e6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [ebp - 0x20c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call ebx
lea eax, [ebp - 0x634]
push eax
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x407441
mov edx, dword [ebp - 0x634]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x634]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x407450
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407470
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
lea edx, [ebp - 0x20c]
push edx
mov dword [eax + 0xc], ecx
call ebx
mov ecx, 0x208
lea eax, [ebp - 0x20c]
lea esp, [esp]
mov byte [eax], 0
inc eax
dec ecx
jne 0x4074c0
lea eax, [ebp - 0x63c]
push eax
push 2
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x4074fc
mov edx, dword [ebp - 0x63c]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x407505
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407522
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea eax, [ebp - 0x61c]
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407560
lea edi, [ebp - 0x20c]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x407576
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [ebp - 0x20c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x624]
push eax
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x4075d5
mov edx, dword [ebp - 0x624]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x624]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4075e0
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407600
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
push str.3uTools
push 0x4d004c
lea edx, [ebp - 0x414]
mov dword [eax + 0xc], ecx
call fcn.004079a0
lea eax, [ebp - 0x414]
add esp, 8
mov edx, eax
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407650
lea edi, [ebp - 0x20c]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x407666
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [ebp - 0x20c]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x630]
push eax
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x4076c5
mov edx, dword [ebp - 0x630]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x630]
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4076d0
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4076f0
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
lea edx, [ebp - 0x20c]
push edx
mov dword [eax + 0xc], ecx
call ebx
mov ecx, 0x208
lea eax, [ebp - 0x20c]
mov byte [eax], 0
inc eax
dec ecx
jne 0x407733
lea eax, [ebp - 0x628]
push eax
push 0x1a
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x407795
mov edx, dword [ebp - 0x628]
lea ecx, [ebp - 0x20c]
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea edi, [ebp - 0x20c]
add edi, 0xfffffffe
jmp 0x407770
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x407770
mov eax, dword [ebp - 0x628]
mov ecx, 0x15
mov esi, str.MicrosoftInternet_ExplorerQuick_Launch
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
lea edi, [ebp - 0x20c]
pop esi
add edi, 0xfffffffe
pop ebx
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4077a0
mov ecx, dword [0x4d0048]
lea eax, [ebp - 0x20c]
mov dword [edi], ecx
add eax, 0xfffffffe
pop edi
mov edi, edi
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4077c0
mov edx, dword [str.3uTools]
mov ecx, dword [0x4cfed4]
mov dword [eax], edx
mov edx, dword [0x4cfed8]
mov dword [eax + 4], ecx
mov ecx, dword [0x4cfedc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea eax, [ebp - 0x20c]
add eax, 0xfffffffe
jmp 0x407800
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407800
mov edx, dword [str..lnk]
mov ecx, dword [0x4d0074]
mov dword [eax], edx
mov dx, word [0x4d0078]
mov dword [eax + 4], ecx
mov word [eax + 8], dx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, 0x208
lea eax, [ebp - 0x20c]
mov byte [eax], 0
inc eax
dec ecx
jne 0x407840
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004790f7
mov esp, ebp
pop ebp
ret