Function at 0x401310
Capabilities:
Delete directory
Delete file
Delete registry key
Get common file path
Move file

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x560
mov eax, 1
call fcn.004018e0
push 0x104
mov ebx, eax
mov dword [esp + 0x560], eax
lea eax, [esp + 0x144]
push eax
push 0
lea esi, [esp + 0x14c]
lea edi, [esp + 0x354]
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x401369
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x401351
pop edi
mov edx, 0x5c
lea eax, [esp + 0x348]
lea esi, [esp + 0x348]
lea edi, [esp + 0x244]
call fcn.00401990
mov byte [eax], 0
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x4013a5
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x40138d
pop edi
mov esi, 0x4010a1
lea edi, [esp + 0x244]
push edi
sub ecx, ecx
dec ecx
mov al, 0
repne scasb al, byte es:[edi]
dec edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x4013d3
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x4013bb
pop edi
mov esi, 0x401046
lea edi, [esp + 0x244]
push edi
sub ecx, ecx
dec ecx
mov al, 0
repne scasb al, byte es:[edi]
dec edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x401401
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x4013e9
pop edi
mov eax, esp
push eax
lea eax, [esp + 0x248]
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
cmp eax, 0xffffffff
je 0x4015e2
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov eax, 3
call fcn.004018a0
push 0x24
push ebx
push eax
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
cmp eax, 7
je 0x401611
push 0
push 0x401300
push 0
push 0x401098
mov eax, dword [esp + 0x584]
push eax
call dword [sym.imp.USER32.DLL_CreateDialogParamA]
mov edx, 0x5c
mov ebp, eax
mov dword [esp + 0x558], eax
lea eax, [esp + 0x140]
call fcn.00401990
lea ebx, [eax + 1]
lea edx, [esp + 0x348]
mov eax, ebp
call fcn.004010d0
lea eax, [esp + 0x550]
push eax
push 2
push 0
call dword [sym.imp.SHELL32.DLL_SHGetSpecialFolderLocation]
test eax, eax
jl 0x40156b
lea eax, [esp + 0x44c]
push eax
mov edx, dword [esp + 0x554]
push edx
call dword [sym.imp.SHELL32.DLL_SHGetPathFromIDListA]
test eax, eax
je 0x40156b
lea edi, [esp + 0x44c]
sub ecx, ecx
dec ecx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x44c]
mov esi, 0x401013
add eax, ecx
lea edx, [esp + 0x44c]
mov dword [esp + 0x554], eax
lea ecx, [eax + 1]
xor ebx, ebx
mov edi, ecx
mov byte [eax], 0x5c
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x401511
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x4014f9
pop edi
mov eax, ebp
call fcn.004010d0
lea eax, [esp + 0x44c]
mov dword [esp + 0x554], ecx
push eax
mov esi, 0x401027
xor ebx, ebx
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x40154e
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x401536
pop edi
lea edx, [esp + 0x44c]
mov eax, ebp
call fcn.004010d0
lea eax, [esp + 0x44c]
push eax
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
push 4
push 0
lea eax, [esp + 0x148]
push eax
call dword [sym.imp.KERNEL32.DLL_MoveFileExA]
push 4
push 0
lea eax, [esp + 0x350]
push eax
call dword [sym.imp.KERNEL32.DLL_MoveFileExA]
push 0x401053
push 0x80000002
call dword [sym.imp.ADVAPI32.DLL_RegDeleteKeyA]
push 0
mov ebx, dword [esp + 0x55c]
push ebx
call dword [sym.imp.USER32.DLL_EndDialog]
mov eax, 4
call fcn.004018a0
push 0
mov esi, dword [esp + 0x560]
push esi
push eax
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
mov eax, esi
call fcn.00401970
xor eax, eax
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov eax, 2
call fcn.004018a0
push 0x10
push ebx
push eax
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
mov eax, ebx
call fcn.00401970
mov eax, 1
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov eax, ebx
call fcn.00401970
xor eax, eax
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10