Function at 0x4014c0
Capabilities:
Check mutex on windows
Clear file content
Copy file
Create directory
Create process on windows
Create process suspended
Delete directory
Delete file
Get common file path
Get file size
Move file
Read file on windows
Write and execute a file
Write file on windows

Disassembly:
mov eax, 0x1218
call fcn.004029e0
push ebx
mov ebx, dword [esp + 0x1220]
push ebp
push esi
lea eax, [esp + 0x24]
push edi
push eax
mov dword [0x40e724], ebx
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push str.Panasonic_UnPacker_Exclusive_Mutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebp, eax
push 0x3e8
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x401530
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov ecx, dword [esp + 0x1234]
push ecx
call fcn.00401d40
add esp, 4
lea edx, [esp + 0x4e0]
push 0x104
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x4e0]
lea ecx, [esp + 0x7ec]
push eax
push 0x40a0a0
push ecx
call fcn.00402988
add esp, 0xc
lea edx, [esp + 0x4e0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [esp + 0x4e0]
push eax
push 0x40a0a0
push 0x40e51c
call fcn.00402988
add esp, 0xc
push 0x40e51c
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
push 0
push 0x80
push 3
push 0
push 1
lea ecx, [esp + 0x800]
push SysReAllocString
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
test esi, esi
jne 0x40162b
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0xb8]
push 0xc8
push edx
push 2
push ebx
call esi
lea eax, [esp + 0x30]
push 0x64
push eax
push 1
push ebx
call esi
lea ecx, [esp + 0x30]
push 0x40
lea edx, [esp + 0xbc]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test ebp, ebp
je 0x4017f2
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
lea eax, [esp + 0x20]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
sub eax, 8
push 0
sbb ecx, 0
push ecx
push eax
push esi
call edi
lea ecx, [esp + 0x10]
push 0
push ecx
lea edx, [esp + 0x20]
push 8
push edx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x10], 8
je 0x401684
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 2
jmp 0x401740
lea ecx, [esp + 0x5e4]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x4016d3
lea edx, [esp + 0xb8]
push 0xc8
push edx
push 8
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
push ebx
call edi
lea eax, [esp + 0x30]
push 0x64
push eax
push 1
push ebx
call edi
lea ecx, [esp + 0x30]
push 0x30
lea edx, [esp + 0xbc]
push ecx
push edx
jmp 0x401764
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push 0
push eax
push ecx
push esi
call edi
lea edx, [esp + 0xaf8]
push edx
push esi
call fcn.00401ef0
add esp, 8
test eax, eax
je 0x401731
lea ecx, [esp + 0x6e8]
push ecx
push esi
call fcn.00401ef0
add esp, 8
test eax, eax
jne 0x40171f
lea edx, [esp + 0xb8]
push 0xc8
push edx
push 4
jmp 0x4016aa
push 0x40e620
push esi
call fcn.00401ef0
add esp, 8
test eax, eax
jne 0x40177b
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 4
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
push ebx
call edi
lea ecx, [esp + 0x30]
push 0x64
push ecx
push 1
push ebx
call edi
lea edx, [esp + 0x30]
push 0x30
push edx
lea eax, [esp + 0xc0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
test ebp, ebp
je 0x4017f2
jmp 0x4017e8
mov edi, 0x40e728
push edi
push esi
call fcn.00401ef0
add esp, 8
test eax, eax
je 0x4017a0
mov cl, byte [edi]
add edi, 0x14
cmp cl, 0x23
je 0x401801
cmp edi, 0x40e8b8
jl 0x401780
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0xb8]
push 0xc8
push ecx
push 4
push ebx
call edi
lea edx, [esp + 0x30]
push 0x64
push edx
push 1
push ebx
call edi
lea eax, [esp + 0x30]
push 0x30
lea ecx, [esp + 0xbc]
push eax
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
test ebp, ebp
je 0x4017f2
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov edi, 0x40e8b8
push edi
push esi
call fcn.00401ef0
add esp, 8
test eax, eax
je 0x401731
mov eax, edi
push 0x40a09c
push eax
add edi, 0x100
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x40183d
cmp edi, 0x40f3b8
jl 0x401806
jmp 0x401731
cmp byte [0x40e728], 0x23
jne 0x401891
mov dword [0x40a084], 0
push 0
push 0x401f60
push 0
push 0x66
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [0x40f3b8]
test eax, eax
jne 0x401901
lea edx, [esp + 0xb8]
push 0xc8
push edx
push 0x10
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x40
push 0x40e620
jmp 0x40175c
mov eax, dword [0x40a084]
test eax, eax
je 0x401850
call fcn.00401d80
test eax, eax
je 0x4018c9
call fcn.00401df0
test eax, eax
je 0x4018c9
push 0x40a09c
push 0x40e8b8
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x401850
call fcn.004025a0
test eax, eax
jne 0x401850
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0xb8]
push 0xc8
push edx
push 3
push ebx
call edi
lea eax, [esp + 0x30]
push 0x64
push eax
push 1
push ebx
call edi
push 0x30
lea ecx, [esp + 0xbc]
push 0x40e620
push ecx
jmp 0x401764
lea ecx, [esp + 0x6e8]
push ecx
call fcn.00402290
add esp, 4
test eax, eax
je 0x40186f
lea ecx, [esp + 0xaf8]
lea edx, [esp + 0x5e4]
push ecx
lea eax, [esp + 0x2dc]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
lea ecx, [esp + 0xd00]
lea edx, [esp + 0x2d8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x4019c1
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 5
push ebx
call edi
lea ecx, [esp + 0x30]
push 0x64
push ecx
push 1
push ebx
call edi
lea edx, [esp + 0x2d8]
lea eax, [esp + 0xb8]
push edx
lea ecx, [esp + 0x9f8]
push eax
push ecx
call fcn.00402988
add esp, 0xc
lea edx, [esp + 0x30]
lea eax, [esp + 0x9f4]
push 0x30
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x40176c
push 0
push 0x80
push 4
push 0
push 1
lea edx, [esp + 0x2ec]
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4019fc
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 6
jmp 0x401740
mov dword [esp + 0x10], 1
lea ecx, [esp + 0x10]
push 0
push ecx
lea edx, [esp + 0xe48]
push 0x3e8
push edx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [esp + 0x94]
push 0
mov ecx, dword [esp + 0x14]
push eax
lea edx, [esp + 0xe48]
push ecx
push edx
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x401a04
or ecx, 0xffffffff
push 2
mov eax, 0xfffffff8
push 0
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push edi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push esi
call edi
lea eax, [esp + 0xbfc]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [esp + 0x8f0]
lea edx, [esp + 0x5e4]
push ecx
push 0
push str.unpack
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0x8f0]
lea ecx, [esp + 0x5e4]
push eax
lea edx, [esp + 0x1d8]
push ecx
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x1d4]
push eax
call esi
lea ecx, [esp + 0x1d4]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x190]
lea edx, [esp + 0x180]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x190]
push edx
lea ecx, [esp + 0x1d8]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
lea edx, [esp + 0x2f8]
push 0x40a090
push edx
mov dword [esp + 0x1b8], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x401b87
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 7
push ebx
call edi
lea ecx, [esp + 0x30]
push 0x64
push ecx
push 1
push ebx
call edi
lea edx, [esp + 0x30]
push 0x30
lea eax, [esp + 0xbc]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x2d8]
push ecx
call esi
lea edx, [esp + 0x1d4]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x401606
mov eax, dword [esp + 0x180]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov cl, byte [0x40f3bc]
xor eax, eax
mov byte [esp + 0x3dc], cl
mov ecx, 0x40
lea edi, [esp + 0x3dd]
lea edx, [esp + 0x3dc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edi, [esp + 0x1d4]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x9c], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x98], eax
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x3dc]
and ecx, 3
mov word [esp + 0xa8], 0x210
rep movsb byte es:[edi], byte [esi]
mov edi, str..
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0xb2], 0x40f3bc
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x98]
and ecx, 3
lea eax, [esp + 0x3dc]
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6e8]
push edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
test eax, eax
je 0x401cc4
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0xb8]
push 0xc8
push eax
push 9
push ebx
call esi
lea ecx, [esp + 0x30]
push 0x64
push ecx
push 1
push ebx
call esi
lea edx, [esp + 0x30]
push 0x30
lea eax, [esp + 0xbc]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x1d4]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x401606
lea edx, [esp + 0x1d4]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [esp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0xb8]
push 0xc8
push ecx
push 0xa
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x40
lea edx, [esp + 0xbc]
push 0x40e620
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
test ebp, ebp
je 0x401d1f
push ebp
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1218
ret 0x10