Guest User

Untitled

a guest
Oct 21st, 2023
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. ; пролог
  2. push rbp
  3. mov rbp, rsp
  4. push r15
  5. push r14
  6. push r13
  7. push r12
  8. push rbx
  9.  
  10. sub rsp, 0x38
  11. mov dword [rbp - 0x54], edi ; argc
  12. mov qword [rbp - 0x60], rsi ; argv
  13. mov rax, rsp
  14. mov rbx, rax
  15. lea rax, [rbp - 0x44]
  16. mov rsi, rax
  17. lea rax, [0x556526fe5004] ; "%d"
  18. mov rdi, rax
  19. mov eax, 0
  20. call sym.imp.__isoc99_scanf ; scanf("%d", &n)
  21.  
  22. mov eax, dword [rbp - 0x44]
  23. movsxd rdx, eax
  24. sub rdx, 1
  25. mov qword [rbp - 0x38], rdx
  26. movsxd rdx, eax
  27. mov r14, rdx
  28. mov r15d, 0
  29. movsxd rdx, eax
  30. mov r12, rdx
  31. mov r13d, 0
  32. ; вычисление нужного количества байтов с округлением до ближайшего блока в 16
  33. cdqe
  34. lea rdx, [rax*4]
  35. mov eax, 0x10 ; rcx
  36. sub rax, 1
  37. add rax, rdx
  38. mov ecx, 0x10 ; rcx
  39. mov edx, 0
  40. div rcx
  41. imul rax, rax, 0x10
  42. ; выделение памяти на стеке
  43. sub rsp, rax
  44. ; выравнивание адреса по 4
  45. mov rax, rsp
  46. add rax, 3
  47. shr rax, 2
  48. shl rax, 2
  49. ; локальная переменная массива
  50. mov qword [rbp - 0x40], rax
  51. ; эпилог
  52. mov eax, 0
  53. mov rsp, rbx
  54. lea rsp, [rbp - 0x28]
  55. pop rbx
  56. pop r12
  57. pop r13
  58. pop r14
  59. pop r15
  60. pop rbp
  61. ret
  62.  
Advertisement
Add Comment
Please, Sign In to add comment