Skip to content

Instantly share code, notes, and snippets.

@tylerarnold
Created November 15, 2023 16:21
Show Gist options
  • Save tylerarnold/27e9eac161432412038155b8d6a79ab4 to your computer and use it in GitHub Desktop.
Save tylerarnold/27e9eac161432412038155b8d6a79ab4 to your computer and use it in GitHub Desktop.
x86 assembly of rust atomic implementation with acquire /release semantics
<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold:
sub rsp, 56
mov rcx, rsi
mov rax, rdi
mov edi, dword ptr [rax + 8]
mov esi, dword ptr [rax + 12]
mov rax, qword ptr [rax]
mov rdx, qword ptr [rcx + 16]
mov qword ptr [rsp + 16], rdx
movups xmm0, xmmword ptr [rcx]
movaps xmmword ptr [rsp], xmm0
mov qword ptr [rsp + 24], rax
mov rax, qword ptr [rip + core::iter::traits::iterator::Iterator::fold@GOTPCREL]
mov rdx, rsp
call rax
jmp .LBB0_3
.LBB0_1:
xor eax, eax
test al, 1
jne .LBB0_5
jmp .LBB0_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB0_1
.LBB0_3:
add rsp, 56
ret
.LBB0_4:
xor eax, eax
test al, 1
jne .LBB0_7
jmp .LBB0_6
.LBB0_5:
jmp .LBB0_4
.LBB0_6:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
.LBB0_7:
jmp .LBB0_6
<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::size_hint:
push rax
mov rax, rdi
mov qword ptr [rsp], rax
add rsi, 8
call qword ptr [rip + core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::size_hint@GOTPCREL]
mov rax, qword ptr [rsp]
pop rcx
ret
<alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::next:
sub rsp, 168
mov qword ptr [rsp], rsi
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rdi
mov rax, qword ptr [rsi + 16]
cmp rax, qword ptr [rsi + 24]
je .LBB2_2
xor eax, eax
test al, 1
jne .LBB2_4
jmp .LBB2_3
.LBB2_2:
mov rax, qword ptr [rsp + 8]
mov qword ptr [rax], 0
jmp .LBB2_6
.LBB2_3:
mov rax, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp]
mov rcx, qword ptr [rdx + 16]
mov rsi, qword ptr [rdx + 16]
add rsi, 24
mov qword ptr [rdx + 16], rsi
mov rdx, qword ptr [rcx]
mov qword ptr [rsp + 48], rdx
mov rdx, qword ptr [rcx + 8]
mov qword ptr [rsp + 56], rdx
mov rcx, qword ptr [rcx + 16]
mov qword ptr [rsp + 64], rcx
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 56]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 64]
mov qword ptr [rax + 16], rcx
jmp .LBB2_5
.LBB2_4:
mov rax, qword ptr [rsp]
mov rcx, qword ptr [rax + 24]
add rcx, -1
mov qword ptr [rsp + 160], rcx
mov rcx, qword ptr [rsp + 160]
mov qword ptr [rsp + 80], rcx
mov rcx, qword ptr [rsp + 80]
mov qword ptr [rsp + 72], rcx
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rax + 24], rcx
lea rdi, [rip + str.0]
mov esi, 81
call qword ptr [rip + core::panicking::panic_nounwind@GOTPCREL]
lea rdi, [rsp + 112]
xor esi, esi
mov edx, 24
call memset@PLT
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 112]
mov qword ptr [rsp + 88], rcx
mov rcx, qword ptr [rsp + 120]
mov qword ptr [rsp + 96], rcx
mov rcx, qword ptr [rsp + 128]
mov qword ptr [rsp + 104], rcx
mov rcx, qword ptr [rsp + 88]
mov qword ptr [rsp + 136], rcx
mov rcx, qword ptr [rsp + 96]
mov qword ptr [rsp + 144], rcx
mov rcx, qword ptr [rsp + 104]
mov qword ptr [rsp + 152], rcx
mov rcx, qword ptr [rsp + 136]
mov qword ptr [rsp + 24], rcx
mov rcx, qword ptr [rsp + 144]
mov qword ptr [rsp + 32], rcx
mov rcx, qword ptr [rsp + 152]
mov qword ptr [rsp + 40], rcx
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 40]
mov qword ptr [rax + 16], rcx
.LBB2_5:
jmp .LBB2_6
.LBB2_6:
mov rax, qword ptr [rsp + 16]
add rsp, 168
ret
<alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::size_hint:
sub rsp, 72
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdi
mov qword ptr [rsp + 32], rdi
xor eax, eax
test al, 1
jne .LBB3_2
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rax + 24]
mov qword ptr [rsp], rcx
mov rax, qword ptr [rax + 16]
mov qword ptr [rsp + 8], rax
mov al, 1
test al, 1
jne .LBB3_4
jmp .LBB3_3
.LBB3_2:
mov rcx, qword ptr [rsp + 16]
mov rax, qword ptr [rcx + 24]
mov rcx, qword ptr [rcx + 16]
sub rax, rcx
mov qword ptr [rsp + 40], rax
jmp .LBB3_8
.LBB3_3:
mov byte ptr [rsp + 71], 0
jmp .LBB3_5
.LBB3_4:
mov byte ptr [rsp + 71], 1
.LBB3_5:
mov al, byte ptr [rsp + 71]
xor al, -1
test al, 1
jne .LBB3_7
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp]
sub rax, rcx
mov ecx, 24
xor edx, edx
div rcx
mov qword ptr [rsp + 40], rax
jmp .LBB3_8
.LBB3_7:
lea rdi, [rip + .L__unnamed_1]
lea rdx, [rip + .L__unnamed_2]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 73
call rax
ud2
.LBB3_8:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 40]
mov rsi, qword ptr [rsp + 40]
mov qword ptr [rsp + 56], rsi
mov qword ptr [rsp + 48], 1
mov qword ptr [rcx], rdx
mov rsi, qword ptr [rsp + 48]
mov rdx, qword ptr [rsp + 56]
mov qword ptr [rcx + 8], rsi
mov qword ptr [rcx + 16], rdx
add rsp, 72
ret
<std::thread::Builder::spawn_unchecked_::MaybeDangling<T> as core::ops::drop::Drop>::drop:
ret
<core::ops::range::Range<usize> as core::slice::index::SliceIndex<[T]>>::index_mut:
sub rsp, 72
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 rdi, rsi
ja .LBB5_2
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 24]
cmp rax, rcx
ja .LBB5_4
jmp .LBB5_3
.LBB5_2:
mov rdx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 8]
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::slice::index::slice_index_order_fail@GOTPCREL]
call rax
ud2
.LBB5_3:
mov rdx, qword ptr [rsp]
mov rcx, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 8]
sub rax, rdx
add rcx, rdx
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 40]
mov rdx, qword ptr [rsp + 48]
add rsp, 72
ret
.LBB5_4:
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::index::slice_end_index_len_fail@GOTPCREL]
call rax
ud2
<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter:
sub rsp, 248
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
mov byte ptr [rsp + 167], 1
mov rax, qword ptr [rip + <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::size_hint@GOTPCREL]
lea rdi, [rsp + 72]
call rax
jmp .LBB6_3
.LBB6_1:
test byte ptr [rsp + 167], 1
jne .LBB6_16
jmp .LBB6_15
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 232], rcx
mov dword ptr [rsp + 240], eax
jmp .LBB6_1
.LBB6_3:
cmp qword ptr [rsp + 80], 1
jne .LBB6_5
mov rdi, qword ptr [rsp + 88]
mov rax, qword ptr [rip + alloc::raw_vec::RawVec<T,A>::allocate_in@GOTPCREL]
xor esi, esi
call rax
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp + 16], rax
jmp .LBB6_6
.LBB6_5:
xor eax, eax
test al, 1
jne .LBB6_12
jmp .LBB6_11
.LBB6_6:
mov rax, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 16]
mov qword ptr [rsp + 48], rdx
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], 0
mov byte ptr [rsp + 167], 0
movups xmm0, xmmword ptr [rax]
movaps xmmword ptr [rsp + 144], xmm0
mov rax, qword ptr [rip + <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend@GOTPCREL]
lea rdi, [rsp + 48]
lea rsi, [rsp + 144]
call rax
jmp .LBB6_9
.LBB6_7:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<std::thread::JoinHandle<()>>>@GOTPCREL]
lea rdi, [rsp + 48]
call rax
jmp .LBB6_1
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 232], rcx
mov dword ptr [rsp + 240], eax
jmp .LBB6_7
.LBB6_9:
mov rax, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 48]
mov qword ptr [rcx], rdx
mov rdx, qword ptr [rsp + 56]
mov qword ptr [rcx + 8], rdx
mov rdx, qword ptr [rsp + 64]
mov qword ptr [rcx + 16], rdx
add rsp, 248
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB6_11:
mov qword ptr [rsp + 216], 0
lea rax, [rip + .L__unnamed_3]
mov qword ptr [rsp + 96], rax
mov qword ptr [rsp + 104], 1
mov rcx, qword ptr [rsp + 216]
mov rax, qword ptr [rsp + 224]
mov qword ptr [rsp + 128], rcx
mov qword ptr [rsp + 136], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 112], rax
mov qword ptr [rsp + 120], 0
lea rsi, [rip + .L__unnamed_5]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 96]
call rax
jmp .LBB6_13
.LBB6_12:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 168]
mov edx, 1
call core::fmt::Arguments::new_const
jmp .LBB6_14
.LBB6_13:
ud2
.LBB6_14:
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 168]
call rax
jmp .LBB6_13
.LBB6_15:
mov rdi, qword ptr [rsp + 232]
call _Unwind_Resume@PLT
ud2
.LBB6_16:
jmp .LBB6_15
<core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once:
push rax
call core::ops::function::FnOnce::call_once
pop rax
ret
<core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once:
push rax
call qword ptr [rip + std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}@GOTPCREL]
pop rax
ret
<<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop::DropGuard<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 56
mov rax, qword ptr [rdi]
mov rcx, qword ptr [rax]
mov rax, qword ptr [rax + 8]
mov qword ptr [rsp + 32], rcx
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rsp + 24], rcx
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::raw_vec::RawVec<std::thread::JoinHandle<()>>>@GOTPCREL]
lea rdi, [rsp + 8]
call rax
jmp .LBB9_3
.LBB9_1:
xor eax, eax
test al, 1
jne .LBB9_5
jmp .LBB9_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB9_1
.LBB9_3:
add rsp, 56
ret
.LBB9_4:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
.LBB9_5:
jmp .LBB9_4
std::sys_common::backtrace::__rust_begin_short_backtrace:
push rax
call example::main::{{closure}}::{{closure}}
pop rax
ret
std::io::Write::write_all:
sub rsp, 184
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rsi
mov qword ptr [rsp + 48], rdx
.LBB11_1:
cmp qword ptr [rsp + 48], 0
sete al
xor al, -1
test al, 1
jne .LBB11_3
mov qword ptr [rsp + 56], 0
jmp .LBB11_4
.LBB11_3:
mov rsi, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 48]
lea rdi, [rsp + 64]
call qword ptr [rip + <std::sys::unix::stdio::Stderr as std::io::Write>::write@GOTPCREL]
cmp qword ptr [rsp + 64], 0
je .LBB11_5
jmp .LBB11_6
.LBB11_4:
mov rax, qword ptr [rsp + 56]
add rsp, 184
ret
.LBB11_5:
cmp qword ptr [rsp + 72], 0
je .LBB11_7
jmp .LBB11_8
.LBB11_6:
lea rax, [rsp + 72]
mov qword ptr [rsp + 88], rax
mov rdi, qword ptr [rsp + 88]
call std::io::error::Error::kind
mov byte ptr [rsp + 31], al
jmp .LBB11_16
.LBB11_7:
lea rax, [rip + .L__unnamed_8]
mov qword ptr [rsp + 112], rax
mov rax, qword ptr [rsp + 112]
mov qword ptr [rsp + 104], rax
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 80], rax
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 56], rax
jmp .LBB11_9
.LBB11_8:
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp], rax
mov rcx, qword ptr [rsp + 40]
mov qword ptr [rsp + 8], rcx
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rsp + 16], rcx
cmp rax, rcx
ja .LBB11_11
jmp .LBB11_10
.LBB11_9:
jmp .LBB11_4
.LBB11_10:
mov rdx, qword ptr [rsp]
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 120], rcx
mov qword ptr [rsp + 128], rax
mov rax, qword ptr [rsp + 128]
sub rax, rdx
add rcx, rdx
mov qword ptr [rsp + 152], rcx
mov qword ptr [rsp + 160], rax
mov rcx, qword ptr [rsp + 152]
mov rax, qword ptr [rsp + 160]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
mov rcx, qword ptr [rsp + 136]
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 48], rax
jmp .LBB11_12
.LBB11_11:
mov rsi, qword ptr [rsp + 16]
mov rdi, qword ptr [rsp]
lea rdx, [rip + .L__unnamed_9]
mov rax, qword ptr [rip + core::slice::index::slice_start_index_len_fail@GOTPCREL]
call rax
jmp .LBB11_15
.LBB11_12:
cmp qword ptr [rsp + 64], 1
je .LBB11_19
jmp .LBB11_20
.LBB11_13:
cmp qword ptr [rsp + 64], 1
je .LBB11_22
jmp .LBB11_23
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 168], rcx
mov dword ptr [rsp + 176], eax
jmp .LBB11_13
.LBB11_15:
ud2
.LBB11_16:
mov al, byte ptr [rsp + 31]
mov byte ptr [rsp + 103], al
movzx eax, byte ptr [rsp + 103]
movzx ecx, byte ptr [rip + .L__unnamed_10]
cmp rax, rcx
je .LBB11_18
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 56], rax
jmp .LBB11_9
.LBB11_18:
jmp .LBB11_12
.LBB11_19:
mov al, 1
test al, 1
jne .LBB11_21
jmp .LBB11_20
.LBB11_20:
jmp .LBB11_1
.LBB11_21:
lea rdi, [rsp + 64]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<std::io::error::Error>@GOTPCREL]
jmp .LBB11_20
.LBB11_22:
mov al, 1
test al, 1
jne .LBB11_24
jmp .LBB11_23
.LBB11_23:
mov rdi, qword ptr [rsp + 168]
call _Unwind_Resume@PLT
ud2
.LBB11_24:
lea rdi, [rsp + 72]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::io::error::Error>@GOTPCREL]
call rax
jmp .LBB11_23
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
std::io::Write::write_fmt:
sub rsp, 88
mov rdx, rsi
mov byte ptr [rsp + 55], 1
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], 0
lea rsi, [rip + .L__unnamed_11]
mov rax, qword ptr [rip + core::fmt::write@GOTPCREL]
lea rdi, [rsp + 16]
call rax
mov byte ptr [rsp + 7], al
jmp .LBB12_3
.LBB12_1:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::io::Write::write_fmt::Adapter<std::sys::unix::stdio::Stderr>>@GOTPCREL]
lea rdi, [rsp + 16]
call rax
jmp .LBB12_13
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 72], rcx
mov dword ptr [rsp + 80], eax
jmp .LBB12_1
.LBB12_3:
mov al, byte ptr [rsp + 7]
and al, 1
mov byte ptr [rsp + 39], al
mov al, byte ptr [rsp + 39]
and al, 1
movzx eax, al
cmp rax, 0
jne .LBB12_5
mov qword ptr [rsp + 8], 0
jmp .LBB12_6
.LBB12_5:
mov rdx, qword ptr [rsp + 24]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
sete al
xor al, -1
test al, 1
jne .LBB12_8
jmp .LBB12_7
.LBB12_6:
test byte ptr [rsp + 55], 1
jne .LBB12_11
jmp .LBB12_10
.LBB12_7:
lea rax, [rip + .L__unnamed_12]
mov qword ptr [rsp + 64], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 56], rax
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 8], rax
jmp .LBB12_9
.LBB12_8:
mov byte ptr [rsp + 55], 0
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 8], rax
.LBB12_9:
jmp .LBB12_6
.LBB12_10:
mov rax, qword ptr [rsp + 8]
add rsp, 88
ret
.LBB12_11:
lea rdi, [rsp + 16]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),std::io::error::Error>>@GOTPCREL]
jmp .LBB12_10
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB12_13:
mov rdi, qword ptr [rsp + 72]
call _Unwind_Resume@PLT
ud2
std::io::error::repr_bitpacked::decode_repr:
sub rsp, 136
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
mov byte ptr [rsp + 95], 1
mov rax, rsi
mov qword ptr [rsp + 48], rax
mov eax, esi
and eax, 3
mov qword ptr [rsp + 56], rax
sub rax, 3
ja .LBB13_1
mov rax, qword ptr [rsp + 56]
lea rcx, [rip + .LJTI13_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
.LBB13_1:
lea rdi, [rip + .L__unnamed_13]
lea rdx, [rip + .L__unnamed_14]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 40
call rax
jmp .LBB13_15
.LBB13_2:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 48]
sar rcx, 32
mov dword ptr [rax + 4], ecx
mov byte ptr [rax], 0
jmp .LBB13_6
.LBB13_3:
mov rax, qword ptr [rsp + 48]
shr rax, 32
mov edi, eax
call std::io::error::repr_bitpacked::kind_from_prim
mov byte ptr [rsp + 23], al
jmp .LBB13_9
.LBB13_4:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rsp + 72], rcx
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rax + 8], rcx
mov byte ptr [rax], 2
jmp .LBB13_6
.LBB13_5:
mov rax, qword ptr [rsp + 24]
dec rax
mov qword ptr [rsp + 128], rax
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 104], rax
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 96], rax
mov rax, qword ptr [rsp + 96]
mov byte ptr [rsp + 95], 0
mov qword ptr [rsp + 80], rax
mov rdi, qword ptr [rsp + 80]
mov rax, qword ptr [rip + std::io::error::repr_bitpacked::Repr::data::{{closure}}@GOTPCREL]
call rax
mov qword ptr [rsp + 8], rax
jmp .LBB13_12
.LBB13_6:
test byte ptr [rsp + 95], 1
jne .LBB13_14
jmp .LBB13_13
.LBB13_7:
test byte ptr [rsp + 95], 1
jne .LBB13_17
jmp .LBB13_16
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 112], rcx
mov dword ptr [rsp + 120], eax
jmp .LBB13_7
.LBB13_9:
mov al, byte ptr [rsp + 23]
mov byte ptr [rsp + 71], al
mov eax, 1
xor ecx, ecx
cmp byte ptr [rsp + 71], 41
cmove rax, rcx
cmp rax, 0
jne .LBB13_11
ud2
.LBB13_11:
mov rax, qword ptr [rsp + 32]
mov cl, byte ptr [rsp + 71]
mov byte ptr [rax + 1], cl
mov byte ptr [rax], 1
jmp .LBB13_6
.LBB13_12:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 8]
mov qword ptr [rax + 8], rcx
mov byte ptr [rax], 3
jmp .LBB13_6
.LBB13_13:
mov rax, qword ptr [rsp + 40]
add rsp, 136
ret
.LBB13_14:
jmp .LBB13_13
.LBB13_15:
ud2
.LBB13_16:
mov rdi, qword ptr [rsp + 112]
call _Unwind_Resume@PLT
ud2
.LBB13_17:
jmp .LBB13_16
.LJTI13_0:
.long .LBB13_4-.LJTI13_0
.long .LBB13_5-.LJTI13_0
.long .LBB13_2-.LJTI13_0
.long .LBB13_3-.LJTI13_0
std::io::error::repr_bitpacked::decode_repr:
sub rsp, 136
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
mov byte ptr [rsp + 95], 1
mov rax, rsi
mov qword ptr [rsp + 48], rax
mov eax, esi
and eax, 3
mov qword ptr [rsp + 56], rax
sub rax, 3
ja .LBB14_1
mov rax, qword ptr [rsp + 56]
lea rcx, [rip + .LJTI14_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
.LBB14_1:
lea rdi, [rip + .L__unnamed_13]
lea rdx, [rip + .L__unnamed_14]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 40
call rax
jmp .LBB14_15
.LBB14_2:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 48]
sar rcx, 32
mov dword ptr [rax + 4], ecx
mov byte ptr [rax], 0
jmp .LBB14_6
.LBB14_3:
mov rax, qword ptr [rsp + 48]
shr rax, 32
mov edi, eax
call std::io::error::repr_bitpacked::kind_from_prim
mov byte ptr [rsp + 23], al
jmp .LBB14_9
.LBB14_4:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rsp + 72], rcx
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rax + 8], rcx
mov byte ptr [rax], 2
jmp .LBB14_6
.LBB14_5:
mov rax, qword ptr [rsp + 24]
dec rax
mov qword ptr [rsp + 128], rax
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 104], rax
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 96], rax
mov rax, qword ptr [rsp + 96]
mov byte ptr [rsp + 95], 0
mov qword ptr [rsp + 80], rax
mov rdi, qword ptr [rsp + 80]
mov rax, qword ptr [rip + <std::io::error::repr_bitpacked::Repr as core::ops::drop::Drop>::drop::{{closure}}@GOTPCREL]
call rax
mov qword ptr [rsp + 8], rax
jmp .LBB14_12
.LBB14_6:
test byte ptr [rsp + 95], 1
jne .LBB14_14
jmp .LBB14_13
.LBB14_7:
test byte ptr [rsp + 95], 1
jne .LBB14_17
jmp .LBB14_16
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 112], rcx
mov dword ptr [rsp + 120], eax
jmp .LBB14_7
.LBB14_9:
mov al, byte ptr [rsp + 23]
mov byte ptr [rsp + 71], al
mov eax, 1
xor ecx, ecx
cmp byte ptr [rsp + 71], 41
cmove rax, rcx
cmp rax, 0
jne .LBB14_11
ud2
.LBB14_11:
mov rax, qword ptr [rsp + 32]
mov cl, byte ptr [rsp + 71]
mov byte ptr [rax + 1], cl
mov byte ptr [rax], 1
jmp .LBB14_6
.LBB14_12:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 8]
mov qword ptr [rax + 8], rcx
mov byte ptr [rax], 3
jmp .LBB14_6
.LBB14_13:
mov rax, qword ptr [rsp + 40]
add rsp, 136
ret
.LBB14_14:
jmp .LBB14_13
.LBB14_15:
ud2
.LBB14_16:
mov rdi, qword ptr [rsp + 112]
call _Unwind_Resume@PLT
ud2
.LBB14_17:
jmp .LBB14_16
.LJTI14_0:
.long .LBB14_4-.LJTI14_0
.long .LBB14_5-.LJTI14_0
.long .LBB14_2-.LJTI14_0
.long .LBB14_3-.LJTI14_0
std::io::error::repr_bitpacked::kind_from_prim:
mov dword ptr [rsp - 8], edi
cmp edi, 0
jne .LBB15_2
mov byte ptr [rsp - 1], 0
jmp .LBB15_3
.LBB15_2:
mov eax, dword ptr [rsp - 8]
cmp eax, 1
je .LBB15_4
jmp .LBB15_5
.LBB15_3:
mov al, byte ptr [rsp - 1]
ret
.LBB15_4:
mov byte ptr [rsp - 1], 1
jmp .LBB15_3
.LBB15_5:
mov eax, dword ptr [rsp - 8]
cmp eax, 2
jne .LBB15_7
mov byte ptr [rsp - 1], 2
jmp .LBB15_3
.LBB15_7:
mov eax, dword ptr [rsp - 8]
cmp eax, 3
jne .LBB15_9
mov byte ptr [rsp - 1], 3
jmp .LBB15_3
.LBB15_9:
mov eax, dword ptr [rsp - 8]
cmp eax, 4
jne .LBB15_11
mov byte ptr [rsp - 1], 4
jmp .LBB15_3
.LBB15_11:
mov eax, dword ptr [rsp - 8]
cmp eax, 5
jne .LBB15_13
mov byte ptr [rsp - 1], 5
jmp .LBB15_3
.LBB15_13:
mov eax, dword ptr [rsp - 8]
cmp eax, 6
jne .LBB15_15
mov byte ptr [rsp - 1], 6
jmp .LBB15_3
.LBB15_15:
mov eax, dword ptr [rsp - 8]
cmp eax, 7
jne .LBB15_17
mov byte ptr [rsp - 1], 7
jmp .LBB15_3
.LBB15_17:
mov eax, dword ptr [rsp - 8]
cmp eax, 8
jne .LBB15_19
mov byte ptr [rsp - 1], 8
jmp .LBB15_3
.LBB15_19:
mov eax, dword ptr [rsp - 8]
cmp eax, 9
jne .LBB15_21
mov byte ptr [rsp - 1], 9
jmp .LBB15_3
.LBB15_21:
mov eax, dword ptr [rsp - 8]
cmp eax, 10
jne .LBB15_23
mov byte ptr [rsp - 1], 10
jmp .LBB15_3
.LBB15_23:
mov eax, dword ptr [rsp - 8]
cmp eax, 11
jne .LBB15_25
mov byte ptr [rsp - 1], 11
jmp .LBB15_3
.LBB15_25:
mov eax, dword ptr [rsp - 8]
cmp eax, 12
jne .LBB15_27
mov byte ptr [rsp - 1], 12
jmp .LBB15_3
.LBB15_27:
mov eax, dword ptr [rsp - 8]
cmp eax, 13
jne .LBB15_29
mov byte ptr [rsp - 1], 13
jmp .LBB15_3
.LBB15_29:
mov eax, dword ptr [rsp - 8]
cmp eax, 14
jne .LBB15_31
mov byte ptr [rsp - 1], 14
jmp .LBB15_3
.LBB15_31:
mov eax, dword ptr [rsp - 8]
cmp eax, 15
jne .LBB15_33
mov byte ptr [rsp - 1], 15
jmp .LBB15_3
.LBB15_33:
mov eax, dword ptr [rsp - 8]
cmp eax, 16
jne .LBB15_35
mov byte ptr [rsp - 1], 16
jmp .LBB15_3
.LBB15_35:
mov eax, dword ptr [rsp - 8]
cmp eax, 17
jne .LBB15_37
mov byte ptr [rsp - 1], 17
jmp .LBB15_3
.LBB15_37:
mov eax, dword ptr [rsp - 8]
cmp eax, 18
jne .LBB15_39
mov byte ptr [rsp - 1], 18
jmp .LBB15_3
.LBB15_39:
mov eax, dword ptr [rsp - 8]
cmp eax, 19
jne .LBB15_41
mov byte ptr [rsp - 1], 19
jmp .LBB15_3
.LBB15_41:
mov eax, dword ptr [rsp - 8]
cmp eax, 20
jne .LBB15_43
mov byte ptr [rsp - 1], 20
jmp .LBB15_3
.LBB15_43:
mov eax, dword ptr [rsp - 8]
cmp eax, 21
jne .LBB15_45
mov byte ptr [rsp - 1], 21
jmp .LBB15_3
.LBB15_45:
mov eax, dword ptr [rsp - 8]
cmp eax, 22
jne .LBB15_47
mov byte ptr [rsp - 1], 22
jmp .LBB15_3
.LBB15_47:
mov eax, dword ptr [rsp - 8]
cmp eax, 23
jne .LBB15_49
mov byte ptr [rsp - 1], 23
jmp .LBB15_3
.LBB15_49:
mov eax, dword ptr [rsp - 8]
cmp eax, 24
jne .LBB15_51
mov byte ptr [rsp - 1], 24
jmp .LBB15_3
.LBB15_51:
mov eax, dword ptr [rsp - 8]
cmp eax, 25
jne .LBB15_53
mov byte ptr [rsp - 1], 25
jmp .LBB15_3
.LBB15_53:
mov eax, dword ptr [rsp - 8]
cmp eax, 26
jne .LBB15_55
mov byte ptr [rsp - 1], 26
jmp .LBB15_3
.LBB15_55:
mov eax, dword ptr [rsp - 8]
cmp eax, 27
jne .LBB15_57
mov byte ptr [rsp - 1], 27
jmp .LBB15_3
.LBB15_57:
mov eax, dword ptr [rsp - 8]
cmp eax, 28
jne .LBB15_59
mov byte ptr [rsp - 1], 28
jmp .LBB15_3
.LBB15_59:
mov eax, dword ptr [rsp - 8]
cmp eax, 29
jne .LBB15_61
mov byte ptr [rsp - 1], 29
jmp .LBB15_3
.LBB15_61:
mov eax, dword ptr [rsp - 8]
cmp eax, 30
jne .LBB15_63
mov byte ptr [rsp - 1], 30
jmp .LBB15_3
.LBB15_63:
mov eax, dword ptr [rsp - 8]
cmp eax, 31
jne .LBB15_65
mov byte ptr [rsp - 1], 31
jmp .LBB15_3
.LBB15_65:
mov eax, dword ptr [rsp - 8]
cmp eax, 32
jne .LBB15_67
mov byte ptr [rsp - 1], 32
jmp .LBB15_3
.LBB15_67:
mov eax, dword ptr [rsp - 8]
cmp eax, 33
jne .LBB15_69
mov byte ptr [rsp - 1], 33
jmp .LBB15_3
.LBB15_69:
mov eax, dword ptr [rsp - 8]
cmp eax, 34
jne .LBB15_71
mov byte ptr [rsp - 1], 34
jmp .LBB15_3
.LBB15_71:
mov eax, dword ptr [rsp - 8]
cmp eax, 35
jne .LBB15_73
mov byte ptr [rsp - 1], 35
jmp .LBB15_3
.LBB15_73:
mov eax, dword ptr [rsp - 8]
cmp eax, 39
jne .LBB15_75
mov byte ptr [rsp - 1], 39
jmp .LBB15_3
.LBB15_75:
mov eax, dword ptr [rsp - 8]
cmp eax, 37
jne .LBB15_77
mov byte ptr [rsp - 1], 37
jmp .LBB15_3
.LBB15_77:
mov eax, dword ptr [rsp - 8]
cmp eax, 36
jne .LBB15_79
mov byte ptr [rsp - 1], 36
jmp .LBB15_3
.LBB15_79:
mov eax, dword ptr [rsp - 8]
cmp eax, 38
jne .LBB15_81
mov byte ptr [rsp - 1], 38
jmp .LBB15_3
.LBB15_81:
mov eax, dword ptr [rsp - 8]
cmp eax, 40
jne .LBB15_83
mov byte ptr [rsp - 1], 40
jmp .LBB15_3
.LBB15_83:
mov byte ptr [rsp - 1], 41
jmp .LBB15_3
std::io::error::repr_bitpacked::Repr::data::{{closure}}:
mov rax, rdi
ret
std::io::error::Error::kind:
sub rsp, 40
mov rsi, qword ptr [rdi]
mov rax, qword ptr [rip + std::io::error::repr_bitpacked::decode_repr@GOTPCREL]
lea rdi, [rsp + 24]
call rax
movzx eax, byte ptr [rsp + 24]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rsp + 8]
lea rcx, [rip + .LJTI17_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB17_2:
mov edi, dword ptr [rsp + 28]
call qword ptr [rip + std::sys::unix::decode_error_kind@GOTPCREL]
mov byte ptr [rsp + 23], al
jmp .LBB17_6
.LBB17_3:
mov al, byte ptr [rsp + 25]
mov byte ptr [rsp + 23], al
jmp .LBB17_6
.LBB17_4:
mov rax, qword ptr [rsp + 32]
mov al, byte ptr [rax + 16]
mov byte ptr [rsp + 23], al
jmp .LBB17_6
.LBB17_5:
mov rax, qword ptr [rsp + 32]
mov al, byte ptr [rax + 16]
mov byte ptr [rsp + 23], al
.LBB17_6:
mov al, byte ptr [rsp + 23]
add rsp, 40
ret
.LJTI17_0:
.long .LBB17_2-.LJTI17_0
.long .LBB17_3-.LJTI17_0
.long .LBB17_4-.LJTI17_0
.long .LBB17_5-.LJTI17_0
std::thread::JoinInner<T>::join:
sub rsp, 120
mov qword ptr [rsp + 40], rdi
mov rdi, qword ptr [rdi + 16]
mov rax, qword ptr [rip + std::sys::unix::thread::Thread::join@GOTPCREL]
call rax
jmp .LBB18_3
.LBB18_1:
mov rdi, qword ptr [rsp + 40]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB18_18
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 104], rcx
mov dword ptr [rsp + 112], eax
jmp .LBB18_1
.LBB18_3:
mov rdi, qword ptr [rsp + 40]
add rdi, 8
mov qword ptr [rsp + 24], rdi
mov rax, qword ptr [rip + alloc::sync::Arc<T,A>::is_unique@GOTPCREL]
call rax
mov byte ptr [rsp + 39], al
jmp .LBB18_4
.LBB18_4:
mov al, byte ptr [rsp + 39]
test al, 1
jne .LBB18_6
jmp .LBB18_5
.LBB18_5:
mov qword ptr [rsp + 72], 0
jmp .LBB18_7
.LBB18_6:
mov rax, qword ptr [rsp + 24]
mov rax, qword ptr [rax]
add rax, 16
mov qword ptr [rsp + 72], rax
.LBB18_7:
mov rdx, qword ptr [rsp + 72]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB18_9
lea rdi, [rip + .L__unnamed_15]
lea rdx, [rip + .L__unnamed_16]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 43
call rax
jmp .LBB18_10
.LBB18_9:
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 80], 0
mov rcx, qword ptr [rax + 8]
mov qword ptr [rsp + 48], rcx
mov rcx, qword ptr [rax + 16]
mov qword ptr [rsp + 56], rcx
mov rcx, qword ptr [rax + 24]
mov qword ptr [rsp + 64], rcx
mov rcx, qword ptr [rsp + 80]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 88]
mov qword ptr [rax + 16], rcx
mov rcx, qword ptr [rsp + 96]
mov qword ptr [rax + 24], rcx
cmp qword ptr [rsp + 48], 0
je .LBB18_11
jmp .LBB18_12
.LBB18_10:
ud2
.LBB18_11:
lea rdi, [rip + .L__unnamed_15]
lea rdx, [rip + .L__unnamed_17]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 43
call rax
jmp .LBB18_10
.LBB18_12:
mov rdi, qword ptr [rsp + 40]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB18_15
.LBB18_13:
mov rdi, qword ptr [rsp + 40]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
jmp .LBB18_17
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 104], rcx
mov dword ptr [rsp + 112], eax
jmp .LBB18_13
.LBB18_15:
mov rdi, qword ptr [rsp + 40]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
mov rax, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 16]
add rsp, 120
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB18_17:
mov rdi, qword ptr [rsp + 104]
call _Unwind_Resume@PLT
ud2
.LBB18_18:
mov rdi, qword ptr [rsp + 40]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
jmp .LBB18_17
std::thread::JoinHandle<T>::join:
sub rsp, 24
mov rax, qword ptr [rdi + 16]
mov qword ptr [rsp + 16], rax
movups xmm0, xmmword ptr [rdi]
movaps xmmword ptr [rsp], xmm0
mov rax, qword ptr [rip + std::thread::JoinInner<T>::join@GOTPCREL]
mov rdi, rsp
call rax
add rsp, 24
ret
std::thread::spawn:
sub rsp, 120
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rdi
mov byte ptr [rsp + 103], 1
mov rax, qword ptr [rip + std::thread::Builder::new@GOTPCREL]
lea rdi, [rsp + 56]
call rax
jmp .LBB20_3
.LBB20_1:
test byte ptr [rsp + 103], 1
jne .LBB20_7
jmp .LBB20_6
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 104], rcx
mov dword ptr [rsp + 112], eax
jmp .LBB20_1
.LBB20_3:
mov rdx, qword ptr [rsp + 8]
mov byte ptr [rsp + 103], 0
mov rax, qword ptr [rip + std::thread::Builder::spawn_unchecked@GOTPCREL]
lea rdi, [rsp + 32]
lea rsi, [rsp + 56]
call rax
jmp .LBB20_4
.LBB20_4:
mov rdi, qword ptr [rsp + 16]
lea rdx, [rip + .L__unnamed_18]
lea r8, [rip + .L__unnamed_19]
mov rax, qword ptr [rip + core::result::Result<T,E>::expect@GOTPCREL]
lea rsi, [rsp + 32]
mov ecx, 22
call rax
jmp .LBB20_5
.LBB20_5:
mov rax, qword ptr [rsp + 24]
add rsp, 120
ret
.LBB20_6:
mov rdi, qword ptr [rsp + 104]
call _Unwind_Resume@PLT
ud2
.LBB20_7:
jmp .LBB20_6
std::thread::Builder::spawn_unchecked:
sub rsp, 152
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rdi
lea rdi, [rsp + 64]
xor eax, eax
mov ecx, eax
call qword ptr [rip + std::thread::Builder::spawn_unchecked_@GOTPCREL]
mov rdx, qword ptr [rsp + 64]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB21_2
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 120], rax
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 128], rax
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 136], rax
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 136]
mov qword ptr [rsp + 56], rax
jmp .LBB21_3
.LBB21_2:
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 144], rax
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 48], rax
mov qword ptr [rsp + 40], 0
.LBB21_3:
mov rdx, qword ptr [rsp + 40]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB21_5
mov rax, qword ptr [rsp]
mov rcx, qword ptr [rsp + 40]
mov qword ptr [rsp + 96], rcx
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rsp + 104], rcx
mov rcx, qword ptr [rsp + 56]
mov qword ptr [rsp + 112], rcx
mov rcx, qword ptr [rsp + 96]
mov qword ptr [rsp + 16], rcx
mov rcx, qword ptr [rsp + 104]
mov qword ptr [rsp + 24], rcx
mov rcx, qword ptr [rsp + 112]
mov qword ptr [rsp + 32], rcx
mov rcx, qword ptr [rsp + 16]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 16], rcx
jmp .LBB21_6
.LBB21_5:
mov rax, qword ptr [rsp]
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rsp + 88], rcx
mov rcx, qword ptr [rsp + 88]
mov qword ptr [rax + 8], rcx
mov qword ptr [rax], 0
.LBB21_6:
mov rax, qword ptr [rsp + 8]
add rsp, 152
ret
std::thread::Builder::spawn_unchecked_:
sub rsp, 648
mov qword ptr [rsp + 128], rdx
mov qword ptr [rsp + 136], rdi
mov qword ptr [rsp + 144], rdi
mov qword ptr [rsp + 152], rcx
mov byte ptr [rsp + 527], 1
mov byte ptr [rsp + 526], 1
mov byte ptr [rsp + 525], 1
mov rax, qword ptr [rsi + 16]
mov qword ptr [rsp + 160], rax
mov rax, qword ptr [rsi + 24]
mov qword ptr [rsp + 168], rax
mov rax, qword ptr [rsi + 32]
mov qword ptr [rsp + 176], rax
mov rcx, qword ptr [rsi]
mov rax, qword ptr [rsi + 8]
mov qword ptr [rsp + 184], rcx
mov qword ptr [rsp + 192], rax
cmp qword ptr [rsp + 184], 0
jne .LBB22_2
call core::ops::function::FnOnce::call_once
mov qword ptr [rsp + 120], rax
jmp .LBB22_5
.LBB22_2:
mov rax, qword ptr [rsp + 192]
mov qword ptr [rsp + 200], rax
jmp .LBB22_6
.LBB22_3:
test byte ptr [rsp + 525], 1
jne .LBB22_62
jmp .LBB22_54
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_3
.LBB22_5:
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 200], rax
.LBB22_6:
mov byte ptr [rsp + 525], 0
mov rax, qword ptr [rsp + 160]
mov qword ptr [rsp + 232], rax
mov rax, qword ptr [rsp + 168]
mov qword ptr [rsp + 240], rax
mov rax, qword ptr [rsp + 176]
mov qword ptr [rsp + 248], rax
mov rdx, qword ptr [rsp + 232]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB22_8
mov qword ptr [rsp + 216], 0
jmp .LBB22_9
.LBB22_8:
mov rax, qword ptr [rsp + 248]
mov qword ptr [rsp + 544], rax
movups xmm0, xmmword ptr [rsp + 232]
movaps xmmword ptr [rsp + 528], xmm0
mov rax, qword ptr [rip + <T as alloc::ffi::c_str::CString::new::SpecNewImpl>::spec_new_impl@GOTPCREL]
lea rdi, [rsp + 552]
lea rsi, [rsp + 528]
call rax
jmp .LBB22_10
.LBB22_9:
mov rdi, qword ptr [rsp + 216]
mov rsi, qword ptr [rsp + 224]
mov rax, qword ptr [rip + std::thread::Thread::new@GOTPCREL]
call rax
mov qword ptr [rsp + 112], rax
jmp .LBB22_12
.LBB22_10:
lea rsi, [rip + .L__unnamed_20]
lea rcx, [rip + .L__unnamed_21]
mov rax, qword ptr [rip + core::result::Result<T,E>::expect@GOTPCREL]
lea rdi, [rsp + 552]
mov edx, 47
call rax
mov qword ptr [rsp + 96], rdx
mov qword ptr [rsp + 104], rax
jmp .LBB22_11
.LBB22_11:
mov rax, qword ptr [rsp + 96]
mov rcx, qword ptr [rsp + 104]
mov qword ptr [rsp + 216], rcx
mov qword ptr [rsp + 224], rax
jmp .LBB22_9
.LBB22_12:
mov rax, qword ptr [rsp + 112]
mov qword ptr [rsp + 208], rax
mov rax, qword ptr [rip + <alloc::sync::Arc<T,A> as core::clone::Clone>::clone@GOTPCREL]
lea rdi, [rsp + 208]
call rax
mov qword ptr [rsp + 88], rax
jmp .LBB22_15
.LBB22_13:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
lea rdi, [rsp + 208]
call rax
jmp .LBB22_3
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_13
.LBB22_15:
mov rax, qword ptr [rsp + 88]
mov qword ptr [rsp + 584], rax
mov rax, qword ptr [rsp + 584]
mov qword ptr [rsp + 256], rax
mov byte ptr [rsp + 524], 1
mov byte ptr [rsp + 526], 0
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 328], 0
mov rcx, qword ptr [rsp + 344]
mov qword ptr [rsp + 320], rcx
movups xmm0, xmmword ptr [rsp + 328]
movaps xmmword ptr [rsp + 304], xmm0
mov qword ptr [rsp + 272], rax
mov rax, qword ptr [rsp + 320]
mov qword ptr [rsp + 296], rax
movaps xmm0, xmmword ptr [rsp + 304]
movups xmmword ptr [rsp + 280], xmm0
mov rax, qword ptr [rip + alloc::sync::Arc<T>::new@GOTPCREL]
lea rdi, [rsp + 272]
call rax
mov qword ptr [rsp + 80], rax
jmp .LBB22_18
.LBB22_16:
test byte ptr [rsp + 524], 1
jne .LBB22_61
jmp .LBB22_13
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_16
.LBB22_18:
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 264], rax
mov rax, qword ptr [rip + <alloc::sync::Arc<T,A> as core::clone::Clone>::clone@GOTPCREL]
lea rdi, [rsp + 264]
call rax
mov qword ptr [rsp + 72], rax
jmp .LBB22_21
.LBB22_19:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
lea rdi, [rsp + 264]
call rax
jmp .LBB22_16
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_19
.LBB22_21:
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 352], rax
mov byte ptr [rsp + 523], 1
mov rax, qword ptr [rip + std::io::stdio::set_output_capture@GOTPCREL]
xor ecx, ecx
mov edi, ecx
call rax
mov qword ptr [rsp + 64], rax
jmp .LBB22_24
.LBB22_22:
test byte ptr [rsp + 523], 1
jne .LBB22_60
jmp .LBB22_19
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_22
.LBB22_24:
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 360], rax
mov byte ptr [rsp + 522], 1
mov rdx, qword ptr [rsp + 360]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB22_26
mov qword ptr [rsp + 376], 0
jmp .LBB22_27
.LBB22_26:
mov rax, qword ptr [rip + <alloc::sync::Arc<T,A> as core::clone::Clone>::clone@GOTPCREL]
lea rdi, [rsp + 360]
call rax
mov qword ptr [rsp + 56], rax
jmp .LBB22_30
.LBB22_27:
mov rdi, qword ptr [rsp + 376]
mov rax, qword ptr [rip + std::io::stdio::set_output_capture@GOTPCREL]
call rax
mov qword ptr [rsp + 48], rax
jmp .LBB22_31
.LBB22_28:
test byte ptr [rsp + 522], 1
jne .LBB22_59
jmp .LBB22_22
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_28
.LBB22_30:
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 376], rax
jmp .LBB22_27
.LBB22_31:
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 368], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
lea rdi, [rsp + 368]
call rax
jmp .LBB22_32
.LBB22_32:
mov rax, qword ptr [rsp + 128]
mov byte ptr [rsp + 527], 0
mov qword ptr [rsp + 600], rax
mov rax, qword ptr [rsp + 600]
mov qword ptr [rsp + 592], rax
mov rax, qword ptr [rsp + 592]
mov qword ptr [rsp + 384], rax
mov byte ptr [rsp + 524], 0
mov byte ptr [rsp + 522], 0
mov byte ptr [rsp + 523], 0
mov byte ptr [rsp + 521], 1
mov rax, qword ptr [rsp + 256]
mov qword ptr [rsp + 392], rax
mov rax, qword ptr [rsp + 360]
mov qword ptr [rsp + 408], rax
mov rax, qword ptr [rsp + 384]
mov qword ptr [rsp + 416], rax
mov rax, qword ptr [rsp + 352]
mov qword ptr [rsp + 400], rax
mov rax, qword ptr [rsp + 264]
mov qword ptr [rsp + 40], rax
mov rdx, qword ptr [rax + 16]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB22_34
mov rax, qword ptr [rsp + 40]
mov rdi, qword ptr [rax + 16]
add rdi, 16
mov rax, qword ptr [rip + std::thread::scoped::ScopeData::increment_num_running_threads@GOTPCREL]
call rax
jmp .LBB22_42
.LBB22_34:
mov rax, qword ptr [rsp + 200]
mov qword ptr [rsp + 24], rax
mov byte ptr [rsp + 521], 0
movups xmm0, xmmword ptr [rsp + 392]
movups xmm1, xmmword ptr [rsp + 408]
movaps xmmword ptr [rsp + 496], xmm1
movaps xmmword ptr [rsp + 480], xmm0
mov edi, 32
mov esi, 8
call alloc::alloc::exchange_malloc
mov qword ptr [rsp + 32], rax
jmp .LBB22_38
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 632], rcx
mov dword ptr [rsp + 640], eax
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_<example::main::{{closure}}::{{closure}},()>::{{closure}}>@GOTPCREL]
lea rdi, [rsp + 480]
call rax
jmp .LBB22_37
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB22_37:
mov rcx, qword ptr [rsp + 632]
mov eax, dword ptr [rsp + 640]
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 20], eax
jmp .LBB22_41
.LBB22_38:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 480]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 488]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 496]
mov qword ptr [rax + 16], rcx
mov rcx, qword ptr [rsp + 504]
mov qword ptr [rax + 24], rcx
jmp .LBB22_43
.LBB22_39:
test byte ptr [rsp + 521], 1
jne .LBB22_58
jmp .LBB22_28
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 20], eax
jmp .LBB22_41
.LBB22_41:
mov rcx, qword ptr [rsp + 8]
mov eax, dword ptr [rsp + 20]
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_39
.LBB22_42:
jmp .LBB22_34
.LBB22_43:
mov rdx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 24]
lea rcx, [rip + .L__unnamed_22]
mov rax, qword ptr [rip + std::sys::unix::thread::Thread::new@GOTPCREL]
lea rdi, [rsp + 464]
call rax
jmp .LBB22_44
.LBB22_44:
cmp qword ptr [rsp + 464], 0
jne .LBB22_46
mov rax, qword ptr [rsp + 472]
mov qword ptr [rsp + 456], rax
mov qword ptr [rsp + 448], 0
jmp .LBB22_47
.LBB22_46:
mov rax, qword ptr [rsp + 472]
mov qword ptr [rsp + 608], rax
mov rax, qword ptr [rsp + 608]
mov qword ptr [rsp + 456], rax
mov qword ptr [rsp + 448], 1
.LBB22_47:
cmp qword ptr [rsp + 448], 0
jne .LBB22_49
mov rax, qword ptr [rsp + 136]
mov rsi, qword ptr [rsp + 456]
mov rdx, qword ptr [rsp + 208]
mov rcx, qword ptr [rsp + 264]
mov qword ptr [rsp + 440], rsi
mov qword ptr [rsp + 424], rdx
mov qword ptr [rsp + 432], rcx
mov rcx, qword ptr [rsp + 424]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 432]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 440]
mov qword ptr [rax + 16], rcx
jmp .LBB22_50
.LBB22_49:
mov rax, qword ptr [rsp + 136]
mov rcx, qword ptr [rsp + 456]
mov qword ptr [rsp + 512], rcx
mov rcx, qword ptr [rsp + 512]
mov qword ptr [rax + 8], rcx
mov qword ptr [rax], 0
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
lea rdi, [rsp + 264]
call rax
jmp .LBB22_53
.LBB22_50:
mov rax, qword ptr [rsp + 144]
add rsp, 648
ret
.LBB22_51:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
lea rdi, [rsp + 208]
call rax
jmp .LBB22_54
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_51
.LBB22_53:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
lea rdi, [rsp + 208]
call rax
jmp .LBB22_56
.LBB22_54:
test byte ptr [rsp + 526], 1
jne .LBB22_64
jmp .LBB22_63
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 616], rcx
mov dword ptr [rsp + 624], eax
jmp .LBB22_54
.LBB22_56:
jmp .LBB22_50
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB22_58:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_<example::main::{{closure}}::{{closure}},()>::{{closure}}>@GOTPCREL]
lea rdi, [rsp + 392]
call rax
jmp .LBB22_28
.LBB22_59:
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
lea rdi, [rsp + 360]
call rax
jmp .LBB22_22
.LBB22_60:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
lea rdi, [rsp + 352]
call rax
jmp .LBB22_19
.LBB22_61:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
lea rdi, [rsp + 256]
call rax
jmp .LBB22_13
.LBB22_62:
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::string::String>>@GOTPCREL]
lea rdi, [rsp + 160]
call rax
jmp .LBB22_54
.LBB22_63:
test byte ptr [rsp + 527], 1
jne .LBB22_66
jmp .LBB22_65
.LBB22_64:
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::thread::scoped::ScopeData>>>@GOTPCREL]
lea rdi, [rsp + 152]
call rax
jmp .LBB22_63
.LBB22_65:
mov rdi, qword ptr [rsp + 616]
call _Unwind_Resume@PLT
ud2
.LBB22_66:
jmp .LBB22_65
std::thread::Builder::spawn_unchecked_::{{closure}}:
sub rsp, 200
mov qword ptr [rsp + 48], rdi
mov byte ptr [rsp + 180], 1
mov byte ptr [rsp + 181], 1
mov byte ptr [rsp + 182], 1
mov byte ptr [rsp + 183], 1
mov rax, qword ptr [rip + std::thread::Thread::cname@GOTPCREL]
call rax
mov qword ptr [rsp + 56], rdx
mov qword ptr [rsp + 64], rax
jmp .LBB23_3
.LBB23_1:
test byte ptr [rsp + 181], 1
jne .LBB23_20
jmp .LBB23_19
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 184], rcx
mov dword ptr [rsp + 192], eax
jmp .LBB23_1
.LBB23_3:
mov rax, qword ptr [rsp + 56]
mov rcx, qword ptr [rsp + 64]
mov qword ptr [rsp + 72], rcx
mov qword ptr [rsp + 80], rax
mov rdx, qword ptr [rsp + 72]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB23_5
mov rdi, qword ptr [rsp + 72]
mov rsi, qword ptr [rsp + 80]
mov rax, qword ptr [rip + std::sys::unix::thread::Thread::set_name@GOTPCREL]
call rax
jmp .LBB23_6
.LBB23_5:
mov rax, qword ptr [rsp + 48]
mov byte ptr [rsp + 183], 0
mov rdi, qword ptr [rax + 16]
mov rax, qword ptr [rip + std::io::stdio::set_output_capture@GOTPCREL]
call rax
mov qword ptr [rsp + 40], rax
jmp .LBB23_7
.LBB23_6:
jmp .LBB23_5
.LBB23_7:
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 88], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
lea rdi, [rsp + 88]
call rax
jmp .LBB23_8
.LBB23_8:
mov rax, qword ptr [rsp + 48]
mov byte ptr [rsp + 182], 0
mov rax, qword ptr [rax + 24]
mov qword ptr [rsp + 96], rax
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 32], rax
mov byte ptr [rsp + 179], 1
mov rax, qword ptr [rip + std::sys::unix::thread::guard::current@GOTPCREL]
lea rdi, [rsp + 104]
call rax
jmp .LBB23_11
.LBB23_9:
test byte ptr [rsp + 179], 1
jne .LBB23_18
jmp .LBB23_1
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 184], rcx
mov dword ptr [rsp + 192], eax
jmp .LBB23_9
.LBB23_11:
mov rax, qword ptr [rsp + 48]
mov byte ptr [rsp + 181], 0
mov rsi, qword ptr [rax]
mov rax, qword ptr [rip + std::sys_common::thread_info::set@GOTPCREL]
lea rdi, [rsp + 104]
call rax
jmp .LBB23_12
.LBB23_12:
mov rax, qword ptr [rsp + 32]
mov byte ptr [rsp + 179], 0
mov qword ptr [rsp + 136], rax
mov rax, qword ptr [rsp + 136]
mov qword ptr [rsp + 128], rax
mov rdi, qword ptr [rsp + 128]
mov rax, qword ptr [rip + std::panicking::try@GOTPCREL]
call rax
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rax
jmp .LBB23_13
.LBB23_13:
mov rax, qword ptr [rsp + 48]
mov rcx, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
mov qword ptr [rsp + 152], rdx
mov qword ptr [rsp + 160], rcx
mov qword ptr [rsp + 144], 1
mov rdi, qword ptr [rax + 8]
add rdi, 24
mov qword ptr [rsp + 8], rdi
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>@GOTPCREL]
call rax
jmp .LBB23_16
.LBB23_14:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 144]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 152]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 160]
mov qword ptr [rax + 16], rcx
jmp .LBB23_9
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 184], rcx
mov dword ptr [rsp + 192], eax
jmp .LBB23_14
.LBB23_16:
mov rax, qword ptr [rsp + 48]
mov rcx, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 160]
mov qword ptr [rcx + 16], rdx
movups xmm0, xmmword ptr [rsp + 144]
movups xmmword ptr [rcx], xmm0
mov byte ptr [rsp + 180], 0
mov rax, qword ptr [rax + 8]
mov qword ptr [rsp + 168], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
lea rdi, [rsp + 168]
call rax
jmp .LBB23_17
.LBB23_17:
add rsp, 200
ret
.LBB23_18:
jmp .LBB23_1
.LBB23_19:
test byte ptr [rsp + 183], 1
jne .LBB23_23
jmp .LBB23_22
.LBB23_20:
mov rdi, qword ptr [rsp + 48]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB23_19
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB23_22:
test byte ptr [rsp + 182], 1
jne .LBB23_25
jmp .LBB23_24
.LBB23_23:
mov rdi, qword ptr [rsp + 48]
add rdi, 16
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
call rax
jmp .LBB23_22
.LBB23_24:
test byte ptr [rsp + 180], 1
jne .LBB23_27
jmp .LBB23_26
.LBB23_25:
mov rdi, qword ptr [rsp + 48]
add rdi, 24
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_::MaybeDangling<example::main::{{closure}}::{{closure}}>>@GOTPCREL]
call rax
jmp .LBB23_24
.LBB23_26:
mov rdi, qword ptr [rsp + 184]
call _Unwind_Resume@PLT
ud2
.LBB23_27:
mov rdi, qword ptr [rsp + 48]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
jmp .LBB23_26
std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}:
push rax
call qword ptr [rip + std::sys_common::backtrace::__rust_begin_short_backtrace@GOTPCREL]
pop rax
ret
std::panicking::try:
sub rsp, 56
mov qword ptr [rsp + 40], rdi
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 24], rax
mov rdi, qword ptr [rip + std::panicking::try::do_call@GOTPCREL]
lea rsi, [rsp + 24]
mov rdx, qword ptr [rip + std::panicking::try::do_catch@GOTPCREL]
call __rust_try
mov dword ptr [rsp + 52], eax
cmp dword ptr [rsp + 52], 0
jne .LBB25_2
mov qword ptr [rsp + 8], 0
jmp .LBB25_3
.LBB25_2:
mov rcx, qword ptr [rsp + 24]
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
.LBB25_3:
mov rax, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 16]
add rsp, 56
ret
std::panicking::try:
sub rsp, 56
mov qword ptr [rsp + 40], rdi
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 24], rax
mov rdi, qword ptr [rip + std::panicking::try::do_call@GOTPCREL]
lea rsi, [rsp + 24]
mov rdx, qword ptr [rip + std::panicking::try::do_catch@GOTPCREL]
call __rust_try
mov dword ptr [rsp + 52], eax
cmp dword ptr [rsp + 52], 0
jne .LBB26_2
mov qword ptr [rsp + 8], 0
jmp .LBB26_3
.LBB26_2:
mov rcx, qword ptr [rsp + 24]
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
.LBB26_3:
mov rax, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 16]
add rsp, 56
ret
std::panicking::try::do_call:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once@GOTPCREL]
pop rax
ret
std::panicking::try::do_call:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once@GOTPCREL]
pop rax
ret
std::panicking::try::do_catch:
sub rsp, 56
mov qword ptr [rsp + 8], rsi
mov rax, rdi
mov rdi, qword ptr [rsp + 8]
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + std::panicking::try::cleanup@GOTPCREL]
call rax
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 32], rax
jmp .LBB29_2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB29_2:
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov qword ptr [rsp + 40], rdx
mov qword ptr [rsp + 48], rcx
mov rdx, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rax], rdx
mov qword ptr [rax + 8], rcx
add rsp, 56
ret
std::panicking::try::do_catch:
sub rsp, 56
mov qword ptr [rsp + 8], rsi
mov rax, rdi
mov rdi, qword ptr [rsp + 8]
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + std::panicking::try::cleanup@GOTPCREL]
call rax
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 32], rax
jmp .LBB30_2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB30_2:
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov qword ptr [rsp + 40], rdx
mov qword ptr [rsp + 48], rcx
mov rdx, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 48]
mov qword ptr [rax], rdx
mov qword ptr [rax + 8], rcx
add rsp, 56
ret
<&T as core::fmt::Debug>::fmt:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + <core::option::Option<T> as core::fmt::Debug>::fmt@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
<&T as core::fmt::Debug>::fmt:
push rax
mov rdi, qword ptr [rdi]
call core::fmt::num::<impl core::fmt::Debug for usize>::fmt
and al, 1
movzx eax, al
pop rcx
ret
<i32 as core::iter::range::Step>::steps_between:
mov qword ptr [rsp - 32], rdi
mov qword ptr [rsp - 24], rsi
mov eax, dword ptr [rdi]
cmp eax, dword ptr [rsi]
jle .LBB33_2
mov qword ptr [rsp - 16], 0
jmp .LBB33_3
.LBB33_2:
mov rcx, qword ptr [rsp - 32]
mov rax, qword ptr [rsp - 24]
movsxd rax, dword ptr [rax]
movsxd rcx, dword ptr [rcx]
sub rax, rcx
mov qword ptr [rsp - 8], rax
mov qword ptr [rsp - 16], 1
.LBB33_3:
mov rax, qword ptr [rsp - 16]
mov rdx, qword ptr [rsp - 8]
ret
<i32 as core::iter::range::Step>::forward_unchecked:
mov eax, edi
mov ecx, esi
add eax, ecx
ret
<&A as core::alloc::Allocator>::deallocate:
push rax
mov rdi, qword ptr [rdi]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
pop rax
ret
core::cmp::impls::<impl core::cmp::Ord for usize>::cmp:
mov qword ptr [rsp - 24], rdi
mov qword ptr [rsp - 16], rsi
mov rax, qword ptr [rdi]
cmp rax, qword ptr [rsi]
jb .LBB36_2
mov rcx, qword ptr [rsp - 16]
mov rax, qword ptr [rsp - 24]
mov rax, qword ptr [rax]
cmp rax, qword ptr [rcx]
je .LBB36_4
jmp .LBB36_3
.LBB36_2:
mov byte ptr [rsp - 1], -1
jmp .LBB36_6
.LBB36_3:
mov byte ptr [rsp - 1], 1
jmp .LBB36_5
.LBB36_4:
mov byte ptr [rsp - 1], 0
.LBB36_5:
jmp .LBB36_6
.LBB36_6:
mov al, byte ptr [rsp - 1]
ret
core::cmp::max_by:
sub rsp, 88
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rsi
mov byte ptr [rsp + 71], 1
mov byte ptr [rsp + 70], 1
lea rax, [rsp + 16]
mov qword ptr [rsp + 48], rax
lea rax, [rsp + 24]
mov qword ptr [rsp + 56], rax
mov rdi, qword ptr [rsp + 48]
mov rsi, qword ptr [rsp + 56]
call core::ops::function::FnOnce::call_once
mov byte ptr [rsp + 15], al
jmp .LBB37_3
.LBB37_1:
jmp .LBB37_12
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 72], rcx
mov dword ptr [rsp + 80], eax
jmp .LBB37_1
.LBB37_3:
mov al, byte ptr [rsp + 15]
mov byte ptr [rsp + 47], al
mov al, byte ptr [rsp + 47]
inc al
sub al, 2
jb .LBB37_5
jmp .LBB37_15
.LBB37_15:
jmp .LBB37_6
ud2
.LBB37_5:
mov byte ptr [rsp + 70], 0
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 32], rax
jmp .LBB37_7
.LBB37_6:
mov byte ptr [rsp + 71], 0
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 32], rax
.LBB37_7:
test byte ptr [rsp + 70], 1
jne .LBB37_9
.LBB37_8:
test byte ptr [rsp + 71], 1
jne .LBB37_11
jmp .LBB37_10
.LBB37_9:
jmp .LBB37_8
.LBB37_10:
mov rax, qword ptr [rsp + 32]
add rsp, 88
ret
.LBB37_11:
jmp .LBB37_10
.LBB37_12:
test byte ptr [rsp + 71], 1
jne .LBB37_14
.LBB37_13:
mov rdi, qword ptr [rsp + 72]
call _Unwind_Resume@PLT
ud2
.LBB37_14:
jmp .LBB37_13
core::fmt::num::<impl core::fmt::Debug for usize>::fmt:
sub rsp, 40
mov qword ptr [rsp + 8], rsi
mov rax, rdi
mov rdi, qword ptr [rsp + 8]
mov qword ptr [rsp + 16], rax
mov qword ptr [rsp + 24], rdi
call qword ptr [rip + core::fmt::Formatter::debug_lower_hex@GOTPCREL]
test al, 1
jne .LBB38_2
mov rdi, qword ptr [rsp + 24]
call qword ptr [rip + core::fmt::Formatter::debug_upper_hex@GOTPCREL]
test al, 1
jne .LBB38_4
jmp .LBB38_3
.LBB38_2:
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 16]
call qword ptr [rip + core::fmt::num::<impl core::fmt::LowerHex for usize>::fmt@GOTPCREL]
and al, 1
mov byte ptr [rsp + 39], al
jmp .LBB38_6
.LBB38_3:
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 16]
call qword ptr [rip + core::fmt::num::imp::<impl core::fmt::Display for usize>::fmt@GOTPCREL]
and al, 1
mov byte ptr [rsp + 39], al
jmp .LBB38_5
.LBB38_4:
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 16]
call qword ptr [rip + core::fmt::num::<impl core::fmt::UpperHex for usize>::fmt@GOTPCREL]
and al, 1
mov byte ptr [rsp + 39], al
.LBB38_5:
jmp .LBB38_6
.LBB38_6:
mov al, byte ptr [rsp + 39]
and al, 1
movzx eax, al
add rsp, 40
ret
core::fmt::Write::write_char:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov dword ptr [rsp + 4], esi
lea rdi, [rsp + 20]
xor esi, esi
mov edx, 4
call memset@PLT
mov edi, dword ptr [rsp + 4]
lea rsi, [rsp + 20]
mov edx, 4
call core::char::methods::encode_utf8_raw
mov rdi, qword ptr [rsp + 8]
mov rsi, rax
call qword ptr [rip + <std::io::Write::write_fmt::Adapter<T> as core::fmt::Write>::write_str@GOTPCREL]
and al, 1
movzx eax, al
add rsp, 24
ret
core::fmt::Write::write_fmt:
push rax
mov rdx, rsi
mov qword ptr [rsp], rdi
mov rdi, rsp
lea rsi, [rip + .L__unnamed_23]
call qword ptr [rip + core::fmt::write@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
core::fmt::Arguments::new_v1:
sub rsp, 136
mov qword ptr [rsp], r8
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
cmp rdx, r8
jb .LBB41_2
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp]
add rcx, 1
cmp rax, rcx
seta al
and al, 1
mov byte ptr [rsp + 55], al
jmp .LBB41_3
.LBB41_2:
mov byte ptr [rsp + 55], 1
.LBB41_3:
test byte ptr [rsp + 55], 1
jne .LBB41_5
mov rax, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp]
mov rsi, qword ptr [rsp + 8]
mov rdi, qword ptr [rsp + 16]
mov r8, qword ptr [rsp + 24]
mov qword ptr [rsp + 104], 0
mov qword ptr [rcx], r8
mov qword ptr [rcx + 8], rdi
mov r8, qword ptr [rsp + 104]
mov rdi, qword ptr [rsp + 112]
mov qword ptr [rcx + 32], r8
mov qword ptr [rcx + 40], rdi
mov qword ptr [rcx + 16], rsi
mov qword ptr [rcx + 24], rdx
add rsp, 136
ret
.LBB41_5:
mov qword ptr [rsp + 120], 0
lea rax, [rip + .L__unnamed_6]
mov qword ptr [rsp + 56], rax
mov qword ptr [rsp + 64], 1
mov rcx, qword ptr [rsp + 120]
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 72], rax
mov qword ptr [rsp + 80], 0
lea rsi, [rip + .L__unnamed_24]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 56]
call rax
ud2
core::fmt::Arguments::new_const:
sub rsp, 104
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdi
mov qword ptr [rsp + 32], rdi
cmp rdx, 1
ja .LBB42_2
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
mov qword ptr [rsp + 88], 0
mov qword ptr [rcx], rsi
mov qword ptr [rcx + 8], rdx
mov rsi, qword ptr [rsp + 88]
mov rdx, qword ptr [rsp + 96]
mov qword ptr [rcx + 32], rsi
mov qword ptr [rcx + 40], rdx
lea rdx, [rip + .L__unnamed_4]
mov qword ptr [rcx + 16], rdx
mov qword ptr [rcx + 24], 0
add rsp, 104
ret
.LBB42_2:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 40]
mov qword ptr [rsp], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
core::ops::function::FnOnce::call_once{{vtable.shim}}:
push rax
call qword ptr [rip + std::thread::Builder::spawn_unchecked_::{{closure}}@GOTPCREL]
pop rax
ret
core::ops::function::FnOnce::call_once:
push rax
call qword ptr [rip + std::sys_common::thread::min_stack@GOTPCREL]
pop rcx
ret
core::ops::function::FnOnce::call_once:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
call core::cmp::impls::<impl core::cmp::Ord for usize>::cmp
add rsp, 24
ret
core::ops::function::FnOnce::call_once:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov rax, qword ptr [rip + <std::thread::Packet<T> as core::ops::drop::Drop>::drop::{{closure}}@GOTPCREL]
lea rdi, [rsp + 8]
call rax
jmp .LBB46_3
.LBB46_1:
mov rdi, qword ptr [rsp + 24]
call _Unwind_Resume@PLT
ud2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 24], rcx
mov dword ptr [rsp + 32], eax
jmp .LBB46_1
.LBB46_3:
add rsp, 40
ret
core::ptr::drop_in_place<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>:
push rax
call qword ptr [rip + <alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::io::error::ErrorData<alloc::boxed::Box<std::io::error::Custom>>>:
push rax
mov qword ptr [rsp], rdi
mov al, byte ptr [rdi]
sub al, 3
jb .LBB48_2
jmp .LBB48_1
.LBB48_1:
mov rdi, qword ptr [rsp]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<std::io::error::Custom>>@GOTPCREL]
.LBB48_2:
pop rax
ret
core::ptr::drop_in_place<alloc::sync::Weak<std::thread::scoped::ScopeData,&alloc::alloc::Global>>:
push rax
call qword ptr [rip + <alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::thread::scoped::ScopeData>>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB50_2
.LBB50_1:
pop rax
ret
.LBB50_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::scoped::ScopeData>>@GOTPCREL]
jmp .LBB50_1
core::ptr::drop_in_place<&mut std::io::Write::write_fmt::Adapter<std::sys::unix::stdio::Stderr>>:
ret
core::ptr::drop_in_place<alloc::sync::Weak<std::thread::Packet<()>,&alloc::alloc::Global>>:
push rax
call qword ptr [rip + <alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::boxed::Box<dyn core::error::Error+core::marker::Sync+core::marker::Send>>:
sub rsp, 24
mov rax, rdi
mov qword ptr [rsp], rax
mov rdi, qword ptr [rax]
mov rax, qword ptr [rax + 8]
mov rax, qword ptr [rax]
call rax
jmp .LBB53_3
.LBB53_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB53_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB53_1
.LBB53_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB53_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<alloc::sync::Weak<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>,&alloc::alloc::Global>>:
push rax
call qword ptr [rip + <alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB55_2
.LBB55_1:
pop rax
ret
.LBB55_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>@GOTPCREL]
jmp .LBB55_1
core::ptr::drop_in_place<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB56_2
.LBB56_1:
pop rax
ret
.LBB56_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>@GOTPCREL]
jmp .LBB56_1
core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_::MaybeDangling<example::main::{{closure}}::{{closure}}>>:
push rax
call qword ptr [rip + <std::thread::Builder::spawn_unchecked_::MaybeDangling<T> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>:
push rax
mov qword ptr [rsp], rdi
cmp qword ptr [rdi], 0
jne .LBB58_2
.LBB58_1:
pop rax
ret
.LBB58_2:
mov rdi, qword ptr [rsp]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>@GOTPCREL]
jmp .LBB58_1
core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_<example::main::{{closure}}::{{closure}},()>::{{closure}}>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB59_3
.LBB59_1:
mov rdi, qword ptr [rsp]
add rdi, 16
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
call rax
jmp .LBB59_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB59_1
.LBB59_3:
mov rdi, qword ptr [rsp]
add rdi, 16
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>>>@GOTPCREL]
call rax
jmp .LBB59_6
.LBB59_4:
mov rdi, qword ptr [rsp]
add rdi, 24
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_::MaybeDangling<example::main::{{closure}}::{{closure}}>>@GOTPCREL]
call rax
jmp .LBB59_7
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB59_4
.LBB59_6:
mov rdi, qword ptr [rsp]
add rdi, 24
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_::MaybeDangling<example::main::{{closure}}::{{closure}}>>@GOTPCREL]
call rax
jmp .LBB59_9
.LBB59_7:
mov rdi, qword ptr [rsp]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
jmp .LBB59_11
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB59_7
.LBB59_9:
mov rdi, qword ptr [rsp]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB59_11:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<core::cell::UnsafeCell<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop::DropGuard<std::thread::JoinHandle<()>,alloc::alloc::Global>>:
push rax
call qword ptr [rip + <<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop::DropGuard<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::set_len_on_drop::SetLenOnDrop>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<&usize>:
ret
core::ptr::drop_in_place<core::iter::traits::iterator::Iterator::for_each::call<std::thread::JoinHandle<()>,alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>::{{closure}}>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::thread::Inner>:
push rax
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::ffi::c_str::CString>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::thread::Thread>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<core::pin::Pin<alloc::sync::Arc<std::thread::Inner>>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::string::String>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<u8>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::io::error::Error>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<std::io::error::repr_bitpacked::Repr>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::io::error::Custom>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<dyn core::error::Error+core::marker::Sync+core::marker::Send>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::vec::Vec<u8>>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rax, qword ptr [rip + <alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB70_3
.LBB70_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>@GOTPCREL]
call rax
jmp .LBB70_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB70_1
.LBB70_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB70_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<alloc::ffi::c_str::CString>:
sub rsp, 24
mov qword ptr [rsp], rdi
call <alloc::ffi::c_str::CString as core::ops::drop::Drop>::drop
jmp .LBB71_3
.LBB71_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<[u8]>>@GOTPCREL]
call rax
jmp .LBB71_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB71_1
.LBB71_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<[u8]>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB71_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<alloc::ffi::c_str::NulError>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<u8>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::sys::unix::thread::Thread>:
push rax
call qword ptr [rip + <std::sys::unix::thread::Thread as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::thread::scoped::ScopeData>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>>:
push rax
call qword ptr [rip + <alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::iter::adapters::map::map_fold<i32,std::thread::JoinHandle<()>,(),example::main::{{closure}},core::iter::traits::iterator::Iterator::for_each::call<std::thread::JoinHandle<()>,alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>::{{closure}}>::{{closure}}>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<core::iter::traits::iterator::Iterator::for_each::call<std::thread::JoinHandle<()>,alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>::{{closure}}>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::thread::Packet<()>>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rax, qword ptr [rip + <std::thread::Packet<T> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB77_3
.LBB77_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::thread::scoped::ScopeData>>>@GOTPCREL]
call rax
jmp .LBB77_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB77_1
.LBB77_3:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<alloc::sync::Arc<std::thread::scoped::ScopeData>>>@GOTPCREL]
call rax
jmp .LBB77_6
.LBB77_4:
mov rdi, qword ptr [rsp]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::cell::UnsafeCell<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>>@GOTPCREL]
call rax
jmp .LBB77_8
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB77_4
.LBB77_6:
mov rdi, qword ptr [rsp]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::cell::UnsafeCell<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB77_8:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<std::io::error::repr_bitpacked::Repr>:
push rax
call <std::io::error::repr_bitpacked::Repr as core::ops::drop::Drop>::drop
pop rax
ret
core::ptr::drop_in_place<&core::option::Option<usize>>:
ret
core::ptr::drop_in_place<alloc::boxed::Box<[u8]>>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rsp]
call qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
add rsp, 24
ret
core::ptr::drop_in_place<std::thread::JoinInner<()>>:
sub rsp, 24
mov qword ptr [rsp], rdi
add rdi, 16
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::sys::unix::thread::Thread>@GOTPCREL]
call rax
jmp .LBB81_3
.LBB81_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB81_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB81_1
.LBB81_3:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Thread>@GOTPCREL]
call rax
jmp .LBB81_6
.LBB81_4:
mov rdi, qword ptr [rsp]
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
call rax
jmp .LBB81_8
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB81_4
.LBB81_6:
mov rdi, qword ptr [rsp]
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB81_8:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<std::thread::JoinHandle<()>>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<std::thread::JoinInner<()>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::vec::set_len_on_drop::SetLenOnDrop>:
push rax
call <alloc::vec::set_len_on_drop::SetLenOnDrop as core::ops::drop::Drop>::drop
pop rax
ret
core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Inner>>:
push rax
call qword ptr [rip + <alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<dyn core::any::Any+core::marker::Send>:
push rax
call qword ptr [rsi]
pop rax
ret
core::ptr::drop_in_place<alloc::boxed::Box<std::io::error::Custom>>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rdi]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::io::error::Custom>@GOTPCREL]
call rax
jmp .LBB86_3
.LBB86_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB86_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB86_1
.LBB86_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB86_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<[std::thread::JoinHandle<()>]>:
sub rsp, 40
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], 0
.LBB87_1:
mov rax, qword ptr [rsp + 8]
cmp qword ptr [rsp + 16], rax
je .LBB87_3
mov rcx, qword ptr [rsp]
mov rax, qword ptr [rsp + 16]
lea rdx, [rax + 2*rax]
lea rdi, [rcx + 8*rdx]
inc rax
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::JoinHandle<()>>@GOTPCREL]
call rax
jmp .LBB87_1
.LBB87_3:
add rsp, 40
ret
.LBB87_4:
mov rax, qword ptr [rsp + 8]
cmp qword ptr [rsp + 16], rax
je .LBB87_7
jmp .LBB87_6
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 24], rcx
mov dword ptr [rsp + 32], eax
jmp .LBB87_4
.LBB87_6:
mov rcx, qword ptr [rsp]
mov rax, qword ptr [rsp + 16]
lea rdx, [rax + 2*rax]
lea rdi, [rcx + 8*rdx]
inc rax
mov qword ptr [rsp + 16], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::JoinHandle<()>>@GOTPCREL]
call rax
jmp .LBB87_4
.LBB87_7:
mov rdi, qword ptr [rsp + 24]
call _Unwind_Resume@PLT
ud2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
core::ptr::drop_in_place<core::option::Option<alloc::string::String>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB88_2
.LBB88_1:
pop rax
ret
.LBB88_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::string::String>@GOTPCREL]
jmp .LBB88_1
core::ptr::drop_in_place<alloc::sync::Arc<std::thread::scoped::ScopeData>>:
push rax
call qword ptr [rip + <alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::option::Option<alloc::ffi::c_str::CString>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB90_2
.LBB90_1:
pop rax
ret
.LBB90_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::ffi::c_str::CString>@GOTPCREL]
jmp .LBB90_1
core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<u8>>>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<u8>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>:
push rax
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<u8>>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Packet<()>>>:
push rax
call qword ptr [rip + <alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::result::Result<(),std::io::error::Error>>:
push rax
mov qword ptr [rsp], rdi
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB94_2
.LBB94_1:
pop rax
ret
.LBB94_2:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<std::io::error::Error>@GOTPCREL]
jmp .LBB94_1
core::ptr::drop_in_place<alloc::vec::Vec<std::thread::JoinHandle<()>>>:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rax, qword ptr [rip + <alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB95_3
.LBB95_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::raw_vec::RawVec<std::thread::JoinHandle<()>>>@GOTPCREL]
call rax
jmp .LBB95_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB95_1
.LBB95_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + core::ptr::drop_in_place<alloc::raw_vec::RawVec<std::thread::JoinHandle<()>>>@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB95_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<alloc::sync::ArcInner<std::thread::Packet<()>>>:
push rax
add rdi, 16
call qword ptr [rip + core::ptr::drop_in_place<std::thread::Packet<()>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<core::pin::Pin<alloc::sync::Arc<std::thread::Inner>>>:
push rax
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Arc<std::thread::Inner>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::raw_vec::RawVec<std::thread::JoinHandle<()>>>:
push rax
call qword ptr [rip + <alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>:
sub rsp, 24
mov rax, rdi
mov qword ptr [rsp], rax
mov rdi, qword ptr [rax]
mov rax, qword ptr [rax + 8]
mov rax, qword ptr [rax]
call rax
jmp .LBB99_3
.LBB99_1:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
call rax
jmp .LBB99_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 8], rcx
mov dword ptr [rsp + 16], eax
jmp .LBB99_1
.LBB99_3:
mov rdi, qword ptr [rsp]
call qword ptr [rip + <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
add rsp, 24
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB99_5:
mov rdi, qword ptr [rsp + 8]
call _Unwind_Resume@PLT
ud2
core::ptr::drop_in_place<alloc::sync::Weak<std::thread::Inner,&alloc::alloc::Global>>:
push rax
call qword ptr [rip + <alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<std::io::Write::write_fmt::Adapter<std::sys::unix::stdio::Stderr>>:
push rax
add rdi, 8
call qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),std::io::error::Error>>@GOTPCREL]
pop rax
ret
core::ptr::drop_in_place<dyn core::error::Error+core::marker::Sync+core::marker::Send>:
push rax
call qword ptr [rsi]
pop rax
ret
core::ptr::drop_in_place<alloc::vec::into_iter::IntoIter<std::thread::JoinHandle<()>>>:
push rax
call qword ptr [rip + <alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop@GOTPCREL]
pop rax
ret
core::char::methods::encode_utf8_raw:
sub rsp, 216
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdx
mov dword ptr [rsp + 36], edi
mov eax, dword ptr [rsp + 36]
mov dword ptr [rsp + 32], eax
cmp eax, 128
jb .LBB104_2
mov eax, dword ptr [rsp + 32]
cmp eax, 2048
jb .LBB104_4
jmp .LBB104_3
.LBB104_2:
mov qword ptr [rsp + 40], 1
jmp .LBB104_9
.LBB104_3:
mov eax, dword ptr [rsp + 32]
cmp eax, 65536
jb .LBB104_6
jmp .LBB104_5
.LBB104_4:
mov qword ptr [rsp + 40], 2
jmp .LBB104_8
.LBB104_5:
mov qword ptr [rsp + 40], 4
jmp .LBB104_7
.LBB104_6:
mov qword ptr [rsp + 40], 3
.LBB104_7:
jmp .LBB104_8
.LBB104_8:
jmp .LBB104_9
.LBB104_9:
mov rax, qword ptr [rsp + 40]
dec rax
mov qword ptr [rsp + 8], rax
sub rax, 3
ja .LBB104_10
mov rax, qword ptr [rsp + 8]
lea rcx, [rip + .LJTI104_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
.LBB104_10:
mov rcx, qword ptr [rsp + 24]
lea rax, [rsp + 40]
mov qword ptr [rsp + 144], rax
mov rax, qword ptr [rip + core::fmt::num::imp::<impl core::fmt::Display for usize>::fmt@GOTPCREL]
mov qword ptr [rsp + 152], rax
lea rdx, [rsp + 36]
mov qword ptr [rsp + 160], rdx
mov rdx, qword ptr [rip + core::fmt::num::<impl core::fmt::UpperHex for u32>::fmt@GOTPCREL]
mov qword ptr [rsp + 168], rdx
mov qword ptr [rsp + 192], rcx
lea rcx, [rsp + 192]
mov qword ptr [rsp + 176], rcx
mov qword ptr [rsp + 184], rax
mov rcx, qword ptr [rsp + 144]
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 96], rcx
mov qword ptr [rsp + 104], rax
mov rcx, qword ptr [rsp + 160]
mov rax, qword ptr [rsp + 168]
mov qword ptr [rsp + 112], rcx
mov qword ptr [rsp + 120], rax
mov rcx, qword ptr [rsp + 176]
mov rax, qword ptr [rsp + 184]
mov qword ptr [rsp + 128], rcx
mov qword ptr [rsp + 136], rax
lea rsi, [rip + .L__unnamed_25]
lea rdi, [rsp + 48]
mov qword ptr [rsp], rdi
lea rcx, [rsp + 96]
mov r8d, 3
mov rdx, r8
call core::fmt::Arguments::new_v1
mov rdi, qword ptr [rsp]
lea rsi, [rip + .L__unnamed_26]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB104_11:
mov rax, qword ptr [rsp + 24]
cmp rax, 1
jae .LBB104_15
jmp .LBB104_10
.LBB104_12:
mov rax, qword ptr [rsp + 24]
cmp rax, 2
jae .LBB104_17
jmp .LBB104_10
.LBB104_13:
mov rax, qword ptr [rsp + 24]
cmp rax, 3
jae .LBB104_18
jmp .LBB104_10
.LBB104_14:
mov rax, qword ptr [rsp + 24]
cmp rax, 4
jae .LBB104_19
jmp .LBB104_10
.LBB104_15:
mov rax, qword ptr [rsp + 16]
mov ecx, dword ptr [rsp + 36]
mov byte ptr [rax], cl
.LBB104_16:
mov rcx, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 200], 0
mov qword ptr [rsp + 208], rax
mov rdi, qword ptr [rsp + 200]
mov rsi, qword ptr [rsp + 208]
lea r8, [rip + .L__unnamed_27]
mov rax, qword ptr [rip + <core::ops::range::Range<usize> as core::slice::index::SliceIndex<[T]>>::index_mut@GOTPCREL]
call rax
add rsp, 216
ret
.LBB104_17:
mov rax, qword ptr [rsp + 16]
mov ecx, dword ptr [rsp + 36]
shr ecx, 6
and ecx, 31
or cl, -64
mov byte ptr [rax], cl
mov ecx, dword ptr [rsp + 36]
and ecx, 63
or cl, -128
mov byte ptr [rax + 1], cl
jmp .LBB104_16
.LBB104_18:
mov rax, qword ptr [rsp + 16]
mov ecx, dword ptr [rsp + 36]
shr ecx, 12
and ecx, 15
or cl, -32
mov byte ptr [rax], cl
mov ecx, dword ptr [rsp + 36]
shr ecx, 6
and ecx, 63
or cl, -128
mov byte ptr [rax + 1], cl
mov ecx, dword ptr [rsp + 36]
and ecx, 63
or cl, -128
mov byte ptr [rax + 2], cl
jmp .LBB104_16
.LBB104_19:
mov rax, qword ptr [rsp + 16]
mov ecx, dword ptr [rsp + 36]
shr ecx, 18
and ecx, 7
or cl, -16
mov byte ptr [rax], cl
mov ecx, dword ptr [rsp + 36]
shr ecx, 12
and ecx, 63
or cl, -128
mov byte ptr [rax + 1], cl
mov ecx, dword ptr [rsp + 36]
shr ecx, 6
and ecx, 63
or cl, -128
mov byte ptr [rax + 2], cl
mov ecx, dword ptr [rsp + 36]
and ecx, 63
or cl, -128
mov byte ptr [rax + 3], cl
jmp .LBB104_16
.LJTI104_0:
.long .LBB104_11-.LJTI104_0
.long .LBB104_12-.LJTI104_0
.long .LBB104_13-.LJTI104_0
.long .LBB104_14-.LJTI104_0
core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next:
push rax
mov rax, qword ptr [rip + <core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next@GOTPCREL]
call rax
pop rcx
ret
core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::size_hint:
sub rsp, 88
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
mov eax, dword ptr [rsi]
cmp eax, dword ptr [rsi + 4]
jl .LBB106_2
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 80], 0
mov qword ptr [rsp + 72], 1
mov qword ptr [rax], 0
mov rdx, qword ptr [rsp + 72]
mov rcx, qword ptr [rsp + 80]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
jmp .LBB106_3
.LBB106_2:
mov rdi, qword ptr [rsp + 24]
mov rsi, rdi
add rsi, 4
call <i32 as core::iter::range::Step>::steps_between
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 56], rax
mov qword ptr [rsp + 64], rdx
cmp qword ptr [rsp + 56], 0
je .LBB106_4
jmp .LBB106_5
.LBB106_3:
mov rax, qword ptr [rsp + 40]
add rsp, 88
ret
.LBB106_4:
mov qword ptr [rsp + 48], -1
jmp .LBB106_6
.LBB106_5:
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 48], rax
.LBB106_6:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 48]
mov qword ptr [rax], rsi
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
jmp .LBB106_3
core::iter::traits::exact_size::ExactSizeIterator::len:
sub rsp, 136
mov rsi, rdi
mov rax, qword ptr [rip + <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::size_hint@GOTPCREL]
lea rdi, [rsp + 40]
call rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 8], rax
mov rdx, qword ptr [rsp + 48]
mov rcx, qword ptr [rsp + 56]
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 32], rcx
mov qword ptr [rsp + 72], rax
mov qword ptr [rsp + 64], 1
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 16], rax
test rax, rax
je .LBB107_2
jmp .LBB107_8
.LBB107_8:
mov rax, qword ptr [rsp + 16]
sub rax, 1
je .LBB107_3
jmp .LBB107_1
.LBB107_1:
mov byte ptr [rsp + 87], 0
jmp .LBB107_4
.LBB107_2:
cmp qword ptr [rsp + 64], 0
sete al
and al, 1
mov byte ptr [rsp + 87], al
jmp .LBB107_4
.LBB107_3:
cmp qword ptr [rsp + 64], 1
je .LBB107_5
jmp .LBB107_1
.LBB107_4:
mov al, byte ptr [rsp + 87]
xor al, -1
test al, 1
jne .LBB107_7
jmp .LBB107_6
.LBB107_5:
mov rax, qword ptr [rsp + 32]
cmp rax, qword ptr [rsp + 72]
sete al
and al, 1
mov byte ptr [rsp + 87], al
jmp .LBB107_4
.LBB107_6:
mov rax, qword ptr [rsp + 8]
add rsp, 136
ret
.LBB107_7:
mov qword ptr [rsp + 88], 0
lea r8, [rip + .L__unnamed_28]
mov rax, qword ptr [rip + core::panicking::assert_failed@GOTPCREL]
xor edi, edi
lea rsi, [rsp + 24]
lea rdx, [rsp + 64]
lea rcx, [rsp + 88]
call rax
ud2
core::iter::traits::iterator::Iterator::map:
mov rax, rdi
mov dword ptr [rdi + 8], esi
mov dword ptr [rdi + 12], edx
mov qword ptr [rdi], rcx
ret
core::iter::traits::iterator::Iterator::fold:
sub rsp, 56
mov qword ptr [rsp + 8], rdx
mov dword ptr [rsp + 16], edi
mov dword ptr [rsp + 20], esi
mov byte ptr [rsp + 39], 1
.LBB109_1:
mov rax, qword ptr [rip + core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next@GOTPCREL]
lea rdi, [rsp + 16]
call rax
mov dword ptr [rsp], edx
mov dword ptr [rsp + 4], eax
jmp .LBB109_4
.LBB109_2:
test byte ptr [rsp + 39], 1
jne .LBB109_13
jmp .LBB109_12
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB109_2
.LBB109_4:
mov eax, dword ptr [rsp]
mov ecx, dword ptr [rsp + 4]
mov dword ptr [rsp + 24], ecx
mov dword ptr [rsp + 28], eax
mov eax, dword ptr [rsp + 24]
cmp rax, 1
jne .LBB109_6
mov rdi, qword ptr [rsp + 8]
mov eax, dword ptr [rsp + 28]
mov byte ptr [rsp + 39], 0
mov dword ptr [rsp + 32], eax
mov esi, dword ptr [rsp + 32]
mov rax, qword ptr [rip + core::iter::adapters::map::map_fold::{{closure}}@GOTPCREL]
call rax
jmp .LBB109_7
.LBB109_6:
jmp .LBB109_8
.LBB109_7:
mov byte ptr [rsp + 39], 1
jmp .LBB109_1
.LBB109_8:
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::iter::adapters::map::map_fold<i32,std::thread::JoinHandle<()>,(),example::main::{{closure}},core::iter::traits::iterator::Iterator::for_each::call<std::thread::JoinHandle<()>,alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>::{{closure}}>::{{closure}}>@GOTPCREL]
call rax
jmp .LBB109_11
.LBB109_9:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB109_9
.LBB109_11:
add rsp, 56
ret
.LBB109_12:
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::iter::adapters::map::map_fold<i32,std::thread::JoinHandle<()>,(),example::main::{{closure}},core::iter::traits::iterator::Iterator::for_each::call<std::thread::JoinHandle<()>,alloc::vec::Vec<std::thread::JoinHandle<()>>::extend_trusted<core::iter::adapters::map::Map<core::ops::range::Range<i32>,example::main::{{closure}}>>::{{closure}}>::{{closure}}>::{{closure}}>@GOTPCREL]
call rax
jmp .LBB109_9
.LBB109_13:
jmp .LBB109_12
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
core::iter::traits::iterator::Iterator::collect:
push rax
mov rax, rdi
mov qword ptr [rsp], rax
call qword ptr [rip + <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter@GOTPCREL]
mov rax, qword ptr [rsp]
pop rcx
ret
core::iter::traits::iterator::Iterator::for_each:
sub rsp, 56
movups xmm0, xmmword ptr [rdi]
movaps xmmword ptr [rsp], xmm0
mov rax, qword ptr [rsi + 16]
mov qword ptr [rsp + 32], rax
movups xmm0, xmmword ptr [rsi]
movaps xmmword ptr [rsp + 16], xmm0
mov rax, qword ptr [rip + <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold@GOTPCREL]
mov rdi, rsp
lea rsi, [rsp + 16]
call rax
jmp .LBB111_3
.LBB111_1:
xor eax, eax
test al, 1
jne .LBB111_5
jmp .LBB111_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB111_1
.LBB111_3:
add rsp, 56
ret
.LBB111_4:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
.LBB111_5:
jmp .LBB111_4
core::iter::traits::iterator::Iterator::for_each::call::{{closure}}:
sub rsp, 24
mov rax, qword ptr [rsi]
mov qword ptr [rsp], rax
mov rax, qword ptr [rsi + 8]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rsi + 16]
mov qword ptr [rsp + 16], rax
mov rsi, rsp
call qword ptr [rip + alloc::vec::Vec<T,A>::extend_trusted::{{closure}}@GOTPCREL]
add rsp, 24
ret
core::iter::adapters::map::map_fold::{{closure}}:
sub rsp, 88
mov eax, esi
mov rsi, rdi
mov qword ptr [rsp + 8], rsi
mov byte ptr [rsp + 71], 1
add rsi, 24
mov dword ptr [rsp + 64], eax
mov edx, dword ptr [rsp + 64]
lea rdi, [rsp + 40]
call example::main::{{closure}}
jmp .LBB113_3
.LBB113_1:
test byte ptr [rsp + 71], 1
jne .LBB113_6
jmp .LBB113_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 72], rcx
mov dword ptr [rsp + 80], eax
jmp .LBB113_1
.LBB113_3:
mov rdi, qword ptr [rsp + 8]
mov byte ptr [rsp + 71], 0
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 32], rax
movups xmm0, xmmword ptr [rsp + 40]
movaps xmmword ptr [rsp + 16], xmm0
mov rax, qword ptr [rip + core::iter::traits::iterator::Iterator::for_each::call::{{closure}}@GOTPCREL]
lea rsi, [rsp + 16]
call rax
jmp .LBB113_4
.LBB113_4:
add rsp, 88
ret
.LBB113_5:
mov rdi, qword ptr [rsp + 72]
call _Unwind_Resume@PLT
ud2
.LBB113_6:
jmp .LBB113_5
core::sync::atomic::AtomicBool::compare_exchange_weak:
push rax
mov eax, edx
mov edx, esi
mov sil, r8b
movzx ecx, cl
movzx r8d, sil
movzx esi, dl
and esi, 1
movzx edx, al
and edx, 1
mov rax, qword ptr [rip + core::sync::atomic::atomic_compare_exchange_weak@GOTPCREL]
call rax
mov byte ptr [rsp + 7], dl
mov byte ptr [rsp + 6], al
mov al, byte ptr [rsp + 6]
and al, 1
movzx eax, al
cmp rax, 0
jne .LBB114_2
cmp byte ptr [rsp + 7], 0
setne al
and al, 1
mov byte ptr [rsp + 5], al
mov byte ptr [rsp + 4], 0
jmp .LBB114_3
.LBB114_2:
cmp byte ptr [rsp + 7], 0
setne al
and al, 1
mov byte ptr [rsp + 5], al
mov byte ptr [rsp + 4], 1
.LBB114_3:
mov al, byte ptr [rsp + 4]
mov dl, byte ptr [rsp + 5]
pop rcx
ret
core::sync::atomic::AtomicBool::new:
mov al, dil
and al, 1
mov byte ptr [rsp - 1], al
mov al, byte ptr [rsp - 1]
mov byte ptr [rsp - 2], al
mov al, byte ptr [rsp - 2]
ret
core::sync::atomic::AtomicBool::store:
push rax
mov al, dl
mov cl, sil
and cl, 1
movzx esi, cl
movzx edx, al
call qword ptr [rip + core::sync::atomic::atomic_store@GOTPCREL]
pop rax
ret
core::sync::atomic::atomic_load:
sub rsp, 280
mov qword ptr [rsp + 24], rdi
mov al, sil
mov byte ptr [rsp + 47], al
movzx eax, byte ptr [rsp + 47]
mov qword ptr [rsp + 32], rax
mov rax, qword ptr [rsp + 32]
lea rcx, [rip + .LJTI117_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB117_2:
mov rax, qword ptr [rsp + 24]
mov rax, qword ptr [rax]
mov qword ptr [rsp + 48], rax
jmp .LBB117_7
.LBB117_3:
xor eax, eax
test al, 1
jne .LBB117_9
jmp .LBB117_8
.LBB117_4:
mov rax, qword ptr [rsp + 24]
mov rax, qword ptr [rax]
mov qword ptr [rsp + 48], rax
jmp .LBB117_7
.LBB117_5:
xor eax, eax
test al, 1
jne .LBB117_11
jmp .LBB117_10
.LBB117_6:
mov rax, qword ptr [rsp + 24]
mov rax, qword ptr [rax]
mov qword ptr [rsp + 48], rax
.LBB117_7:
mov rax, qword ptr [rsp + 48]
add rsp, 280
ret
.LBB117_8:
mov qword ptr [rsp + 264], 0
lea rax, [rip + .L__unnamed_29]
mov qword ptr [rsp + 56], rax
mov qword ptr [rsp + 64], 1
mov rcx, qword ptr [rsp + 264]
mov rax, qword ptr [rsp + 272]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 72], rax
mov qword ptr [rsp + 80], 0
lea rsi, [rip + .L__unnamed_30]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 56]
call rax
ud2
.LBB117_9:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 216]
mov qword ptr [rsp + 16], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 16]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB117_10:
mov qword ptr [rsp + 200], 0
lea rax, [rip + .L__unnamed_31]
mov qword ptr [rsp + 104], rax
mov qword ptr [rsp + 112], 1
mov rcx, qword ptr [rsp + 200]
mov rax, qword ptr [rsp + 208]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 120], rax
mov qword ptr [rsp + 128], 0
lea rsi, [rip + .L__unnamed_32]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 104]
call rax
ud2
.LBB117_11:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 152]
mov qword ptr [rsp + 8], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 8]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LJTI117_0:
.long .LBB117_2-.LJTI117_0
.long .LBB117_3-.LJTI117_0
.long .LBB117_4-.LJTI117_0
.long .LBB117_5-.LJTI117_0
.long .LBB117_6-.LJTI117_0
core::sync::atomic::atomic_store:
sub rsp, 280
mov qword ptr [rsp + 24], rdi
mov al, dl
mov cl, sil
mov byte ptr [rsp + 39], cl
mov byte ptr [rsp + 55], al
movzx eax, byte ptr [rsp + 55]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
lea rcx, [rip + .LJTI118_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB118_2:
mov rax, qword ptr [rsp + 24]
mov cl, byte ptr [rsp + 39]
mov byte ptr [rax], cl
jmp .LBB118_7
.LBB118_3:
mov rax, qword ptr [rsp + 24]
mov cl, byte ptr [rsp + 39]
mov byte ptr [rax], cl
jmp .LBB118_7
.LBB118_4:
xor eax, eax
test al, 1
jne .LBB118_9
jmp .LBB118_8
.LBB118_5:
xor eax, eax
test al, 1
jne .LBB118_11
jmp .LBB118_10
.LBB118_6:
mov rcx, qword ptr [rsp + 24]
mov al, byte ptr [rsp + 39]
xchg byte ptr [rcx], al
.LBB118_7:
add rsp, 280
ret
.LBB118_8:
mov qword ptr [rsp + 264], 0
lea rax, [rip + .L__unnamed_33]
mov qword ptr [rsp + 56], rax
mov qword ptr [rsp + 64], 1
mov rcx, qword ptr [rsp + 264]
mov rax, qword ptr [rsp + 272]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 72], rax
mov qword ptr [rsp + 80], 0
lea rsi, [rip + .L__unnamed_34]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 56]
call rax
ud2
.LBB118_9:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 216]
mov qword ptr [rsp + 16], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 16]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB118_10:
mov qword ptr [rsp + 200], 0
lea rax, [rip + .L__unnamed_35]
mov qword ptr [rsp + 104], rax
mov qword ptr [rsp + 112], 1
mov rcx, qword ptr [rsp + 200]
mov rax, qword ptr [rsp + 208]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 120], rax
mov qword ptr [rsp + 128], 0
lea rsi, [rip + .L__unnamed_36]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 104]
call rax
ud2
.LBB118_11:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 152]
mov qword ptr [rsp + 8], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 8]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LJTI118_0:
.long .LBB118_2-.LJTI118_0
.long .LBB118_3-.LJTI118_0
.long .LBB118_4-.LJTI118_0
.long .LBB118_5-.LJTI118_0
.long .LBB118_6-.LJTI118_0
core::sync::atomic::atomic_store:
sub rsp, 280
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov al, dl
mov byte ptr [rsp + 55], al
movzx eax, byte ptr [rsp + 55]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
lea rcx, [rip + .LJTI119_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB119_2:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax], rcx
jmp .LBB119_7
.LBB119_3:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax], rcx
jmp .LBB119_7
.LBB119_4:
xor eax, eax
test al, 1
jne .LBB119_9
jmp .LBB119_8
.LBB119_5:
xor eax, eax
test al, 1
jne .LBB119_11
jmp .LBB119_10
.LBB119_6:
mov rcx, qword ptr [rsp + 32]
mov rax, qword ptr [rsp + 24]
xchg qword ptr [rcx], rax
.LBB119_7:
add rsp, 280
ret
.LBB119_8:
mov qword ptr [rsp + 264], 0
lea rax, [rip + .L__unnamed_33]
mov qword ptr [rsp + 56], rax
mov qword ptr [rsp + 64], 1
mov rcx, qword ptr [rsp + 264]
mov rax, qword ptr [rsp + 272]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 72], rax
mov qword ptr [rsp + 80], 0
lea rsi, [rip + .L__unnamed_34]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 56]
call rax
ud2
.LBB119_9:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 216]
mov qword ptr [rsp + 16], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 16]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB119_10:
mov qword ptr [rsp + 200], 0
lea rax, [rip + .L__unnamed_35]
mov qword ptr [rsp + 104], rax
mov qword ptr [rsp + 112], 1
mov rcx, qword ptr [rsp + 200]
mov rax, qword ptr [rsp + 208]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 120], rax
mov qword ptr [rsp + 128], 0
lea rsi, [rip + .L__unnamed_36]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 104]
call rax
ud2
.LBB119_11:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 152]
mov qword ptr [rsp + 8], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 8]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LJTI119_0:
.long .LBB119_2-.LJTI119_0
.long .LBB119_3-.LJTI119_0
.long .LBB119_4-.LJTI119_0
.long .LBB119_5-.LJTI119_0
.long .LBB119_6-.LJTI119_0
core::sync::atomic::atomic_compare_exchange:
sub rsp, 360
mov qword ptr [rsp + 64], rdx
mov qword ptr [rsp + 72], rsi
mov qword ptr [rsp + 80], rdi
mov al, r8b
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
movzx eax, byte ptr [rsp + 102]
mov qword ptr [rsp + 88], rax
mov rax, qword ptr [rsp + 88]
lea rcx, [rip + .LJTI120_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB120_2:
movzx eax, byte ptr [rsp + 103]
mov qword ptr [rsp + 56], rax
test rax, rax
je .LBB120_8
jmp .LBB120_42
.LBB120_42:
mov rax, qword ptr [rsp + 56]
sub rax, 2
je .LBB120_9
jmp .LBB120_43
.LBB120_43:
mov rax, qword ptr [rsp + 56]
sub rax, 4
je .LBB120_10
jmp .LBB120_7
.LBB120_3:
movzx eax, byte ptr [rsp + 103]
mov qword ptr [rsp + 48], rax
test rax, rax
je .LBB120_12
jmp .LBB120_40
.LBB120_40:
mov rax, qword ptr [rsp + 48]
sub rax, 2
je .LBB120_13
jmp .LBB120_41
.LBB120_41:
mov rax, qword ptr [rsp + 48]
sub rax, 4
je .LBB120_14
jmp .LBB120_7
.LBB120_4:
movzx eax, byte ptr [rsp + 103]
mov qword ptr [rsp + 40], rax
test rax, rax
je .LBB120_15
jmp .LBB120_38
.LBB120_38:
mov rax, qword ptr [rsp + 40]
sub rax, 2
je .LBB120_16
jmp .LBB120_39
.LBB120_39:
mov rax, qword ptr [rsp + 40]
sub rax, 4
je .LBB120_17
jmp .LBB120_7
.LBB120_5:
movzx eax, byte ptr [rsp + 103]
mov qword ptr [rsp + 32], rax
test rax, rax
je .LBB120_18
jmp .LBB120_36
.LBB120_36:
mov rax, qword ptr [rsp + 32]
sub rax, 2
je .LBB120_19
jmp .LBB120_37
.LBB120_37:
mov rax, qword ptr [rsp + 32]
sub rax, 4
je .LBB120_20
jmp .LBB120_7
.LBB120_6:
movzx eax, byte ptr [rsp + 103]
mov qword ptr [rsp + 24], rax
test rax, rax
je .LBB120_21
jmp .LBB120_34
.LBB120_34:
mov rax, qword ptr [rsp + 24]
sub rax, 2
je .LBB120_22
jmp .LBB120_35
.LBB120_35:
mov rax, qword ptr [rsp + 24]
sub rax, 4
je .LBB120_23
jmp .LBB120_7
.LBB120_7:
movzx eax, byte ptr [rsp + 103]
cmp rax, 1
je .LBB120_27
jmp .LBB120_28
.LBB120_8:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_9:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_10:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
.LBB120_11:
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 16], rax
test byte ptr [rsp + 128], 1
jne .LBB120_25
jmp .LBB120_24
.LBB120_12:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_13:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_14:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_15:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_16:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_17:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_18:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_19:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_20:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_21:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_22:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_23:
mov rcx, qword ptr [rsp + 80]
mov rdx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
lock cmpxchg qword ptr [rcx], rdx
mov rcx, rax
sete al
and al, 1
mov qword ptr [rsp + 120], rcx
mov byte ptr [rsp + 128], al
jmp .LBB120_11
.LBB120_24:
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 112], rax
mov qword ptr [rsp + 104], 1
jmp .LBB120_26
.LBB120_25:
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 112], rax
mov qword ptr [rsp + 104], 0
.LBB120_26:
mov rax, qword ptr [rsp + 104]
mov rdx, qword ptr [rsp + 112]
add rsp, 360
ret
.LBB120_27:
xor eax, eax
test al, 1
jne .LBB120_30
jmp .LBB120_29
.LBB120_28:
xor eax, eax
test al, 1
jne .LBB120_32
jmp .LBB120_31
.LBB120_29:
mov qword ptr [rsp + 280], 0
lea rax, [rip + .L__unnamed_37]
mov qword ptr [rsp + 184], rax
mov qword ptr [rsp + 192], 1
mov rcx, qword ptr [rsp + 280]
mov rax, qword ptr [rsp + 288]
mov qword ptr [rsp + 216], rcx
mov qword ptr [rsp + 224], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 200], rax
mov qword ptr [rsp + 208], 0
lea rsi, [rip + .L__unnamed_38]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 184]
call rax
ud2
.LBB120_30:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 232]
mov qword ptr [rsp + 8], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 8]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB120_31:
mov qword ptr [rsp + 344], 0
lea rax, [rip + .L__unnamed_39]
mov qword ptr [rsp + 136], rax
mov qword ptr [rsp + 144], 1
mov rcx, qword ptr [rsp + 344]
mov rax, qword ptr [rsp + 352]
mov qword ptr [rsp + 168], rcx
mov qword ptr [rsp + 176], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 152], rax
mov qword ptr [rsp + 160], 0
lea rsi, [rip + .L__unnamed_40]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 136]
call rax
ud2
.LBB120_32:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 296]
mov qword ptr [rsp], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LJTI120_0:
.long .LBB120_2-.LJTI120_0
.long .LBB120_3-.LJTI120_0
.long .LBB120_4-.LJTI120_0
.long .LBB120_5-.LJTI120_0
.long .LBB120_6-.LJTI120_0
core::sync::atomic::atomic_compare_exchange_weak:
sub rsp, 328
mov qword ptr [rsp + 72], rdi
mov al, r8b
mov byte ptr [rsp + 86], dl
mov dl, sil
mov byte ptr [rsp + 87], dl
mov byte ptr [rsp + 98], cl
mov byte ptr [rsp + 99], al
movzx eax, byte ptr [rsp + 98]
mov qword ptr [rsp + 88], rax
mov rax, qword ptr [rsp + 88]
lea rcx, [rip + .LJTI121_0]
movsxd rax, dword ptr [rcx + 4*rax]
add rax, rcx
jmp rax
ud2
.LBB121_2:
movzx eax, byte ptr [rsp + 99]
mov qword ptr [rsp + 64], rax
test rax, rax
je .LBB121_8
jmp .LBB121_42
.LBB121_42:
mov rax, qword ptr [rsp + 64]
sub rax, 2
je .LBB121_9
jmp .LBB121_43
.LBB121_43:
mov rax, qword ptr [rsp + 64]
sub rax, 4
je .LBB121_10
jmp .LBB121_7
.LBB121_3:
movzx eax, byte ptr [rsp + 99]
mov qword ptr [rsp + 56], rax
test rax, rax
je .LBB121_12
jmp .LBB121_40
.LBB121_40:
mov rax, qword ptr [rsp + 56]
sub rax, 2
je .LBB121_13
jmp .LBB121_41
.LBB121_41:
mov rax, qword ptr [rsp + 56]
sub rax, 4
je .LBB121_14
jmp .LBB121_7
.LBB121_4:
movzx eax, byte ptr [rsp + 99]
mov qword ptr [rsp + 48], rax
test rax, rax
je .LBB121_15
jmp .LBB121_38
.LBB121_38:
mov rax, qword ptr [rsp + 48]
sub rax, 2
je .LBB121_16
jmp .LBB121_39
.LBB121_39:
mov rax, qword ptr [rsp + 48]
sub rax, 4
je .LBB121_17
jmp .LBB121_7
.LBB121_5:
movzx eax, byte ptr [rsp + 99]
mov qword ptr [rsp + 40], rax
test rax, rax
je .LBB121_18
jmp .LBB121_36
.LBB121_36:
mov rax, qword ptr [rsp + 40]
sub rax, 2
je .LBB121_19
jmp .LBB121_37
.LBB121_37:
mov rax, qword ptr [rsp + 40]
sub rax, 4
je .LBB121_20
jmp .LBB121_7
.LBB121_6:
movzx eax, byte ptr [rsp + 99]
mov qword ptr [rsp + 32], rax
test rax, rax
je .LBB121_21
jmp .LBB121_34
.LBB121_34:
mov rax, qword ptr [rsp + 32]
sub rax, 2
je .LBB121_22
jmp .LBB121_35
.LBB121_35:
mov rax, qword ptr [rsp + 32]
sub rax, 4
je .LBB121_23
jmp .LBB121_7
.LBB121_7:
movzx eax, byte ptr [rsp + 99]
cmp rax, 1
je .LBB121_27
jmp .LBB121_28
.LBB121_8:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_9:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_10:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
.LBB121_11:
mov al, byte ptr [rsp + 102]
mov byte ptr [rsp + 31], al
test byte ptr [rsp + 103], 1
jne .LBB121_25
jmp .LBB121_24
.LBB121_12:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_13:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_14:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_15:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_16:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_17:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_18:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_19:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_20:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_21:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_22:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_23:
mov rcx, qword ptr [rsp + 72]
mov dl, byte ptr [rsp + 86]
mov al, byte ptr [rsp + 87]
lock cmpxchg byte ptr [rcx], dl
mov cl, al
sete al
and al, 1
mov byte ptr [rsp + 102], cl
mov byte ptr [rsp + 103], al
jmp .LBB121_11
.LBB121_24:
mov al, byte ptr [rsp + 31]
mov byte ptr [rsp + 101], al
mov byte ptr [rsp + 100], 1
jmp .LBB121_26
.LBB121_25:
mov al, byte ptr [rsp + 31]
mov byte ptr [rsp + 101], al
mov byte ptr [rsp + 100], 0
.LBB121_26:
mov al, byte ptr [rsp + 100]
mov dl, byte ptr [rsp + 101]
add rsp, 328
ret
.LBB121_27:
xor eax, eax
test al, 1
jne .LBB121_30
jmp .LBB121_29
.LBB121_28:
xor eax, eax
test al, 1
jne .LBB121_32
jmp .LBB121_31
.LBB121_29:
mov qword ptr [rsp + 248], 0
lea rax, [rip + .L__unnamed_37]
mov qword ptr [rsp + 152], rax
mov qword ptr [rsp + 160], 1
mov rcx, qword ptr [rsp + 248]
mov rax, qword ptr [rsp + 256]
mov qword ptr [rsp + 184], rcx
mov qword ptr [rsp + 192], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 168], rax
mov qword ptr [rsp + 176], 0
lea rsi, [rip + .L__unnamed_41]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 152]
call rax
ud2
.LBB121_30:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 200]
mov qword ptr [rsp + 16], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 16]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LBB121_31:
mov qword ptr [rsp + 312], 0
lea rax, [rip + .L__unnamed_39]
mov qword ptr [rsp + 104], rax
mov qword ptr [rsp + 112], 1
mov rcx, qword ptr [rsp + 312]
mov rax, qword ptr [rsp + 320]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 120], rax
mov qword ptr [rsp + 128], 0
lea rsi, [rip + .L__unnamed_42]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 104]
call rax
ud2
.LBB121_32:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 264]
mov qword ptr [rsp + 8], rdi
mov edx, 1
call core::fmt::Arguments::new_const
mov rdi, qword ptr [rsp + 8]
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
call rax
ud2
.LJTI121_0:
.long .LBB121_2-.LJTI121_0
.long .LBB121_3-.LJTI121_0
.long .LBB121_4-.LJTI121_0
.long .LBB121_5-.LJTI121_0
.long .LBB121_6-.LJTI121_0
core::alloc::layout::Layout::array::inner:
sub rsp, 88
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdx
cmp rdi, 0
jne .LBB122_2
mov byte ptr [rsp + 55], 0
jmp .LBB122_3
.LBB122_2:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 16]
mov qword ptr [rsp + 72], rcx
mov rdx, qword ptr [rsp + 72]
sub rdx, 1
movabs rcx, 9223372036854775807
sub rcx, rdx
mov qword ptr [rsp], rcx
cmp rax, 0
sete al
test al, 1
jne .LBB122_5
jmp .LBB122_4
.LBB122_3:
test byte ptr [rsp + 55], 1
jne .LBB122_7
jmp .LBB122_6
.LBB122_4:
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp]
xor edx, edx
div rcx
mov rcx, rax
mov rax, qword ptr [rsp + 24]
cmp rax, rcx
seta al
and al, 1
mov byte ptr [rsp + 55], al
jmp .LBB122_3
.LBB122_5:
lea rdi, [rip + str.1]
lea rdx, [rip + .L__unnamed_43]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 25
call rax
ud2
.LBB122_6:
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 8]
imul rcx, rdx
mov qword ptr [rsp + 80], rax
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 64], rcx
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 32], rcx
mov qword ptr [rsp + 40], rax
jmp .LBB122_8
.LBB122_7:
mov qword ptr [rsp + 32], 0
.LBB122_8:
mov rax, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 40]
add rsp, 88
ret
core::slice::memchr::memchr_naive:
sub rsp, 56
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp + 16], rsi
mov al, dil
mov byte ptr [rsp + 31], al
mov qword ptr [rsp + 48], 0
.LBB123_1:
mov rax, qword ptr [rsp + 8]
cmp qword ptr [rsp + 48], rax
jb .LBB123_3
mov qword ptr [rsp + 32], 0
jmp .LBB123_4
.LBB123_3:
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp], rax
cmp rax, rcx
setb al
test al, 1
jne .LBB123_5
jmp .LBB123_6
.LBB123_4:
mov rax, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 40]
add rsp, 56
ret
.LBB123_5:
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp]
mov dl, byte ptr [rsp + 31]
cmp byte ptr [rax + rcx], dl
je .LBB123_8
jmp .LBB123_7
.LBB123_6:
mov rsi, qword ptr [rsp + 8]
mov rdi, qword ptr [rsp]
lea rdx, [rip + .L__unnamed_44]
mov rax, qword ptr [rip + core::panicking::panic_bounds_check@GOTPCREL]
call rax
ud2
.LBB123_7:
mov rax, qword ptr [rsp + 48]
add rax, 1
mov qword ptr [rsp + 48], rax
jmp .LBB123_1
.LBB123_8:
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 40], rax
mov qword ptr [rsp + 32], 1
jmp .LBB123_4
core::result::Result<T,E>::expect:
sub rsp, 88
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rcx
mov rdx, qword ptr [rdi]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB124_2
mov rcx, qword ptr [rsp]
mov rax, qword ptr [rcx + 8]
mov rdx, qword ptr [rcx + 16]
add rsp, 88
ret
.LBB124_2:
mov r8, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 16]
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rsp]
movups xmm0, xmmword ptr [rax]
movups xmm1, xmmword ptr [rax + 16]
movaps xmmword ptr [rsp + 48], xmm1
movaps xmmword ptr [rsp + 32], xmm0
lea rcx, [rip + .L__unnamed_45]
mov rax, qword ptr [rip + core::result::unwrap_failed@GOTPCREL]
lea rdx, [rsp + 32]
call rax
jmp .LBB124_5
.LBB124_3:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::ffi::c_str::NulError>@GOTPCREL]
lea rdi, [rsp + 32]
call rax
jmp .LBB124_7
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 72], rcx
mov dword ptr [rsp + 80], eax
jmp .LBB124_3
.LBB124_5:
ud2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB124_7:
mov rdi, qword ptr [rsp + 72]
call _Unwind_Resume@PLT
ud2
core::result::Result<T,E>::expect:
sub rsp, 72
mov qword ptr [rsp], r8
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rsi
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rdi
mov rdx, qword ptr [rsi]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB125_2
mov rax, qword ptr [rsp + 40]
mov rcx, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 24]
mov rsi, qword ptr [rdx]
mov qword ptr [rcx], rsi
mov rsi, qword ptr [rdx + 8]
mov qword ptr [rcx + 8], rsi
mov rdx, qword ptr [rdx + 16]
mov qword ptr [rcx + 16], rdx
add rsp, 72
ret
.LBB125_2:
mov r8, qword ptr [rsp]
mov rsi, qword ptr [rsp + 8]
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 24]
mov rax, qword ptr [rax + 8]
mov qword ptr [rsp + 48], rax
lea rcx, [rip + .L__unnamed_46]
mov rax, qword ptr [rip + core::result::unwrap_failed@GOTPCREL]
lea rdx, [rsp + 48]
call rax
jmp .LBB125_5
.LBB125_3:
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::io::error::Error>@GOTPCREL]
lea rdi, [rsp + 48]
call rax
jmp .LBB125_7
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 56], rcx
mov dword ptr [rsp + 64], eax
jmp .LBB125_3
.LBB125_5:
ud2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB125_7:
mov rdi, qword ptr [rsp + 56]
call _Unwind_Resume@PLT
ud2
core::result::Result<T,E>::is_err:
mov al, byte ptr [rdi]
and al, 1
movzx eax, al
cmp rax, 0
sete al
xor al, -1
and al, 1
movzx eax, al
ret
core::result::Result<T,E>::unwrap:
sub rsp, 56
mov qword ptr [rsp], rdx
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB127_2
add rsp, 56
ret
.LBB127_2:
mov r8, qword ptr [rsp]
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 32], rax
lea rdi, [rip + .L__unnamed_47]
lea rcx, [rip + .L__unnamed_48]
mov rax, qword ptr [rip + core::result::unwrap_failed@GOTPCREL]
mov esi, 43
lea rdx, [rsp + 24]
call rax
jmp .LBB127_5
.LBB127_3:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>@GOTPCREL]
lea rdi, [rsp + 24]
call rax
jmp .LBB127_7
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB127_3
.LBB127_5:
ud2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB127_7:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
core::result::Result<T,E>::map_err:
sub rsp, 56
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rdi
mov qword ptr [rsp + 32], rsi
mov qword ptr [rsp + 40], rdx
mov byte ptr [rsp + 55], 1
mov rdx, qword ptr [rsp + 32]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB128_2
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
mov qword ptr [rax], 0
jmp .LBB128_3
.LBB128_2:
mov rdi, qword ptr [rsp + 8]
mov byte ptr [rsp + 55], 0
call qword ptr [rip + alloc::raw_vec::finish_grow::{{closure}}@GOTPCREL]
mov rcx, rax
mov rax, qword ptr [rsp + 16]
mov qword ptr [rax + 8], rcx
mov qword ptr [rax + 16], rdx
mov qword ptr [rax], 1
.LBB128_3:
test byte ptr [rsp + 55], 1
jne .LBB128_5
.LBB128_4:
mov rax, qword ptr [rsp + 24]
add rsp, 56
ret
.LBB128_5:
jmp .LBB128_4
core::result::Result<T,E>::map_err:
sub rsp, 40
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov qword ptr [rsp + 24], rdx
mov byte ptr [rsp + 39], 1
xor eax, eax
mov ecx, 1
cmp qword ptr [rsp + 16], 0
cmove rax, rcx
cmp rax, 0
jne .LBB129_2
mov rax, qword ptr [rsp]
mov rdx, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
mov qword ptr [rax], 0
jmp .LBB129_3
.LBB129_2:
mov byte ptr [rsp + 39], 0
call qword ptr [rip + alloc::raw_vec::finish_grow::{{closure}}@GOTPCREL]
mov rcx, rax
mov rax, qword ptr [rsp]
mov qword ptr [rax + 8], rcx
mov qword ptr [rax + 16], rdx
mov qword ptr [rax], 1
.LBB129_3:
test byte ptr [rsp + 39], 1
jne .LBB129_5
.LBB129_4:
mov rax, qword ptr [rsp + 8]
add rsp, 40
ret
.LBB129_5:
jmp .LBB129_4
core::result::Result<T,E>::map_err:
sub rsp, 56
mov qword ptr [rsp], rdi
mov qword ptr [rsp + 8], rsi
mov byte ptr [rsp + 55], 1
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp], rdx
cmove rax, rcx
cmp rax, 0
jne .LBB130_2
movabs rax, -9223372036854775807
mov qword ptr [rsp + 16], rax
jmp .LBB130_3
.LBB130_2:
mov rcx, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov byte ptr [rsp + 55], 0
mov qword ptr [rsp + 32], rcx
mov qword ptr [rsp + 40], rax
mov rdi, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 40]
call qword ptr [rip + alloc::raw_vec::handle_reserve::{{closure}}@GOTPCREL]
mov qword ptr [rsp + 16], rax
mov qword ptr [rsp + 24], rdx
.LBB130_3:
test byte ptr [rsp + 55], 1
jne .LBB130_5
.LBB130_4:
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
add rsp, 56
ret
.LBB130_5:
jmp .LBB130_4
core::panicking::assert_failed:
sub rsp, 24
mov r9, rcx
mov al, dil
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdx
mov rcx, rsp
mov qword ptr [rcx], r8
movzx edi, al
lea r8, [rip + .L__unnamed_49]
mov rax, qword ptr [rip + core::panicking::assert_failed_inner@GOTPCREL]
lea rsi, [rsp + 8]
lea rcx, [rsp + 16]
mov rdx, r8
call rax
ud2
core::panicking::assert_failed:
sub rsp, 24
mov r9, rcx
mov al, dil
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdx
mov rcx, rsp
mov qword ptr [rcx], r8
movzx edi, al
lea r8, [rip + .L__unnamed_50]
mov rax, qword ptr [rip + core::panicking::assert_failed_inner@GOTPCREL]
lea rsi, [rsp + 8]
lea rcx, [rsp + 16]
mov rdx, r8
call rax
ud2
<&mut W as core::fmt::Write>::write_char:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + core::fmt::Write::write_char@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
<&mut W as core::fmt::Write>::write_fmt:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + core::fmt::Write::write_fmt@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
<&mut W as core::fmt::Write>::write_str:
push rax
mov rdi, qword ptr [rdi]
call qword ptr [rip + <std::io::Write::write_fmt::Adapter<T> as core::fmt::Write>::write_str@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
<T as core::convert::Into<U>>::into:
push rax
mov rax, rdi
mov qword ptr [rsp], rax
call qword ptr [rip + alloc::string::<impl core::convert::From<alloc::string::String> for alloc::vec::Vec<u8>>::from@GOTPCREL]
mov rax, qword ptr [rsp]
pop rcx
ret
<alloc::alloc::Global as core::clone::Clone>::clone:
ret
alloc::vec::Vec<T,A>::extend_trusted:
sub rsp, 264
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov byte ptr [rsp + 183], 1
mov rax, qword ptr [rip + <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::size_hint@GOTPCREL]
lea rdi, [rsp + 40]
call rax
jmp .LBB138_3
.LBB138_1:
test byte ptr [rsp + 183], 1
jne .LBB138_13
jmp .LBB138_12
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 248], rcx
mov dword ptr [rsp + 256], eax
jmp .LBB138_1
.LBB138_3:
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 32], rax
cmp qword ptr [rsp + 24], 1
jne .LBB138_5
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 32]
mov rax, qword ptr [rip + alloc::vec::Vec<T,A>::reserve@GOTPCREL]
call rax
jmp .LBB138_6
.LBB138_5:
xor eax, eax
test al, 1
jne .LBB138_9
jmp .LBB138_8
.LBB138_6:
mov rcx, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 8]
mov rsi, rdx
add rsi, 16
mov rax, qword ptr [rdx]
mov rdx, qword ptr [rdx + 16]
mov qword ptr [rsp + 64], rsi
mov qword ptr [rsp + 72], rdx
mov byte ptr [rsp + 183], 0
movups xmm0, xmmword ptr [rcx]
movaps xmmword ptr [rsp + 80], xmm0
mov qword ptr [rsp + 120], rax
mov rcx, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 104], rcx
mov qword ptr [rsp + 112], rax
mov rax, qword ptr [rip + core::iter::traits::iterator::Iterator::for_each@GOTPCREL]
lea rdi, [rsp + 80]
lea rsi, [rsp + 104]
call rax
jmp .LBB138_7
.LBB138_7:
add rsp, 264
ret
.LBB138_8:
mov qword ptr [rsp + 232], 0
lea rax, [rip + .L__unnamed_3]
mov qword ptr [rsp + 128], rax
mov qword ptr [rsp + 136], 1
mov rcx, qword ptr [rsp + 232]
mov rax, qword ptr [rsp + 240]
mov qword ptr [rsp + 160], rcx
mov qword ptr [rsp + 168], rax
lea rax, [rip + .L__unnamed_4]
mov qword ptr [rsp + 144], rax
mov qword ptr [rsp + 152], 0
lea rsi, [rip + .L__unnamed_51]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 128]
call rax
jmp .LBB138_10
.LBB138_9:
lea rsi, [rip + .L__unnamed_6]
lea rdi, [rsp + 184]
mov edx, 1
call core::fmt::Arguments::new_const
jmp .LBB138_11
.LBB138_10:
ud2
.LBB138_11:
lea rsi, [rip + .L__unnamed_7]
mov rax, qword ptr [rip + core::panicking::panic_fmt@GOTPCREL]
lea rdi, [rsp + 184]
call rax
jmp .LBB138_10
.LBB138_12:
mov rdi, qword ptr [rsp + 248]
call _Unwind_Resume@PLT
ud2
.LBB138_13:
jmp .LBB138_12
alloc::vec::Vec<T,A>::extend_trusted::{{closure}}:
mov rax, qword ptr [rdi + 16]
imul rcx, qword ptr [rdi + 8], 24
add rax, rcx
mov rcx, qword ptr [rsi]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsi + 8]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsi + 16]
mov qword ptr [rax + 16], rcx
mov rax, qword ptr [rdi + 8]
add rax, 1
mov qword ptr [rdi + 8], rax
ret
alloc::vec::Vec<T,A>::reserve:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
mov rax, qword ptr [rdi + 16]
mov qword ptr [rsp + 24], rax
xor eax, eax
test al, 1
jne .LBB140_2
mov rax, qword ptr [rsp + 8]
mov rax, qword ptr [rax + 8]
mov qword ptr [rsp + 32], rax
jmp .LBB140_3
.LBB140_2:
mov qword ptr [rsp + 32], -1
.LBB140_3:
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 32]
sub rcx, rdx
cmp rax, rcx
ja .LBB140_5
.LBB140_4:
add rsp, 40
ret
.LBB140_5:
mov rdx, qword ptr [rsp + 16]
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 8]
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::reserve::do_reserve_and_handle@GOTPCREL]
jmp .LBB140_4
alloc::vec::into_iter::IntoIter<T,A>::as_raw_mut_slice:
sub rsp, 56
mov qword ptr [rsp + 16], rdi
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rdi + 16]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rip + core::iter::traits::exact_size::ExactSizeIterator::len@GOTPCREL]
call rax
mov rcx, qword ptr [rsp + 8]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 48], rax
mov rcx, qword ptr [rsp + 40]
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 32], rax
mov rax, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
add rsp, 56
ret
alloc::sync::Arc<T>::new:
sub rsp, 200
mov qword ptr [rsp + 24], rdi
mov qword ptr [rsp + 96], 1
mov qword ptr [rsp + 104], 1
movups xmm0, xmmword ptr [rdi]
movups xmm1, xmmword ptr [rdi + 16]
movaps xmmword ptr [rsp + 128], xmm1
movaps xmmword ptr [rsp + 112], xmm0
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 56], rax
movaps xmm0, xmmword ptr [rsp + 112]
movaps xmm1, xmmword ptr [rsp + 128]
movups xmmword ptr [rsp + 80], xmm1
movups xmmword ptr [rsp + 64], xmm0
mov edi, 48
mov esi, 8
call alloc::alloc::exchange_malloc
mov qword ptr [rsp + 32], rax
jmp .LBB142_4
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 184], rcx
mov dword ptr [rsp + 192], eax
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::sync::ArcInner<std::thread::Packet<()>>>@GOTPCREL]
lea rdi, [rsp + 48]
call rax
jmp .LBB142_3
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB142_3:
mov rax, qword ptr [rsp + 184]
mov qword ptr [rsp + 8], rax
mov eax, dword ptr [rsp + 192]
mov dword ptr [rsp + 20], eax
jmp .LBB142_6
.LBB142_4:
mov rdi, qword ptr [rsp + 32]
lea rsi, [rsp + 48]
mov edx, 48
call memcpy@PLT
jmp .LBB142_7
.LBB142_5:
xor eax, eax
test al, 1
jne .LBB142_9
jmp .LBB142_8
.LBB142_6:
mov eax, dword ptr [rsp + 20]
mov rcx, qword ptr [rsp + 8]
mov qword ptr [rsp + 168], rcx
mov dword ptr [rsp + 176], eax
jmp .LBB142_5
.LBB142_7:
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 160], rax
mov rax, qword ptr [rsp + 160]
mov qword ptr [rsp + 152], rax
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
add rsp, 200
ret
.LBB142_8:
mov rdi, qword ptr [rsp + 168]
call _Unwind_Resume@PLT
ud2
.LBB142_9:
mov rdi, qword ptr [rsp + 24]
mov rax, qword ptr [rip + core::ptr::drop_in_place<std::thread::Packet<()>>@GOTPCREL]
call rax
jmp .LBB142_8
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
alloc::sync::Arc<T,A>::drop_slow:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rdi]
add rdi, 16
call qword ptr [rip + core::ptr::drop_in_place<std::thread::Inner>@GOTPCREL]
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdi
lea rdi, [rsp + 8]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Weak<std::thread::Inner,&alloc::alloc::Global>>@GOTPCREL]
add rsp, 24
ret
alloc::sync::Arc<T,A>::drop_slow:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rdi]
add rdi, 16
call qword ptr [rip + core::ptr::drop_in_place<std::thread::scoped::ScopeData>@GOTPCREL]
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdi
lea rdi, [rsp + 8]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Weak<std::thread::scoped::ScopeData,&alloc::alloc::Global>>@GOTPCREL]
add rsp, 24
ret
alloc::sync::Arc<T,A>::drop_slow:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rdi]
add rdi, 16
call qword ptr [rip + core::ptr::drop_in_place<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>>@GOTPCREL]
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdi
lea rdi, [rsp + 8]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Weak<std::sync::mutex::Mutex<alloc::vec::Vec<u8>>,&alloc::alloc::Global>>@GOTPCREL]
add rsp, 24
ret
alloc::sync::Arc<T,A>::drop_slow:
sub rsp, 24
mov qword ptr [rsp], rdi
mov rdi, qword ptr [rdi]
add rdi, 16
call qword ptr [rip + core::ptr::drop_in_place<std::thread::Packet<()>>@GOTPCREL]
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdi
lea rdi, [rsp + 8]
call qword ptr [rip + core::ptr::drop_in_place<alloc::sync::Weak<std::thread::Packet<()>,&alloc::alloc::Global>>@GOTPCREL]
add rsp, 24
ret
alloc::sync::Arc<T,A>::is_unique:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov rdi, qword ptr [rdi]
add rdi, 8
mov rax, qword ptr [rip + core::sync::atomic::atomic_compare_exchange@GOTPCREL]
mov esi, 1
mov rdx, -1
mov ecx, 2
xor r8d, r8d
call rax
mov qword ptr [rsp + 32], rdx
mov qword ptr [rsp + 24], rax
cmp qword ptr [rsp + 24], 0
jne .LBB147_2
mov rax, qword ptr [rsp + 8]
mov rdi, qword ptr [rax]
mov esi, 2
call qword ptr [rip + core::sync::atomic::atomic_load@GOTPCREL]
mov rcx, rax
mov rax, qword ptr [rsp + 8]
cmp rcx, 1
sete cl
mov byte ptr [rsp + 7], cl
mov rdi, qword ptr [rax]
add rdi, 8
mov esi, 1
mov edx, 1
call qword ptr [rip + core::sync::atomic::atomic_store@GOTPCREL]
mov al, byte ptr [rsp + 7]
and al, 1
mov byte ptr [rsp + 23], al
jmp .LBB147_3
.LBB147_2:
mov byte ptr [rsp + 23], 0
.LBB147_3:
mov al, byte ptr [rsp + 23]
and al, 1
movzx eax, al
add rsp, 40
ret
alloc::alloc::exchange_malloc:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp], rsi
mov rsi, qword ptr [rsp]
mov rdx, qword ptr [rsp + 8]
lea rdi, [rip + .L__unnamed_4]
xor ecx, ecx
call alloc::alloc::Global::alloc_impl
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 16], rax
mov rdx, qword ptr [rsp + 16]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB148_2
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 32], rax
mov rax, qword ptr [rsp + 32]
add rsp, 40
ret
.LBB148_2:
mov rdi, qword ptr [rsp]
mov rsi, qword ptr [rsp + 8]
mov rax, qword ptr [rip + alloc::alloc::handle_alloc_error@GOTPCREL]
call rax
ud2
alloc::alloc::Global::alloc_impl:
sub rsp, 232
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rsi
mov al, cl
mov byte ptr [rsp + 39], al
cmp rdx, 0
jne .LBB149_2
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 128], rax
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 72], rax
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 152], rax
mov qword ptr [rsp + 160], 0
mov rcx, qword ptr [rsp + 152]
mov rax, qword ptr [rsp + 160]
mov qword ptr [rsp + 136], rcx
mov qword ptr [rsp + 144], rax
mov rcx, qword ptr [rsp + 136]
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 48], rax
jmp .LBB149_3
.LBB149_2:
mov al, byte ptr [rsp + 39]
test al, 1
jne .LBB149_5
jmp .LBB149_4
.LBB149_3:
mov rax, qword ptr [rsp + 40]
mov rdx, qword ptr [rsp + 48]
add rsp, 232
ret
.LBB149_4:
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 24]
mov rcx, qword ptr [rip + __rust_no_alloc_shim_is_unstable@GOTPCREL]
mov cl, byte ptr [rcx]
mov byte ptr [rsp + 231], cl
mov qword ptr [rsp + 176], rax
mov rsi, qword ptr [rsp + 176]
call qword ptr [rip + __rust_alloc@GOTPCREL]
mov qword ptr [rsp + 80], rax
jmp .LBB149_6
.LBB149_5:
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 168], rax
mov rsi, qword ptr [rsp + 168]
call qword ptr [rip + __rust_alloc_zeroed@GOTPCREL]
mov qword ptr [rsp + 80], rax
.LBB149_6:
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 8], rax
cmp rax, 0
sete al
xor al, -1
test al, 1
jne .LBB149_8
mov qword ptr [rsp + 104], 0
jmp .LBB149_9
.LBB149_8:
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 184], rax
mov rax, qword ptr [rsp + 184]
mov qword ptr [rsp + 104], rax
.LBB149_9:
mov rdx, qword ptr [rsp + 104]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB149_11
mov qword ptr [rsp + 96], 0
jmp .LBB149_12
.LBB149_11:
mov rax, qword ptr [rsp + 104]
mov qword ptr [rsp + 96], rax
.LBB149_12:
mov rdx, qword ptr [rsp + 96]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB149_14
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 88], rax
jmp .LBB149_15
.LBB149_14:
mov qword ptr [rsp + 88], 0
.LBB149_15:
mov rdx, qword ptr [rsp + 88]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB149_17
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 88]
mov qword ptr [rsp + 208], rcx
mov qword ptr [rsp + 216], rax
mov rcx, qword ptr [rsp + 208]
mov rax, qword ptr [rsp + 216]
mov qword ptr [rsp + 192], rcx
mov qword ptr [rsp + 200], rax
mov rcx, qword ptr [rsp + 192]
mov rax, qword ptr [rsp + 200]
mov qword ptr [rsp + 112], rcx
mov qword ptr [rsp + 120], rax
mov rcx, qword ptr [rsp + 112]
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 48], rax
jmp .LBB149_3
.LBB149_17:
mov qword ptr [rsp + 40], 0
jmp .LBB149_3
alloc::alloc::Global::grow_impl:
sub rsp, 248
mov qword ptr [rsp + 32], r9
mov qword ptr [rsp + 40], r8
mov qword ptr [rsp + 48], rcx
mov qword ptr [rsp + 56], rdx
mov qword ptr [rsp + 64], rsi
mov qword ptr [rsp + 72], rdi
mov al, byte ptr [rsp + 256]
mov byte ptr [rsp + 87], al
cmp rcx, 0
jne .LBB150_2
mov rdx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 40]
mov rdi, qword ptr [rsp + 72]
mov al, byte ptr [rsp + 87]
movzx ecx, al
and ecx, 1
call alloc::alloc::Global::alloc_impl
mov qword ptr [rsp + 96], rdx
mov qword ptr [rsp + 88], rax
jmp .LBB150_3
.LBB150_2:
mov rcx, qword ptr [rsp + 40]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 176], rax
mov rax, qword ptr [rsp + 176]
mov qword ptr [rsp + 184], rcx
mov rcx, qword ptr [rsp + 184]
cmp rax, rcx
je .LBB150_5
jmp .LBB150_4
.LBB150_3:
jmp .LBB150_25
.LBB150_4:
mov rdx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 40]
mov rdi, qword ptr [rsp + 72]
mov al, byte ptr [rsp + 87]
movzx ecx, al
and ecx, 1
call alloc::alloc::Global::alloc_impl
mov qword ptr [rsp + 168], rdx
mov qword ptr [rsp + 160], rax
mov rdx, qword ptr [rsp + 160]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
je .LBB150_6
jmp .LBB150_7
.LBB150_5:
mov rcx, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 48]
mov rdi, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 192], rax
mov rdx, qword ptr [rsp + 192]
call qword ptr [rip + __rust_realloc@GOTPCREL]
mov qword ptr [rsp + 24], rax
cmp rax, 0
sete al
xor al, -1
test al, 1
jne .LBB150_13
jmp .LBB150_12
.LBB150_6:
mov rcx, qword ptr [rsp + 160]
mov rax, qword ptr [rsp + 168]
mov qword ptr [rsp + 144], rcx
mov qword ptr [rsp + 152], rax
jmp .LBB150_8
.LBB150_7:
mov qword ptr [rsp + 144], 0
.LBB150_8:
mov rdx, qword ptr [rsp + 144]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB150_10
mov rdx, qword ptr [rsp + 48]
mov rsi, qword ptr [rsp + 64]
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 8], rax
mov rcx, qword ptr [rsp + 152]
mov qword ptr [rsp + 16], rcx
mov qword ptr [rsp + 240], rax
mov rdi, qword ptr [rsp + 240]
shl rdx, 0
call memcpy@PLT
mov rdi, qword ptr [rsp + 72]
mov rsi, qword ptr [rsp + 64]
mov rdx, qword ptr [rsp + 56]
mov rcx, qword ptr [rsp + 48]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
mov rcx, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
jmp .LBB150_3
.LBB150_10:
mov qword ptr [rsp + 88], 0
.LBB150_11:
jmp .LBB150_25
.LBB150_12:
mov qword ptr [rsp + 120], 0
jmp .LBB150_14
.LBB150_13:
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 200], rax
mov rax, qword ptr [rsp + 200]
mov qword ptr [rsp + 120], rax
.LBB150_14:
mov rdx, qword ptr [rsp + 120]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB150_16
mov qword ptr [rsp + 112], 0
jmp .LBB150_17
.LBB150_16:
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 112], rax
.LBB150_17:
mov rdx, qword ptr [rsp + 112]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB150_19
mov rax, qword ptr [rsp + 112]
mov qword ptr [rsp + 104], rax
jmp .LBB150_20
.LBB150_19:
mov qword ptr [rsp + 104], 0
.LBB150_20:
mov rdx, qword ptr [rsp + 104]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB150_22
mov al, byte ptr [rsp + 87]
mov rcx, qword ptr [rsp + 104]
mov qword ptr [rsp], rcx
test al, 1
jne .LBB150_24
jmp .LBB150_23
.LBB150_22:
mov qword ptr [rsp + 88], 0
jmp .LBB150_11
.LBB150_23:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp]
mov qword ptr [rsp + 224], rcx
mov qword ptr [rsp + 232], rax
mov rcx, qword ptr [rsp + 224]
mov rax, qword ptr [rsp + 232]
mov qword ptr [rsp + 208], rcx
mov qword ptr [rsp + 216], rax
mov rcx, qword ptr [rsp + 208]
mov rax, qword ptr [rsp + 216]
mov qword ptr [rsp + 128], rcx
mov qword ptr [rsp + 136], rax
mov rcx, qword ptr [rsp + 128]
mov rax, qword ptr [rsp + 136]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
jmp .LBB150_3
.LBB150_24:
mov rax, qword ptr [rsp + 48]
mov rdx, qword ptr [rsp + 32]
mov rdi, qword ptr [rsp + 24]
add rdi, rax
sub rdx, rax
shl rdx, 0
xor esi, esi
call memset@PLT
jmp .LBB150_23
.LBB150_25:
mov rax, qword ptr [rsp + 88]
mov rdx, qword ptr [rsp + 96]
add rsp, 248
ret
alloc::boxed::Box<T,A>::leak:
mov qword ptr [rsp - 8], rdi
mov rax, qword ptr [rsp - 8]
ret
alloc::raw_vec::finish_grow:
sub rsp, 248
mov qword ptr [rsp], r8
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rdi
lea rdi, [rsp + 72]
call qword ptr [rip + core::result::Result<T,E>::map_err@GOTPCREL]
cmp qword ptr [rsp + 72], 0
jne .LBB152_2
mov rcx, qword ptr [rsp + 80]
mov rax, qword ptr [rsp + 88]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
mov qword ptr [rsp + 48], 0
jmp .LBB152_3
.LBB152_2:
mov rcx, qword ptr [rsp + 80]
mov rax, qword ptr [rsp + 88]
mov qword ptr [rsp + 184], rcx
mov qword ptr [rsp + 192], rax
mov rcx, qword ptr [rsp + 184]
mov rax, qword ptr [rsp + 192]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
mov qword ptr [rsp + 48], 1
.LBB152_3:
cmp qword ptr [rsp + 48], 0
jne .LBB152_5
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 32], rcx
mov qword ptr [rsp + 40], rax
movabs rax, -9223372036854775807
mov qword ptr [rsp + 128], rax
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 128], rdx
cmove rax, rcx
cmp rax, 0
je .LBB152_6
jmp .LBB152_7
.LBB152_5:
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 56]
mov rcx, qword ptr [rsp + 64]
mov qword ptr [rsp + 96], rdx
mov qword ptr [rsp + 104], rcx
mov rdx, qword ptr [rsp + 96]
mov rcx, qword ptr [rsp + 104]
mov qword ptr [rsp + 200], rdx
mov qword ptr [rsp + 208], rcx
mov rdx, qword ptr [rsp + 200]
mov rcx, qword ptr [rsp + 208]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
mov qword ptr [rax], 1
jmp .LBB152_15
.LBB152_6:
movabs rax, -9223372036854775807
mov qword ptr [rsp + 112], rax
jmp .LBB152_8
.LBB152_7:
mov rcx, qword ptr [rsp + 128]
mov rax, qword ptr [rsp + 136]
mov qword ptr [rsp + 216], rcx
mov qword ptr [rsp + 224], rax
mov rcx, qword ptr [rsp + 216]
mov rax, qword ptr [rsp + 224]
mov qword ptr [rsp + 112], rcx
mov qword ptr [rsp + 120], rax
.LBB152_8:
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 112], rdx
cmove rax, rcx
cmp rax, 0
jne .LBB152_10
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp qword ptr [rdx + 8], 0
cmove rax, rcx
cmp rax, 1
je .LBB152_11
jmp .LBB152_12
.LBB152_10:
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 112]
mov rcx, qword ptr [rsp + 120]
mov qword ptr [rsp + 144], rdx
mov qword ptr [rsp + 152], rcx
mov rdx, qword ptr [rsp + 144]
mov rcx, qword ptr [rsp + 152]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
mov qword ptr [rax], 1
jmp .LBB152_15
.LBB152_11:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov rsi, qword ptr [rax]
mov rdx, qword ptr [rax + 8]
mov rcx, qword ptr [rax + 16]
mov qword ptr [rsp + 232], rdx
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 240], rax
mov r8, qword ptr [rsp + 32]
mov r9, qword ptr [rsp + 40]
call <alloc::alloc::Global as core::alloc::Allocator>::grow
mov qword ptr [rsp + 168], rdx
mov qword ptr [rsp + 160], rax
jmp .LBB152_13
.LBB152_12:
mov rdi, qword ptr [rsp]
mov rsi, qword ptr [rsp + 32]
mov rdx, qword ptr [rsp + 40]
call <alloc::alloc::Global as core::alloc::Allocator>::allocate
mov qword ptr [rsp + 168], rdx
mov qword ptr [rsp + 160], rax
.LBB152_13:
mov rdi, qword ptr [rsp + 16]
mov rsi, qword ptr [rsp + 160]
mov rdx, qword ptr [rsp + 168]
lea rax, [rsp + 32]
mov qword ptr [rsp + 176], rax
mov rcx, qword ptr [rsp + 176]
call qword ptr [rip + core::result::Result<T,E>::map_err@GOTPCREL]
.LBB152_14:
mov rax, qword ptr [rsp + 24]
add rsp, 248
ret
.LBB152_15:
jmp .LBB152_14
alloc::raw_vec::finish_grow::{{closure}}:
mov qword ptr [rsp - 16], 0
mov rax, qword ptr [rsp - 16]
mov rdx, qword ptr [rsp - 8]
ret
alloc::raw_vec::finish_grow::{{closure}}:
mov qword ptr [rsp - 40], rdi
mov rax, qword ptr [rsp - 40]
mov rcx, qword ptr [rax]
mov rax, qword ptr [rax + 8]
mov qword ptr [rsp - 16], rcx
mov qword ptr [rsp - 8], rax
mov rcx, qword ptr [rsp - 16]
mov rax, qword ptr [rsp - 8]
mov qword ptr [rsp - 32], rcx
mov qword ptr [rsp - 24], rax
mov rax, qword ptr [rsp - 32]
mov rdx, qword ptr [rsp - 24]
ret
alloc::raw_vec::handle_reserve:
sub rsp, 24
mov rax, qword ptr [rip + core::result::Result<T,E>::map_err@GOTPCREL]
call rax
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 8], rax
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 8], rdx
cmove rax, rcx
cmp rax, 0
jne .LBB155_2
add rsp, 24
ret
.LBB155_2:
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 8], 0
cmove rax, rcx
cmp rax, 0
jne .LBB155_4
mov rax, qword ptr [rip + alloc::raw_vec::capacity_overflow@GOTPCREL]
call rax
ud2
.LBB155_4:
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
mov rax, qword ptr [rip + alloc::alloc::handle_alloc_error@GOTPCREL]
call rax
ud2
alloc::raw_vec::handle_reserve::{{closure}}:
mov qword ptr [rsp - 32], rdi
mov qword ptr [rsp - 24], rsi
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp - 32], 0
cmove rax, rcx
cmp rax, 0
jne .LBB156_2
mov qword ptr [rsp - 16], 0
jmp .LBB156_3
.LBB156_2:
mov rcx, qword ptr [rsp - 32]
mov rax, qword ptr [rsp - 24]
mov qword ptr [rsp - 16], rcx
mov qword ptr [rsp - 8], rax
.LBB156_3:
mov rax, qword ptr [rsp - 16]
mov rdx, qword ptr [rsp - 8]
ret
alloc::raw_vec::RawVec<T,A>::allocate_in:
sub rsp, 216
mov qword ptr [rsp + 72], rdi
mov al, sil
and al, 1
mov byte ptr [rsp + 86], al
xor eax, eax
test al, 1
jne .LBB157_2
mov rax, qword ptr [rsp + 72]
cmp rax, 0
sete al
and al, 1
mov byte ptr [rsp + 111], al
jmp .LBB157_3
.LBB157_2:
mov byte ptr [rsp + 111], 1
.LBB157_3:
test byte ptr [rsp + 111], 1
jne .LBB157_5
mov rdx, qword ptr [rsp + 72]
mov edi, 24
mov esi, 8
call core::alloc::layout::Layout::array::inner
mov qword ptr [rsp + 56], rdx
mov qword ptr [rsp + 64], rax
jmp .LBB157_8
.LBB157_5:
mov eax, 8
mov qword ptr [rsp + 184], rax
mov rax, qword ptr [rsp + 184]
mov qword ptr [rsp + 176], rax
mov rax, qword ptr [rsp + 176]
mov qword ptr [rsp + 88], rax
mov qword ptr [rsp + 96], 0
jmp .LBB157_20
.LBB157_6:
mov al, 1
test al, 1
jne .LBB157_23
jmp .LBB157_22
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 200], rcx
mov dword ptr [rsp + 208], eax
jmp .LBB157_6
.LBB157_8:
mov rax, qword ptr [rsp + 56]
mov rcx, qword ptr [rsp + 64]
mov qword ptr [rsp + 112], rcx
mov qword ptr [rsp + 120], rax
xor eax, eax
mov ecx, 1
cmp qword ptr [rsp + 112], 0
cmove rax, rcx
cmp rax, 0
jne .LBB157_10
mov rax, qword ptr [rsp + 112]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 120]
mov qword ptr [rsp + 48], rax
movabs rax, -9223372036854775807
mov qword ptr [rsp + 128], rax
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 128], rdx
cmove rax, rcx
cmp rax, 0
je .LBB157_11
jmp .LBB157_12
.LBB157_10:
mov rax, qword ptr [rip + alloc::raw_vec::capacity_overflow@GOTPCREL]
call rax
jmp .LBB157_21
.LBB157_11:
mov al, byte ptr [rsp + 86]
and al, 1
movzx eax, al
cmp rax, 0
je .LBB157_13
jmp .LBB157_14
.LBB157_12:
mov rax, qword ptr [rip + alloc::raw_vec::capacity_overflow@GOTPCREL]
call rax
jmp .LBB157_21
.LBB157_13:
mov rdx, qword ptr [rsp + 48]
mov rsi, qword ptr [rsp + 40]
lea rdi, [rsp + 87]
call <alloc::alloc::Global as core::alloc::Allocator>::allocate
mov qword ptr [rsp + 24], rdx
mov qword ptr [rsp + 32], rax
jmp .LBB157_15
.LBB157_14:
mov rdx, qword ptr [rsp + 48]
mov rsi, qword ptr [rsp + 40]
lea rdi, [rsp + 87]
call <alloc::alloc::Global as core::alloc::Allocator>::allocate_zeroed
mov qword ptr [rsp + 8], rdx
mov qword ptr [rsp + 16], rax
jmp .LBB157_17
.LBB157_15:
mov rax, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rsp + 144], rcx
mov qword ptr [rsp + 152], rax
.LBB157_16:
mov rdx, qword ptr [rsp + 144]
xor eax, eax
mov ecx, 1
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
je .LBB157_18
jmp .LBB157_19
.LBB157_17:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 16]
mov qword ptr [rsp + 144], rcx
mov qword ptr [rsp + 152], rax
jmp .LBB157_16
.LBB157_18:
mov rax, qword ptr [rsp + 72]
mov rcx, qword ptr [rsp + 144]
mov qword ptr [rsp + 168], rcx
mov rcx, qword ptr [rsp + 168]
mov qword ptr [rsp + 192], rcx
mov rcx, qword ptr [rsp + 192]
mov qword ptr [rsp + 160], rcx
mov rcx, qword ptr [rsp + 160]
mov qword ptr [rsp + 88], rcx
mov qword ptr [rsp + 96], rax
jmp .LBB157_20
.LBB157_19:
mov rsi, qword ptr [rsp + 48]
mov rdi, qword ptr [rsp + 40]
mov rax, qword ptr [rip + alloc::alloc::handle_alloc_error@GOTPCREL]
call rax
jmp .LBB157_21
.LBB157_20:
mov rax, qword ptr [rsp + 88]
mov rdx, qword ptr [rsp + 96]
add rsp, 216
ret
.LBB157_21:
ud2
.LBB157_22:
mov rdi, qword ptr [rsp + 200]
call _Unwind_Resume@PLT
ud2
.LBB157_23:
jmp .LBB157_22
alloc::raw_vec::RawVec<T,A>::current_memory:
mov qword ptr [rsp - 96], rsi
mov qword ptr [rsp - 88], rdi
mov qword ptr [rsp - 80], rdi
xor eax, eax
test al, 1
jne .LBB158_2
mov rax, qword ptr [rsp - 96]
cmp qword ptr [rax + 8], 0
sete al
and al, 1
mov byte ptr [rsp - 65], al
jmp .LBB158_3
.LBB158_2:
mov byte ptr [rsp - 65], 1
.LBB158_3:
test byte ptr [rsp - 65], 1
jne .LBB158_5
mov rax, qword ptr [rsp - 88]
mov rcx, qword ptr [rsp - 96]
imul rdx, qword ptr [rcx + 8], 24
mov qword ptr [rsp - 56], rdx
mov qword ptr [rsp - 64], 8
mov rcx, qword ptr [rcx]
mov qword ptr [rsp - 16], rcx
mov rcx, qword ptr [rsp - 16]
mov qword ptr [rsp - 8], rcx
mov rcx, qword ptr [rsp - 8]
mov qword ptr [rsp - 24], rcx
mov rcx, qword ptr [rsp - 24]
mov qword ptr [rsp - 48], rcx
mov rdx, qword ptr [rsp - 64]
mov rcx, qword ptr [rsp - 56]
mov qword ptr [rsp - 40], rdx
mov qword ptr [rsp - 32], rcx
mov rcx, qword ptr [rsp - 48]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp - 40]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp - 32]
mov qword ptr [rax + 16], rcx
jmp .LBB158_6
.LBB158_5:
mov rax, qword ptr [rsp - 88]
mov qword ptr [rax + 8], 0
.LBB158_6:
mov rax, qword ptr [rsp - 80]
ret
alloc::raw_vec::RawVec<T,A>::current_memory:
mov qword ptr [rsp - 96], rsi
mov qword ptr [rsp - 88], rdi
mov qword ptr [rsp - 80], rdi
xor eax, eax
test al, 1
jne .LBB159_2
mov rax, qword ptr [rsp - 96]
cmp qword ptr [rax + 8], 0
sete al
and al, 1
mov byte ptr [rsp - 65], al
jmp .LBB159_3
.LBB159_2:
mov byte ptr [rsp - 65], 1
.LBB159_3:
test byte ptr [rsp - 65], 1
jne .LBB159_5
mov rax, qword ptr [rsp - 88]
mov rcx, qword ptr [rsp - 96]
mov rdx, qword ptr [rcx + 8]
shl rdx, 0
mov qword ptr [rsp - 56], rdx
mov qword ptr [rsp - 64], 1
mov rcx, qword ptr [rcx]
mov qword ptr [rsp - 16], rcx
mov rcx, qword ptr [rsp - 16]
mov qword ptr [rsp - 8], rcx
mov rcx, qword ptr [rsp - 8]
mov qword ptr [rsp - 24], rcx
mov rcx, qword ptr [rsp - 24]
mov qword ptr [rsp - 48], rcx
mov rdx, qword ptr [rsp - 64]
mov rcx, qword ptr [rsp - 56]
mov qword ptr [rsp - 40], rdx
mov qword ptr [rsp - 32], rcx
mov rcx, qword ptr [rsp - 48]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp - 40]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp - 32]
mov qword ptr [rax + 16], rcx
jmp .LBB159_6
.LBB159_5:
mov rax, qword ptr [rsp - 88]
mov qword ptr [rax + 8], 0
.LBB159_6:
mov rax, qword ptr [rsp - 80]
ret
alloc::raw_vec::RawVec<T,A>::grow_amortized:
sub rsp, 328
mov qword ptr [rsp + 32], rdi
mov qword ptr [rsp + 40], rsi
mov qword ptr [rsp + 48], rdx
xor eax, eax
test al, 1
jne .LBB160_2
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 40]
add rax, rcx
mov qword ptr [rsp + 24], rax
setb al
and al, 1
mov byte ptr [rsp + 327], al
test byte ptr [rsp + 327], 1
jne .LBB160_4
jmp .LBB160_3
.LBB160_2:
mov qword ptr [rsp + 88], 0
mov rcx, qword ptr [rsp + 88]
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 72], rcx
mov qword ptr [rsp + 80], rax
mov rcx, qword ptr [rsp + 72]
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
jmp .LBB160_19
.LBB160_3:
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 144], rax
mov qword ptr [rsp + 136], 1
jmp .LBB160_5
.LBB160_4:
mov qword ptr [rsp + 136], 0
.LBB160_5:
mov qword ptr [rsp + 152], 0
cmp qword ptr [rsp + 136], 0
jne .LBB160_7
mov rcx, qword ptr [rsp + 152]
mov rax, qword ptr [rsp + 160]
mov qword ptr [rsp + 120], rcx
mov qword ptr [rsp + 128], rax
jmp .LBB160_8
.LBB160_7:
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 128], rax
movabs rax, -9223372036854775807
mov qword ptr [rsp + 120], rax
.LBB160_8:
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 120], rdx
cmove rax, rcx
cmp rax, 0
jne .LBB160_10
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 112], rax
movabs rax, -9223372036854775807
mov qword ptr [rsp + 104], rax
jmp .LBB160_11
.LBB160_10:
mov rcx, qword ptr [rsp + 120]
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 272], rcx
mov qword ptr [rsp + 280], rax
mov rcx, qword ptr [rsp + 272]
mov rax, qword ptr [rsp + 280]
mov qword ptr [rsp + 104], rcx
mov qword ptr [rsp + 112], rax
.LBB160_11:
movabs rdx, -9223372036854775807
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 104], rdx
cmove rax, rcx
cmp rax, 0
jne .LBB160_13
mov rax, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 112]
mov rdi, qword ptr [rax + 8]
shl rdi
call qword ptr [rip + core::cmp::max_by@GOTPCREL]
mov rsi, rax
mov edi, 4
call qword ptr [rip + core::cmp::max_by@GOTPCREL]
mov rdx, rax
mov qword ptr [rsp], rdx
mov edi, 24
mov esi, 8
call core::alloc::layout::Layout::array::inner
mov rsi, qword ptr [rsp + 32]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 16], rdx
lea rdi, [rsp + 232]
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::current_memory@GOTPCREL]
mov rsi, qword ptr [rsp + 8]
mov rdx, qword ptr [rsp + 16]
mov r8, qword ptr [rsp + 32]
lea rdi, [rsp + 208]
lea rcx, [rsp + 232]
call qword ptr [rip + alloc::raw_vec::finish_grow@GOTPCREL]
cmp qword ptr [rsp + 208], 0
je .LBB160_14
jmp .LBB160_15
.LBB160_13:
mov rcx, qword ptr [rsp + 104]
mov rax, qword ptr [rsp + 112]
mov qword ptr [rsp + 168], rcx
mov qword ptr [rsp + 176], rax
mov rcx, qword ptr [rsp + 168]
mov rax, qword ptr [rsp + 176]
mov qword ptr [rsp + 288], rcx
mov qword ptr [rsp + 296], rax
mov rcx, qword ptr [rsp + 288]
mov rax, qword ptr [rsp + 296]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
jmp .LBB160_19
.LBB160_14:
mov rcx, qword ptr [rsp + 216]
mov rax, qword ptr [rsp + 224]
mov qword ptr [rsp + 192], rcx
mov qword ptr [rsp + 200], rax
mov qword ptr [rsp + 184], 0
jmp .LBB160_16
.LBB160_15:
mov rcx, qword ptr [rsp + 216]
mov rax, qword ptr [rsp + 224]
mov qword ptr [rsp + 304], rcx
mov qword ptr [rsp + 312], rax
mov rcx, qword ptr [rsp + 304]
mov rax, qword ptr [rsp + 312]
mov qword ptr [rsp + 192], rcx
mov qword ptr [rsp + 200], rax
mov qword ptr [rsp + 184], 1
.LBB160_16:
cmp qword ptr [rsp + 184], 0
jne .LBB160_18
mov rcx, qword ptr [rsp]
mov rdi, qword ptr [rsp + 32]
mov rsi, qword ptr [rsp + 192]
mov rdx, qword ptr [rsp + 200]
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::set_ptr_and_cap@GOTPCREL]
movabs rax, -9223372036854775807
mov qword ptr [rsp + 56], rax
jmp .LBB160_19
.LBB160_18:
mov rcx, qword ptr [rsp + 192]
mov rax, qword ptr [rsp + 200]
mov qword ptr [rsp + 256], rcx
mov qword ptr [rsp + 264], rax
mov rcx, qword ptr [rsp + 256]
mov rax, qword ptr [rsp + 264]
mov qword ptr [rsp + 56], rcx
mov qword ptr [rsp + 64], rax
.LBB160_19:
mov rax, qword ptr [rsp + 56]
mov rdx, qword ptr [rsp + 64]
add rsp, 328
ret
alloc::raw_vec::RawVec<T,A>::set_ptr_and_cap:
mov qword ptr [rsp - 16], rsi
mov rax, qword ptr [rsp - 16]
mov qword ptr [rsp - 8], rax
mov rax, qword ptr [rsp - 8]
mov qword ptr [rsp - 24], rax
mov rax, qword ptr [rsp - 24]
mov qword ptr [rdi], rax
mov qword ptr [rdi + 8], rcx
ret
alloc::raw_vec::RawVec<T,A>::reserve::do_reserve_and_handle:
push rax
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::grow_amortized@GOTPCREL]
mov rdi, rax
mov rsi, rdx
call alloc::raw_vec::handle_reserve
pop rax
ret
<I as core::iter::traits::collect::IntoIterator>::into_iter:
mov edx, esi
mov eax, edi
ret
<I as core::iter::traits::collect::IntoIterator>::into_iter:
mov rax, rdi
mov rcx, qword ptr [rsi]
mov qword ptr [rdi], rcx
mov rcx, qword ptr [rsi + 8]
mov qword ptr [rdi + 8], rcx
ret
<alloc::alloc::Global as core::alloc::Allocator>::deallocate:
sub rsp, 40
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rcx
cmp rcx, 0
jne .LBB165_2
jmp .LBB165_3
.LBB165_2:
mov rsi, qword ptr [rsp + 24]
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 16]
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 32]
call qword ptr [rip + __rust_dealloc@GOTPCREL]
.LBB165_3:
add rsp, 40
ret
<alloc::alloc::Global as core::alloc::Allocator>::allocate_zeroed:
push rax
mov ecx, 1
call alloc::alloc::Global::alloc_impl
pop rcx
ret
<alloc::alloc::Global as core::alloc::Allocator>::grow:
push rax
mov rax, rsp
mov dword ptr [rax], 0
call alloc::alloc::Global::grow_impl
pop rcx
ret
<alloc::alloc::Global as core::alloc::Allocator>::allocate:
push rax
xor ecx, ecx
call alloc::alloc::Global::alloc_impl
pop rcx
ret
<T as alloc::ffi::c_str::CString::new::SpecNewImpl>::spec_new_impl:
sub rsp, 264
mov qword ptr [rsp + 48], rdi
mov qword ptr [rsp + 56], rdi
lea rdi, [rsp + 80]
call qword ptr [rip + <T as core::convert::Into<U>>::into@GOTPCREL]
mov byte ptr [rsp + 215], 1
mov rcx, qword ptr [rsp + 80]
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 232], rcx
mov qword ptr [rsp + 240], rax
mov rcx, qword ptr [rsp + 232]
mov rax, qword ptr [rsp + 240]
mov qword ptr [rsp + 216], rcx
mov qword ptr [rsp + 224], rax
mov rax, qword ptr [rsp + 216]
mov qword ptr [rsp + 64], rax
mov rax, qword ptr [rsp + 224]
mov qword ptr [rsp + 72], rax
cmp rax, 16
jb .LBB169_2
mov rdx, qword ptr [rsp + 72]
mov rsi, qword ptr [rsp + 64]
mov rax, qword ptr [rip + core::slice::memchr::memchr_aligned@GOTPCREL]
xor edi, edi
call rax
mov qword ptr [rsp + 32], rdx
mov qword ptr [rsp + 40], rax
jmp .LBB169_5
.LBB169_2:
mov rdx, qword ptr [rsp + 72]
mov rsi, qword ptr [rsp + 64]
xor edi, edi
call core::slice::memchr::memchr_naive
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rax
jmp .LBB169_7
.LBB169_3:
test byte ptr [rsp + 215], 1
jne .LBB169_13
jmp .LBB169_12
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 248], rcx
mov dword ptr [rsp + 256], eax
jmp .LBB169_3
.LBB169_5:
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
mov qword ptr [rsp + 104], rcx
mov qword ptr [rsp + 112], rax
.LBB169_6:
cmp qword ptr [rsp + 104], 0
je .LBB169_8
jmp .LBB169_9
.LBB169_7:
mov rax, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rsp + 104], rcx
mov qword ptr [rsp + 112], rax
jmp .LBB169_6
.LBB169_8:
mov byte ptr [rsp + 215], 0
mov rax, qword ptr [rsp + 96]
mov qword ptr [rsp + 192], rax
movups xmm0, xmmword ptr [rsp + 80]
movaps xmmword ptr [rsp + 176], xmm0
mov rax, qword ptr [rip + alloc::ffi::c_str::CString::_from_vec_unchecked@GOTPCREL]
lea rdi, [rsp + 176]
call rax
mov qword ptr [rsp], rdx
mov qword ptr [rsp + 8], rax
jmp .LBB169_10
.LBB169_9:
mov rax, qword ptr [rsp + 48]
mov rcx, qword ptr [rsp + 112]
mov rdx, qword ptr [rsp + 80]
mov qword ptr [rsp + 152], rdx
mov rdx, qword ptr [rsp + 88]
mov qword ptr [rsp + 160], rdx
mov rdx, qword ptr [rsp + 96]
mov qword ptr [rsp + 168], rdx
mov qword ptr [rsp + 144], rcx
mov rcx, qword ptr [rsp + 152]
mov qword ptr [rsp + 120], rcx
mov rcx, qword ptr [rsp + 160]
mov qword ptr [rsp + 128], rcx
mov rcx, qword ptr [rsp + 168]
mov qword ptr [rsp + 136], rcx
mov rcx, qword ptr [rsp + 120]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 128]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 136]
mov qword ptr [rax + 16], rcx
mov rcx, qword ptr [rsp + 144]
mov qword ptr [rax + 24], rcx
jmp .LBB169_11
.LBB169_10:
mov rax, qword ptr [rsp + 48]
mov rcx, qword ptr [rsp]
mov rdx, qword ptr [rsp + 8]
mov qword ptr [rax + 8], rdx
mov qword ptr [rax + 16], rcx
mov qword ptr [rax], 0
.LBB169_11:
mov rax, qword ptr [rsp + 56]
add rsp, 264
ret
.LBB169_12:
mov rdi, qword ptr [rsp + 248]
call _Unwind_Resume@PLT
ud2
.LBB169_13:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::vec::Vec<u8>>@GOTPCREL]
lea rdi, [rsp + 80]
call rax
jmp .LBB169_12
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
<core::option::Option<T> as core::fmt::Debug>::fmt:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rsi
cmp qword ptr [rdi], 0
jne .LBB170_2
mov rdi, qword ptr [rsp + 16]
lea rsi, [rip + .L__unnamed_52]
mov edx, 4
call qword ptr [rip + core::fmt::Formatter::write_str@GOTPCREL]
and al, 1
mov byte ptr [rsp + 31], al
jmp .LBB170_3
.LBB170_2:
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rsp + 8]
add rax, 8
mov qword ptr [rsp + 32], rax
lea rsi, [rip + .L__unnamed_53]
mov edx, 4
lea rcx, [rsp + 32]
lea r8, [rip + .L__unnamed_50]
call qword ptr [rip + core::fmt::Formatter::debug_tuple_field1_finish@GOTPCREL]
and al, 1
mov byte ptr [rsp + 31], al
.LBB170_3:
mov al, byte ptr [rsp + 31]
and al, 1
movzx eax, al
add rsp, 40
ret
<alloc::boxed::Box<T,A> as core::fmt::Debug>::fmt:
push rax
mov rdx, rsi
mov rax, rdi
mov rdi, qword ptr [rax]
mov rsi, qword ptr [rax + 8]
call qword ptr [rip + <dyn core::any::Any+core::marker::Send as core::fmt::Debug>::fmt@GOTPCREL]
and al, 1
movzx eax, al
pop rcx
ret
<alloc::ffi::c_str::CString as core::ops::drop::Drop>::drop:
mov rax, qword ptr [rdi]
mov byte ptr [rax], 0
ret
<alloc::sync::Arc<T,A> as core::clone::Clone>::clone:
sub rsp, 40
mov qword ptr [rsp + 16], rdi
mov rcx, qword ptr [rdi]
mov eax, 1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 32], rax
movabs rax, 9223372036854775807
cmp qword ptr [rsp + 32], rax
ja .LBB173_2
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
call <alloc::alloc::Global as core::clone::Clone>::clone
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 24], rax
mov rax, qword ptr [rsp + 24]
add rsp, 40
ret
.LBB173_2:
ud2
ud2
<alloc::sync::Arc<T,A> as core::clone::Clone>::clone:
sub rsp, 40
mov qword ptr [rsp + 16], rdi
mov rcx, qword ptr [rdi]
mov eax, 1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 32], rax
movabs rax, 9223372036854775807
cmp qword ptr [rsp + 32], rax
ja .LBB174_2
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
call <alloc::alloc::Global as core::clone::Clone>::clone
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 24], rax
mov rax, qword ptr [rsp + 24]
add rsp, 40
ret
.LBB174_2:
ud2
ud2
<alloc::sync::Arc<T,A> as core::clone::Clone>::clone:
sub rsp, 40
mov qword ptr [rsp + 16], rdi
mov rcx, qword ptr [rdi]
mov eax, 1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 32], rax
movabs rax, 9223372036854775807
cmp qword ptr [rsp + 32], rax
ja .LBB175_2
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
call <alloc::alloc::Global as core::clone::Clone>::clone
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 24], rax
mov rax, qword ptr [rsp + 24]
add rsp, 40
ret
.LBB175_2:
ud2
ud2
<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 40
mov rcx, qword ptr [rdi]
mov rax, qword ptr [rdi + 16]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 32], rax
mov rcx, qword ptr [rsp + 24]
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
call qword ptr [rip + core::ptr::drop_in_place<[std::thread::JoinHandle<()>]>@GOTPCREL]
add rsp, 40
ret
<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop:
mov rcx, qword ptr [rdi]
mov rax, qword ptr [rdi + 16]
mov qword ptr [rsp - 16], rcx
mov qword ptr [rsp - 8], rax
mov rcx, qword ptr [rsp - 16]
mov rax, qword ptr [rsp - 8]
mov qword ptr [rsp - 32], rcx
mov qword ptr [rsp - 24], rax
ret
<std::thread::Packet<T> as core::ops::drop::Drop>::drop:
sub rsp, 152
mov qword ptr [rsp + 16], rdi
cmp qword ptr [rdi + 8], 1
jne .LBB178_2
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rax + 16]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
sete al
and al, 1
mov byte ptr [rsp + 31], al
jmp .LBB178_3
.LBB178_2:
mov byte ptr [rsp + 31], 0
.LBB178_3:
mov rax, qword ptr [rsp + 16]
add rax, 8
mov qword ptr [rsp + 56], rax
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 48], rax
mov rdi, qword ptr [rsp + 48]
mov rax, qword ptr [rip + std::panicking::try@GOTPCREL]
call rax
mov qword ptr [rsp + 40], rdx
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 32]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB178_5
mov rax, qword ptr [rip + std::sys::unix::stdio::panic_output@GOTPCREL]
call rax
mov byte ptr [rsp + 15], al
jmp .LBB178_8
.LBB178_5:
lea rdi, [rsp + 32]
call qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>@GOTPCREL]
mov rax, qword ptr [rsp + 16]
mov rdx, qword ptr [rax]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
je .LBB178_17
jmp .LBB178_18
.LBB178_6:
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>@GOTPCREL]
lea rdi, [rsp + 32]
call rax
jmp .LBB178_16
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 136], rcx
mov dword ptr [rsp + 144], eax
jmp .LBB178_6
.LBB178_8:
mov al, byte ptr [rsp + 15]
and al, 1
mov byte ptr [rsp + 70], al
mov al, byte ptr [rsp + 70]
and al, 1
movzx eax, al
cmp rax, 1
jne .LBB178_10
lea rsi, [rip + .L__unnamed_54]
xor eax, eax
mov r8d, eax
lea rdi, [rsp + 80]
mov edx, 1
lea rcx, [rsp + 128]
call core::fmt::Arguments::new_v1
jmp .LBB178_11
.LBB178_10:
mov rax, qword ptr [rip + std::sys::unix::abort_internal@GOTPCREL]
call rax
jmp .LBB178_14
.LBB178_11:
mov rax, qword ptr [rip + std::io::Write::write_fmt@GOTPCREL]
lea rdi, [rsp + 71]
lea rsi, [rsp + 80]
call rax
mov qword ptr [rsp], rax
jmp .LBB178_12
.LBB178_12:
mov rax, qword ptr [rsp]
mov qword ptr [rsp + 72], rax
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),std::io::error::Error>>@GOTPCREL]
lea rdi, [rsp + 72]
call rax
jmp .LBB178_13
.LBB178_13:
jmp .LBB178_10
.LBB178_14:
ud2
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB178_16:
mov rdi, qword ptr [rsp + 136]
call _Unwind_Resume@PLT
ud2
.LBB178_17:
mov rax, qword ptr [rsp + 16]
mov rdi, qword ptr [rax]
add rdi, 16
mov al, byte ptr [rsp + 31]
and al, 1
movzx esi, al
call qword ptr [rip + std::thread::scoped::ScopeData::decrement_num_running_threads@GOTPCREL]
.LBB178_18:
add rsp, 152
ret
<std::thread::Packet<T> as core::ops::drop::Drop>::drop::{{closure}}:
sub rsp, 56
mov qword ptr [rsp + 16], 0
mov rdi, qword ptr [rdi]
mov qword ptr [rsp + 8], rdi
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::option::Option<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>>@GOTPCREL]
call rax
jmp .LBB179_3
.LBB179_1:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 16], rcx
movups xmm0, xmmword ptr [rsp + 16]
movups xmmword ptr [rax], xmm0
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB179_1
.LBB179_3:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 16]
mov qword ptr [rax], rcx
mov rcx, qword ptr [rsp + 24]
mov qword ptr [rax + 8], rcx
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 16], rcx
add rsp, 56
ret
<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov rcx, qword ptr [rdi]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 16], 1
jne .LBB180_2
mov rdi, qword ptr [rsp + 8]
call qword ptr [rip + alloc::sync::Arc<T,A>::drop_slow@GOTPCREL]
jmp .LBB180_3
.LBB180_2:
jmp .LBB180_3
.LBB180_3:
add rsp, 24
ret
<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov rcx, qword ptr [rdi]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 16], 1
jne .LBB181_2
mov rdi, qword ptr [rsp + 8]
call qword ptr [rip + alloc::sync::Arc<T,A>::drop_slow@GOTPCREL]
jmp .LBB181_3
.LBB181_2:
jmp .LBB181_3
.LBB181_3:
add rsp, 24
ret
<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov rcx, qword ptr [rdi]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 16], 1
jne .LBB182_2
mov rdi, qword ptr [rsp + 8]
call qword ptr [rip + alloc::sync::Arc<T,A>::drop_slow@GOTPCREL]
jmp .LBB182_3
.LBB182_2:
jmp .LBB182_3
.LBB182_3:
add rsp, 24
ret
<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov rcx, qword ptr [rdi]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 16], 1
jne .LBB183_2
mov rdi, qword ptr [rsp + 8]
call qword ptr [rip + alloc::sync::Arc<T,A>::drop_slow@GOTPCREL]
jmp .LBB183_3
.LBB183_2:
jmp .LBB183_3
.LBB183_3:
add rsp, 24
ret
<alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 72
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov qword ptr [rsp + 56], 24
mov rcx, qword ptr [rsp + 56]
mov qword ptr [rsp + 64], 8
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 24], 0
jne .LBB184_2
jmp .LBB184_3
.LBB184_2:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB184_3:
add rsp, 72
ret
<alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 72
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rdi + 8]
mov rcx, qword ptr [rax + 8]
mov qword ptr [rsp + 56], rcx
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rax + 16]
mov qword ptr [rsp + 64], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 24], 0
jne .LBB185_2
jmp .LBB185_3
.LBB185_2:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB185_3:
add rsp, 72
ret
<alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 72
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rdi + 8]
mov rcx, qword ptr [rax + 8]
mov qword ptr [rsp + 56], rcx
mov rcx, qword ptr [rsp + 56]
mov rax, qword ptr [rax + 16]
mov qword ptr [rsp + 64], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 24], 0
jne .LBB186_2
jmp .LBB186_3
.LBB186_2:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB186_3:
add rsp, 72
ret
<alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 72
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rdi + 8]
shl rax, 0
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 56]
mov qword ptr [rsp + 64], 1
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp + 24], rcx
mov qword ptr [rsp + 16], rax
cmp qword ptr [rsp + 24], 0
jne .LBB187_2
jmp .LBB187_3
.LBB187_2:
mov rdi, qword ptr [rsp]
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 40], rax
mov rax, qword ptr [rsp + 40]
mov qword ptr [rsp + 48], rax
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 32], rax
mov rdx, qword ptr [rsp + 16]
mov rcx, qword ptr [rsp + 24]
mov rsi, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB187_3:
add rsp, 72
ret
<alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 88
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
cmp rax, -1
je .LBB188_2
mov rax, qword ptr [rsp]
mov rax, qword ptr [rax]
mov rcx, rax
add rcx, 8
mov qword ptr [rsp + 48], rcx
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
jmp .LBB188_3
.LBB188_2:
mov qword ptr [rsp + 8], 0
.LBB188_3:
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB188_5
mov rcx, qword ptr [rsp + 8]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 64], rax
cmp qword ptr [rsp + 64], 1
je .LBB188_6
jmp .LBB188_7
.LBB188_5:
jmp .LBB188_8
.LBB188_6:
mov rax, qword ptr [rsp]
mov rdi, rax
add rdi, 8
mov rax, qword ptr [rax]
mov qword ptr [rsp + 24], rax
mov qword ptr [rsp + 72], 48
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rsp + 80], 8
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 32], rax
mov rsi, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
call qword ptr [rip + <&A as core::alloc::Allocator>::deallocate@GOTPCREL]
jmp .LBB188_8
.LBB188_7:
jmp .LBB188_8
.LBB188_8:
add rsp, 88
ret
<alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 88
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
cmp rax, -1
je .LBB189_2
mov rax, qword ptr [rsp]
mov rax, qword ptr [rax]
mov rcx, rax
add rcx, 8
mov qword ptr [rsp + 48], rcx
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
jmp .LBB189_3
.LBB189_2:
mov qword ptr [rsp + 8], 0
.LBB189_3:
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB189_5
mov rcx, qword ptr [rsp + 8]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 64], rax
cmp qword ptr [rsp + 64], 1
je .LBB189_6
jmp .LBB189_7
.LBB189_5:
jmp .LBB189_8
.LBB189_6:
mov rax, qword ptr [rsp]
mov rdi, rax
add rdi, 8
mov rax, qword ptr [rax]
mov qword ptr [rsp + 24], rax
mov qword ptr [rsp + 72], 48
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rsp + 80], 8
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 32], rax
mov rsi, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
call qword ptr [rip + <&A as core::alloc::Allocator>::deallocate@GOTPCREL]
jmp .LBB189_8
.LBB189_7:
jmp .LBB189_8
.LBB189_8:
add rsp, 88
ret
<alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 88
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
cmp rax, -1
je .LBB190_2
mov rax, qword ptr [rsp]
mov rax, qword ptr [rax]
mov rcx, rax
add rcx, 8
mov qword ptr [rsp + 48], rcx
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
jmp .LBB190_3
.LBB190_2:
mov qword ptr [rsp + 8], 0
.LBB190_3:
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB190_5
mov rcx, qword ptr [rsp + 8]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 64], rax
cmp qword ptr [rsp + 64], 1
je .LBB190_6
jmp .LBB190_7
.LBB190_5:
jmp .LBB190_8
.LBB190_6:
mov rax, qword ptr [rsp]
mov rdi, rax
add rdi, 8
mov rax, qword ptr [rax]
mov qword ptr [rsp + 24], rax
mov qword ptr [rsp + 72], 40
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rsp + 80], 8
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 32], rax
mov rsi, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
call qword ptr [rip + <&A as core::alloc::Allocator>::deallocate@GOTPCREL]
jmp .LBB190_8
.LBB190_7:
jmp .LBB190_8
.LBB190_8:
add rsp, 88
ret
<alloc::sync::Weak<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 88
mov qword ptr [rsp], rdi
mov rax, qword ptr [rdi]
cmp rax, -1
je .LBB191_2
mov rax, qword ptr [rsp]
mov rax, qword ptr [rax]
mov rcx, rax
add rcx, 8
mov qword ptr [rsp + 48], rcx
mov qword ptr [rsp + 56], rax
mov rcx, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rsp + 8], rcx
mov qword ptr [rsp + 16], rax
jmp .LBB191_3
.LBB191_2:
mov qword ptr [rsp + 8], 0
.LBB191_3:
mov rdx, qword ptr [rsp + 8]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 1
jne .LBB191_5
mov rcx, qword ptr [rsp + 8]
mov rax, -1
lock xadd qword ptr [rcx], rax
mov qword ptr [rsp + 64], rax
cmp qword ptr [rsp + 64], 1
je .LBB191_6
jmp .LBB191_7
.LBB191_5:
jmp .LBB191_8
.LBB191_6:
mov rax, qword ptr [rsp]
mov rdi, rax
add rdi, 8
mov rax, qword ptr [rax]
mov qword ptr [rsp + 24], rax
mov qword ptr [rsp + 72], 48
mov rcx, qword ptr [rsp + 72]
mov qword ptr [rsp + 80], 8
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 40], rcx
mov qword ptr [rsp + 32], rax
mov rsi, qword ptr [rsp + 24]
mov rdx, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
call qword ptr [rip + <&A as core::alloc::Allocator>::deallocate@GOTPCREL]
jmp .LBB191_8
.LBB191_7:
jmp .LBB191_8
.LBB191_8:
add rsp, 88
ret
<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 40
mov rsi, rdi
mov qword ptr [rsp + 8], rsi
lea rdi, [rsp + 16]
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::current_memory@GOTPCREL]
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 24], 0
cmove rax, rcx
cmp rax, 1
jne .LBB192_2
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB192_2:
add rsp, 40
ret
<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 40
mov rsi, rdi
mov qword ptr [rsp + 8], rsi
lea rdi, [rsp + 16]
call qword ptr [rip + alloc::raw_vec::RawVec<T,A>::current_memory@GOTPCREL]
mov eax, 1
xor ecx, ecx
cmp qword ptr [rsp + 24], 0
cmove rax, rcx
cmp rax, 1
jne .LBB193_2
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 32]
call <alloc::alloc::Global as core::alloc::Allocator>::deallocate
.LBB193_2:
add rsp, 40
ret
<std::io::error::repr_bitpacked::Repr as core::ops::drop::Drop>::drop:
sub rsp, 24
mov rsi, qword ptr [rdi]
lea rdi, [rsp + 8]
call qword ptr [rip + std::io::error::repr_bitpacked::decode_repr@GOTPCREL]
lea rdi, [rsp + 8]
call qword ptr [rip + core::ptr::drop_in_place<std::io::error::ErrorData<alloc::boxed::Box<std::io::error::Custom>>>@GOTPCREL]
add rsp, 24
ret
<std::io::error::repr_bitpacked::Repr as core::ops::drop::Drop>::drop::{{closure}}:
mov qword ptr [rsp - 8], rdi
mov rax, qword ptr [rsp - 8]
mov qword ptr [rsp - 16], rax
mov rax, qword ptr [rsp - 16]
mov qword ptr [rsp - 24], rax
mov rax, qword ptr [rsp - 24]
ret
<std::io::Write::write_fmt::Adapter<T> as core::fmt::Write>::write_str:
sub rsp, 56
mov qword ptr [rsp + 8], rdi
mov rdi, qword ptr [rdi]
call qword ptr [rip + std::io::Write::write_all@GOTPCREL]
mov qword ptr [rsp + 24], rax
mov rdx, qword ptr [rsp + 24]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB196_2
mov byte ptr [rsp + 23], 0
jmp .LBB196_3
.LBB196_2:
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 32], rax
add rdi, 8
mov rax, qword ptr [rip + core::ptr::drop_in_place<core::result::Result<(),std::io::error::Error>>@GOTPCREL]
call rax
jmp .LBB196_6
.LBB196_3:
mov al, byte ptr [rsp + 23]
and al, 1
movzx eax, al
add rsp, 56
ret
.LBB196_4:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 8], rcx
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB196_4
.LBB196_6:
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 32]
mov qword ptr [rax + 8], rcx
mov byte ptr [rsp + 23], 1
jmp .LBB196_3
<alloc::vec::set_len_on_drop::SetLenOnDrop as core::ops::drop::Drop>::drop:
mov rcx, qword ptr [rdi + 8]
mov rax, qword ptr [rdi]
mov qword ptr [rax], rcx
ret
<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop:
sub rsp, 40
mov qword ptr [rsp + 16], rdi
mov rdi, qword ptr [rsp + 16]
mov rax, qword ptr [rip + alloc::vec::into_iter::IntoIter<T,A>::as_raw_mut_slice@GOTPCREL]
call rax
mov qword ptr [rsp], rdx
mov qword ptr [rsp + 8], rax
jmp .LBB198_3
.LBB198_1:
mov rax, qword ptr [rip + core::ptr::drop_in_place<<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop::DropGuard<std::thread::JoinHandle<()>,alloc::alloc::Global>>@GOTPCREL]
lea rdi, [rsp + 16]
call rax
jmp .LBB198_6
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 24], rcx
mov dword ptr [rsp + 32], eax
jmp .LBB198_1
.LBB198_3:
mov rsi, qword ptr [rsp]
mov rdi, qword ptr [rsp + 8]
mov rax, qword ptr [rip + core::ptr::drop_in_place<[std::thread::JoinHandle<()>]>@GOTPCREL]
call rax
jmp .LBB198_4
.LBB198_4:
lea rdi, [rsp + 16]
call qword ptr [rip + core::ptr::drop_in_place<<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop::DropGuard<std::thread::JoinHandle<()>,alloc::alloc::Global>>@GOTPCREL]
add rsp, 40
ret
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB198_6:
mov rdi, qword ptr [rsp + 24]
call _Unwind_Resume@PLT
ud2
<core::ops::range::Range<T> as core::iter::range::RangeIteratorImpl>::spec_next:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov eax, dword ptr [rdi]
cmp eax, dword ptr [rdi + 4]
jl .LBB199_2
mov dword ptr [rsp + 16], 0
jmp .LBB199_3
.LBB199_2:
mov rax, qword ptr [rsp + 8]
mov edi, dword ptr [rax]
mov dword ptr [rsp + 4], edi
mov esi, 1
call <i32 as core::iter::range::Step>::forward_unchecked
mov rcx, qword ptr [rsp + 8]
mov edx, eax
mov eax, dword ptr [rsp + 4]
mov dword ptr [rcx], edx
mov dword ptr [rsp + 20], eax
mov dword ptr [rsp + 16], 1
.LBB199_3:
mov eax, dword ptr [rsp + 16]
mov edx, dword ptr [rsp + 20]
add rsp, 24
ret
<alloc::vec::Vec<T,A> as core::iter::traits::collect::IntoIterator>::into_iter:
mov qword ptr [rsp - 96], rdi
mov qword ptr [rsp - 88], rdi
mov rax, qword ptr [rsi]
mov qword ptr [rsp - 72], rax
mov rax, qword ptr [rsi + 8]
mov qword ptr [rsp - 64], rax
mov rax, qword ptr [rsi + 16]
mov qword ptr [rsp - 56], rax
mov rax, qword ptr [rsp - 72]
mov qword ptr [rsp - 80], rax
xor eax, eax
test al, 1
jne .LBB200_2
mov rax, qword ptr [rsp - 80]
imul rcx, qword ptr [rsp - 56], 24
add rax, rcx
mov qword ptr [rsp - 48], rax
jmp .LBB200_3
.LBB200_2:
mov rax, qword ptr [rsp - 80]
add rax, qword ptr [rsp - 56]
mov qword ptr [rsp - 8], rax
mov rax, qword ptr [rsp - 8]
mov qword ptr [rsp - 16], rax
mov rax, qword ptr [rsp - 16]
mov qword ptr [rsp - 24], rax
mov rax, qword ptr [rsp - 24]
mov qword ptr [rsp - 48], rax
.LBB200_3:
xor eax, eax
test al, 1
jne .LBB200_5
jmp .LBB200_4
.LBB200_4:
mov rax, qword ptr [rsp - 64]
mov qword ptr [rsp - 40], rax
jmp .LBB200_6
.LBB200_5:
mov qword ptr [rsp - 40], -1
.LBB200_6:
mov rax, qword ptr [rsp - 88]
mov rcx, qword ptr [rsp - 96]
mov rsi, qword ptr [rsp - 80]
mov qword ptr [rsp - 32], rsi
mov rdi, qword ptr [rsp - 40]
mov rdx, qword ptr [rsp - 48]
mov r8, qword ptr [rsp - 32]
mov qword ptr [rcx], r8
mov qword ptr [rcx + 8], rdi
mov qword ptr [rcx + 16], rsi
mov qword ptr [rcx + 24], rdx
ret
<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rdi
lea rdi, [rsp + 24]
call qword ptr [rip + <I as core::iter::traits::collect::IntoIterator>::into_iter@GOTPCREL]
mov rdi, qword ptr [rsp + 8]
lea rsi, [rsp + 24]
call qword ptr [rip + <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter@GOTPCREL]
mov rax, qword ptr [rsp + 16]
add rsp, 40
ret
<alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend:
push rax
call qword ptr [rip + alloc::vec::Vec<T,A>::extend_trusted@GOTPCREL]
pop rax
ret
<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter:
push rax
mov rax, rdi
mov qword ptr [rsp], rax
call qword ptr [rip + <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter@GOTPCREL]
mov rax, qword ptr [rsp]
pop rcx
ret
example::Mutex<T>::new:
sub rsp, 72
mov qword ptr [rsp + 8], rsi
mov qword ptr [rsp + 16], rdi
mov qword ptr [rsp + 24], rdi
mov byte ptr [rsp + 39], 0
mov byte ptr [rsp + 39], 1
xor edi, edi
call core::sync::atomic::AtomicBool::new
mov byte ptr [rsp + 37], al
jmp .LBB204_3
.LBB204_1:
test byte ptr [rsp + 39], 1
jne .LBB204_6
jmp .LBB204_5
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB204_1
.LBB204_3:
mov rax, qword ptr [rsp + 8]
mov cl, byte ptr [rsp + 37]
mov byte ptr [rsp + 63], cl
mov cl, byte ptr [rsp + 63]
mov byte ptr [rsp + 38], cl
mov byte ptr [rsp + 39], 0
mov qword ptr [rsp + 64], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rsp], rax
mov rax, qword ptr [rsp + 24]
mov rcx, qword ptr [rsp + 16]
mov rdx, qword ptr [rsp]
mov sil, byte ptr [rsp + 38]
mov byte ptr [rcx + 8], sil
mov qword ptr [rcx], rdx
add rsp, 72
ret
.LBB204_5:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
.LBB204_6:
jmp .LBB204_5
example::Mutex<T>::with_lock:
sub rsp, 56
mov qword ptr [rsp + 8], rdi
mov byte ptr [rsp + 39], 0
mov byte ptr [rsp + 38], 0
mov byte ptr [rsp + 39], 1
.LBB205_1:
mov rdi, qword ptr [rsp + 8]
add rdi, 8
mov byte ptr [rsp + 22], 2
mov byte ptr [rsp + 23], 2
movzx r8d, byte ptr [rsp + 23]
movzx ecx, byte ptr [rsp + 22]
xor esi, esi
mov edx, 1
call core::sync::atomic::AtomicBool::compare_exchange_weak
mov byte ptr [rsp + 6], dl
mov byte ptr [rsp + 7], al
jmp .LBB205_4
.LBB205_2:
test byte ptr [rsp + 39], 1
jne .LBB205_18
jmp .LBB205_17
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB205_2
.LBB205_4:
mov al, byte ptr [rsp + 6]
mov cl, byte ptr [rsp + 7]
mov byte ptr [rsp + 20], cl
mov byte ptr [rsp + 21], al
mov rax, qword ptr [rip + core::result::Result<T,E>::is_err@GOTPCREL]
lea rdi, [rsp + 20]
call rax
mov byte ptr [rsp + 5], al
jmp .LBB205_5
.LBB205_5:
mov al, byte ptr [rsp + 5]
test al, 1
jne .LBB205_1
jmp .LBB205_6
.LBB205_6:
mov byte ptr [rsp + 39], 0
mov byte ptr [rsp + 38], 1
jmp .LBB205_9
.LBB205_7:
test byte ptr [rsp + 38], 1
jne .LBB205_16
jmp .LBB205_2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB205_7
.LBB205_9:
mov rax, qword ptr [rsp + 8]
and rax, 7
cmp rax, 0
sete al
test al, 1
jne .LBB205_10
jmp .LBB205_11
.LBB205_10:
mov rax, qword ptr [rsp + 8]
mov qword ptr [rsp + 24], rax
mov byte ptr [rsp + 38], 0
mov rdi, qword ptr [rsp + 24]
call example::main::{{closure}}::{{closure}}::{{closure}}
jmp .LBB205_12
.LBB205_11:
mov rsi, qword ptr [rsp + 8]
lea rdx, [rip + .L__unnamed_55]
mov rax, qword ptr [rip + core::panicking::panic_misaligned_pointer_dereference@GOTPCREL]
mov edi, 8
call rax
ud2
.LBB205_12:
mov rdi, qword ptr [rsp + 8]
mov byte ptr [rsp + 38], 0
add rdi, 8
mov byte ptr [rsp + 37], 1
movzx edx, byte ptr [rsp + 37]
xor esi, esi
call core::sync::atomic::AtomicBool::store
jmp .LBB205_15
.LBB205_13:
jmp .LBB205_2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 40], rcx
mov dword ptr [rsp + 48], eax
jmp .LBB205_13
.LBB205_15:
add rsp, 56
ret
.LBB205_16:
jmp .LBB205_2
.LBB205_17:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
.LBB205_18:
jmp .LBB205_17
example::Mutex<T>::with_lock:
sub rsp, 72
mov qword ptr [rsp + 24], rdi
mov byte ptr [rsp + 55], 0
mov byte ptr [rsp + 54], 0
mov byte ptr [rsp + 55], 1
.LBB206_1:
mov rdi, qword ptr [rsp + 24]
add rdi, 8
mov byte ptr [rsp + 38], 2
mov byte ptr [rsp + 39], 2
movzx r8d, byte ptr [rsp + 39]
movzx ecx, byte ptr [rsp + 38]
xor esi, esi
mov edx, 1
call core::sync::atomic::AtomicBool::compare_exchange_weak
mov byte ptr [rsp + 22], dl
mov byte ptr [rsp + 23], al
jmp .LBB206_4
.LBB206_2:
test byte ptr [rsp + 55], 1
jne .LBB206_18
jmp .LBB206_17
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 56], rcx
mov dword ptr [rsp + 64], eax
jmp .LBB206_2
.LBB206_4:
mov al, byte ptr [rsp + 22]
mov cl, byte ptr [rsp + 23]
mov byte ptr [rsp + 36], cl
mov byte ptr [rsp + 37], al
mov rax, qword ptr [rip + core::result::Result<T,E>::is_err@GOTPCREL]
lea rdi, [rsp + 36]
call rax
mov byte ptr [rsp + 21], al
jmp .LBB206_5
.LBB206_5:
mov al, byte ptr [rsp + 21]
test al, 1
jne .LBB206_1
jmp .LBB206_6
.LBB206_6:
mov byte ptr [rsp + 55], 0
mov byte ptr [rsp + 54], 1
jmp .LBB206_9
.LBB206_7:
test byte ptr [rsp + 54], 1
jne .LBB206_16
jmp .LBB206_2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 56], rcx
mov dword ptr [rsp + 64], eax
jmp .LBB206_7
.LBB206_9:
mov rax, qword ptr [rsp + 24]
and rax, 7
cmp rax, 0
sete al
test al, 1
jne .LBB206_10
jmp .LBB206_11
.LBB206_10:
mov rax, qword ptr [rsp + 24]
mov qword ptr [rsp + 40], rax
mov byte ptr [rsp + 54], 0
mov rdi, qword ptr [rsp + 40]
call example::main::{{closure}}
mov qword ptr [rsp + 8], rax
jmp .LBB206_12
.LBB206_11:
mov rsi, qword ptr [rsp + 24]
lea rdx, [rip + .L__unnamed_55]
mov rax, qword ptr [rip + core::panicking::panic_misaligned_pointer_dereference@GOTPCREL]
mov edi, 8
call rax
ud2
.LBB206_12:
mov rdi, qword ptr [rsp + 24]
mov byte ptr [rsp + 54], 0
add rdi, 8
mov byte ptr [rsp + 53], 1
movzx edx, byte ptr [rsp + 53]
xor esi, esi
call core::sync::atomic::AtomicBool::store
jmp .LBB206_15
.LBB206_13:
jmp .LBB206_2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 56], rcx
mov dword ptr [rsp + 64], eax
jmp .LBB206_13
.LBB206_15:
mov rax, qword ptr [rsp + 8]
add rsp, 72
ret
.LBB206_16:
jmp .LBB206_2
.LBB206_17:
mov rdi, qword ptr [rsp + 56]
call _Unwind_Resume@PLT
ud2
.LBB206_18:
jmp .LBB206_17
example::main:
sub rsp, 376
mov rax, qword ptr [rip + example::Mutex<T>::new@GOTPCREL]
xor ecx, ecx
mov esi, ecx
lea rdi, [rsp + 56]
call rax
mov edi, 16
mov esi, 8
call alloc::alloc::exchange_malloc
mov qword ptr [rsp + 48], rax
jmp .LBB207_2
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 360], rcx
mov dword ptr [rsp + 368], eax
mov rax, qword ptr [rsp + 360]
mov qword ptr [rsp + 40], rax
jmp .LBB207_17
.LBB207_2:
mov rdi, qword ptr [rsp + 48]
mov rax, qword ptr [rsp + 56]
mov qword ptr [rdi], rax
mov rax, qword ptr [rsp + 64]
mov qword ptr [rdi + 8], rax
call qword ptr [rip + alloc::boxed::Box<T,A>::leak@GOTPCREL]
mov qword ptr [rsp + 32], rax
mov dword ptr [rsp + 112], 0
mov dword ptr [rsp + 116], 100
mov edi, dword ptr [rsp + 112]
mov esi, dword ptr [rsp + 116]
call qword ptr [rip + <I as core::iter::traits::collect::IntoIterator>::into_iter@GOTPCREL]
mov esi, eax
mov rax, qword ptr [rsp + 32]
mov qword ptr [rsp + 120], rax
mov rcx, qword ptr [rsp + 120]
lea rdi, [rsp + 96]
call qword ptr [rip + core::iter::traits::iterator::Iterator::map@GOTPCREL]
lea rdi, [rsp + 72]
lea rsi, [rsp + 96]
call qword ptr [rip + core::iter::traits::iterator::Iterator::collect@GOTPCREL]
mov rax, qword ptr [rsp + 72]
mov qword ptr [rsp + 160], rax
mov rax, qword ptr [rsp + 80]
mov qword ptr [rsp + 168], rax
mov rax, qword ptr [rsp + 88]
mov qword ptr [rsp + 176], rax
lea rdi, [rsp + 128]
lea rsi, [rsp + 160]
call qword ptr [rip + <alloc::vec::Vec<T,A> as core::iter::traits::collect::IntoIterator>::into_iter@GOTPCREL]
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 184], rax
mov rax, qword ptr [rsp + 136]
mov qword ptr [rsp + 192], rax
mov rax, qword ptr [rsp + 144]
mov qword ptr [rsp + 200], rax
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 208], rax
.LBB207_3:
mov rax, qword ptr [rip + <alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::next@GOTPCREL]
lea rdi, [rsp + 216]
lea rsi, [rsp + 184]
call rax
jmp .LBB207_6
.LBB207_4:
mov rax, qword ptr [rip + core::ptr::drop_in_place<alloc::vec::into_iter::IntoIter<std::thread::JoinHandle<()>>>@GOTPCREL]
lea rdi, [rsp + 184]
call rax
jmp .LBB207_16
mov rcx, rax
mov eax, edx
mov qword ptr [rsp + 344], rcx
mov dword ptr [rsp + 352], eax
jmp .LBB207_4
.LBB207_6:
mov rdx, qword ptr [rsp + 216]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne .LBB207_8
lea rdi, [rsp + 184]
call qword ptr [rip + core::ptr::drop_in_place<alloc::vec::into_iter::IntoIter<std::thread::JoinHandle<()>>>@GOTPCREL]
mov rdi, qword ptr [rsp + 32]
call example::Mutex<T>::with_lock
mov qword ptr [rsp + 280], rax
mov eax, 100
mov ecx, 10000
mul rcx
seto al
test al, 1
jne .LBB207_10
jmp .LBB207_9
.LBB207_8:
mov rax, qword ptr [rsp + 232]
mov qword ptr [rsp + 256], rax
movups xmm0, xmmword ptr [rsp + 216]
movaps xmmword ptr [rsp + 240], xmm0
mov rax, qword ptr [rip + std::thread::JoinHandle<T>::join@GOTPCREL]
lea rdi, [rsp + 240]
call rax
mov qword ptr [rsp + 16], rdx
mov qword ptr [rsp + 24], rax
jmp .LBB207_13
.LBB207_9:
lea rax, [rsp + 280]
mov qword ptr [rsp + 264], rax
lea rax, [rip + .L__unnamed_56]
mov qword ptr [rsp + 272], rax
mov rax, qword ptr [rsp + 264]
mov qword ptr [rsp], rax
mov rcx, qword ptr [rsp + 272]
mov qword ptr [rsp + 8], rcx
mov rax, qword ptr [rax]
cmp rax, qword ptr [rcx]
sete al
xor al, -1
test al, 1
jne .LBB207_12
jmp .LBB207_11
.LBB207_10:
lea rdi, [rip + str.2]
lea rdx, [rip + .L__unnamed_57]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 33
call rax
ud2
.LBB207_11:
add rsp, 376
ret
.LBB207_12:
mov rdx, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp]
mov byte ptr [rsp + 295], 0
mov qword ptr [rsp + 296], 0
movzx edi, byte ptr [rsp + 295]
lea r8, [rip + .L__unnamed_58]
mov rax, qword ptr [rip + core::panicking::assert_failed@GOTPCREL]
lea rcx, [rsp + 296]
call rax
ud2
.LBB207_13:
mov rsi, qword ptr [rsp + 16]
mov rdi, qword ptr [rsp + 24]
lea rdx, [rip + .L__unnamed_59]
mov rax, qword ptr [rip + core::result::Result<T,E>::unwrap@GOTPCREL]
call rax
jmp .LBB207_14
.LBB207_14:
jmp .LBB207_3
mov rax, qword ptr [rip + core::panicking::panic_cannot_unwind@GOTPCREL]
call rax
ud2
.LBB207_16:
mov rax, qword ptr [rsp + 344]
mov qword ptr [rsp + 40], rax
.LBB207_17:
mov rdi, qword ptr [rsp + 40]
call _Unwind_Resume@PLT
ud2
example::main::{{closure}}:
sub rsp, 24
mov rax, rdi
mov qword ptr [rsp + 8], rax
mov rax, qword ptr [rsi]
mov qword ptr [rsp + 16], rax
mov rsi, qword ptr [rsp + 16]
call qword ptr [rip + std::thread::spawn@GOTPCREL]
mov rax, qword ptr [rsp + 8]
add rsp, 24
ret
example::main::{{closure}}::{{closure}}:
sub rsp, 40
mov qword ptr [rsp + 8], rdi
mov dword ptr [rsp + 16], 0
mov dword ptr [rsp + 20], 10000
mov edi, dword ptr [rsp + 16]
mov esi, dword ptr [rsp + 20]
call qword ptr [rip + <I as core::iter::traits::collect::IntoIterator>::into_iter@GOTPCREL]
mov dword ptr [rsp + 24], eax
mov dword ptr [rsp + 28], edx
.LBB209_1:
mov rax, qword ptr [rip + core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next@GOTPCREL]
lea rdi, [rsp + 24]
call rax
mov dword ptr [rsp + 36], edx
mov dword ptr [rsp + 32], eax
mov eax, dword ptr [rsp + 32]
cmp rax, 0
jne .LBB209_3
add rsp, 40
ret
.LBB209_3:
mov rdi, qword ptr [rsp + 8]
call example::Mutex<T>::with_lock
jmp .LBB209_1
example::main::{{closure}}::{{closure}}::{{closure}}:
sub rsp, 24
mov qword ptr [rsp + 8], rdi
mov rax, qword ptr [rdi]
add rax, 1
mov qword ptr [rsp + 16], rax
setb al
test al, 1
jne .LBB210_2
mov rax, qword ptr [rsp + 8]
mov rcx, qword ptr [rsp + 16]
mov qword ptr [rax], rcx
add rsp, 24
ret
.LBB210_2:
lea rdi, [rip + str.3]
lea rdx, [rip + .L__unnamed_60]
mov rax, qword ptr [rip + core::panicking::panic@GOTPCREL]
mov esi, 28
call rax
ud2
example::main::{{closure}}:
mov rax, qword ptr [rdi]
ret
__rust_try:
sub rsp, 24
mov qword ptr [rsp], rsi
mov rax, rdi
mov rdi, qword ptr [rsp]
mov qword ptr [rsp + 8], rdi
mov qword ptr [rsp + 16], rdx
call rax
jmp .LBB212_1
.LBB212_1:
xor eax, eax
add rsp, 24
ret
mov rdi, qword ptr [rsp + 8]
mov rsi, rax
mov rax, qword ptr [rsp + 16]
call rax
mov eax, 1
add rsp, 24
ret
str.0:
.ascii "attempted to zero-initialize type `std::thread::JoinHandle<()>`, which is invalid"
.L__unnamed_1:
.ascii "assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize"
.L__unnamed_61:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ptr/const_ptr.rs"
.L__unnamed_2:
.quad .L__unnamed_61
.asciz "Q\000\000\000\000\000\000\000\037\003\000\000\t\000\000"
.L__unnamed_62:
.ascii "capacity overflow"
.L__unnamed_3:
.quad .L__unnamed_62
.asciz "\021\000\000\000\000\000\000"
.L__unnamed_4:
.L__unnamed_63:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/alloc/src/vec/spec_from_iter_nested.rs"
.L__unnamed_5:
.quad .L__unnamed_63
.asciz "^\000\000\000\000\000\000\000;\000\000\000\022\000\000"
.L__unnamed_64:
.ascii "invalid args"
.L__unnamed_6:
.quad .L__unnamed_64
.asciz "\f\000\000\000\000\000\000"
.L__unnamed_65:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/fmt/mod.rs"
.L__unnamed_7:
.quad .L__unnamed_65
.asciz "K\000\000\000\000\000\000\000+\001\000\000\r\000\000"
.L__unnamed_66:
.ascii "failed to write whole buffer"
.L__unnamed_8:
.quad .L__unnamed_66
.ascii "\034\000\000\000\000\000\000\000\027"
.zero 7
.L__unnamed_67:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/std/src/io/mod.rs"
.L__unnamed_9:
.quad .L__unnamed_67
.asciz "I\000\000\000\000\000\000\000-\006\000\000$\000\000"
.L__unnamed_10:
.byte 35
.L__unnamed_11:
.quad core::ptr::drop_in_place<std::io::Write::write_fmt::Adapter<std::sys::unix::stdio::Stderr>>
.asciz "\020\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <std::io::Write::write_fmt::Adapter<T> as core::fmt::Write>::write_str
.quad core::fmt::Write::write_char
.quad core::fmt::Write::write_fmt
.L__unnamed_68:
.ascii "formatter error"
.L__unnamed_12:
.quad .L__unnamed_68
.ascii "\017\000\000\000\000\000\000\000("
.zero 7
.L__unnamed_13:
.ascii "internal error: entered unreachable code"
.L__unnamed_69:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/std/src/io/error/repr_bitpacked.rs"
.L__unnamed_14:
.quad .L__unnamed_69
.asciz "Z\000\000\000\000\000\000\000\030\001\000\000\r\000\000"
.L__unnamed_15:
.ascii "called `Option::unwrap()` on a `None` value"
.L__unnamed_70:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/std/src/thread/mod.rs"
.L__unnamed_16:
.quad .L__unnamed_70
.asciz "M\000\000\000\000\000\000\000\237\005\000\000(\000\000"
.L__unnamed_17:
.quad .L__unnamed_70
.asciz "M\000\000\000\000\000\000\000\237\005\000\000I\000\000"
.L__unnamed_18:
.ascii "failed to spawn thread"
.L__unnamed_19:
.quad .L__unnamed_70
.asciz "M\000\000\000\000\000\000\000\256\002\000\000\035\000\000"
.L__unnamed_20:
.ascii "thread name may not contain interior null bytes"
.L__unnamed_21:
.quad .L__unnamed_70
.asciz "M\000\000\000\000\000\000\000\334\001\000\000 \000\000"
.L__unnamed_22:
.quad core::ptr::drop_in_place<std::thread::Builder::spawn_unchecked_<example::main::{{closure}}::{{closure}},()>::{{closure}}>
.asciz " \000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad core::ops::function::FnOnce::call_once{{vtable.shim}}
.L__unnamed_23:
.quad core::ptr::drop_in_place<&mut std::io::Write::write_fmt::Adapter<std::sys::unix::stdio::Stderr>>
.asciz "\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <&mut W as core::fmt::Write>::write_str
.quad <&mut W as core::fmt::Write>::write_char
.quad <&mut W as core::fmt::Write>::write_fmt
.L__unnamed_24:
.quad .L__unnamed_65
.asciz "K\000\000\000\000\000\000\0005\001\000\000\r\000\000"
.L__unnamed_71:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/char/methods.rs"
.L__unnamed_27:
.quad .L__unnamed_71
.asciz "P\000\000\000\000\000\000\000\321\006\000\000\r\000\000"
.L__unnamed_72:
.ascii "encode_utf8: need "
.L__unnamed_73:
.ascii " bytes to encode U+"
.L__unnamed_74:
.ascii ", but the buffer has "
.L__unnamed_25:
.quad .L__unnamed_72
.asciz "\022\000\000\000\000\000\000"
.quad .L__unnamed_73
.asciz "\023\000\000\000\000\000\000"
.quad .L__unnamed_74
.asciz "\025\000\000\000\000\000\000"
.L__unnamed_26:
.quad .L__unnamed_71
.asciz "P\000\000\000\000\000\000\000\312\006\000\000\016\000\000"
.L__unnamed_75:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/iter/traits/exact_size.rs"
.L__unnamed_28:
.quad .L__unnamed_75
.asciz "Z\000\000\000\000\000\000\000z\000\000\000\t\000\000"
.L__unnamed_76:
.ascii "there is no such thing as a release load"
.L__unnamed_29:
.quad .L__unnamed_76
.asciz "(\000\000\000\000\000\000"
.L__unnamed_77:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/sync/atomic.rs"
.L__unnamed_30:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000s\f\000\000\030\000\000"
.L__unnamed_78:
.ascii "there is no such thing as an acquire-release load"
.L__unnamed_31:
.quad .L__unnamed_78
.asciz "1\000\000\000\000\000\000"
.L__unnamed_32:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000t\f\000\000\027\000\000"
.L__unnamed_79:
.ascii "there is no such thing as an acquire store"
.L__unnamed_33:
.quad .L__unnamed_79
.asciz "*\000\000\000\000\000\000"
.L__unnamed_34:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000d\f\000\000\030\000\000"
.L__unnamed_80:
.ascii "there is no such thing as an acquire-release store"
.L__unnamed_35:
.quad .L__unnamed_80
.asciz "2\000\000\000\000\000\000"
.L__unnamed_36:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000e\f\000\000\027\000\000"
.L__unnamed_81:
.ascii "there is no such thing as a release failure ordering"
.L__unnamed_37:
.quad .L__unnamed_81
.asciz "4\000\000\000\000\000\000"
.L__unnamed_38:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000\310\f\000\000\035\000\000"
.L__unnamed_82:
.ascii "there is no such thing as an acquire-release failure ordering"
.L__unnamed_39:
.quad .L__unnamed_82
.asciz "=\000\000\000\000\000\000"
.L__unnamed_40:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000\307\f\000\000\034\000\000"
.L__unnamed_41:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000\353\f\000\000\035\000\000"
.L__unnamed_42:
.quad .L__unnamed_77
.asciz "O\000\000\000\000\000\000\000\352\f\000\000\034\000\000"
.L__unnamed_83:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/alloc/layout.rs"
.L__unnamed_43:
.quad .L__unnamed_83
.asciz "P\000\000\000\000\000\000\000\277\001\000\000)\000\000"
str.1:
.ascii "attempt to divide by zero"
.L__unnamed_84:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/slice/memchr.rs"
.L__unnamed_44:
.quad .L__unnamed_84
.asciz "P\000\000\000\000\000\000\0009\000\000\000\f\000\000"
.L__unnamed_45:
.quad core::ptr::drop_in_place<alloc::ffi::c_str::NulError>
.asciz " \000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <alloc::ffi::c_str::NulError as core::fmt::Debug>::fmt
.L__unnamed_46:
.quad core::ptr::drop_in_place<std::io::error::Error>
.asciz "\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <std::io::error::Error as core::fmt::Debug>::fmt
.L__unnamed_47:
.ascii "called `Result::unwrap()` on an `Err` value"
.L__unnamed_48:
.quad core::ptr::drop_in_place<alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>
.asciz "\020\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <alloc::boxed::Box<T,A> as core::fmt::Debug>::fmt
.L__unnamed_49:
.quad core::ptr::drop_in_place<&core::option::Option<usize>>
.asciz "\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <&T as core::fmt::Debug>::fmt
.L__unnamed_50:
.quad core::ptr::drop_in_place<&usize>
.asciz "\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000"
.quad <&T as core::fmt::Debug>::fmt
.L__unnamed_85:
.ascii "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/alloc/src/vec/mod.rs"
.L__unnamed_51:
.quad .L__unnamed_85
.asciz "L\000\000\000\000\000\000\000\032\013\000\000\r\000\000"
.L__unnamed_52:
.ascii "None"
.L__unnamed_53:
.ascii "Some"
.L__unnamed_86:
.ascii "fatal runtime error: thread result panicked on drop\n"
.L__unnamed_54:
.quad .L__unnamed_86
.asciz "4\000\000\000\000\000\000"
.L__unnamed_87:
.ascii "/app/example.rs"
.L__unnamed_55:
.quad .L__unnamed_87
.asciz "\017\000\000\000\000\000\000\000\036\000\000\000$\000\000"
.L__unnamed_57:
.quad .L__unnamed_87
.asciz "\017\000\000\000\000\000\000\0005\000\000\000%\000\000"
str.2:
.ascii "attempt to multiply with overflow"
.L__unnamed_56:
.asciz "@B\017\000\000\000\000"
.L__unnamed_58:
.quad .L__unnamed_87
.asciz "\017\000\000\000\000\000\000\0005\000\000\000\005\000\000"
.L__unnamed_59:
.quad .L__unnamed_87
.asciz "\017\000\000\000\000\000\000\0002\000\000\000\022\000\000"
.L__unnamed_60:
.quad .L__unnamed_87
.asciz "\017\000\000\000\000\000\000\000,\000\000\000%\000\000"
str.3:
.ascii "attempt to add with overflow"
DW.ref.rust_eh_personality:
.quad rust_eh_personality
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment