Function at 0x1400045c0
Capabilities:
Copy file

Disassembly:
push r15
mov eax, 0x1148
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140008000
sub rsp, rax
movups xmmword [rsp + 0x1130], xmm6
xor eax, eax
pxor xmm6, xmm6
mov r12, qword [rdx]
mov qword [rsp + 0x11a0], r8
lea rbx, [rsp + 0x50]
mov r14, rdx
mov r13d, r9d
mov dword [rsp + 0x1190], ecx
mov ecx, 0x83
mov rdx, qword [rsp + 0x11a0]
lea rdi, [rsp + 0x4d0]
rep stosq qword [rdi], rax
mov rcx, rbx
lea r8, [rsp + 0x478]
lea rbp, [rsp + 0x4d0]
movups xmmword [rsp + 0x490], xmm6
mov rdi, rbp
mov rsi, rbx
mov qword [rsp + 0x4a0], 0
mov qword [rsp + 0x478], 0
mov qword [rsp + 0x480], 0
call sym.tb_io_last_mod
mov ecx, 0x83
rep movsq qword [rdi], qword [rsi]
mov r9d, dword [rsp + 0x4e0]
test r9d, r9d
jne 0x140004ada
mov rcx, rbx
mov rdx, r12
mov rdi, rbp
mov rsi, rbx
lea r8, [rsp + 0x480]
call sym.tb_io_last_mod
mov ecx, 0x83
rep movsq qword [rdi], qword [rsi]
mov r8d, dword [rsp + 0x4e0]
test r8d, r8d
jne 0x140004ada
mov rax, qword [rsp + 0x480]
cmp qword [rsp + 0x478], rax
jle 0x1400048a8
test r13b, r13b
jne 0x140004960
lea rdx, str._s.old
mov r8, r12
lea rcx, [rsp + 0x4b0]
mov qword [rsp + 0x4c0], 0
movups xmmword [rsp + 0x4b0], xmm6
call sym.tb_sb_appendf
mov rsi, qword [rsp + 0x4c0]
mov rdx, qword [rsp + 0x4b8]
lea rdi, [rsi + 1]
cmp rdx, rdi
jb 0x140004a70
mov r15, qword [rsp + 0x4b0]
mov byte [r15 + rsi], 0
xor r8d, r8d
mov rdx, r15
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x1400048c8
lea r10, [rsp + 0x8f0]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r10
call sym.tb_err.constprop.0
mov rsi, r10
mov ecx, 0x83
mov rdi, rbp
rep movsq qword [rdi], qword [rsi]
mov rcx, r15
call sym.free
mov ecx, dword [rsp + 0x4e0]
test ecx, ecx
jne 0x140004b53
mov ecx, 0x2000
mov qword [rsp + 0x498], 0x400
call sym.malloc
mov qword [rsp + 0x490], rax
test rax, rax
je 0x140004b01
lea rdx, [0x1400103ea]
lea rsi, [0x1400103e6]
mov rcx, rbx
mov rdi, rbp
movq xmm1, rdx
movq xmm0, rsi
mov rsi, rbx
mov qword [rsp + 0x4a0], 4
punpcklqdq xmm0, xmm1
lea r15, [rsp + 0x490]
movups xmmword [rax], xmm0
movq xmm0, r12
movzx r12d, r13b
mov rdx, r15
movhps xmm0, qword [rsp + 0x11a0]
mov r8d, r12d
movups xmmword [rax + 0x10], xmm0
call sym.tb_cmd_exec_sync
mov ecx, 0x83
rep movsq qword [rdi], qword [rsi]
mov edx, dword [rsp + 0x4e0]
test edx, edx
jne 0x140004b2a
test r13b, r13b
jne 0x140004a58
mov rax, qword [rsp + 0x498]
movsxd rsi, dword [rsp + 0x1190]
mov qword [rsp + 0x4a0], 0
mov rdi, qword [rsp + 0x490]
cmp rax, rsi
jb 0x1400049f0
lea r8, [rsi*8]
mov rcx, rdi
mov rdx, r14
mov rdi, rbp
call sym.memcpy
mov r8d, r12d
mov rdx, r15
mov rcx, rbx
mov qword [rsp + 0x4a0], rsi
mov rsi, rbx
call sym.tb_cmd_exec_sync
mov ecx, 0x83
rep movsq qword [rdi], qword [rsi]
mov rcx, qword [rsp + 0x490]
call sym.free
mov eax, dword [rsp + 0x4e0]
test eax, eax
jne 0x140004b3e
xor ecx, ecx
call sym.exit
nop
nop dword [rax]
movups xmm6, xmmword [rsp + 0x1130]
add rsp, 0x1148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rsi, [rsp + 0xd10]
mov r9d, 0x400
xor edx, edx
mov edi, eax
mov ecx, 0x1300
lea rax, [rsp + 0x488]
mov qword [rsp + 0x488], 0
mov r8d, edi
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r8d, edi
mov rcx, rsi
mov edx, 1
mov r9, qword [rsp + 0x488]
call sym.tb_err
mov rcx, qword [rsp + 0x488]
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea r10, [rsp + 0x8f0]
mov ecx, 0x83
mov rdi, r10
rep movsq qword [rdi], qword [rsi]
jmp 0x140004754
lea rdx, str.Build_sources_change_detected._Rebuilding...
mov ecx, 2
call sym.tb_logf
lea rdx, str._s.old
mov r8, r12
lea rcx, [rsp + 0x4b0]
mov qword [rsp + 0x4c0], 0
movups xmmword [rsp + 0x4b0], xmm6
call sym.tb_sb_appendf
mov rsi, qword [rsp + 0x4c0]
mov rdx, qword [rsp + 0x4b8]
lea rdi, [rsi + 1]
cmp rdx, rdi
jb 0x140004aa8
mov r15, qword [rsp + 0x4b0]
mov byte [r15 + rsi], 0
mov qword [rsp + 0x20], r15
mov r9d, edi
mov r8, r12
mov ecx, 2
lea rdx, str.Copying__s_____.s
call sym.tb_logf
jmp 0x140004725
mov edx, 0x400
cmp dword [rsp + 0x1190], edx
mov rcx, rdi
cmovge edx, dword [rsp + 0x1190]
movsxd rdx, edx
add rdx, rax
mov qword [rsp + 0x498], rdx
shl rdx, 3
call sym.realloc
mov qword [rsp + 0x490], rax
mov rdi, rax
test rax, rax
jne 0x140004849
mov r8d, 0x53d
lea rdx, str.._cli_.._common_tb.h
lea rcx, str.__cmd____items___NULL___Out_of_memory._
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x140004849
lea rdx, str.Restarting_program...
mov ecx, 2
call sym.tb_logf
jmp 0x14000481c
mov rcx, qword [rsp + 0x4b0]
add rdx, 0x400
call sym.realloc
mov qword [rsp + 0x4b0], rax
mov r15, rax
test rax, rax
je 0x140004b73
mov byte [r15 + rsi], 0
jmp 0x140004725
mov rcx, qword [rsp + 0x4b0]
add rdx, 0x400
call sym.realloc
mov qword [rsp + 0x4b0], rax
mov r15, rax
test rax, rax
je 0x140004b73
mov byte [r15 + rsi], 0
jmp 0x1400049c6
test r13b, r13b
jne 0x140004ae9
mov ecx, 1
call sym.exit
lea r8, [rsp + 0x4e4]
lea rdx, str.Could_not_get_last_modified_time_for_source:__s
xor ecx, ecx
call sym.tb_logf
jmp 0x140004adf
mov qword [rsp + 0x48], rax
mov r8d, 0x52a
lea rdx, str.._cli_.._common_tb.h
lea rcx, str.___cmd_____items___NULL___Out_of_memory._
call qword [sym.imp.msvcrt.dll__assert]
mov rax, qword [rsp + 0x48]
jmp 0x1400047a0
test r13b, r13b
jne 0x140004ba1
mov rcx, qword [rsp + 0x490]
call sym.free
jmp 0x140004adf
test r13b, r13b
je 0x140004adf
lea rdx, str.Could_not_restart_program._Please_restart_it_manually.
xor ecx, ecx
call sym.tb_logf
jmp 0x140004adf
test r13b, r13b
je 0x140004adf
lea r8, [rsp + 0x4e4]
lea rdx, str.Could_not_copy_binary_file:__s
xor ecx, ecx
call sym.tb_logf
jmp 0x140004adf
mov r8d, 0x517
lea rdx, str.._cli_.._common_tb.h
lea rcx, str.___bin_old_path_____items___NULL___Out_of_memory._
xor r15d, r15d
call qword [sym.imp.msvcrt.dll__assert]
mov byte [rsi], 0
test r13b, r13b
je 0x140004725
jmp 0x1400049c6
lea rdx, str.Rebuild_failed.
call sym.tb_logf
jmp 0x140004b2f