core::intrinsics::copy_nonoverlapping::precondition_check::h66731fb7d226cdc3:
sub rsp, 152
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 32], rcx
mov qword ptr [rsp + 40], r8
cmp rdi, 0
jne .LBB0_2
jmp .LBB0_3
.LBB0_2:
mov rcx, qword ptr [rsp + 32]
mov rax, rcx
shr rax
movabs rdx, 6148914691236517205
and rax, rdx
sub rcx, rax
movabs rdx, 3689348814741910323
mov rax, rcx
and rax, rdx
shr rcx, 2
and rcx, rdx
add rax, rcx
mov rcx, rax
shr rcx, 4
add rax, rcx
movabs rcx, 1085102592571150095
and rax, rcx
movabs rcx, 72340172838076673
imul rax, rcx
shr rax, 56
mov dword ptr [rsp + 144], eax
cmp dword ptr [rsp + 144], 1
je .LBB0_4
jmp .LBB0_5
.LBB0_3:
jmp .LBB0_7
.LBB0_4:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 32]
sub rcx, 1
and rax, rcx
cmp rax, 0
je .LBB0_6
jmp .LBB0_3
.LBB0_5:
lea rax, [rip + .L__unnamed_1]
mov qword ptr [rsp + 48], rax
mov qword ptr [rsp + 56], 1
mov rcx, qword ptr [rip + .L__unnamed_2]
mov rax, qword ptr [rip + .L__unnamed_2+8]
mov qword ptr [rsp + 80], rcx
mov qword ptr [rsp + 88], rax
mov qword ptr [rsp + 64], 8
mov qword ptr [rsp + 72], 0
lea rsi, [rip + .L__unnamed_3]
mov rax, qword ptr [rip + core::panicking::panic_fmt::h3d8fc78294164da7@GOTPCREL]
lea rdi, [rsp + 48]
call rax
jmp .LBB0_18
.LBB0_6:
mov rax, qword ptr [rsp + 16]
cmp rax, 0
je .LBB0_8
jmp .LBB0_9
.LBB0_7:
lea rdi, [rip + .L__unnamed_4]
mov rax, qword ptr [rip + core::panicking::panic_nounwind::hb98133c151c787e4@GOTPCREL]
mov esi, 166
call rax
.LBB0_8:
jmp .LBB0_10
.LBB0_9:
mov rcx, qword ptr [rsp + 32]
mov rax, rcx
shr rax
movabs rdx, 6148914691236517205
and rax, rdx
sub rcx, rax
movabs rdx, 3689348814741910323
mov rax, rcx
and rax, rdx
shr rcx, 2
and rcx, rdx
add rax, rcx
mov rcx, rax
shr rcx, 4
add rax, rcx
movabs rcx, 1085102592571150095
and rax, rcx
movabs rcx, 72340172838076673
imul rax, rcx
shr rax, 56
mov dword ptr [rsp + 148], eax
cmp dword ptr [rsp + 148], 1
je .LBB0_11
jmp .LBB0_12
.LBB0_10:
jmp .LBB0_7
.LBB0_11:
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 32]
sub rcx, 1
and rax, rcx
cmp rax, 0
je .LBB0_13
jmp .LBB0_10
.LBB0_12:
lea rax, [rip + .L__unnamed_1]
mov qword ptr [rsp + 96], rax
mov qword ptr [rsp + 104], 1
mov rcx, qword ptr [rip + .L__unnamed_2]
mov rax, qword ptr [rip + .L__unnamed_2+8]
mov qword ptr [rsp + 128], rcx
mov qword ptr [rsp + 136], rax
mov qword ptr [rsp + 112], 8
mov qword ptr [rsp + 120], 0
lea rsi, [rip + .L__unnamed_3]
mov rax, qword ptr [rip + core::panicking::panic_fmt::h3d8fc78294164da7@GOTPCREL]
lea rdi, [rsp + 96]
call rax
jmp .LBB0_18
.LBB0_13:
mov rcx, qword ptr [rsp + 40]
mov rdx, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 16]
mov rdi, qword ptr [rsp + 8]
call core::ub_checks::is_nonoverlapping::runtime::he089e5cfaf8f2c8b
mov byte ptr [rsp + 7], al
jmp .LBB0_15
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind::he9511e6e72319a3e@GOTPCREL]
call rax
.LBB0_15:
mov al, byte ptr [rsp + 7]
test al, 1
jne .LBB0_17
jmp .LBB0_16
.LBB0_16:
jmp .LBB0_7
.LBB0_17:
add rsp, 152
ret
.LBB0_18:
ud2
core::intrinsics::unlikely::hf11d1a1277c7b0e5:
mov al, dil
and al, 1
movzx eax, al
ret
core::slice::<impl [T]>::copy_from_slice::h2d7dcecc35ce7fce:
sub rsp, 40
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 32], r8
cmp rsi, rcx
jne .LBB2_2
jmp .LBB2_3
.LBB2_2:
mov rdx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rip + core::slice::<impl [T]>::copy_from_slice::len_mismatch_fail::ha53e432951fc4fd6@GOTPCREL]
call rax
.LBB2_3:
mov r8, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp]
mov rdi, qword ptr [rsp + 16]
mov ecx, 1
mov rdx, rcx
call core::intrinsics::copy_nonoverlapping::precondition_check::h66731fb7d226cdc3
mov rsi, qword ptr [rsp + 16]
mov rdi, qword ptr [rsp]
mov rdx, qword ptr [rsp + 8]
shl rdx, 0
call memcpy@PLT
add rsp, 40
ret
core::ub_checks::is_nonoverlapping::runtime::he089e5cfaf8f2c8b:
sub rsp, 72
mov rax, rdx
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rsi
mul rcx
mov qword ptr [rsp + 32], rax
seto al
and al, 1
mov byte ptr [rsp + 71], al
test byte ptr [rsp + 71], 1
jne .LBB3_2
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov qword ptr [rsp + 48], rdx
mov qword ptr [rsp + 40], 1
mov rdx, qword ptr [rsp + 48]
mov qword ptr [rsp + 8], rdx
cmp rax, rcx
jb .LBB3_4
jmp .LBB3_3
.LBB3_2:
lea rdi, [rip + .L__unnamed_5]
mov rax, qword ptr [rip + core::panicking::panic_nounwind::hb98133c151c787e4@GOTPCREL]
mov esi, 61
call rax
.LBB3_3:
mov rcx, qword ptr [rsp + 24]
mov rax, qword ptr [rsp + 16]
sub rax, rcx
mov qword ptr [rsp + 56], rax
jmp .LBB3_5
.LBB3_4:
mov rcx, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 24]
sub rax, rcx
mov qword ptr [rsp + 56], rax
.LBB3_5:
mov rax, qword ptr [rsp + 8]
cmp qword ptr [rsp + 56], rax
setae al
and al, 1
movzx eax, al
add rsp, 72
ret
example::foo::hdd7159dab7a83506:
push rax
mov dword ptr [rsp + 4], 0
lea rdx, [rip + .L__unnamed_6]
mov ecx, 4
lea rdi, [rsp + 4]
mov esi, 4
lea r8, [rip + .L__unnamed_7]
call qword ptr [rip + core::slice::<impl [T]>::copy_from_slice::h2d7dcecc35ce7fce@GOTPCREL]
pop rax
ret
.L__unnamed_4:
.ascii "unsafe precondition(s) violated: ptr::copy_nonoverlapping requires that both pointer arguments are aligned and non-null and the specified memory ranges do not overlap"
.L__unnamed_8:
.ascii "is_aligned_to: align is not a power-of-two"
.L__unnamed_1:
.quad .L__unnamed_8
.asciz "*\000\000\000\000\000\000"
.L__unnamed_2:
.zero 8
.zero 8
.L__unnamed_9:
.ascii "/rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/ptr/const_ptr.rs"
.L__unnamed_3:
.quad .L__unnamed_9
.asciz "Q\000\000\000\000\000\000\000\031\006\000\000\r\000\000"
.L__unnamed_5:
.ascii "is_nonoverlapping: `size_of::<T>() * count` overflows a usize"
.L__unnamed_6:
.ascii "abcd"
.L__unnamed_10:
.ascii "/app/example.rs"
.L__unnamed_7:
.quad .L__unnamed_10
.asciz "\017\000\000\000\000\000\000\000\n\000\000\000\025\000\000"
DW.ref.rust_eh_personality:
.quad rust_eh_personality