Function at 0x140001000
Capabilities:
Copy file
Move file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
movsxd r10, ecx
cmp r10d, 2
jl 0x140001049
xor ebx, ebx
lea r9d, [r10 - 1]
mov edi, ebx
mov eax, ebx
test r9d, r9d
jle 0x140001066
mov r8, rdx
nop word [rax + rax]
mov rcx, qword [r8]
cmp byte [rcx], 0x2d
jne 0x14000103e
cmp byte [rcx + 1], 0x69
je 0x14000105e
inc eax
add r8, 8
cmp eax, r9d
jl 0x140001030
mov eax, 1
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
movsxd rcx, eax
mov rdi, qword [rdx + rcx*8 + 8]
mov rsi, qword [rdx + r10*8 - 8]
test rdi, rdi
je 0x140001049
cmp rdi, rsi
je 0x140001049
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateHardLinkA]
test eax, eax
jne 0x14000118c
xor ecx, ecx
call qword [sym.imp.MSVCP140.dll_public:_static_bool___cdecl_std::ios_base::sync_with_stdio_bool_]
mov rdx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rdx]
movsxd rcx, dword [rax + 4]
mov qword [rcx + rdx + 0x50], rbx
mov rdx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov rax, qword [rdx]
movsxd rcx, dword [rax + 4]
mov qword [rcx + rdx + 0x50], rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.CreateHardLinkA_failed_with_error
mov ebx, eax
call fcn.140001210
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x1400032f0]
call fcn.140001210
mov r8d, 9
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x14000118c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.MoveFileExA_failed_with_error
mov ebx, eax
call fcn.140001210
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x1400032f0]
call fcn.140001210
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x14000118c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.CopyFileA_failed_with_error
mov ebx, eax
call fcn.140001210
mov rcx, rax
mov edx, ebx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x1400013e0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140001049
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret