Function at 0x140012720
Capabilities:
Copy file
Create process on windows
Delete file
Get common file path
Move file
Set current directory

Disassembly:
sub rsp, 0x2a8
mov rax, qword [0x140031008]
xor rax, rsp
mov qword [rsp + 0x290], rax
cmp word [rcx], 0x2f
je 0x140012759
xor eax, eax
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140013ba0
add rsp, 0x2a8
ret
movzx edx, word [rcx + 2]
add rcx, 2
mov qword [rsp + 0x2b8], rbx
mov r8d, 0xffdf
mov qword [rsp + 0x2c0], rsi
mov qword [rsp + 0x2a0], rdi
lea eax, [rdx - 0x52]
test r8w, ax
je 0x140012926
cmp dx, 0x78
jne 0x14001291f
mov edx, 0x2f
call fcn.140014f84
xor ebx, ebx
mov rsi, rax
test rax, rax
je 0x140012872
add rsi, 2
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov rdx, rax
lea rcx, [0x14003b490]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdi, [0x14003bac0]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, [0x14003b490]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
test rax, rax
je 0x140012868
mov r9d, 0x12c
lea r8, [rsp + 0x30]
mov edx, r9d
mov rcx, rax
call qword [sym.imp.USER32.dll_LoadStringW]
cmp eax, 4
jne 0x14001285f
cmp word [rsp + 0x32], 0x2e
jne 0x14001285f
movzx eax, word [rsp + 0x34]
movzx ecx, word [rsp + 0x30]
shl ecx, 8
add ecx, eax
movzx eax, word [rsp + 0x36]
shl ecx, 8
add ecx, eax
shl ecx, 8
sub ecx, 0x30303000
cmp ecx, 0x4000500
jae 0x14001286b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rdi, rbx
mov qword [0x140033138], rdi
call fcn.14000eb20
test eax, eax
jne 0x140012885
mov ecx, 0x394
jmp 0x140012aca
mov rax, qword [0x140033138]
lea r9, [0x140013450]
mov rcx, qword [0x140033570]
test rax, rax
mov edx, 0x389
mov qword [rsp + 0x20], rbx
cmovne rcx, rax
xor r8d, r8d
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov r8d, 0x104
lea rdx, [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor edx, edx
lea rcx, [rsp + 0x30]
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test rsi, rsi
je 0x140012acf
mov rcx, qword [0x140033138]
test rcx, rcx
je 0x1400128fa
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x140033138], rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140012acf
xor edx, edx
lea r8d, [rax + 4]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x140012acf
xor eax, eax
jmp 0x140012ad4
mov rax, qword [0x140033138]
lea rdi, [0x14003bac0]
mov rcx, qword [0x140033570]
test rax, rax
mov r9d, 0x104
mov r8, rdi
cmovne rcx, rax
mov edx, 0x398
call qword [sym.imp.USER32.dll_LoadStringW]
mov rsi, qword [0x140033590]
xor ebx, ebx
mov rcx, qword [0x1400330c8]
test rsi, rsi
je 0x140012970
mov rbx, rsi
jmp 0x14001298a
call qword [sym.imp.USER32.dll_IsWindowVisible]
mov rcx, qword [0x1400330c8]
test eax, eax
mov rsi, qword [0x140033590]
cmovne rbx, rcx
mov qword [0x140033590], rcx
lea r8, [0x140029ee8]
mov rcx, rbx
mov r9d, 0x41
mov rdx, rdi
call qword [sym.imp.USER32.dll_MessageBoxW]
mov qword [0x140033590], rsi
cmp eax, 1
jne 0x140012acf
mov rdx, rdi
mov ecx, 0x208
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea r9, [0x14003b6a0]
xor r8d, r8d
lea rdx, [0x14002c5a8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea rcx, [0x14003b6a0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, str..exe
lea rcx, [0x14003b6a0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov r8d, 0x104
lea rdx, [0x14003b490]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor r8d, r8d
lea rdx, [0x14003b6a0]
lea rcx, [0x14003b490]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
cmp word [0x14003aa40], 0
je 0x140012a92
lea r9, [0x14003b490]
xor r8d, r8d
lea rdx, [0x14002c5a8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
xor r8d, r8d
lea rdx, [0x14003b490]
lea rcx, [0x14003aa40]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rdx, [0x14002c5bc]
lea rcx, [0x140031b40]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [0x14003b490]
lea rcx, [0x140031b40]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea r9, [0x140031b40]
mov dword [rsp + 0x28], 1
lea r8, [0x14003b6a0]
mov qword [rsp + 0x20], rdi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
test rax, rax
jne 0x140012acf
mov ecx, 0x393
call fcn.140001440
mov eax, 1
mov rsi, qword [rsp + 0x2c0]
mov rbx, qword [rsp + 0x2b8]
mov rdi, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.140013ba0
add rsp, 0x2a8
ret