File akira_3298d203c2acb68c474e5fdad8379181890b4403d6491c523c13730129be3f75.elf
Function:
    001d3a0d
    001d3a0dstd::sync::mpmc::context::Context::with::_{{closure}}:
    001d3a0dpush rbp
    001d3a0epush r15
    001d3a10push r14
    001d3a12push r13
    001d3a14push r12
    001d3a16push rbx
    001d3a17sub rsp, 88
    001d3a1bmov r14, [rsi]
    001d3a1emov rbx, [rsi+8]
    001d3a22mov rax, [rsi+16]
    001d3a26mov r13, [rsi+24]
    001d3a2amov r15b, [rsi+32]
    001d3a2emov [rsi+32], 2
    001d3a32cmp r15b, 2
    001d3a36je 0x1d3bec
    001d3a3cmov r12, rdx
    001d3a3fmov [rsp+8], rax
    001d3a44mov [rsp], rdi
    001d3a48mov [rsp+56], 256
    001d3a4fand [rsp+40], 0
    001d3a55mov rax, [rdx]
    001d3a58lock inc [rax]
    001d3a5cjle 0x1d3bfc
    001d3a62lea rbp, [r13+8]
    001d3a66lea rdi, [r13+56]
    001d3a6alea rsi, [rsp+16]
    001d3a6fmov [rsi+8], r14
    001d3a73lea rcx, [rsp+40]
    001d3a78mov [rsi+16], rcx
    001d3a7cmov [rsi], rax
    001d3a7fcall alloc::vec::Vec<T,A>::push
    001d3a84mov rdi, rbp
    001d3a87call _ZN3std4sync4mpmc5waker5Waker6notify17h877428e96e43a61eE.1711
    001d3a8cmovzx esi, r15b
    001d3a90mov rdi, r13
    001d3a93call core::ptr::drop_in_place<std::sync::mutex::MutexGuard<alloc::vec::Vec<akira_v2::lock::Attempts>>>
    001d3a98mov rsi, [rbx]
    001d3a9bmov edx, [rbx+8]
    001d3a9emov rdi, r12
    001d3aa1call _ZN3std4sync4mpmc7context7Context10wait_until17h45eee1b0fd870057E.1737
    001d3aa6lea rcx, [rip-0x193791]
    001d3aadmovsxd rax, [rcx+4*rax]
    001d3ab1add rax, rcx
    001d3ab4jmp rax
    001d3ab6lea r12, [rsp+16]
    001d3abbmov rdi, r12
    001d3abemov rsi, [rsp+8]
    001d3ac3call std::sync::mutex::Mutex<T>::lock
    001d3ac8lea rsi, [rip+0x3d819]
    001d3acfmov rdi, r12
    001d3ad2call core::result::Result<T,E>::unwrap
    001d3ad7mov r15, rax
    001d3adamov ebp, edx
    001d3adclea rsi, [rax+56]
    001d3ae0lea r12, [rsp+16]
    001d3ae5mov rdi, r12
    001d3ae8mov rdx, r14
    001d3aebcall std::sync::mpmc::waker::Waker::unregister
    001d3af0cmp [r12], 0
    001d3af5je 0x1d3c12
    001d3afbmov rax, [rsp+32]
    001d3b00lea rdi, [rsp+64]
    001d3b05mov [rdi+16], rax
    001d3b09movups x0, [rsp+16]
    001d3b0emovaps [rdi], x0
    001d3b11call core::ptr::drop_in_place<std::sync::mpmc::context::Context>
    001d3b16movzx esi, bpl
    001d3b1amov rdi, r15
    001d3b1dcall core::ptr::drop_in_place<std::sync::mutex::MutexGuard<alloc::vec::Vec<akira_v2::lock::Attempts>>>
    001d3b22mov rax, [rsp]
    001d3b26mov [rax+8], 0
    001d3b2ajmp 0x1d3ba0
    001d3b2clea r12, [rsp+16]
    001d3b31mov rdi, r12
    001d3b34mov rsi, [rsp+8]
    001d3b39call std::sync::mutex::Mutex<T>::lock
    001d3b3elea rsi, [rip+0x3d7d3]
    001d3b45mov rdi, r12
    001d3b48call core::result::Result<T,E>::unwrap
    001d3b4dmov r15, rax
    001d3b50mov ebp, edx
    001d3b52lea rsi, [rax+56]
    001d3b56lea r12, [rsp+16]
    001d3b5bmov rdi, r12
    001d3b5emov rdx, r14
    001d3b61call std::sync::mpmc::waker::Waker::unregister
    001d3b66cmp [r12], 0
    001d3b6bje 0x1d3c22
    001d3b71mov rax, [rsp+32]
    001d3b76lea rdi, [rsp+64]
    001d3b7bmov [rdi+16], rax
    001d3b7fmovups x0, [rsp+16]
    001d3b84movaps [rdi], x0
    001d3b87call core::ptr::drop_in_place<std::sync::mpmc::context::Context>
    001d3b8cmovzx esi, bpl
    001d3b90mov rdi, r15
    001d3b93call core::ptr::drop_in_place<std::sync::mutex::MutexGuard<alloc::vec::Vec<akira_v2::lock::Attempts>>>
    001d3b98mov rax, [rsp]
    001d3b9cmov [rax+8], 1
    001d3ba0
    001d3ba0loc_1d3ba0:
    001d3ba0and [rax], 0
    001d3ba4jmp 0x1d3bce
    001d3ba6lea r14, [rsp+40]
    001d3babmov rdi, r14
    001d3baecall std::sync::mpmc::zero::Packet<T>::wait_ready
    001d3bb3mov rax, [r14]
    001d3bb6mov rcx, [r14+8]
    001d3bbaand [r14], 0
    001d3bbetest rax, rax
    001d3bc1je 0x1d3c32
    001d3bc3mov rdx, [rsp]
    001d3bc7mov [rdx], rax
    001d3bcamov [rdx+8], rcx
    001d3bce
    001d3bceloc_1d3bce:
    001d3bcemov rdi, [rsp+40]
    001d3bd3mov rsi, [rsp+48]
    001d3bd8call core::ptr::drop_in_place<std::sync::mpmc::zero::Packet<alloc::boxed::Box<dyn threadpool::FnBox+core::marker::Send>>>
    001d3bddadd rsp, 88
    001d3be1pop rbx
    001d3be2pop r12
    001d3be4pop r13
    001d3be6pop r14
    001d3be8pop r15
    001d3beapop rbp
    001d3bebret
    001d3bec
    001d3becloc_1d3bec:
    001d3beclea rdi, [rip-0x142bf5]
    001d3bf3lea rdx, [rip+0x3d826]
    001d3bfajmp 0x1d3c40
    001d3bfc
    001d3bfcloc_1d3bfc:
    001d3bfcud2
    001d3bfeud2
    001d3c00lea rdi, [rip-0x142c82]
    001d3c07lea rdx, [rip+0x3d6c2]
    001d3c0epush 40
    001d3c10jmp 0x1d3c42
    001d3c12
    001d3c12loc_1d3c12:
    001d3c12lea rdi, [rip-0x142c1b]
    001d3c19lea rdx, [rip+0x3d6e0]
    001d3c20jmp 0x1d3c40
    001d3c22
    001d3c22loc_1d3c22:
    001d3c22lea rdi, [rip-0x142c2b]
    001d3c29lea rdx, [rip+0x3d700]
    001d3c30jmp 0x1d3c40
    001d3c32
    001d3c32loc_1d3c32:
    001d3c32lea rdi, [rip-0x142c3b]
    001d3c39lea rdx, [rip+0x3d708]
    001d3c40
    001d3c40loc_1d3c40:
    001d3c40push 43
    001d3c42
    001d3c42loc_1d3c42:
    001d3c42pop rsi
    001d3c43call core::panicking::panic
    001d3c48ud2
    001d3a0d
    001d3c4a
    001d3c4aalloc::vec::Vec<T,A>::push:
    001d3c4apush r14
    001d3c4cpush rbx
    001d3c4dpush rax
    001d3c4emov r14, rsi
    001d3c51mov rbx, rdi
    001d3c54mov rsi, [rdi+16]
    001d3c58cmp rsi, [rdi+8]
    001d3c5cjne 0x1d3c6a
    001d3c5emov rdi, rbx
    001d3c61call alloc::raw_vec::RawVec<T,A>::reserve_for_push
    001d3c66mov rsi, [rbx+16]
    001d3c6a
    001d3c6aloc_1d3c6a:
    001d3c6amov rax, [rbx]
    001d3c6dimul rcx, rsi, 24
    001d3c71mov rdx, [r14+16]
    001d3c75mov [rax+rcx+16], rdx
    001d3c7amovups x0, [r14]
    001d3c7emovups [rax+rcx], x0
    001d3c82inc rsi
    001d3c85mov [rbx+16], rsi
    001d3c89add rsp, 8
    001d3c8dpop rbx
    001d3c8epop r14
    001d3c90ret
    001d3c4a
    001d3c91
    001d3c91_ZN3std4sync4mpmc7context7Context10wait_until17h45eee1b0fd870057E.1737:
    001d3c91push r15
    001d3c93push r14
    001d3c95push r12
    001d3c97push rbx
    001d3c98push rax
    001d3c99mov ebx, edx
    001d3c9bmov r15, rsi
    001d3c9emov r14, rdi
    001d3ca1mov r12, [rdi]
    001d3ca4
    001d3ca4loc_1d3ca4:
    001d3ca4mov rax, [r12+24]
    001d3ca9test rax, rax
    001d3cacjne 0x1d3ce8
    001d3caecmp ebx, 0x3b9aca00
    001d3cb4jne 0x1d3cbd
    001d3cb6call std::thread::park
    001d3cbbjmp 0x1d3ca4
    001d3cbd
    001d3cbdloc_1d3cbd:
    001d3cbdcall std::time::Instant::now
    001d3cc2mov ecx, edx
    001d3cc4cmp rax, r15
    001d3cc7jl 0x1d3ccf
    001d3cc9jne 0x1d3cf7
    001d3ccbcmp ecx, ebx
    001d3ccdjae 0x1d3cf7
    001d3ccf
    001d3ccfloc_1d3ccf:
    001d3ccfmov rdi, r15
    001d3cd2mov esi, ebx
    001d3cd4mov rdx, rax
    001d3cd7call _<std::time::Instant as core::ops::arith::Sub>::sub
    001d3cdcmov rdi, rax
    001d3cdfmov esi, edx
    001d3ce1call std::thread::park_timeout
    001d3ce6jmp 0x1d3ca4
    001d3ce8
    001d3ce8loc_1d3ce8:
    001d3ce8lea rcx, [rax-1]
    001d3ceccmp rcx, 2
    001d3cf0jb 0x1d3d0d
    001d3cf2push 3
    001d3cf4pop rax
    001d3cf5jmp 0x1d3d0d
    001d3cf7
    001d3cf7loc_1d3cf7:
    001d3cf7mov rdi, [r14]
    001d3cfapush 1
    001d3cfcpop rbx
    001d3cfdmov rsi, rbx
    001d3d00call _ZN3std4sync4mpmc7context7Context10try_select17h95e13b833b696055E.1712
    001d3d05cmp rax, 4
    001d3d09cmove rax, rbx
    001d3d0d
    001d3d0dloc_1d3d0d:
    001d3d0dadd rsp, 8
    001d3d11pop rbx
    001d3d12pop r12
    001d3d14pop r14
    001d3d16pop r15
    001d3d18ret
    001d3c91
    001d3d19
    001d3d19std::sync::mpmc::zero::Packet<T>::wait_ready:
    001d3d19push r14
    001d3d1bpush rbx
    001d3d1cpush rax
    001d3d1dmov rbx, rdi
    001d3d20lea r14, [rsp+4]
    001d3d25and [r14], 0
    001d3d29
    001d3d29loc_1d3d29:
    001d3d29mov al, [rbx+16]
    001d3d2ctest al, al
    001d3d2ejne 0x1d3d3a
    001d3d30mov rdi, r14
    001d3d33call std::sync::mpmc::utils::Backoff::spin_heavy
    001d3d38jmp 0x1d3d29
    001d3d3a
    001d3d3aloc_1d3d3a:
    001d3d3aadd rsp, 8
    001d3d3epop rbx
    001d3d3fpop r14
    001d3d41ret
    001d3d19
    001d3d4c
    001d3d4calloc::vec::Vec<T,A>::remove:
    001d3d4cpush r14
    001d3d4epush rbx
    001d3d4fpush rax
    001d3d50mov rbx, [rsi+16]
    001d3d54cmp rbx, rdx
    001d3d57jbe 0x1d3d9f
    001d3d59mov r14, rsi
    001d3d5cmov rcx, [rsi]
    001d3d5fimul rsi, rdx, 24
    001d3d63lea rax, [rcx+rsi]
    001d3d67add rsi, rcx
    001d3d6aadd rsi, 24
    001d3d6emov rcx, [rsi-8]
    001d3d72mov [rdi+16], rcx
    001d3d76movups x0, [rsi-24]
    001d3d7amovups [rdi], x0
    001d3d7dnot rdx
    001d3d80add rdx, rbx
    001d3d83imul rdx, rdx, 24
    001d3d87mov rdi, rax
    001d3d8acall [rip+0x3dd80]
    001d3d90dec rbx
    001d3d93mov [r14+16], rbx
    001d3d97add rsp, 8
    001d3d9bpop rbx
    001d3d9cpop r14
    001d3d9eret
    001d3d9f
    001d3d9floc_1d3d9f:
    001d3d9fmov rdi, rdx
    001d3da2mov rsi, rbx
    001d3da5mov rdx, rcx
    001d3da8call alloc::vec::Vec<T,A>::remove::assert_failed
    001d3dadud2
    001d3d4c
    001d3daf
    001d3dafalloc::raw_vec::RawVec<T,A>::reserve_for_push:
    001d3dafpush r15
    001d3db1push r14
    001d3db3push rbx
    001d3db4sub rsp, 48
    001d3db8inc rsi
    001d3dbbje 0x1d3e4e
    001d3dc1mov rbx, rdi
    001d3dc4mov rax, [rdi+8]
    001d3dc8lea rcx, [rax+rax]
    001d3dcccmp rcx, rsi
    001d3dcfcmova rsi, rcx
    001d3dd3cmp rsi, 5
    001d3dd7push 4
    001d3dd9pop r15
    001d3ddbcmovae r15, rsi
    001d3ddfmov rcx, 0x555555555555556
    001d3de9xor esi, esi
    001d3debcmp r15, rcx
    001d3deesetb sil
    001d3df2imul rdx, r15, 24
    001d3df6shl rsi, 3
    001d3dfatest rax, rax
    001d3dfdje 0x1d3e1a
    001d3dffimul rax, rax, 24
    001d3e03mov rcx, [rbx]
    001d3e06mov [rsp], rcx
    001d3e0amov [rsp+8], 8
    001d3e13mov [rsp+16], rax
    001d3e18jmp 0x1d3e20
    001d3e1a
    001d3e1aloc_1d3e1a:
    001d3e1aand [rsp+8], 0
    001d3e20
    001d3e20loc_1d3e20:
    001d3e20lea r14, [rsp+24]
    001d3e25mov rcx, rsp
    001d3e28mov rdi, r14
    001d3e2bcall alloc::raw_vec::finish_grow
    001d3e30cmp [r14], 0
    001d3e34mov rdi, [r14+8]
    001d3e38je 0x1d3e55
    001d3e3amov rax, 0x8000000000000001
    001d3e44cmp rdi, rax
    001d3e47je 0x1d3e5c
    001d3e49test rdi, rdi
    001d3e4cjne 0x1d3e66
    001d3e4e
    001d3e4eloc_1d3e4e:
    001d3e4ecall alloc::raw_vec::capacity_overflow
    001d3e53ud2
    001d3e55
    001d3e55loc_1d3e55:
    001d3e55mov [rbx], rdi
    001d3e58mov [rbx+8], r15
    001d3e5c
    001d3e5cloc_1d3e5c:
    001d3e5cadd rsp, 48
    001d3e60pop rbx
    001d3e61pop r14
    001d3e63pop r15
    001d3e65ret
    001d3e66
    001d3e66loc_1d3e66:
    001d3e66mov rsi, [rsp+40]
    001d3e6bcall alloc::alloc::handle_alloc_error
    001d3e70ud2
    001d3daf
    001d3e72
    001d3e72std::sys::common::thread_local::fast_local::Key<T>::get:
    001d3e72cmp [0xffffffffffffffe0], 0
    001d3e7cje 0x1d3e93
    001d3e82mov rax, [0x0]
    001d3e8blea rax, [rax-24]
    001d3e92ret
    001d3e72
    001d3e93
    001d3e93std::sys::common::thread_local::fast_local::Key<T>::try_initialize:
    001d3e93push rbx
    001d3e94sub rsp, 16
    001d3e98movzx eax, [0xfffffffffffffff0]
    001d3ea1cmp rax, 2
    001d3ea5jne 0x1d3eb2
    001d3ea7xor ebx, ebx
    001d3ea9
    001d3ea9loc_1d3ea9:
    001d3ea9mov rax, rbx
    001d3eacadd rsp, 16
    001d3eb0pop rbx
    001d3eb1ret
    001d3eb2
    001d3eb2loc_1d3eb2:
    001d3eb2test rax, rax
    001d3eb5jne 0x1d3edc
    001d3eb7mov rax, [0x0]
    001d3ec0lea rdi, [rax-32]
    001d3ec7lea rsi, [rip+79]
    001d3ececall std::sys::unix::thread_local_dtor::register_dtor
    001d3ed3mov [0xfffffffffffffff0], 1
    001d3edc
    001d3edcloc_1d3edc:
    001d3edccall std::sync::mpmc::context::Context::new
    001d3ee1movups x0, [0xffffffffffffffe0]
    001d3eeamov rcx, [0x0]
    001d3ef3lea rbx, [rcx-24]
    001d3efamov rdi, rsp
    001d3efdmovups [rdi], x0
    001d3f00mov [0xffffffffffffffe0], 1
    001d3f0dmov [0xffffffffffffffe8], rax
    001d3f16call core::ptr::drop_in_place<core::option::Option<core::cell::Cell<core::option::Option<std::sync::mpmc::context::Context>>>>
    001d3f1bjmp 0x1d3ea9
    001d3e93
    001d3f1d
    001d3f1dstd::sys::common::thread_local::fast_local::destroy_value:
    001d3f1dsub rsp, 24
    001d3f21movups x0, [rdi]
    001d3f24and [rdi], 0
    001d3f28mov [rdi+16], 2
    001d3f2clea rdi, [rsp+8]
    001d3f31movups [rdi], x0
    001d3f34call core::ptr::drop_in_place<core::option::Option<core::cell::Cell<core::option::Option<std::sync::mpmc::context::Context>>>>
    001d3f39xor edi, edi
    001d3f3bcall core::ptr::drop_in_place<core::result::Result<(),alloc::boxed::Box<dyn core::any::Any+core::marker::Send>>>
    001d3f40add rsp, 24
    001d3f44ret
    001d3f1d
    001d3f45
    001d3f45std::sys::common::thread_local::fast_local::Key<T>::get:
    001d3f45cmp [0xffffffffffffffd8], 0
    001d3f4eje 0x1d3f55
    001d3f54ret
    001d3f45
    001d3f55
    001d3f55std::sys::common::thread_local::fast_local::Key<T>::try_initialize:
    001d3f55mov [0xffffffffffffffd8], 1
    001d3f60ret
    001d3f55
    001d3f61
    001d3f61std::sync::mpmc::context::Context::with::_{{closure}}:
    001d3f61push r15
    001d3f63push r14
    001d3f65push r13
    001d3f67push r12
    001d3f69push rbx
    001d3f6asub rsp, 64
    001d3f6emov rbx, [rdi]
    001d3f71mov r13, [rdi+8]
    001d3f75mov r12, [rdi+16]
    001d3f79and [rdi], 0
    001d3f7dtest rbx, rbx
    001d3f80je 0x1d402d
    001d3f86mov r15, rsi
    001d3f89lea r14, [r13+256]
    001d3f90mov rdx, [rsi]
    001d3f93mov rdi, r14
    001d3f96mov rsi, rbx
    001d3f99call _ZN3std4sync4mpmc5waker9SyncWaker8register17h1f34cc8ab57d07e9E.1750
    001d3f9emov rax, [r13]
    001d3fa2mov rcx, [r13+128]
    001d3fa9xor rcx, rax
    001d3faccmp rcx, 2
    001d3fb0jae 0x1d3fbd
    001d3fb2mov rax, [r13+128]
    001d3fb9test al, 1
    001d3fbbje 0x1d3fc8
    001d3fbd
    001d3fbdloc_1d3fbd:
    001d3fbdmov rdi, [r15]
    001d3fc0push 1
    001d3fc2pop rsi
    001d3fc3call _ZN3std4sync4mpmc7context7Context10try_select17h95e13b833b696055E.1712
    001d3fc8
    001d3fc8loc_1d3fc8:
    001d3fc8mov rsi, [r12]
    001d3fccmov edx, [r12+8]
    001d3fd1mov rdi, r15
    001d3fd4call _ZN3std4sync4mpmc7context7Context10wait_until17h45eee1b0fd870057E.1737
    001d3fd9lea rcx, [rax-1]
    001d3fddcmp rcx, 2
    001d3fe1jae 0x1d4019
    001d3fe3lea r15, [rsp+8]
    001d3fe8mov rdi, r15
    001d3febmov rsi, r14
    001d3feemov rdx, rbx
    001d3ff1call _ZN3std4sync4mpmc5waker9SyncWaker10unregister17haf1166b01ef68b2cE.1751
    001d3ff6cmp [r15], 0
    001d3ffaje 0x1d403d
    001d3ffcmov rax, [rsp+24]
    001d4001lea rdi, [rsp+32]
    001d4006mov [rdi+16], rax
    001d400amovups x0, [rsp+8]
    001d400fmovaps [rdi], x0
    001d4012call core::ptr::drop_in_place<std::sync::mpmc::context::Context>
    001d4017jmp 0x1d401f
    001d4019
    001d4019loc_1d4019:
    001d4019cmp rax, 3
    001d401djne 0x1d4055
    001d401f
    001d401floc_1d401f:
    001d401fadd rsp, 64
    001d4023pop rbx
    001d4024pop r12
    001d4026pop r13
    001d4028pop r14
    001d402apop r15
    001d402cret
    001d402d
    001d402dloc_1d402d:
    001d402dlea rdi, [rip-0x143036]
    001d4034lea rdx, [rip+0x3d3e5]
    001d403bjmp 0x1d404b
    001d403d
    001d403dloc_1d403d:
    001d403dlea rdi, [rip-0x143046]
    001d4044lea rdx, [rip+0x3d20d]
    001d404b
    001d404bloc_1d404b:
    001d404bpush 43
    001d404d
    001d404dloc_1d404d:
    001d404dpop rsi
    001d404ecall core::panicking::panic
    001d4053ud2
    001d4055
    001d4055loc_1d4055:
    001d4055lea rdi, [rip-0x1430d7]
    001d405clea rdx, [rip+0x3d1dd]
    001d4063push 40
    001d4065jmp 0x1d404d
    001d3f61
    001d4067
    001d4067_ZN3std4sync4mpmc5waker9SyncWaker8register17h1f34cc8ab57d07e9E.1750:
    001d4067push rbp
    001d4068push r15
    001d406apush r14
    001d406cpush r12
    001d406epush rbx
    001d406fsub rsp, 32
    001d4073mov r15, rdx
    001d4076mov r12, rsi
    001d4079mov rbx, rdi
    001d407clea r14, [rsp+8]
    001d4081mov rdi, r14
    001d4084mov rsi, rbx
    001d4087call std::sync::mutex::Mutex<T>::lock
    001d408clea rsi, [rip+0x3d375]
    001d4093mov rdi, r14
    001d4096call core::result::Result<T,E>::unwrap
    001d409block inc [r15]
    001d409fjle 0x1d40f1
    001d40a1mov r14, rax
    001d40a4mov ebp, edx
    001d40a6mov rdi, rax
    001d40a9add rdi, 8
    001d40adlea rsi, [rsp+8]
    001d40b2mov [rsi+8], r12
    001d40b6and [rsi+16], 0
    001d40bbmov [rsi], r15
    001d40becall alloc::vec::Vec<T,A>::push
    001d40c3cmp [r14+24], 0
    001d40c8je 0x1d40ce
    001d40caxor eax, eax
    001d40ccjmp 0x1d40d6
    001d40ce
    001d40celoc_1d40ce:
    001d40cecmp [r14+48], 0
    001d40d3sete al
    001d40d6
    001d40d6loc_1d40d6:
    001d40d6xchg [rbx+56], al
    001d40d9movzx esi, bpl
    001d40ddmov rdi, r14
    001d40e0add rsp, 32
    001d40e4pop rbx
    001d40e5pop r12
    001d40e7pop r14
    001d40e9pop r15
    001d40ebpop rbp
    001d40ecjmp 0xcafd6
    001d40f1
    001d40f1loc_1d40f1:
    001d40f1ud2
    001d40f3
    001d40f3 0f 0b ..
    001d4067
    001d40f5
    001d40f5_ZN3std4sync4mpmc5waker9SyncWaker10unregister17haf1166b01ef68b2cE.1751:
    001d40f5push rbp
    001d40f6push r15
    001d40f8push r14
    001d40fapush r12
    001d40fcpush rbx
    001d40fdsub rsp, 32
    001d4101mov r12, rdx
    001d4104mov r14, rsi
    001d4107mov rbx, rdi
    001d410alea r15, [rsp+8]
    001d410fmov rdi, r15
    001d4112call std::sync::mutex::Mutex<T>::lock
    001d4117lea rsi, [rip+0x3d2ba]
    001d411emov rdi, r15
    001d4121call core::result::Result<T,E>::unwrap
    001d4126mov r15, rax
    001d4129mov ebp, edx
    001d412blea rsi, [rax+8]
    001d412flea rdi, [rsp+8]
    001d4134mov rdx, r12
    001d4137call std::sync::mpmc::waker::Waker::unregister
    001d413ccmp [r15+24], 0
    001d4141je 0x1d4147
    001d4143xor eax, eax
    001d4145jmp 0x1d414f
    001d4147
    001d4147loc_1d4147:
    001d4147cmp [r15+48], 0
    001d414csete al
    001d414f
    001d414floc_1d414f:
    001d414fxchg [r14+56], al
    001d4153mov rax, [rsp+24]
    001d4158mov [rbx+16], rax
    001d415cmovups x0, [rsp+8]
    001d4161movups [rbx], x0
    001d4164movzx esi, bpl
    001d4168mov rdi, r15
    001d416badd rsp, 32
    001d416fpop rbx
    001d4170pop r12
    001d4172pop r14
    001d4174pop r15
    001d4176pop rbp
    001d4177jmp 0xcafd6
    001d40f5
    001d417c
    001d417cstd::sync::mpmc::context::Context::with::_{{closure}}:
    001d417cpush r15
    001d417epush r14
    001d4180push r13
    001d4182push r12
    001d4184push rbx
    001d4185sub rsp, 64
    001d4189mov rbx, [rdi]
    001d418cmov r13, [rdi+8]
    001d4190mov r12, [rdi+16]
    001d4194and [rdi], 0
    001d4198test rbx, rbx
    001d419bje 0x1d4256
    001d41a1mov r15, rsi
    001d41a4lea r14, [r13+320]
    001d41abmov rdx, [rsi]
    001d41aemov rdi, r14
    001d41b1mov rsi, rbx
    001d41b4call _ZN3std4sync4mpmc5waker9SyncWaker8register17h1f34cc8ab57d07e9E.1750
    001d41b9mov rax, [r13]
    001d41bdmov rcx, [r13+128]
    001d41c4mov rdx, [r13+400]
    001d41cbnot rdx
    001d41ceand rdx, rcx
    001d41d1cmp rdx, rax
    001d41d4jne 0x1d41e6
    001d41d6mov rax, [r13+128]
    001d41ddtest [r13+400], rax
    001d41e4je 0x1d41f1
    001d41e6
    001d41e6loc_1d41e6:
    001d41e6mov rdi, [r15]
    001d41e9push 1
    001d41ebpop rsi
    001d41eccall _ZN3std4sync4mpmc7context7Context10try_select17h95e13b833b696055E.1712
    001d41f1
    001d41f1loc_1d41f1:
    001d41f1mov rsi, [r12]
    001d41f5mov edx, [r12+8]
    001d41famov rdi, r15
    001d41fdcall _ZN3std4sync4mpmc7context7Context10wait_until17h45eee1b0fd870057E.1737
    001d4202lea rcx, [rax-1]
    001d4206cmp rcx, 2
    001d420ajae 0x1d4242
    001d420clea r15, [rsp+8]
    001d4211mov rdi, r15
    001d4214mov rsi, r14
    001d4217mov rdx, rbx
    001d421acall _ZN3std4sync4mpmc5waker9SyncWaker10unregister17haf1166b01ef68b2cE.1751
    001d421fcmp [r15], 0
    001d4223je 0x1d4266
    001d4225mov rax, [rsp+24]
    001d422alea rdi, [rsp+32]
    001d422fmov [rdi+16], rax
    001d4233movups x0, [rsp+8]
    001d4238movaps [rdi], x0
    001d423bcall core::ptr::drop_in_place<std::sync::mpmc::context::Context>
    001d4240jmp 0x1d4248
    001d4242
    001d4242loc_1d4242:
    001d4242cmp rax, 3
    001d4246jne 0x1d427e
    001d4248
    001d4248loc_1d4248:
    001d4248add rsp, 64
    001d424cpop rbx
    001d424dpop r12
    001d424fpop r13
    001d4251pop r14
    001d4253pop r15
    001d4255ret
    001d4256
    001d4256loc_1d4256:
    001d4256lea rdi, [rip-0x14325f]
    001d425dlea rdx, [rip+0x3d1bc]
    001d4264jmp 0x1d4274
    001d4266
    001d4266loc_1d4266:
    001d4266lea rdi, [rip-0x14326f]
    001d426dlea rdx, [rip+0x3d104]
    001d4274
    001d4274loc_1d4274:
    001d4274push 43
    001d4276
    001d4276loc_1d4276:
    001d4276pop rsi
    001d4277call core::panicking::panic
    001d427cud2
    001d427e
    001d427eloc_1d427e:
    001d427elea rdi, [rip-0x143300]
    001d4285lea rdx, [rip+0x3d0d4]
    001d428cpush 40
    001d428ejmp 0x1d4276
    001d417c
    001d4290
    001d4290_<&T as core::fmt::Display>::fmt:
    001d4290mov rdi, [rdi]
    001d4293jmp 0x1017ad
    001d4290
    001d4298
    001d4298time::date::Date::to_calendar_date:
    001d4298push rbx
    001d4299mov ebx, edi
    001d429bcall time::date::Date::month_day
    001d42a0sar ebx, 9
    001d42a3movzx ecx, dl
    001d42a6shl rcx, 40
    001d42aamovzx eax, al
    001d42adshl rax, 32
    001d42b1or rax, rcx
    001d42b4or rbx, rax
    001d42b7mov rax, rbx
    001d42bapop rbx
    001d42bbret
    001d4298
    001d42bc
    001d42bc_<u32 as time::ext::DigitCount>::num_digits:
    001d42bctest edi, edi
    001d42beje 0x1d42fd
    001d42c0mov ecx, 0x186a0
    001d42c5mov eax, edi
    001d42c7xor edx, edx
    001d42c9div ecx
    001d42cbxor edx, edx
    001d42cdcmp edi, ecx
    001d42cfsetae dl
    001d42d2lea ecx, [rdx+4*rdx]
    001d42d5cmovb eax, edi
    001d42d8lea edx, [rax+0x5fff6]
    001d42delea esi, [rax+0x7ff9c]
    001d42e4and esi, edx
    001d42e6lea edx, [rax+0xdfc18]
    001d42ecadd eax, 0x7d8f0
    001d42f1and eax, edx
    001d42f3xor eax, esi
    001d42f5shr eax, 17
    001d42f8add eax, ecx
    001d42fainc al
    001d42fcret
    001d42fd
    001d42fdloc_1d42fd:
    001d42fdmov al, 1
    001d42ffret
    001d42bc
    001d4300
    001d4300time::date::Date::month_day:
    001d4300push rbx
    001d4301mov ebx, edi
    001d4303sar edi, 9
    001d4306call time_core::util::is_leap_year
    001d430bmovzx eax, al
    001d430eimul rsi, rax, 22
    001d4312lea rdi, [rip-0x142fb9]
    001d4319movzx ecx, [rsi+rdi+20]
    001d431emov edx, ebx
    001d4320and edx, 511
    001d4326mov al, 12
    001d4328cmp dx, cx
    001d432bja 0x1d43ac
    001d432dlea rax, [rdi+rsi]
    001d4331movzx ecx, [rax+18]
    001d4335mov al, 11
    001d4337cmp dx, cx
    001d433aja 0x1d43ac
    001d433cmovzx ecx, [rsi+rdi+16]
    001d4341mov al, 10
    001d4343cmp dx, cx
    001d4346ja 0x1d43ac
    001d4348movzx ecx, [rsi+rdi+14]
    001d434dmov al, 9
    001d434fcmp dx, cx
    001d4352ja 0x1d43ac
    001d4354movzx ecx, [rsi+rdi+12]
    001d4359mov al, 8
    001d435bcmp dx, cx
    001d435eja 0x1d43ac
    001d4360movzx ecx, [rsi+rdi+10]
    001d4365mov al, 7
    001d4367cmp dx, cx
    001d436aja 0x1d43ac
    001d436cmovzx ecx, [rsi+rdi+8]
    001d4371mov al, 6
    001d4373cmp dx, cx
    001d4376ja 0x1d43ac
    001d4378movzx ecx, [rsi+rdi+6]
    001d437dmov al, 5
    001d437fcmp dx, cx
    001d4382ja 0x1d43ac
    001d4384movzx ecx, [rsi+rdi+4]
    001d4389mov al, 4
    001d438bcmp dx, cx
    001d438eja 0x1d43ac
    001d4390movzx ecx, [rsi+rdi+2]
    001d4395mov al, 3
    001d4397cmp dx, cx
    001d439aja 0x1d43ac
    001d439cxor eax, eax
    001d439ecmp dx, 32
    001d43a2push 31
    001d43a4pop rcx
    001d43a5cmovb ecx, eax
    001d43a8mov al, 1
    001d43aasbb al, -1
    001d43ac
    001d43acloc_1d43ac:
    001d43acsub ebx, ecx
    001d43aemov edx, ebx
    001d43b0pop rbx
    001d43b1ret
    001d4300
    001d43b2
    001d43b2time::date::Date::from_julian_day:
    001d43b2push rbp
    001d43b3push r14
    001d43b5push rbx
    001d43b6mov rbx, rdi
    001d43b9lea eax, [rsi+0x1d76f7]
    001d43bfcmp eax, 0x6f7524
    001d43c4jae 0x1d4463
    001d43calea eax, [rsi-0x1a431f]
    001d43d0imul r8l, eax, 100
    001d43d4lea ecx, [r8-25]
    001d43d8mov edi, 0x37bb49
    001d43ddmov eax, ecx
    001d43dfcdq
    001d43e0idiv edi
    001d43e2mov edi, eax
    001d43e4mov r9l, 0xffffffffff2112dc
    001d43eamov eax, ecx
    001d43eccdq
    001d43edidiv r9l
    001d43f0mov ecx, eax
    001d43f2add ecx, edi
    001d43f4imul eax, ecx, 100
    001d43f7add eax, r8l
    001d43faadd eax, -25
    001d43fdmov edi, 36525
    001d4402cdq
    001d4403idiv edi
    001d4405mov ebp, edx
    001d4407sar ebp, 31
    001d440aadd ebp, eax
    001d440cimul edi, ebp, 36525
    001d4412push -100
    001d4414pop r8
    001d4416mov eax, edi
    001d4418cdq
    001d4419idiv r8l
    001d441cmov r8l, eax
    001d441fpush 100
    001d4421pop r9
    001d4423mov eax, edi
    001d4425cdq
    001d4426idiv r9l
    001d4429shr edx, 31
    001d442clea r14l, [rsi+rcx]
    001d4430add r14l, 0xffffffffffe5bce1
    001d4437add r14l, edx
    001d443aadd r14l, r8l
    001d443dmov edi, ebp
    001d443fcall time_core::util::is_leap_year
    001d4444test al, al
    001d4446je 0x1d4492
    001d4448lea ecx, [r14+60]
    001d444ccmp cx, 366
    001d4451ja 0x1d449d
    001d4453xor eax, eax
    001d4455test cx, cx
    001d4458sete al
    001d445bmov r14l, 366
    001d4461jmp 0x1d44b7
    001d4463
    001d4463loc_1d4463:
    001d4463movsxd rax, esi
    001d4466lea rcx, [rip-0x143117]
    001d446dmov [rbx], rcx
    001d4470mov [rbx+8], 10
    001d4478mov [rbx+16], 0xffffffffffe28909
    001d4480mov [rbx+24], 0x51fe2c
    001d4488mov [rbx+32], rax
    001d448cmov [rbx+40], 0
    001d4490jmp 0x1d44ce
    001d4492
    001d4492loc_1d4492:
    001d4492lea ecx, [r14+59]
    001d4496cmp cx, 365
    001d449bjbe 0x1d44a9
    001d449d
    001d449dloc_1d449d:
    001d449dadd r14l, -306
    001d44a4push 1
    001d44a6pop rax
    001d44a7jmp 0x1d44bd
    001d44a9
    001d44a9loc_1d44a9:
    001d44a9xor eax, eax
    001d44abtest cx, cx
    001d44aesete al
    001d44b1mov r14l, 365
    001d44b7
    001d44b7loc_1d44b7:
    001d44b7cmovne r14l, ecx
    001d44bbneg eax
    001d44bd
    001d44bdloc_1d44bd:
    001d44bdadd ebp, eax
    001d44bfshl ebp, 9
    001d44c2movzx eax, r14w
    001d44c6or eax, ebp
    001d44c8mov [rbx], eax
    001d44camov [rbx+40], 2
    001d44ce
    001d44celoc_1d44ce:
    001d44cepop rbx
    001d44cfpop r14
    001d44d1pop rbp
    001d44d2ret
    001d43b2
    001d44d3
    001d44d3time::date::Date::iso_year_week:
    001d44d3push rbp
    001d44d4push rbx
    001d44d5push rax
    001d44d6mov ebx, edi
    001d44d8sar ebx, 9
    001d44dbmov ebp, edi
    001d44ddand ebp, 511
    001d44e3call time::date::Date::weekday
    001d44e8inc al
    001d44eamovzx eax, al
    001d44edsub ebp, eax
    001d44efadd ebp, 10
    001d44f2mov cx, 7
    001d44f6mov eax, ebp
    001d44f8xor edx, edx
    001d44fadiv cx
    001d44fdmov edx, eax
    001d44ffcmp dl, 53
    001d4502je 0x1d4518
    001d4504movzx eax, dl
    001d4507test eax, eax
    001d4509jne 0x1d4531
    001d450bdec ebx
    001d450dmov edi, ebx
    001d450fcall time_core::util::weeks_in_year
    001d4514mov edx, eax
    001d4516jmp 0x1d4531
    001d4518
    001d4518loc_1d4518:
    001d4518mov edi, ebx
    001d451acall time_core::util::weeks_in_year
    001d451fxor ecx, ecx
    001d4521cmp al, 52
    001d4523sete cl
    001d4526push 1
    001d4528pop rax
    001d4529push 53
    001d452bpop rdx
    001d452ccmove edx, eax
    001d452fadd ebx, ecx
    001d4531
    001d4531loc_1d4531:
    001d4531mov eax, ebx
    001d4533add rsp, 8
    001d4537pop rbx
    001d4538pop rbp
    001d4539ret
    001d44d3
    001d453a
    001d453atime::date::Date::weekday:
    001d453apush rax
    001d453bcall time::date::Date::to_julian_day
    001d4540push 7
    001d4542pop rcx
    001d4543cdq
    001d4544idiv ecx
    001d4546movsxd rax, edx
    001d4549lea rcx, [rip-0x14142c]
    001d4550mov al, [rax+rcx+6]
    001d4554pop rcx
    001d4555ret
    001d453a
    001d4556
    001d4556time::date::Date::to_julian_day:
    001d4556mov ecx, edi
    001d4558sar ecx, 9
    001d455bdec ecx
    001d455dpush -100
    001d455fpop rsi
    001d4560mov eax, ecx
    001d4562cdq
    001d4563idiv esi
    001d4565mov esi, eax
    001d4567push 100
    001d4569pop r8
    001d456bmov eax, ecx
    001d456dcdq
    001d456eidiv r8l
    001d4571mov r8l, edx
    001d4574mov r9l, 400
    001d457amov eax, ecx
    001d457ccdq
    001d457didiv r9l
    001d4580and edi, 511
    001d4586imul r9l, ecx, 365
    001d458dsar ecx, 2
    001d4590shr r8l, 31
    001d4594sar edx, 31
    001d4597add edx, ecx
    001d4599add eax, edi
    001d459badd r9l, esi
    001d459eadd r9l, eax
    001d45a1add r9l, edx
    001d45a4lea eax, [r8+r9]
    001d45a8add eax, 0x1a4451
    001d45adret
    001d4556
    001d45ae
    001d45aetime::date::Date::sunday_based_week:
    001d45aepush rbx
    001d45afmov ebx, edi
    001d45b1and ebx, 511
    001d45b7call time::date::Date::weekday
    001d45bcmovzx edi, al
    001d45bfcall time::weekday::Weekday::number_days_from_sunday
    001d45c4movzx eax, al
    001d45c7sub ebx, eax
    001d45c9add ebx, 6
    001d45ccmov cx, 7
    001d45d0mov eax, ebx
    001d45d2xor edx, edx
    001d45d4div cx
    001d45d7pop rbx
    001d45d8ret
    001d45ae
    001d45d9
    001d45d9time::weekday::Weekday::number_days_from_sunday:
    001d45d9lea ecx, [8*rdi]
    001d45e0mov rax, 0x60504030201
    001d45eashr rax, cl
    001d45edret
    001d45d9
    001d45ee
    001d45eetime::date::Date::monday_based_week:
    001d45eepush rbx
    001d45efmov ebx, edi
    001d45f1and ebx, 511
    001d45f7call time::date::Date::weekday
    001d45fcmovzx eax, al
    001d45ffsub ebx, eax
    001d4601add ebx, 6
    001d4604mov cx, 7
    001d4608mov eax, ebx
    001d460axor edx, edx
    001d460cdiv cx
    001d460fpop rbx
    001d4610ret
    001d45ee
    001d4611
    001d4611time::expect_failed:
    001d4611sub rsp, 24
    001d4615lea rax, [rip-0x143206]
    001d461clea rdi, [rsp+8]
    001d4621mov [rdi], rax
    001d4624mov [rdi+8], 33
    001d462ccall core::panicking::panic_display
    001d4631ud2
    001d4611
    001d4633
    001d4633core::panicking::panic_display:
    001d4633sub rsp, 72
    001d4637lea rax, [rsp+8]
    001d463cmov [rax], rdi
    001d463flea rcx, [rip+0x3cf4a]
    001d4646lea rdi, [rsp+24]
    001d464bmov [rdi], rcx
    001d464epush 1
    001d4650pop rcx
    001d4651mov [rdi+8], rcx
    001d4655and [rdi+32], 0
    001d465alea rdx, [rip-0xd2eb4]
    001d4661mov [rax+8], rdx
    001d4665mov [rdi+16], rax
    001d4669mov [rdi+24], rcx
    001d466dlea rsi, [rip+0x3cf5c]
    001d4674call core::panicking::panic_fmt
    001d4679ud2
    001d4633
    001d467b
    001d467bcore::option::Option<T>::expect:
    001d467btest edi, edi
    001d467dje 0x1d4682
    001d467fmov eax, edi
    001d4681ret
    001d4682
    001d4682loc_1d4682:
    001d4682push rax
    001d4683mov rdi, rsi
    001d4686mov rsi, rdx
    001d4689mov rdx, rcx
    001d468ccall core::option::expect_failed
    001d4691ud2
    001d467b
    001d4693
    001d4693time::date_time::DateTime<O>::to_offset_raw:
    001d4693push rbp
    001d4694push r15
    001d4696push r14
    001d4698push r13
    001d469apush r12
    001d469cpush rbx
    001d469dpush rax
    001d469emovzx ebx, [rsi+12]
    001d46a2movzx ecx, [rsi+14]
    001d46a6shl ecx, 16
    001d46a9or ecx, ebx
    001d46abmov eax, ebx
    001d46adshr eax, 8
    001d46b0mov r9l, edx
    001d46b3shr r9l, 8
    001d46b7cmp bl, dl
    001d46b9jne 0x1d46ef
    001d46bbcmp al, r9b
    001d46bejne 0x1d46ef
    001d46c0mov r8l, ecx
    001d46c3shr r8l, 16
    001d46c7mov r10l, edx
    001d46cashr r10l, 16
    001d46cemov r9l, eax
    001d46d1cmp r8b, r10b
    001d46d4jne 0x1d46ef
    001d46d6mov r12l, [rsi]
    001d46d9mov ebp, r12l
    001d46dcsar ebp, 9
    001d46dfand r12l, 511
    001d46e6mov rax, [rsi+4]
    001d46eajmp 0x1d4862
    001d46ef
    001d46efloc_1d46ef:
    001d46efmov [rsp], rdi
    001d46f3mov r14, [rsi+4]
    001d46f7mov r10, r14
    001d46fashr r10, 32
    001d46femov r11l, 255
    001d4704and r10l, r11l
    001d4707shr ecx, 16
    001d470amovsx ecx, cl
    001d470dsub r10l, ecx
    001d4710mov ecx, edx
    001d4712shr ecx, 16
    001d4715movsx r8l, cl
    001d4719add r8l, r10l
    001d471cmov r10, r14
    001d471fshr r10, 40
    001d4723and r10l, r11l
    001d4726movsx eax, al
    001d4729sub r10l, eax
    001d472cmovsx ecx, r9b
    001d4730add ecx, r10l
    001d4733mov rax, r14
    001d4736shr rax, 48
    001d473asub al, bl
    001d473cmov ebp, [rsi]
    001d473ecmp r8w, 59
    001d4743jle 0x1d475c
    001d4745lea r15l, [r8-60]
    001d4749movsx ecx, cx
    001d474ccmp r15w, 59
    001d4751jbe 0x1d477b
    001d4753add r8l, -120
    001d4757add ecx, 2
    001d475ajmp 0x1d4776
    001d475c
    001d475cloc_1d475c:
    001d475ctest r8w, r8w
    001d4760jns 0x1d4776
    001d4762movsx ecx, cx
    001d4765mov r15l, r8l
    001d4768sub r15w, -60
    001d476djae 0x1d477f
    001d476fadd r8l, 120
    001d4773add ecx, -2
    001d4776
    001d4776loc_1d4776:
    001d4776mov r15l, r8l
    001d4779jmp 0x1d4781
    001d477b
    001d477bloc_1d477b:
    001d477binc ecx
    001d477djmp 0x1d4781
    001d477f
    001d477floc_1d477f:
    001d477fdec ecx
    001d4781
    001d4781loc_1d4781:
    001d4781mov r12l, ebp
    001d4784and r12l, 511
    001d478badd al, dl
    001d478dcmp cx, 59
    001d4791jle 0x1d47ab
    001d4793movsx ecx, cx
    001d4796lea r13l, [rcx-60]
    001d479acmp r13w, 59
    001d479fjbe 0x1d47b5
    001d47a1add ecx, -120
    001d47a4add al, 2
    001d47a6mov r13l, ecx
    001d47a9jmp 0x1d47d1
    001d47ab
    001d47abloc_1d47ab:
    001d47abtest cx, cx
    001d47aejs 0x1d47b9
    001d47b0mov r13l, ecx
    001d47b3jmp 0x1d47d1
    001d47b5
    001d47b5loc_1d47b5:
    001d47b5inc al
    001d47b7jmp 0x1d47d1
    001d47b9
    001d47b9loc_1d47b9:
    001d47b9mov r13l, ecx
    001d47bcsub r13w, -60
    001d47c1jae 0x1d47cf
    001d47c3movsx r13l, cx
    001d47c7add r13l, 120
    001d47cbadd al, -2
    001d47cdjmp 0x1d47d1
    001d47cf
    001d47cfloc_1d47cf:
    001d47cfdec al
    001d47d1
    001d47d1loc_1d47d1:
    001d47d1sar ebp, 9
    001d47d4cmp al, 23
    001d47d6jle 0x1d47ec
    001d47d8lea ebx, [rax-24]
    001d47dbmovzx r12l, r12w
    001d47dfcmp bl, 23
    001d47e2jbe 0x1d4805
    001d47e4add al, -48
    001d47e6add r12l, 2
    001d47eajmp 0x1d4801
    001d47ec
    001d47ecloc_1d47ec:
    001d47ectest al, al
    001d47eejns 0x1d4801
    001d47f0movzx r12l, r12w
    001d47f4mov ebx, eax
    001d47f6sub bl, -24
    001d47f9jae 0x1d480a
    001d47fbadd al, 48
    001d47fdadd r12l, -2
    001d4801
    001d4801loc_1d4801:
    001d4801mov ebx, eax
    001d4803jmp 0x1d480d
    001d4805
    001d4805loc_1d4805:
    001d4805inc r12l
    001d4808jmp 0x1d480d
    001d480a
    001d480aloc_1d480a:
    001d480adec r12l
    001d480d
    001d480dloc_1d480d:
    001d480dmov edi, ebp
    001d480fcall time_core::util::days_in_year
    001d4814cmp r12w, ax
    001d4818jle 0x1d4825
    001d481amovsx r12l, r12w
    001d481esub r12l, eax
    001d4821inc ebp
    001d4823jmp 0x1d483b
    001d4825
    001d4825loc_1d4825:
    001d4825test r12w, r12w
    001d4829jg 0x1d483b
    001d482bdec ebp
    001d482dmov edi, ebp
    001d482fcall time_core::util::days_in_year
    001d4834movsx r12l, r12w
    001d4838add r12l, eax
    001d483b
    001d483bloc_1d483b:
    001d483bmov rdi, [rsp]
    001d483fmovzx eax, bl
    001d4842shl rax, 48
    001d4846movzx ecx, r13b
    001d484ashl rcx, 40
    001d484eor rcx, rax
    001d4851movzx edx, r15w
    001d4855shl rdx, 32
    001d4859or rdx, rcx
    001d485cmov eax, r14l
    001d485for rax, rdx
    001d4862
    001d4862loc_1d4862:
    001d4862mov [rdi], ebp
    001d4864mov [rdi+4], r12w
    001d4869mov [rdi+8], rax
    001d486dadd rsp, 8
    001d4871pop rbx
    001d4872pop r12
    001d4874pop r13
    001d4876pop r14
    001d4878pop r15
    001d487apop rbp
    001d487bret
    001d4693
    001d487c
    001d487ctime::date_time::DateTime<O>::unix_timestamp:
    001d487cpush r14
    001d487epush rbx
    001d487fpush rax
    001d4880mov rbx, rdi
    001d4883movzx eax, [rdi+12]
    001d4887movsx rcx, al
    001d488bshr eax, 8
    001d488emovsx rdx, [rdi+14]
    001d4893imul rcx, rcx, -3600
    001d489asub rcx, rdx
    001d489dmovsx rax, al
    001d48a1imul r14, rax, -60
    001d48a5add r14, rcx
    001d48a8mov edi, [rdi]
    001d48aacall time::date::Date::to_julian_day
    001d48afadd eax, 0xffffffffffdac274
    001d48b4cdqe
    001d48b6imul rcx, rax, 0x15180
    001d48bdadd rcx, r14
    001d48c0mov rax, [rbx+4]
    001d48c4mov rdx, rax
    001d48c7shr rdx, 48
    001d48cbmov esi, 255
    001d48d0and rdx, rsi
    001d48d3imul rdx, rdx, 3600
    001d48damov rdi, rax
    001d48ddshr rdi, 40
    001d48e1and rdi, rsi
    001d48e4imul rdi, rdi, 60
    001d48e8add rdi, rdx
    001d48ebshr rax, 32
    001d48efand rax, rsi
    001d48f2add rax, rdi
    001d48f5add rax, rcx
    001d48f8add rsp, 8
    001d48fcpop rbx
    001d48fdpop r14
    001d48ffret
    001d487c
    001d4900
    001d4900_<time::date_time::DateTime<O> as core::cmp::PartialOrd>::partial_cmp:
    001d4900push r15
    001d4902push r14
    001d4904push rbx
    001d4905sub rsp, 32
    001d4909mov rbx, rsi
    001d490cmov rsi, rdi
    001d490fmov r14, rsp
    001d4912mov rdi, r14
    001d4915xor edx, edx
    001d4917call time::date_time::DateTime<O>::to_offset_raw
    001d491clea r15, [rsp+16]
    001d4921mov rdi, r15
    001d4924mov rsi, rbx
    001d4927xor edx, edx
    001d4929call time::date_time::DateTime<O>::to_offset_raw
    001d492emov ecx, [r14]
    001d4931xor eax, eax
    001d4933cmp ecx, [r15]
    001d4936setne al
    001d4939mov ecx, 255
    001d493ecmovl eax, ecx
    001d4941test al, al
    001d4943jne 0x1d4982
    001d4945movzx edx, [rsp+4]
    001d494axor eax, eax
    001d494ccmp dx, [rsp+20]
    001d4951setne al
    001d4954cmovb eax, ecx
    001d4957test al, al
    001d4959jne 0x1d4982
    001d495bmov rax, 0xffffff3fffffff
    001d4965mov rcx, [rsp+8]
    001d496aand rcx, rax
    001d496dand rax, [rsp+24]
    001d4972xor edx, edx
    001d4974cmp rcx, rax
    001d4977setne dl
    001d497amov eax, 255
    001d497fcmovae eax, edx
    001d4982
    001d4982loc_1d4982:
    001d4982add rsp, 32
    001d4986pop rbx
    001d4987pop r14
    001d4989pop r15
    001d498bret
    001d4900
    001d498c
    001d498c_<time::error::format::Format as core::fmt::Display>::fmt:
    001d498cmov rax, [rdi]
    001d498ftest rax, rax
    001d4992je 0x1d49f4
    001d4994cmp eax, 1
    001d4997jne 0x1d4a0c
    001d4999sub rsp, 72
    001d499dadd rdi, 8
    001d49a1mov rax, rsp
    001d49a4mov [rax], rdi
    001d49a7lea rcx, [rsp+8]
    001d49acmov [rcx], rax
    001d49aflea rax, [rip-1830]
    001d49b6mov [rcx+8], rax
    001d49balea rax, [rip+0x3cc3f]
    001d49c1lea rdx, [rsp+24]
    001d49c6mov [rdx], rax
    001d49c9mov [rdx+8], 2
    001d49d1and [rdx+32], 0
    001d49d6mov [rdx+16], rcx
    001d49damov [rdx+24], 1
    001d49e2mov rdi, [rsi+32]
    001d49e6mov rsi, [rsi+40]
    001d49eacall core::fmt::Formatter::write_fmt
    001d49efadd rsp, 72
    001d49f3ret
    001d49f4
    001d49f4loc_1d49f4:
    001d49f4mov rdi, [rsi+32]
    001d49f8mov rax, [rsi+40]
    001d49fcmov rax, [rax+24]
    001d4a00lea rsi, [rip-0x1435b1]
    001d4a07push 87
    001d4a09pop rdx
    001d4a0ajmp rax
    001d4a0c
    001d4a0cloc_1d4a0c:
    001d4a0cadd rdi, 8
    001d4a10jmp 0x1a3230
    001d498c
    001d4a15
    001d4a15time::offset_date_time::OffsetDateTime::now_utc:
    001d4a15push rbp
    001d4a16push r15
    001d4a18push r14
    001d4a1apush r13
    001d4a1cpush r12
    001d4a1epush rbx
    001d4a1fsub rsp, 88
    001d4a23mov rbx, rdi
    001d4a26mov r13, 0xa8bfffffffff
    001d4a30call std::time::SystemTime::now
    001d4a35lea rsi, [rsp+48]
    001d4a3amov [rsi], rax
    001d4a3dmov [rsi+8], edx
    001d4a40lea r12, [rsp+64]
    001d4a45mov rdi, r12
    001d4a48call std::time::SystemTime::duration_since
    001d4a4dmov rcx, [r12+8]
    001d4a52push 60
    001d4a54pop rsi
    001d4a55mov rax, rcx
    001d4a58xor edx, edx
    001d4a5adiv rsi
    001d4a5dmov r14, rdx
    001d4a60xor r15l, r15l
    001d4a63xor edx, edx
    001d4a65div rsi
    001d4a68mov rsi, rdx
    001d4a6bcmp [r12], 0
    001d4a70mov ebp, [r12+16]
    001d4a75je 0x1d4ab0
    001d4a77mov r8, r13
    001d4a7axor r13l, r13l
    001d4a7dmov edi, 3600
    001d4a82mov rax, rcx
    001d4a85xor edx, edx
    001d4a87div rdi
    001d4a8apush 24
    001d4a8cpop rdi
    001d4a8dxor edx, edx
    001d4a8fdiv rdi
    001d4a92mov r12, rdx
    001d4a95test rbp, rbp
    001d4a98je 0x1d4b30
    001d4a9exor r14, 255
    001d4aa5mov r13l, 0x3b9aca00
    001d4aabjmp 0x1d4b3c
    001d4ab0
    001d4ab0loc_1d4ab0:
    001d4ab0mov edi, 3600
    001d4ab5mov rax, rcx
    001d4ab8xor edx, edx
    001d4abadiv rdi
    001d4abdpush 24
    001d4abfpop rdi
    001d4ac0xor edx, edx
    001d4ac2div rdi
    001d4ac5shl rdx, 48
    001d4ac9shl rsi, 40
    001d4acdor rsi, rdx
    001d4ad0shl r14, 32
    001d4ad4or r14, rsi
    001d4ad7cmp rcx, r13
    001d4adaja 0x1d4b0f
    001d4adcxor r15l, r15l
    001d4adfmov esi, 0x15180
    001d4ae4mov rax, rcx
    001d4ae7xor edx, edx
    001d4ae9div rsi
    001d4aecadd eax, 0x253d8c
    001d4af1jo 0x1d4b0f
    001d4af3mov r12, rsp
    001d4af6mov rdi, r12
    001d4af9mov esi, eax
    001d4afbcall time::date::Date::from_julian_day
    001d4b00xor r15l, r15l
    001d4b03cmp [r12+40], 2
    001d4b09jne 0x1d4b0f
    001d4b0bmov r15l, [rsp]
    001d4b0f
    001d4b0floc_1d4b0f:
    001d4b0for r14, rbp
    001d4b12lea rsi, [rip-0x196a99]
    001d4b19lea rcx, [rip+0x3ca80]
    001d4b20push 32
    001d4b22pop rdx
    001d4b23mov edi, r15l
    001d4b26call core::option::Option<T>::expect
    001d4b2bjmp 0x1d4c54
    001d4b30
    001d4b30loc_1d4b30:
    001d4b30test r14, r14
    001d4b33je 0x1d4c73
    001d4b39neg r14
    001d4b3c
    001d4b3cloc_1d4b3c:
    001d4b3cxor rsi, 255
    001d4b43shl r14, 32
    001d4b47mov rdx, 0x3c00000000
    001d4b51add rdx, r14
    001d4b54mov rax, 0xff00000000
    001d4b5eand rax, rdx
    001d4b61
    001d4b61loc_1d4b61:
    001d4b61not r12b
    001d4b64shl rsi, 40
    001d4b68mov rdi, 0x3c0000000000
    001d4b72add rdi, rsi
    001d4b75mov rdx, 0xff0000000000
    001d4b7fand rdx, rdi
    001d4b82
    001d4b82loc_1d4b82:
    001d4b82sub r13l, ebp
    001d4b85lea esi, [r12+24]
    001d4b8atest r12b, r12b
    001d4b8dmovzx edi, r12b
    001d4b91movzx esi, sil
    001d4b95cmovns esi, edi
    001d4b98movzx r14l, sil
    001d4b9cshl r14, 48
    001d4ba0or r14, rdx
    001d4ba3or r13, rax
    001d4ba6xor r15l, r15l
    001d4ba9cmp rcx, r8
    001d4bacja 0x1d4bdf
    001d4baexor r15l, r15l
    001d4bb1mov esi, 0x15180
    001d4bb6mov rax, rcx
    001d4bb9xor edx, edx
    001d4bbbdiv rsi
    001d4bbemov esi, 0x253d8c
    001d4bc3sub esi, eax
    001d4bc5jo 0x1d4bdf
    001d4bc7mov rbp, rsp
    001d4bcamov rdi, rbp
    001d4bcdcall time::date::Date::from_julian_day
    001d4bd2xor r15l, r15l
    001d4bd5cmp [rbp+40], 2
    001d4bd9jne 0x1d4bdf
    001d4bdbmov r15l, [rsp]
    001d4bdf
    001d4bdfloc_1d4bdf:
    001d4bdfor r14, r13
    001d4be2lea rsi, [rip-0x14385d]
    001d4be9lea rcx, [rip+0x3c9c8]
    001d4bf0push 39
    001d4bf2pop rdx
    001d4bf3mov edi, r15l
    001d4bf6call core::option::Option<T>::expect
    001d4bfbtest r12b, r12b
    001d4bfejns 0x1d4c54
    001d4c00mov eax, r15l
    001d4c03and eax, 511
    001d4c08cmp eax, 1
    001d4c0bjne 0x1d4c33
    001d4c0dxor ebp, ebp
    001d4c0fcmp r15l, 0xffffffffffb1e201
    001d4c16je 0x1d4c39
    001d4c18sar r15l, 9
    001d4c1cdec r15l
    001d4c1fmov edi, r15l
    001d4c22call time_core::util::days_in_year
    001d4c27shl r15l, 9
    001d4c2bmovzx ebp, ax
    001d4c2eor ebp, r15l
    001d4c31jmp 0x1d4c39
    001d4c33
    001d4c33loc_1d4c33:
    001d4c33dec r15l
    001d4c36mov ebp, r15l
    001d4c39
    001d4c39loc_1d4c39:
    001d4c39lea rsi, [rip-0x143809]
    001d4c40lea rcx, [rip+0x3c9a1]
    001d4c47push 31
    001d4c49pop rdx
    001d4c4amov edi, ebp
    001d4c4ccall core::option::Option<T>::expect
    001d4c51mov r15l, ebp
    001d4c54
    001d4c54loc_1d4c54:
    001d4c54and [rbx+12], 0
    001d4c59mov [rbx+14], 0
    001d4c5dmov [rbx], r15l
    001d4c60mov [rbx+4], r14
    001d4c64add rsp, 88
    001d4c68pop rbx
    001d4c69pop r12
    001d4c6bpop r13
    001d4c6dpop r14
    001d4c6fpop r15
    001d4c71pop rbp
    001d4c72ret
    001d4c73
    001d4c73loc_1d4c73:
    001d4c73xor eax, eax
    001d4c75test rsi, rsi
    001d4c78je 0x1d4c85
    001d4c7aneg rsi
    001d4c7dxor r13l, r13l
    001d4c80jmp 0x1d4b61
    001d4c85
    001d4c85loc_1d4c85:
    001d4c85neg r12b
    001d4c88xor r13l, r13l
    001d4c8bxor edx, edx
    001d4c8djmp 0x1d4b82
    001d4a15
    001d4c92
    001d4c92time::offset_date_time::OffsetDateTime::to_offset:
    001d4c92push r15
    001d4c94push r14
    001d4c96push rbx
    001d4c97sub rsp, 16
    001d4c9bmov ebx, edx
    001d4c9dmov r14, rdi
    001d4ca0movzx eax, [rsi+12]
    001d4ca4cmp al, bl
    001d4ca6jne 0x1d4cd3
    001d4ca8movzx ecx, [rsi+14]
    001d4cacshl ecx, 16
    001d4cafor eax, ecx
    001d4cb1mov ecx, eax
    001d4cb3shr ecx, 8
    001d4cb6mov edx, ebx
    001d4cb8shr edx, 8
    001d4cbbcmp cl, dl
    001d4cbdjne 0x1d4cd3
    001d4cbfshr eax, 16
    001d4cc2mov ecx, ebx
    001d4cc4shr ecx, 16
    001d4cc7cmp al, cl
    001d4cc9jne 0x1d4cd3
    001d4ccbmov eax, [rsi]
    001d4ccdmov rcx, [rsi+4]
    001d4cd1jmp 0x1d4d00
    001d4cd3
    001d4cd3loc_1d4cd3:
    001d4cd3mov r15, rsp
    001d4cd6mov rdi, r15
    001d4cd9mov edx, ebx
    001d4cdbcall time::date_time::DateTime<O>::to_offset_raw
    001d4ce0mov eax, [r15]
    001d4ce3lea ecx, [rax-10000]
    001d4ce9cmp ecx, -19999
    001d4cefjb 0x1d4d35
    001d4cf1movzx edx, [rsp+4]
    001d4cf6mov rcx, [rsp+8]
    001d4cfbshl eax, 9
    001d4cfeor eax, edx
    001d4d00
    001d4d00loc_1d4d00:
    001d4d00mov rdx, rcx
    001d4d03shr rdx, 56
    001d4d07test dl, dl
    001d4d09jne 0x1d4d35
    001d4d0bmov [r14], eax
    001d4d0emov rax, 0xffffffffffffff
    001d4d18and rcx, rax
    001d4d1bmov [r14+4], rcx
    001d4d1fmov [r14+12], bx
    001d4d24shr ebx, 16
    001d4d27mov [r14+14], bl
    001d4d2badd rsp, 16
    001d4d2fpop rbx
    001d4d30pop r14
    001d4d32pop r15
    001d4d34ret
    001d4d35
    001d4d35loc_1d4d35:
    001d4d35call time::expect_failed
    001d4d3aud2
    001d4c92
    001d4d3c
    001d4d3ctime::offset_date_time::OffsetDateTime::unix_timestamp_nanos:
    001d4d3cpush rbx
    001d4d3dmov rbx, rdi
    001d4d40call time::date_time::DateTime<O>::unix_timestamp
    001d4d45mov ecx, 0x3b9aca00
    001d4d4aimul rcx
    001d4d4dmov ecx, [rbx+4]
    001d4d50add rax, rcx
    001d4d53adc rdx, 0
    001d4d57pop rbx
    001d4d58ret
    001d4d3c
    001d4d59
    001d4d59_<u8 as time::ext::DigitCount>::num_digits:
    001d4d59test dil, dil
    001d4d5cje 0x1d4d75
    001d4d5emovzx eax, dil
    001d4d62lea ecx, [rax+758]
    001d4d68add eax, 412
    001d4d6dand eax, ecx
    001d4d6fshr eax, 8
    001d4d72inc al
    001d4d74ret
    001d4d75
    001d4d75loc_1d4d75:
    001d4d75mov al, 1
    001d4d77ret
    001d4d59
    001d4d78
    001d4d78_<u16 as time::ext::DigitCount>::num_digits:
    001d4d78test di, di
    001d4d7bje 0x1d4da3
    001d4d7dmovzx eax, di
    001d4d80lea ecx, [rax+0x5fff6]
    001d4d86lea edx, [rax+0x7ff9c]
    001d4d8cand edx, ecx
    001d4d8elea ecx, [rax+0xdfc18]
    001d4d94add eax, 0x7d8f0
    001d4d99and eax, ecx
    001d4d9bxor eax, edx
    001d4d9dshr eax, 17
    001d4da0inc al
    001d4da2ret
    001d4da3
    001d4da3loc_1d4da3:
    001d4da3mov al, 1
    001d4da5ret
    001d4d78
    001d4da6
    001d4da6time_core::util::is_leap_year:
    001d4da6test dil, 3
    001d4daaje 0x1d4daf
    001d4dacxor eax, eax
    001d4dae
    001d4daeloc_1d4dae:
    001d4daeret
    001d4daf
    001d4dafloc_1d4daf:
    001d4dafpush 25
    001d4db1pop rcx
    001d4db2mov eax, edi
    001d4db4cdq
    001d4db5idiv ecx
    001d4db7mov al, 1
    001d4db9test edx, edx
    001d4dbbjne 0x1d4dae
    001d4dbdtest dil, 15
    001d4dc1sete al
    001d4dc4ret
    001d4da6
    001d4dc5
    001d4dc5time_core::util::days_in_year:
    001d4dc5push rax
    001d4dc6call time_core::util::is_leap_year
    001d4dcbmovzx eax, al
    001d4dceadd eax, 365
    001d4dd3pop rcx
    001d4dd4ret
    001d4dc5
    001d4dd5
    001d4dd5time_core::util::weeks_in_year:
    001d4dd5mov eax, edi
    001d4dd7mov ecx, 400
    001d4ddccdq
    001d4dddidiv ecx
    001d4ddfadd ecx, edx
    001d4de1test edx, edx
    001d4de3cmovns ecx, edx
    001d4de6lea eax, [rcx-4]
    001d4de9cmp eax, 61
    001d4decjbe 0x1d4e46
    001d4dee
    001d4deeloc_1d4dee:
    001d4deelea eax, [rcx-71]
    001d4df1cmp eax, 62
    001d4df4jbe 0x1d4e58
    001d4df6
    001d4df6loc_1d4df6:
    001d4df6lea eax, [rcx-139]
    001d4dfccmp eax, 62
    001d4dffjbe 0x1d4e6a
    001d4e01
    001d4e01loc_1d4e01:
    001d4e01lea eax, [rcx-207]
    001d4e07cmp eax, 61
    001d4e0ajbe 0x1d4e7c
    001d4e0c
    001d4e0cloc_1d4e0c:
    001d4e0clea eax, [rcx-274]
    001d4e12cmp eax, 62
    001d4e15ja 0x1d4e27
    001d4e17mov rdx, 0x4208410420420841
    001d4e21bt rdx, rax
    001d4e25jb 0x1d4e8c
    001d4e27
    001d4e27loc_1d4e27:
    001d4e27mov al, 52
    001d4e29add ecx, -342
    001d4e2fcmp ecx, 56
    001d4e32ja 0x1d4e8e
    001d4e34mov rdx, 0x104208410420841
    001d4e3ebt rdx, rcx
    001d4e42jb 0x1d4e8c
    001d4e44jmp 0x1d4e8e
    001d4e46
    001d4e46loc_1d4e46:
    001d4e46mov rdx, 0x2104108210410821
    001d4e50bt rdx, rax
    001d4e54jb 0x1d4e8c
    001d4e56jmp 0x1d4dee
    001d4e58
    001d4e58loc_1d4e58:
    001d4e58mov rdx, 0x4208210410420821
    001d4e62bt rdx, rax
    001d4e66jb 0x1d4e8c
    001d4e68jmp 0x1d4df6
    001d4e6a
    001d4e6aloc_1d4e6a:
    001d4e6amov rdx, 0x4104208210420821
    001d4e74bt rdx, rax
    001d4e78jb 0x1d4e8c
    001d4e7ajmp 0x1d4e01
    001d4e7c
    001d4e7cloc_1d4e7c:
    001d4e7cmov rdx, 0x2104208210420821
    001d4e86bt rdx, rax
    001d4e8ajae 0x1d4e0c
    001d4e8c
    001d4e8cloc_1d4e8c:
    001d4e8cmov al, 53
    001d4e8e
    001d4e8eloc_1d4e8e:
    001d4e8eret
    001d4dd5
    001d4e8f
    001d4e8f // align 0x10
    001d4e90
    001d4e90__umodti3:
    001d4e90mov r8, rdx
    001d4e93test rcx, rcx
    001d4e96je 0x1d4f0f
    001d4e98mov r9, rcx
    001d4e9bbsr r10, rcx
    001d4e9fmov eax, r10l
    001d4ea2xor eax, 63
    001d4ea5mov cl, 64
    001d4ea7sub cl, al
    001d4ea9mov rax, r8
    001d4eacshrd rax, r9, cl
    001d4eb0mov r11, r9
    001d4eb3shr r11, cl
    001d4eb6test cl, 64
    001d4eb9cmove r11, rax
    001d4ebdmov rax, rsi
    001d4ec0shld rax, rdi, 63
    001d4ec5mov rdx, rsi
    001d4ec8shr rdx, 1
    001d4ecbdiv r11
    001d4ecemov ecx, r10l
    001d4ed1shr rax, cl
    001d4ed4xor ecx, ecx
    001d4ed6sub rax, 1
    001d4edacmovb rax, rcx
    001d4edemov r10, rax
    001d4ee1imul r10, r9
    001d4ee5mul r8
    001d4ee8add rdx, r10
    001d4eebsub rdi, rax
    001d4eeesbb rsi, rdx
    001d4ef1cmp rdi, r8
    001d4ef4mov rax, rsi
    001d4ef7sbb rax, r9
    001d4efacmovb r9, rcx
    001d4efecmovb r8, rcx
    001d4f02sub rdi, r8
    001d4f05sbb rsi, r9
    001d4f08mov rax, rdi
    001d4f0bmov rdx, rsi
    001d4f0eret
    001d4f0f
    001d4f0floc_1d4f0f:
    001d4f0fcmp rsi, r8
    001d4f12jae 0x1d4f1f
    001d4f14mov rax, rdi
    001d4f17mov rdx, rsi
    001d4f1adiv r8
    001d4f1djmp 0x1d4f42
    001d4f1f
    001d4f1floc_1d4f1f:
    001d4f1fmov rax, rsi
    001d4f22or rax, r8
    001d4f25shr rax, 32
    001d4f29je 0x1d4f35
    001d4f2bmov rax, rsi
    001d4f2exor edx, edx
    001d4f30div r8
    001d4f33jmp 0x1d4f3c
    001d4f35
    001d4f35loc_1d4f35:
    001d4f35mov eax, esi
    001d4f37xor edx, edx
    001d4f39div r8l
    001d4f3c
    001d4f3cloc_1d4f3c:
    001d4f3cmov rax, rdi
    001d4f3fdiv r8
    001d4f42
    001d4f42loc_1d4f42:
    001d4f42xor esi, esi
    001d4f44mov rdi, rdx
    001d4f47mov rax, rdi
    001d4f4amov rdx, rsi
    001d4f4dret
    001d4e90
    001d4f4e
    001d4f4e // align 0x10
    001d4f50
    001d4f50__divti3:
    001d4f50push r14
    001d4f52push rbx
    001d4f53sub rsp, 40
    001d4f57mov rbx, rcx
    001d4f5amov rcx, rdx
    001d4f5dmov r14, rsi
    001d4f60mov rsi, rdi
    001d4f63mov rax, r14
    001d4f66sar rax, 63
    001d4f6amov rdx, r14
    001d4f6dxor rdx, rax
    001d4f70xor rsi, rax
    001d4f73sub rsi, rax
    001d4f76sbb rdx, rax
    001d4f79mov rax, rbx
    001d4f7csar rax, 63
    001d4f80mov r8, rbx
    001d4f83xor r8, rax
    001d4f86xor rcx, rax
    001d4f89sub rcx, rax
    001d4f8csbb r8, rax
    001d4f8flea rdi, [rsp+8]
    001d4f94call compiler_builtins::int::specialized_div_rem::u128_div_rem
    001d4f99mov rcx, [rsp+8]
    001d4f9emov rsi, [rsp+16]
    001d4fa3xor edx, edx
    001d4fa5mov rax, rcx
    001d4fa8neg rax
    001d4fabsbb rdx, rsi
    001d4faexor rbx, r14
    001d4fb1cmovns rdx, rsi
    001d4fb5cmovns rax, rcx
    001d4fb9add rsp, 40
    001d4fbdpop rbx
    001d4fbepop r14
    001d4fc0ret
    001d4f50
    001d4fc1
    001d4fc1 // align 0x10
    001d4fd0
    001d4fd0compiler_builtins::int::specialized_div_rem::u128_div_rem:
    001d4fd0push rbx
    001d4fd1mov r9, rcx
    001d4fd4mov r11, rdx
    001d4fd7test r8, r8
    001d4fdaje 0x1d5053
    001d4fdcbsr rbx, r8
    001d4fe0mov eax, ebx
    001d4fe2xor eax, 63
    001d4fe5mov cl, 64
    001d4fe7sub cl, al
    001d4fe9mov rax, r9
    001d4fecshrd rax, r8, cl
    001d4ff0mov r10, r8
    001d4ff3shr r10, cl
    001d4ff6test cl, 64
    001d4ff9cmove r10, rax
    001d4ffdmov rax, r11
    001d5000shld rax, rsi, 63
    001d5005mov rdx, r11
    001d5008shr rdx, 1
    001d500bdiv r10
    001d500emov r10, rax
    001d5011mov ecx, ebx
    001d5013shr r10, cl
    001d5016xor ecx, ecx
    001d5018sub r10, 1
    001d501ccmovb r10, rcx
    001d5020mov rbx, r10
    001d5023imul rbx, r8
    001d5027mov rax, r10
    001d502amul r9
    001d502dadd rdx, rbx
    001d5030sub rsi, rax
    001d5033sbb r11, rdx
    001d5036cmp rsi, r9
    001d5039mov rax, r11
    001d503csbb rax, r8
    001d503fcmovb r8, rcx
    001d5043cmovb r9, rcx
    001d5047sbb r10, -1
    001d504bsub rsi, r9
    001d504esbb r11, r8
    001d5051jmp 0x1d509d
    001d5053
    001d5053loc_1d5053:
    001d5053cmp r11, r9
    001d5056jae 0x1d506b
    001d5058mov rax, rsi
    001d505bmov rdx, r11
    001d505ediv r9
    001d5061mov r10, rax
    001d5064xor r11l, r11l
    001d5067xor ecx, ecx
    001d5069jmp 0x1d509a
    001d506b
    001d506bloc_1d506b:
    001d506bmov rax, r11
    001d506eor rax, r9
    001d5071shr rax, 32
    001d5075je 0x1d5084
    001d5077mov rax, r11
    001d507axor edx, edx
    001d507cdiv r9
    001d507fmov rcx, rax
    001d5082jmp 0x1d508e
    001d5084
    001d5084loc_1d5084:
    001d5084mov eax, r11l
    001d5087xor edx, edx
    001d5089div r9l
    001d508cmov ecx, eax
    001d508e
    001d508eloc_1d508e:
    001d508emov rax, rsi
    001d5091div r9
    001d5094mov r10, rax
    001d5097xor r11l, r11l
    001d509a
    001d509aloc_1d509a:
    001d509amov rsi, rdx
    001d509d
    001d509dloc_1d509d:
    001d509dmov [rdi+16], rsi
    001d50a1mov [rdi], r10
    001d50a4mov [rdi+24], r11
    001d50a8mov [rdi+8], rcx
    001d50acmov rax, rdi
    001d50afpop rbx
    001d50b0ret
    001d4fd0
    001d50b1
    001d50b1 // align 0x10
    001d50c0
    001d50c0__ashlti3:
    001d50c0mov r8l, edx
    001d50c3mov rax, rdi
    001d50c6test r8b, 64
    001d50cajne 0x1d50ef
    001d50ccmov rdx, rsi
    001d50cftest r8l, r8l
    001d50d2je 0x1d50ee
    001d50d4mov rsi, rax
    001d50d7mov ecx, r8l
    001d50dashl rsi, cl
    001d50ddneg cl
    001d50dfshr rax, cl
    001d50e2mov ecx, r8l
    001d50e5shl rdx, cl
    001d50e8or rdx, rax
    001d50ebmov rax, rsi
    001d50ee
    001d50eeloc_1d50ee:
    001d50eeret
    001d50ef
    001d50efloc_1d50ef:
    001d50efmov rdx, rax
    001d50f2mov ecx, r8l
    001d50f5shl rdx, cl
    001d50f8xor eax, eax
    001d50faret
    001d50c0
    001d50fb
    001d50fb // align 0x10
    001d5100
    001d5100__udivti3:
    001d5100mov r8, rdx
    001d5103test rcx, rcx
    001d5106je 0x1d5178
    001d5108mov r9, rcx
    001d510bbsr r11, rcx
    001d510fmov eax, r11l
    001d5112xor eax, 63
    001d5115mov cl, 64
    001d5117sub cl, al
    001d5119mov rax, r8
    001d511cshrd rax, r9, cl
    001d5120mov r10, r9
    001d5123shr r10, cl
    001d5126test cl, 64
    001d5129cmove r10, rax
    001d512dmov rax, rsi
    001d5130shld rax, rdi, 63
    001d5135mov rdx, rsi
    001d5138shr rdx, 1
    001d513bdiv r10
    001d513emov r10, rax
    001d5141mov ecx, r11l
    001d5144shr r10, cl
    001d5147xor ecx, ecx
    001d5149sub r10, 1
    001d514dcmovb r10, rcx
    001d5151mov r11, r10
    001d5154mov rax, r10
    001d5157mul r8
    001d515aimul r11, r9
    001d515eadd rdx, r11
    001d5161sub rdi, rax
    001d5164sbb rsi, rdx
    001d5167cmp rdi, r8
    001d516asbb rsi, r9
    001d516dsbb r10, -1
    001d5171mov rax, r10
    001d5174mov rdx, rcx
    001d5177ret
    001d5178
    001d5178loc_1d5178:
    001d5178cmp rsi, r8
    001d517bjae 0x1d5192
    001d517dmov rax, rdi
    001d5180mov rdx, rsi
    001d5183div r8
    001d5186mov r10, rax
    001d5189xor ecx, ecx
    001d518bmov rax, r10
    001d518emov rdx, rcx
    001d5191ret
    001d5192
    001d5192loc_1d5192:
    001d5192mov rax, rsi
    001d5195or rax, r8
    001d5198shr rax, 32
    001d519cje 0x1d51ab
    001d519emov rax, rsi
    001d51a1xor edx, edx
    001d51a3div r8
    001d51a6mov rcx, rax
    001d51a9jmp 0x1d51b4
    001d51ab
    001d51abloc_1d51ab:
    001d51abmov eax, esi
    001d51adxor edx, edx
    001d51afdiv r8l
    001d51b2mov ecx, eax
    001d51b4
    001d51b4loc_1d51b4:
    001d51b4mov rax, rdi
    001d51b7div r8
    001d51bamov r10, rax
    001d51bdmov rax, r10
    001d51c0mov rdx, rcx
    001d51c3ret
    001d5100
    001d51c4
    001d51c4 // align 0x10
    001d51d0
    001d51d0__addtf3:
    001d51d0push rbp
    001d51d1mov rbp, rsp
    001d51d4push r15
    001d51d6push r14
    001d51d8push r13
    001d51dapush r12
    001d51dcpush rbx
    001d51ddpush rax
    001d51demovaps [rbp-176], x0
    001d51e5mov r12, [rbp-176]
    001d51ecmov r9, [rbp-168]
    001d51f3movaps [rbp-160], x1
    001d51famov rcx, [rbp-160]
    001d5201mov r10, [rbp-152]
    001d5208mov rdx, 0x7fffffffffffffff
    001d5212mov rsi, r9
    001d5215and rsi, rdx
    001d5218and rdx, r10
    001d521bmov rbx, 0x8001000000000000
    001d5225lea rdi, [rsi+rbx]
    001d5229cmp r12, 1
    001d522dsbb rdi, rbx
    001d5230jb 0x1d5390
    001d5236lea rdi, [rdx+rbx]
    001d523amov eax, 1
    001d523fcmp rcx, rax
    001d5242sbb rdi, rbx
    001d5245jb 0x1d5390
    001d524b
    001d524bloc_1d524b:
    001d524bcmp r12, rcx
    001d524esbb rsi, rdx
    001d5251mov rsi, rcx
    001d5254cmovb rsi, r12
    001d5258mov rdi, 0xffffffffffff
    001d5262mov r11, r10
    001d5265cmovb r11, r9
    001d5269cmovb r12, rcx
    001d526dcmovb r9, r10
    001d5271mov r10, r9
    001d5274shr r10, 48
    001d5278mov rdx, r11
    001d527bshr rdx, 48
    001d527fand edx, 32767
    001d5285mov r14, r9
    001d5288and r14, rdi
    001d528band r10l, 32767
    001d5292je 0x1d5461
    001d5298mov rbx, r11
    001d529band rbx, rdi
    001d529etest edx, edx
    001d52a0je 0x1d54b5
    001d52a6
    001d52a6loc_1d52a6:
    001d52a6shld r14, r12, 3
    001d52abxor r11, r9
    001d52aemov r15, 0x8000000000000
    001d52b8shld rbx, rsi, 3
    001d52bdshl rsi, 3
    001d52c1or rbx, r15
    001d52c4mov eax, r10l
    001d52c7sub eax, edx
    001d52c9je 0x1d531d
    001d52cbcmp eax, 127
    001d52ceja 0x1d54fe
    001d52d4mov ecx, eax
    001d52d6neg cl
    001d52d8mov rdx, rbx
    001d52dbshld rdx, rsi, cl
    001d52dfmov rdi, rsi
    001d52e2shl rdi, cl
    001d52e5xor r13l, r13l
    001d52e8test cl, 64
    001d52ebcmovne rdx, rdi
    001d52efcmovne rdi, r13
    001d52f3xor r8l, r8l
    001d52f6or rdi, rdx
    001d52f9mov rdi, 0xffffffffffff
    001d5303setne r8b
    001d5307mov ecx, eax
    001d5309shrd rsi, rbx, cl
    001d530dshr rbx, cl
    001d5310test al, 64
    001d5312cmovne rsi, rbx
    001d5316cmovne rbx, r13
    001d531aor rsi, r8
    001d531d
    001d531dloc_1d531d:
    001d531dshl r12, 3
    001d5321or r14, r15
    001d5324test r11, r11
    001d5327js 0x1d5515
    001d532d
    001d532dloc_1d532d:
    001d532dadd rsi, r12
    001d5330adc rbx, r14
    001d5333bt rbx, 52
    001d5338jae 0x1d534e
    001d533amov eax, esi
    001d533cand eax, 1
    001d533fshrd rsi, rbx, 1
    001d5344or rsi, rax
    001d5347shr rbx, 1
    001d534aadd r10l, 1
    001d534e
    001d534eloc_1d534e:
    001d534emov r11, rsi
    001d5351mov rax, rbx
    001d5354
    001d5354loc_1d5354:
    001d5354mov rcx, 0x8000000000000000
    001d535eand r9, rcx
    001d5361cmp r10l, 32767
    001d5368jl 0x1d53f2
    001d536emov rax, 0x7fff000000000000
    001d5378or r9, rax
    001d537bmov [rbp-104], r9
    001d537fmov [rbp-112], 0
    001d5387movaps x1, [rbp-112]
    001d538bjmp 0x1d55e0
    001d5390
    001d5390loc_1d5390:
    001d5390cmp r12, 1
    001d5394mov rbx, 0x7fff000000000000
    001d539emov rax, rsi
    001d53a1sbb rax, rbx
    001d53a4jb 0x1d53c4
    001d53a6mov [rbp-64], r12
    001d53aamov rax, 0x800000000000
    001d53b4or r9, rax
    001d53b7mov [rbp-56], r9
    001d53bbmovaps x1, [rbp-64]
    001d53bfjmp 0x1d55e0
    001d53c4
    001d53c4loc_1d53c4:
    001d53c4cmp rcx, 1
    001d53c8mov rax, rdx
    001d53cbsbb rax, rbx
    001d53cejb 0x1d557f
    001d53d4mov [rbp-80], rcx
    001d53d8mov rax, 0x800000000000
    001d53e2or r10, rax
    001d53e5mov [rbp-72], r10
    001d53e9movaps x1, [rbp-80]
    001d53edjmp 0x1d55e0
    001d53f2
    001d53f2loc_1d53f2:
    001d53f2test r10l, r10l
    001d53f5jle 0x1d55ae
    001d53fbmov rdx, -1
    001d5402mov ecx, r11l
    001d5405and ecx, 7
    001d5408shrd r11, rax, 3
    001d540dand r11, rdx
    001d5410shr rax, 3
    001d5414and rax, rdi
    001d5417shl r10, 48
    001d541bxor edx, edx
    001d541dcmp rcx, 5
    001d5421setae dl
    001d5424or rax, r9
    001d5427or rax, r10
    001d542aadd rdx, r11
    001d542dadc rax, 0
    001d5431mov esi, edx
    001d5433and esi, 1
    001d5436xor edi, edi
    001d5438cmp rcx, 4
    001d543ccmove rdi, rsi
    001d5440add rdi, rdx
    001d5443mov [rbp-144], rdi
    001d544aadc rax, 0
    001d544emov [rbp-136], rax
    001d5455movaps x1, [rbp-144]
    001d545cjmp 0x1d55e0
    001d5461
    001d5461loc_1d5461:
    001d5461bsr rax, r12
    001d5465mov ecx, 127
    001d546acmovne rcx, rax
    001d546exor ecx, 63
    001d5471add cl, 64
    001d5474bsr rax, r14
    001d5478xor eax, 63
    001d547btest r14, r14
    001d547emovzx ecx, cl
    001d5481cmovne ecx, eax
    001d5484add cl, -15
    001d5487shld r14, r12, cl
    001d548bshl r12, cl
    001d548exor eax, eax
    001d5490test cl, 64
    001d5493cmovne r14, r12
    001d5497cmovne r12, rax
    001d549bmovzx eax, cl
    001d549emov r10l, 1
    001d54a4sub r10l, eax
    001d54a7mov rbx, r11
    001d54aaand rbx, rdi
    001d54adtest edx, edx
    001d54afjne 0x1d52a6
    001d54b5
    001d54b5loc_1d54b5:
    001d54b5bsr rax, rsi
    001d54b9mov ecx, 127
    001d54becmovne rcx, rax
    001d54c2xor ecx, 63
    001d54c5add cl, 64
    001d54c8bsr rax, rbx
    001d54ccxor eax, 63
    001d54cftest rbx, rbx
    001d54d2movzx ecx, cl
    001d54d5cmovne ecx, eax
    001d54d8add cl, -15
    001d54dbshld rbx, rsi, cl
    001d54dfshl rsi, cl
    001d54e2xor eax, eax
    001d54e4test cl, 64
    001d54e7cmovne rbx, rsi
    001d54ebcmovne rsi, rax
    001d54efmovzx eax, cl
    001d54f2mov edx, 1
    001d54f7sub edx, eax
    001d54f9jmp 0x1d52a6
    001d54fe
    001d54feloc_1d54fe:
    001d54femov esi, 1
    001d5503xor ebx, ebx
    001d5505shl r12, 3
    001d5509or r14, r15
    001d550ctest r11, r11
    001d550fjns 0x1d532d
    001d5515
    001d5515loc_1d5515:
    001d5515mov r11, r12
    001d5518sub r11, rsi
    001d551bmov rax, r14
    001d551esbb rax, rbx
    001d5521xor r12, rsi
    001d5524xor r14, rbx
    001d5527xorps x1, x1
    001d552aor r14, r12
    001d552dje 0x1d55e0
    001d5533mov rcx, rax
    001d5536shr rcx, 51
    001d553ajne 0x1d5354
    001d5540bsr rcx, r11
    001d5544mov edx, 127
    001d5549cmovne rdx, rcx
    001d554dxor edx, 63
    001d5550add edx, 64
    001d5553bsr rcx, rax
    001d5557xor ecx, 63
    001d555atest rax, rax
    001d555dcmove ecx, edx
    001d5560add ecx, -12
    001d5563shld rax, r11, cl
    001d5567shl r11, cl
    001d556axor edx, edx
    001d556ctest cl, 64
    001d556fcmovne rax, r11
    001d5573cmovne r11, rdx
    001d5577sub r10l, ecx
    001d557ajmp 0x1d5354
    001d557f
    001d557floc_1d557f:
    001d557fmov rax, rsi
    001d5582xor rax, rbx
    001d5585or rax, r12
    001d5588jne 0x1d55d8
    001d558axor rcx, r12
    001d558dxor r10, r9
    001d5590mov rax, 0x8000000000000000
    001d559axor rax, r10
    001d559dor rax, rcx
    001d55a0jne 0x1d55a9
    001d55a2movaps x0, [rip-0x141bb9]
    001d55a9
    001d55a9loc_1d55a9:
    001d55a9movaps x1, x0
    001d55acjmp 0x1d55e0
    001d55ae
    001d55aeloc_1d55ae:
    001d55aemov cl, 4
    001d55b0sub cl, r10b
    001d55b3shrd r11, rax, cl
    001d55b7shr rax, cl
    001d55baxor edx, edx
    001d55bctest cl, 64
    001d55bfcmovne r11, rax
    001d55c3cmove rdx, rax
    001d55c7mov [rbp-128], r11
    001d55cbor rdx, r9
    001d55cemov [rbp-120], rdx
    001d55d2movaps x1, [rbp-128]
    001d55d6jmp 0x1d55e0
    001d55d8
    001d55d8loc_1d55d8:
    001d55d8xor rbx, rdx
    001d55dbor rbx, rcx
    001d55dejne 0x1d55f2
    001d55e0
    001d55e0loc_1d55e0:
    001d55e0movaps x0, x1
    001d55e3add rsp, 8
    001d55e7pop rbx
    001d55e8pop r12
    001d55eapop r13
    001d55ecpop r14
    001d55eepop r15
    001d55f0pop rbp
    001d55f1ret
    001d55f2
    001d55f2loc_1d55f2:
    001d55f2mov rax, r12
    001d55f5or rax, rsi
    001d55f8je 0x1d560b
    001d55famov rax, rcx
    001d55fdor rax, rdx
    001d5600movaps x1, x0
    001d5603jne 0x1d524b
    001d5609jmp 0x1d55e0
    001d560b
    001d560bloc_1d560b:
    001d560bor rdx, rcx
    001d560ejne 0x1d55e0
    001d5610and rcx, r12
    001d5613mov [rbp-96], rcx
    001d5617and r10, r9
    001d561amov [rbp-88], r10
    001d561emovaps x1, [rbp-96]
    001d5622jmp 0x1d55e0
    001d51d0
    001d5624
    001d5624 // align 0x10
    001d5630
    001d5630__multf3:
    001d5630push rbp
    001d5631mov rbp, rsp
    001d5634push r15
    001d5636push r14
    001d5638push r13
    001d563apush r12
    001d563cpush rbx
    001d563dsub rsp, 120
    001d5641mov rdi, 0xffffffffffff
    001d564bmovaps [rbp-288], x0
    001d5652mov r13, [rbp-288]
    001d5659mov rdx, [rbp-280]
    001d5660mov rax, rdx
    001d5663shr rax, 48
    001d5667and eax, 32767
    001d566cmovaps [rbp-272], x1
    001d5673mov r8, [rbp-272]
    001d567amov rcx, [rbp-264]
    001d5681mov rbx, rcx
    001d5684shr rbx, 48
    001d5688and ebx, 32767
    001d568emov rsi, rcx
    001d5691xor rsi, rdx
    001d5694mov r9, 0x8000000000000000
    001d569eand rsi, r9
    001d56a1mov r14, rdx
    001d56a4and r14, rdi
    001d56a7mov r11, rcx
    001d56aaand r11, rdi
    001d56adlea edi, [rax-32767]
    001d56b3mov r12, r14
    001d56b6shr r12, 32
    001d56bacmp edi, -32766
    001d56c0jb 0x1d588e
    001d56c6lea edi, [rbx-32767]
    001d56cccmp edi, -32767
    001d56d2jbe 0x1d588e
    001d56d8xor ecx, ecx
    001d56damov [rbp-56], rcx
    001d56demov rdi, r13
    001d56e1mov [rbp-64], rbx
    001d56e5mov [rbp-72], rax
    001d56e9mov [rbp-48], rsi
    001d56ed
    001d56edloc_1d56ed:
    001d56edor r12, 0x10000
    001d56f4mov rdx, r11
    001d56f7shr rdx, 17
    001d56fbor edx, 0xffffffff80000000
    001d5701mov rax, rdx
    001d5704imul rax, r12
    001d5708mov [rbp-112], rax
    001d570cshld r11, r8, 15
    001d5711shl r8, 15
    001d5715mov r11l, r11l
    001d5718mov rax, r11
    001d571bimul rax, r12
    001d571fmov [rbp-96], rax
    001d5723mov r15, r8
    001d5726shr r15, 32
    001d572amov rax, r12
    001d572dimul rax, r15
    001d5731mov [rbp-104], rax
    001d5735mov eax, r8l
    001d5738imul r12, rax
    001d573cmov r8, rax
    001d573fmov r13l, r14l
    001d5742mov r10, rdx
    001d5745imul r10, r13
    001d5749mov rax, r11
    001d574cimul rax, r13
    001d5750mov [rbp-88], rax
    001d5754mov rcx, r13
    001d5757imul rcx, r15
    001d575bimul r13, r8
    001d575fmov rbx, rdi
    001d5762mov rsi, rdi
    001d5765shr rsi, 32
    001d5769mov rax, rdx
    001d576cimul rax, rsi
    001d5770mov r14, r11
    001d5773imul r14, rsi
    001d5777mov rdi, r15
    001d577aimul rdi, rsi
    001d577eimul rsi, r8
    001d5782mov ebx, ebx
    001d5784imul rdx, rbx
    001d5788imul r11, rbx
    001d578cimul r15, rbx
    001d5790imul r8, rbx
    001d5794mov [rbp-80], r8
    001d5798xor r9l, r9l
    001d579badd r15, rsi
    001d579esetb r9b
    001d57a2xor r8l, r8l
    001d57a5add rdi, r13
    001d57a8setb r8b
    001d57acxor r13l, r13l
    001d57afadd rcx, r12
    001d57b2setb r13b
    001d57b6add rcx, rdx
    001d57b9adc r13, 0
    001d57bdadd rcx, r14
    001d57c0adc r13, 0
    001d57c4xor ebx, ebx
    001d57c6add r10, [rbp-96]
    001d57casetb bl
    001d57cdshld r9, r15, 32
    001d57d2shl r15, 32
    001d57d6xor edx, edx
    001d57d8add rax, [rbp-104]
    001d57dcsetb dl
    001d57dfadd rax, [rbp-88]
    001d57e3adc rdx, 0
    001d57e7add rdi, r11
    001d57eaadc rax, r8
    001d57edadc rdx, [rbp-112]
    001d57f1xor esi, esi
    001d57f3add rdi, r9
    001d57f6setb sil
    001d57fashld r13, rcx, 32
    001d57ffshl rcx, 32
    001d5803add r15, [rbp-80]
    001d5807mov r14, rdi
    001d580aadc r14, rcx
    001d580dshld rbx, r10, 32
    001d5812shl r10, 32
    001d5816add r10, rax
    001d5819adc rbx, rdx
    001d581cadd r10, r13
    001d581fadc rbx, 0
    001d5823add rcx, rdi
    001d5826adc r10, rsi
    001d5829adc rbx, 0
    001d582dmov rax, [rbp-72]
    001d5831add eax, [rbp-64]
    001d5834mov rcx, [rbp-56]
    001d5838add eax, ecx
    001d583aadd eax, -16383
    001d583fbt rbx, 48
    001d5844jb 0x1d58d2
    001d584ashld rbx, r10, 1
    001d584fshld r10, r14, 1
    001d5854shld r14, r15, 1
    001d5859add r15, r15
    001d585ccmp eax, 32767
    001d5861jge 0x1d58dc
    001d5863
    001d5863loc_1d5863:
    001d5863test eax, eax
    001d5865jle 0x1d5976
    001d586bmov rcx, -1
    001d5872and r10, rcx
    001d5875mov rcx, 0xffffffffffff
    001d587fand rbx, rcx
    001d5882shl rax, 48
    001d5886or rax, rbx
    001d5889jmp 0x1d5a72
    001d588e
    001d588eloc_1d588e:
    001d588emov r9, 0x7fffffffffffffff
    001d5898mov r15, rdx
    001d589band r15, r9
    001d589ecmp r13, 1
    001d58a2mov r10, 0x7fff000000000000
    001d58acmov rdi, r15
    001d58afsbb rdi, r10
    001d58b2jb 0x1d590b
    001d58b4mov [rbp-128], r13
    001d58b8mov rax, 0x800000000000
    001d58c2or rdx, rax
    001d58c5mov [rbp-120], rdx
    001d58c9movaps x0, [rbp-128]
    001d58cdjmp 0x1d5ac2
    001d58d2
    001d58d2loc_1d58d2:
    001d58d2add eax, 1
    001d58d5cmp eax, 32767
    001d58dajl 0x1d5863
    001d58dc
    001d58dcloc_1d58dc:
    001d58dcmov rax, 0x7fff000000000000
    001d58e6mov rcx, [rbp-48]
    001d58eaor rcx, rax
    001d58edmov [rbp-216], rcx
    001d58f4mov [rbp-224], 0
    001d58ffmovaps x0, [rbp-224]
    001d5906jmp 0x1d5ac2
    001d590b
    001d590bloc_1d590b:
    001d590band r9, rcx
    001d590ecmp r8, 1
    001d5912mov rdx, r9
    001d5915sbb rdx, r10
    001d5918jb 0x1d5941
    001d591amov [rbp-144], r8
    001d5921mov rax, 0x800000000000
    001d592bor rcx, rax
    001d592emov [rbp-136], rcx
    001d5935movaps x0, [rbp-144]
    001d593cjmp 0x1d5ac2
    001d5941
    001d5941loc_1d5941:
    001d5941mov rcx, r15
    001d5944xor rcx, r10
    001d5947or rcx, r13
    001d594ajne 0x1d59a7
    001d594cor r9, r8
    001d594fje 0x1d5ad1
    001d5955or rsi, r10
    001d5958mov [rbp-152], rsi
    001d595fmov [rbp-160], 0
    001d596amovaps x0, [rbp-160]
    001d5971jmp 0x1d5ac2
    001d5976
    001d5976loc_1d5976:
    001d5976mov r9l, 1
    001d597csub r9l, eax
    001d597fcmp r9l, 127
    001d5983jbe 0x1d59e0
    001d5985mov rax, [rbp-48]
    001d5989mov [rbp-232], rax
    001d5990mov [rbp-240], 0
    001d599bmovaps x0, [rbp-240]
    001d59a2jmp 0x1d5ac2
    001d59a7
    001d59a7loc_1d59a7:
    001d59a7mov rcx, r9
    001d59aaxor rcx, r10
    001d59ador rcx, r8
    001d59b0jne 0x1d5ada
    001d59b6or r15, r13
    001d59b9je 0x1d5ad1
    001d59bfor rsi, r10
    001d59c2mov [rbp-168], rsi
    001d59c9mov [rbp-176], 0
    001d59d4movaps x0, [rbp-176]
    001d59dbjmp 0x1d5ac2
    001d59e0
    001d59e0loc_1d59e0:
    001d59e0add al, -1
    001d59e2mov rdx, r15
    001d59e5mov ecx, eax
    001d59e7shl rdx, cl
    001d59eaxor edi, edi
    001d59ectest al, 64
    001d59eemov r8, rdx
    001d59f1cmovne r8, rdi
    001d59f5mov r12, r14
    001d59f8shld r12, r15, cl
    001d59fctest al, 64
    001d59fecmovne r12, rdx
    001d5a02mov rsi, r10
    001d5a05shl rsi, cl
    001d5a08test al, 64
    001d5a0amov r11, rsi
    001d5a0dcmovne r11, rdi
    001d5a11mov rdx, rbx
    001d5a14shld rdx, r10, cl
    001d5a18test al, 64
    001d5a1acmovne rdx, rsi
    001d5a1emov rsi, rbx
    001d5a21mov ecx, r9l
    001d5a24shr rsi, cl
    001d5a27test r9b, 64
    001d5a2bmov rax, rsi
    001d5a2ecmovne rax, rdi
    001d5a32mov ecx, r9l
    001d5a35shrd r10, rbx, cl
    001d5a39test r9b, 64
    001d5a3dcmovne r10, rsi
    001d5a41mov rsi, r14
    001d5a44shr rsi, cl
    001d5a47test r9b, 64
    001d5a4bcmove rdi, rsi
    001d5a4fshrd r15, r14, cl
    001d5a53test r9b, 64
    001d5a57cmovne r15, rsi
    001d5a5bor rdi, rdx
    001d5a5exor ecx, ecx
    001d5a60or r12, r8
    001d5a63setne cl
    001d5a66or rcx, r15
    001d5a69or rcx, r11
    001d5a6cmov r15, rcx
    001d5a6fmov r14, rdi
    001d5a72
    001d5a72loc_1d5a72:
    001d5a72mov rcx, r15
    001d5a75neg rcx
    001d5a78mov rdx, 0x8000000000000000
    001d5a82mov rcx, rdx
    001d5a85sbb rcx, r14
    001d5a88adc r10, 0
    001d5a8cadc rax, 0
    001d5a90xor r14, rdx
    001d5a93mov ecx, r10l
    001d5a96and ecx, 1
    001d5a99xor edx, edx
    001d5a9bor r14, r15
    001d5a9ecmove rdx, rcx
    001d5aa2add rdx, r10
    001d5aa5adc rax, 0
    001d5aa9mov [rbp-256], rdx
    001d5ab0or rax, [rbp-48]
    001d5ab4mov [rbp-248], rax
    001d5abbmovaps x0, [rbp-256]
    001d5ac2
    001d5ac2loc_1d5ac2:
    001d5ac2add rsp, 120
    001d5ac6pop rbx
    001d5ac7pop r12
    001d5ac9pop r13
    001d5acbpop r14
    001d5acdpop r15
    001d5acfpop rbp
    001d5ad0ret
    001d5ad1
    001d5ad1loc_1d5ad1:
    001d5ad1movaps x0, [rip-0x1420d8]
    001d5ad8jmp 0x1d5ac2
    001d5ada
    001d5adaloc_1d5ada:
    001d5adamov rcx, r13
    001d5addor rcx, r15
    001d5ae0je 0x1d5bae
    001d5ae6mov rcx, r8
    001d5ae9or rcx, r9
    001d5aecje 0x1d5bcc
    001d5af2xor r10l, r10l
    001d5af5shr r15, 48
    001d5af9jne 0x1d5b48
    001d5afbbsr rcx, r13
    001d5affmov edx, 127
    001d5b04cmovne rdx, rcx
    001d5b08xor edx, 63
    001d5b0badd dl, 64
    001d5b0ebsr rdi, r14
    001d5b12xor edi, 63
    001d5b15test r14, r14
    001d5b18movzx ecx, dl
    001d5b1bcmovne ecx, edi
    001d5b1eadd cl, -15
    001d5b21shld r14, r13, cl
    001d5b25shl r13, cl
    001d5b28xor edx, edx
    001d5b2atest cl, 64
    001d5b2dcmovne r14, r13
    001d5b31cmovne r13, rdx
    001d5b35movzx ecx, cl
    001d5b38mov r10l, 1
    001d5b3esub r10l, ecx
    001d5b41mov r12, r14
    001d5b44shr r12, 32
    001d5b48
    001d5b48loc_1d5b48:
    001d5b48shr r9, 48
    001d5b4cmov [rbp-48], rsi
    001d5b50mov [rbp-72], rax
    001d5b54mov [rbp-64], rbx
    001d5b58jne 0x1d5bea
    001d5b5emov rdi, r13
    001d5b61bsr rcx, r8
    001d5b65mov edx, 127
    001d5b6acmovne rdx, rcx
    001d5b6exor edx, 63
    001d5b71add dl, 64
    001d5b74bsr rax, r11
    001d5b78xor eax, 63
    001d5b7btest r11, r11
    001d5b7emovzx ecx, dl
    001d5b81cmovne ecx, eax
    001d5b84add cl, -15
    001d5b87shld r11, r8, cl
    001d5b8bshl r8, cl
    001d5b8exor edx, edx
    001d5b90test cl, 64
    001d5b93cmovne r11, r8
    001d5b97cmovne r8, rdx
    001d5b9bmovzx ecx, cl
    001d5b9esub r10l, ecx
    001d5ba1add r10l, 1
    001d5ba5mov [rbp-56], r10
    001d5ba9jmp 0x1d56ed
    001d5bae
    001d5baeloc_1d5bae:
    001d5baemov [rbp-184], rsi
    001d5bb5mov [rbp-192], 0
    001d5bc0movaps x0, [rbp-192]
    001d5bc7jmp 0x1d5ac2
    001d5bcc
    001d5bccloc_1d5bcc:
    001d5bccmov [rbp-200], rsi
    001d5bd3mov [rbp-208], 0
    001d5bdemovaps x0, [rbp-208]
    001d5be5jmp 0x1d5ac2
    001d5bea
    001d5bealoc_1d5bea:
    001d5beamov [rbp-56], r10
    001d5beemov rdi, r13
    001d5bf1jmp 0x1d56ed
    001d5630