Function at 0x4012f0
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.004017c0
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 0x401349
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x401331
pop edi
mov edx, 0x5c
lea eax, [esp + 0x348]
lea esi, [esp + 0x348]
lea edi, [esp + 0x244]
call fcn.00401860
mov byte [eax], 0
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x401385
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x40136d
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 0x4013b3
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x40139b
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 0x4013e1
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x4013c9
pop edi
mov eax, esp
push eax
lea eax, [esp + 0x248]
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
cmp eax, 0xffffffff
je 0x4015c2
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov eax, 3
call fcn.00401790
push 0x24
push ebx
push eax
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
cmp eax, 7
je 0x4015f1
push 0
push 0x4012e0
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.00401860
lea ebx, [eax + 1]
lea edx, [esp + 0x348]
mov eax, ebp
call fcn.004010b0
lea eax, [esp + 0x550]
push eax
push 2
push 0
call dword [sym.imp.SHELL32.DLL_SHGetSpecialFolderLocation]
test eax, eax
jl 0x40154b
lea eax, [esp + 0x44c]
push eax
mov edx, dword [esp + 0x554]
push edx
call dword [sym.imp.SHELL32.DLL_SHGetPathFromIDListA]
test eax, eax
je 0x40154b
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 0x4014f1
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x4014d9
pop edi
mov eax, ebp
call fcn.004010b0
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 0x40152e
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x401516
pop edi
lea edx, [esp + 0x44c]
mov eax, ebp
call fcn.004010b0
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.00401790
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.00401840
xor eax, eax
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov eax, 2
call fcn.00401790
push 0x10
push ebx
push eax
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
mov eax, ebx
call fcn.00401840
mov eax, 1
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov eax, ebx
call fcn.00401840
xor eax, eax
add esp, 0x560
pop ebp
pop edi
pop esi
pop ebx
ret 0x10