Function at 0x5013f0
Capabilities:
Check if file exists
Create process on windows
Delete directory
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ab76b
mov eax, dword fs:[0]
push eax
mov eax, 0x1abc
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1a74], esi
cmp byte [esi + 8], 0
jne 0x501436
xor eax, eax
jmp 0x50199d
cmp dword [esi + 4], 1
je 0x501446
mov eax, 1
jmp 0x50199d
push 0x800
lea eax, [ebp - 0xa18]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1a18]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
add esp, 0x24
lea eax, [esi + 0xc]
lea ecx, [ebp - 0x1a6c]
push eax
call fcn.00500d40
push 0x400
lea eax, [ebp - 0xa18]
mov dword [ebp - 4], 0
push eax
push 0
mov ecx, esi
call fcn.005027c0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x50151e
push 0x104
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
call edi
mov esi, eax
lea eax, [ebp - 0x218]
push eax
call edi
add esi, eax
cmp esi, 0x104
jae 0x50151e
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x501544
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x501678
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1218]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1218]
add esp, 0x18
mov ecx, dword [ecx + 0x1c]
push eax
push str.TEMPPATH
call fcn.004f65f0
lea eax, [ebp - 0x1218]
push eax
call edi
push str.PMON
mov esi, eax
call edi
push 0x5c692c
add esi, eax
call edi
push 0x5c692c
add esi, eax
call edi
add eax, esi
cmp eax, 0x400
jae 0x501678
mov esi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0x1218]
push eax
call esi
push str.PMON
lea eax, [ebp - 0x1218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x1218]
push eax
call esi
lea eax, [ebp - 0x1218]
push eax
call edi
cmp eax, 0x400
jae 0x501678
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0x1218]
push 0x400
push eax
lea eax, [ebp - 0x1a18]
push eax
call esi
test eax, eax
je 0x501678
push 0x104
lea eax, [ebp - 0x1a18]
push eax
lea eax, [ebp - 0x218]
push eax
call esi
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
call edi
mov esi, eax
lea eax, [ebp - 0x218]
push eax
call edi
add esi, eax
cmp esi, 0x104
jae 0x501678
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x501773
xor eax, eax
mov dword [ebp - 0x1ac8], 0x44
mov word [ebp - 0x1a86], ax
xorps xmm0, xmm0
mov word [ebp - 0x1a98], ax
lea eax, [ebp - 0x1a84]
push eax
lea eax, [ebp - 0x1ac8]
movlpd qword [ebp - 0x1ac4], xmm0
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x218]
movlpd qword [ebp - 0x1abc], xmm0
push eax
movlpd qword [ebp - 0x1ab4], xmm0
movlpd qword [ebp - 0x1aac], xmm0
movlpd qword [ebp - 0x1aa4], xmm0
movlpd qword [ebp - 0x1a96], xmm0
movlpd qword [ebp - 0x1a8e], xmm0
movups xmmword [ebp - 0x1a84], xmm0
mov dword [ebp - 0x1a9c], 1
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x501727
xor esi, esi
jmp 0x50196f
push dword [ebp - 0x1a80]
mov esi, dword [ebp - 0x1a84]
mov dword [ebp - 0x1a70], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x50175f
lea eax, [ebp - 0x1a70]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1a74]
mov dword [eax + 4], 2
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x50196a
push 0x104
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
call edi
mov esi, eax
lea eax, [ebp - 0x218]
push eax
call edi
add esi, eax
cmp esi, 0x104
jae 0x5017ef
cmp dword [ebp - 0x1a40], 8
lea eax, [ebp - 0x1a54]
cmovae eax, dword [ebp - 0x1a54]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x501830
push 0x20
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor esi, esi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x501830
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x64
jl 0x501811
push 0x104
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp dword [ebp - 0x1a28], 8
lea eax, [ebp - 0x1a3c]
cmovae eax, dword [ebp - 0x1a3c]
push eax
call edi
mov esi, eax
lea eax, [ebp - 0x218]
push eax
call edi
add esi, eax
cmp esi, 0x104
jae 0x501897
cmp dword [ebp - 0x1a28], 8
lea eax, [ebp - 0x1a3c]
cmovae eax, dword [ebp - 0x1a3c]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x5018c4
push 0x20
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x104
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push str.MFNP_ALRDY_INST.ini
call edi
mov esi, eax
lea eax, [ebp - 0x218]
push eax
call edi
add esi, eax
cmp esi, 0x104
jae 0x50190b
push str.MFNP_ALRDY_INST.ini
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x501938
push 0x20
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea eax, [ebp - 0xa18]
push eax
call esi
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xa18]
push eax
push str.UNINSTALLDEFAULTPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea eax, [ebp - 0xa18]
push eax
call esi
mov esi, 1
lea ecx, [ebp - 0x1a24]
call fcn.00409b00
lea ecx, [ebp - 0x1a3c]
call fcn.00403570
lea ecx, [ebp - 0x1a54]
call fcn.00403570
lea ecx, [ebp - 0x1a6c]
call fcn.00403570
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret