Advertisement
Guest User

Untitled

a guest
Nov 26th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. main:
  2.   push rbp
  3.   mov rbp, rsp
  4.   sub rsp, 48
  5.   mov DWORD PTR [rbp-36], edi
  6.   mov QWORD PTR [rbp-48], rsi
  7.   mov rax, QWORD PTR [rbp-48]
  8.   mov rax, QWORD PTR [rax+8]
  9.   mov QWORD PTR [rbp-16], rax
  10.   mov rax, QWORD PTR [rbp-16]
  11.   mov rdi, rax
  12.   call strlen
  13.   sub eax, 1
  14.   mov DWORD PTR [rbp-4], eax
  15. .L5:
  16.   cmp DWORD PTR [rbp-4], 0
  17.   js .L2
  18.   mov eax, DWORD PTR [rbp-4]
  19.   mov DWORD PTR [rbp-8], eax
  20. .L4:
  21.   cmp DWORD PTR [rbp-8], 0
  22.   jle .L3
  23.   mov eax, DWORD PTR [rbp-4]
  24.   movsx rdx, eax
  25.   mov rax, QWORD PTR [rbp-16]
  26.   add rax, rdx
  27.   movzx eax, BYTE PTR [rax]
  28.   movsx eax, al
  29.   mov esi, eax
  30.   mov edi, OFFSET FLAT:_ZSt4cout
  31.   call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
  32.   sub DWORD PTR [rbp-8], 1
  33.   jmp .L4
  34. .L3:
  35.   mov eax, DWORD PTR [rbp-4]
  36.   movsx rdx, eax
  37.   mov rax, QWORD PTR [rbp-16]
  38.   add rax, rdx
  39.   movzx eax, BYTE PTR [rax]
  40.   movsx eax, al
  41.   mov esi, eax
  42.   mov edi, OFFSET FLAT:_ZSt4cout
  43.   call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
  44.   mov esi, OFFSET FLAT:_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
  45.   mov edi, OFFSET FLAT:_ZSt4cout
  46.   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> >&))
  47.   sub DWORD PTR [rbp-4], 1
  48.   jmp .L5
  49. .L2:
  50.   mov DWORD PTR [rbp-20], 0
  51. .L7:
  52.   mov edi, OFFSET FLAT:_ZSt3cin
  53.   call std::basic_istream<char, std::char_traits<char> >::get()
  54.   mov DWORD PTR [rbp-20], eax
  55.   cmp DWORD PTR [rbp-20], 37
  56.   je .L6
  57.   jmp .L7
  58. .L6:
  59.   mov eax, 0
  60.   leave
  61.   ret
  62. __static_initialization_and_destruction_0(int, int):
  63.   push rbp
  64.   mov rbp, rsp
  65.   sub rsp, 16
  66.   mov DWORD PTR [rbp-4], edi
  67.   mov DWORD PTR [rbp-8], esi
  68.   cmp DWORD PTR [rbp-4], 1
  69.   jne .L11
  70.   cmp DWORD PTR [rbp-8], 65535
  71.   jne .L11
  72.   mov edi, OFFSET FLAT:_ZStL8__ioinit
  73.   call std::ios_base::Init::Init() [complete object constructor]
  74.   mov edx, OFFSET FLAT:__dso_handle
  75.   mov esi, OFFSET FLAT:_ZStL8__ioinit
  76.   mov edi, OFFSET FLAT:_ZNSt8ios_base4InitD1Ev
  77.   call __cxa_atexit
  78. .L11:
  79.   nop
  80.   leave
  81.   ret
  82. _GLOBAL__sub_I_main:
  83.   push rbp
  84.   mov rbp, rsp
  85.   mov esi, 65535
  86.   mov edi, 1
  87.   call __static_initialization_and_destruction_0(int, int)
  88.   pop rbp
  89.   ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement