Advertisement
Desumachii

Untitled

Nov 15th, 2022
2,090
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Z80 Assembler 8.74 KB | Source Code | 0 0
  1. is_expired(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >):
  2.         push    rbp
  3.         mov     rbp, rsp
  4.         sub     rsp, 48
  5.         mov     QWORD PTR [rbp-40], rdi
  6.         mov     DWORD PTR [rbp-24], 30
  7.         lea     rdx, [rbp-24]
  8.         lea     rax, [rbp-28]
  9.         mov     rsi, rdx
  10.         mov     rdi, rax
  11.         call    std::chrono::duration<int, std::ratio<86400l, 1l> >::duration<int, void>(int const&)
  12.         call    std::chrono::_V2::system_clock::now()
  13.         mov     QWORD PTR [rbp-8], rax
  14.         lea     rdx, [rbp-40]
  15.         lea     rax, [rbp-8]
  16.         mov     rsi, rdx
  17.         mov     rdi, rax
  18.         call    std::common_type<std::chrono::duration<long, std::ratio<1l, 1000000000l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >::type std::chrono::operator-<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&)
  19.         mov     QWORD PTR [rbp-16], rax
  20.         lea     rax, [rbp-16]
  21.         mov     rdi, rax
  22.         call    std::enable_if<std::chrono::__is_duration<std::chrono::duration<int, std::ratio<86400l, 1l> > >::value, std::chrono::duration<int, std::ratio<86400l, 1l> > >::type std::chrono::duration_cast<std::chrono::duration<int, std::ratio<86400l, 1l> >, long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&)
  23.         mov     DWORD PTR [rbp-20], eax
  24.         lea     rdx, [rbp-28]
  25.         lea     rax, [rbp-20]
  26.         mov     rsi, rdx
  27.         mov     rdi, rax
  28.         call    bool std::chrono::operator><int, std::ratio<86400l, 1l>, int, std::ratio<86400l, 1l> >(std::chrono::duration<int, std::ratio<86400l, 1l> > const&, std::chrono::duration<int, std::ratio<86400l, 1l> > const&)
  29.         leave
  30.         ret
  31. .LC0:
  32.         .string "%Y%m%d"
  33. operator"" _issued(char const*):
  34.         push    rbp
  35.         mov     rbp, rsp
  36.         push    rbx
  37.         sub     rsp, 520
  38.         mov     QWORD PTR [rbp-520], rdi
  39.         lea     rax, [rbp-17]
  40.         mov     rdi, rax
  41.         call    std::allocator<char>::allocator() [complete object constructor]
  42.         lea     rdx, [rbp-17]
  43.         mov     rcx, QWORD PTR [rbp-520]
  44.         lea     rax, [rbp-64]
  45.         mov     rsi, rcx
  46.         mov     rdi, rax
  47.         call    std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
  48.         lea     rcx, [rbp-64]
  49.         lea     rax, [rbp-448]
  50.         mov     edx, 8
  51.         mov     rsi, rcx
  52.         mov     rdi, rax
  53.         call    std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode) [complete object constructor]
  54.         lea     rax, [rbp-64]
  55.         mov     rdi, rax
  56.         call    std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() [complete object destructor]
  57.         lea     rax, [rbp-17]
  58.         mov     rdi, rax
  59.         call    std::allocator<char>::~allocator() [complete object destructor]
  60.         pxor    xmm0, xmm0
  61.         movaps  XMMWORD PTR [rbp-512], xmm0
  62.         movaps  XMMWORD PTR [rbp-496], xmm0
  63.         movaps  XMMWORD PTR [rbp-480], xmm0
  64.         movq    QWORD PTR [rbp-464], xmm0
  65.         lea     rax, [rbp-512]
  66.         mov     esi, OFFSET FLAT:.LC0
  67.         mov     rdi, rax
  68.         call    std::_Get_time<char> std::get_time<char>(tm*, char const*)
  69.         mov     rcx, rax
  70.         mov     rbx, rdx
  71.         lea     rax, [rbp-448]
  72.         mov     rsi, rcx
  73.         mov     rdi, rax
  74.         call    std::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char> >(std::basic_istream<char, std::char_traits<char> >&, std::_Get_time<char>)
  75.         lea     rax, [rbp-512]
  76.         mov     rdi, rax
  77.         call    mktime
  78.         mov     rdi, rax
  79.         call    std::chrono::_V2::system_clock::from_time_t(long)
  80.         mov     rbx, rax
  81.         nop
  82.         lea     rax, [rbp-448]
  83.         mov     rdi, rax
  84.         call    std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream() [complete object destructor]
  85.         mov     rax, rbx
  86.         jmp     .L26
  87.         mov     rbx, rax
  88.         lea     rax, [rbp-64]
  89.         mov     rdi, rax
  90.         call    std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() [complete object destructor]
  91.         jmp     .L21
  92.         mov     rbx, rax
  93. .L21:
  94.         lea     rax, [rbp-17]
  95.         mov     rdi, rax
  96.         call    std::allocator<char>::~allocator() [complete object destructor]
  97.         mov     rax, rbx
  98.         mov     rdi, rax
  99.         call    _Unwind_Resume
  100.         mov     rbx, rax
  101.         lea     rax, [rbp-448]
  102.         mov     rdi, rax
  103.         call    std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream() [complete object destructor]
  104.         mov     rax, rbx
  105.         mov     rdi, rax
  106.         call    _Unwind_Resume
  107. .L26:
  108.         mov     rbx, QWORD PTR [rbp-8]
  109.         leave
  110.         ret
  111. .LC1:
  112.         .string "20170101"
  113. .LC2:
  114.         .string "expired"
  115. .LC3:
  116.         .string "valid"
  117. .LC4:
  118.         .string "22000601"
  119. main:
  120.         push    rbp
  121.         mov     rbp, rsp
  122.         mov     edi, OFFSET FLAT:.LC1
  123.         call    operator"" _issued(char const*)
  124.         mov     rdi, rax
  125.         call    is_expired(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >)
  126.         test    al, al
  127.         je      .L28
  128.         mov     eax, OFFSET FLAT:.LC2
  129.         jmp     .L29
  130. .L28:
  131.         mov     eax, OFFSET FLAT:.LC3
  132. .L29:
  133.         mov     rsi, rax
  134.         mov     edi, OFFSET FLAT:_ZSt4cout
  135.         call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
  136.         mov     esi, OFFSET FLAT:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  137.         mov     rdi, rax
  138.         call    std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
  139.         mov     edi, OFFSET FLAT:.LC4
  140.         call    operator"" _issued(char const*)
  141.         mov     rdi, rax
  142.         call    is_expired(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >)
  143.         test    al, al
  144.         je      .L30
  145.         mov     eax, OFFSET FLAT:.LC2
  146.         jmp     .L31
  147. .L30:
  148.         mov     eax, OFFSET FLAT:.LC3
  149. .L31:
  150.         mov     rsi, rax
  151.         mov     edi, OFFSET FLAT:_ZSt4cout
  152.         call    std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
  153.         mov     esi, OFFSET FLAT:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  154.         mov     rdi, rax
  155.         call    std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
  156.         mov     eax, 0
  157.         pop     rbp
  158.         ret
  159. .LC5:
  160.         .string "basic_string: construction from null is not valid"
  161.  
  162. __static_initialization_and_destruction_0(int, int):
  163.         push    rbp
  164.         mov     rbp, rsp
  165.         sub     rsp, 16
  166.         mov     DWORD PTR [rbp-4], edi
  167.         mov     DWORD PTR [rbp-8], esi
  168.         cmp     DWORD PTR [rbp-4], 1
  169.         jne     .L109
  170.         cmp     DWORD PTR [rbp-8], 65535
  171.         jne     .L109
  172.         mov     edi, OFFSET FLAT:_ZStL8__ioinit
  173.         call    std::ios_base::Init::Init() [complete object constructor]
  174.         mov     edx, OFFSET FLAT:__dso_handle
  175.         mov     esi, OFFSET FLAT:_ZStL8__ioinit
  176.         mov     edi, OFFSET FLAT:_ZNSt8ios_base4InitD1Ev
  177.         call    __cxa_atexit
  178. .L109:
  179.         nop
  180.         leave
  181.         ret
  182. _GLOBAL__sub_I_is_expired(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >):
  183.         push    rbp
  184.         mov     rbp, rsp
  185.         mov     esi, 65535
  186.         mov     edi, 1
  187.         call    __static_initialization_and_destruction_0(int, int)
  188.         pop     rbp
  189.         ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement