TheNumbat

Typed Interpreter

Oct 20th, 2026
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.23 KB | None | 0 0
  1. main:
  2. push r15
  3. push r14
  4. push rbx
  5. mov edi, 48
  6. call malloc@PLT
  7. mov rbx, rax
  8. lea r15, [rip + _syl_int_addˢ64(syl_tuple<long, long>, char*)]
  9. mov qword ptr [rax], r15
  10. mov qword ptr [rax + 8], 0
  11. lea rax, [rip + _syl_int_eqˢ70(syl_tuple<long, long>, char*)]
  12. mov qword ptr [rbx + 16], rax
  13. xorps xmm0, xmm0
  14. movups xmmword ptr [rbx + 24], xmm0
  15. mov qword ptr [rbx + 40], rbx
  16. mov edi, 48
  17. call malloc@PLT
  18. mov r14, rax
  19. mov qword ptr [rax], 1
  20. mov qword ptr [rax + 8], 1
  21. mov qword ptr [rax + 16], 2
  22. mov qword ptr [rax + 24], 1
  23. mov qword ptr [rax + 32], 2
  24. mov qword ptr [rax + 40], 0
  25. mov edi, 32
  26. call malloc@PLT
  27. mov qword ptr [rax], r15
  28. xorps xmm0, xmm0
  29. movups xmmword ptr [rax + 8], xmm0
  30. mov qword ptr [rax + 24], rbx
  31. mov edi, 1
  32. mov rsi, r14
  33. mov rdx, rax
  34. call _ℱˢ4(syl_variant<8ul, 8ul>, char*)
  35. lea rdi, [rip + .L.str.4]
  36. mov rsi, rax
  37. xor eax, eax
  38. call printf@PLT
  39. xor eax, eax
  40. pop rbx
  41. pop r14
  42. pop r15
  43. ret
  44.  
  45. _syl_int_addˢ64(syl_tuple<long, long>, char*):
  46. lea rax, [rdi + rsi]
  47. ret
  48.  
  49. _syl_int_eqˢ70(syl_tuple<long, long>, char*):
  50. cmp rdi, rsi
  51. sete al
  52. ret
  53.  
  54. _ℱˢ4(syl_variant<8ul, 8ul>, char*):
  55. push rbp
  56. push r15
  57. push r14
  58. push r13
  59. push r12
  60. push rbx
  61. sub rsp, 24
  62. mov rax, rdx
  63. mov rbx, rsi
  64. mov r14, rdi
  65. .LBB6_1:
  66. mov r13, qword ptr [rax + 24]
  67. test r14, r14
  68. je .LBB6_4
  69. cmp r14, 2
  70. je .LBB6_3
  71. mov r15, qword ptr [rbx]
  72. mov r12, qword ptr [rbx + 8]
  73. mov rax, qword ptr [rbx + 32]
  74. mov qword ptr [rsp + 16], rax
  75. mov rax, qword ptr [rbx + 40]
  76. mov qword ptr [rsp + 8], rax
  77. mov r14, qword ptr [rbx + 16]
  78. mov rbx, qword ptr [rbx + 24]
  79. mov edi, 32
  80. call malloc@PLT
  81. movups xmm0, xmmword ptr [r13 + 16]
  82. movups xmmword ptr [rax], xmm0
  83. movups xmm0, xmmword ptr [r13 + 32]
  84. movups xmmword ptr [rax + 16], xmm0
  85. mov rdi, r15
  86. mov rsi, r12
  87. mov rdx, rax
  88. call _ℱˢ5(syl_variant<8ul, 8ul>, char*)
  89. mov ebp, eax
  90. mov edi, 32
  91. call malloc@PLT
  92. movups xmm0, xmmword ptr [r13]
  93. movups xmmword ptr [rax], xmm0
  94. movups xmm0, xmmword ptr [r13 + 32]
  95. movups xmmword ptr [rax + 16], xmm0
  96. test bpl, bpl
  97. cmove r14, qword ptr [rsp + 16]
  98. cmove rbx, qword ptr [rsp + 8]
  99. jmp .LBB6_1
  100. .LBB6_3:
  101. mov rax, rbx
  102. add rsp, 24
  103. pop rbx
  104. pop r12
  105. pop r13
  106. pop r14
  107. pop r15
  108. pop rbp
  109. ret
  110. .LBB6_4:
  111. mov rcx, qword ptr [rax]
  112. mov qword ptr [rsp + 8], rcx
  113. mov r14, qword ptr [rax + 8]
  114. mov r15, qword ptr [rbx]
  115. mov r12, qword ptr [rbx + 8]
  116. mov rbp, qword ptr [rbx + 16]
  117. mov rbx, qword ptr [rbx + 24]
  118. mov edi, 32
  119. call malloc@PLT
  120. movups xmm0, xmmword ptr [r13]
  121. movups xmmword ptr [rax], xmm0
  122. movups xmm0, xmmword ptr [r13 + 32]
  123. movups xmmword ptr [rax + 16], xmm0
  124. mov rdi, r15
  125. mov rsi, r12
  126. mov rdx, rax
  127. call _ℱˢ4(syl_variant<8ul, 8ul>, char*)
  128. mov r15, rax
  129. mov edi, 32
  130. call malloc@PLT
  131. movups xmm0, xmmword ptr [r13]
  132. movups xmmword ptr [rax], xmm0
  133. movups xmm0, xmmword ptr [r13 + 32]
  134. movups xmmword ptr [rax + 16], xmm0
  135. mov rdi, rbp
  136. mov rsi, rbx
  137. mov rdx, rax
  138. call _ℱˢ4(syl_variant<8ul, 8ul>, char*)
  139. mov rdi, r15
  140. mov rsi, rax
  141. mov rdx, r14
  142. mov rax, qword ptr [rsp + 8]
  143. add rsp, 24
  144. pop rbx
  145. pop r12
  146. pop r13
  147. pop r14
  148. pop r15
  149. pop rbp
  150. jmp rax
  151.  
  152. _ℱˢ5(syl_variant<8ul, 8ul>, char*):
  153. cmp rdi, 1
  154. jne .LBB7_2
  155. and sil, 1
  156. mov eax, esi
  157. ret
  158. .LBB7_2:
  159. push rbp
  160. push r15
  161. push r14
  162. push r13
  163. push r12
  164. push rbx
  165. push rax
  166. mov rbp, qword ptr [rdx + 24]
  167. mov rax, qword ptr [rdx]
  168. mov qword ptr [rsp], rax
  169. mov rbx, qword ptr [rdx + 8]
  170. mov r14, qword ptr [rsi]
  171. mov r15, qword ptr [rsi + 8]
  172. mov r12, qword ptr [rsi + 16]
  173. mov r13, qword ptr [rsi + 24]
  174. mov edi, 32
  175. call malloc@PLT
  176. movups xmm0, xmmword ptr [rbp]
  177. movups xmmword ptr [rax], xmm0
  178. movups xmm0, xmmword ptr [rbp + 32]
  179. movups xmmword ptr [rax + 16], xmm0
  180. mov rdi, r14
  181. mov rsi, r15
  182. mov rdx, rax
  183. call _ℱˢ4(syl_variant<8ul, 8ul>, char*)
  184. mov r14, rax
  185. mov edi, 32
  186. call malloc@PLT
  187. movups xmm0, xmmword ptr [rbp]
  188. movups xmmword ptr [rax], xmm0
  189. movups xmm0, xmmword ptr [rbp + 32]
  190. movups xmmword ptr [rax + 16], xmm0
  191. mov rdi, r12
  192. mov rsi, r13
  193. mov rdx, rax
  194. call _ℱˢ4(syl_variant<8ul, 8ul>, char*)
  195. mov rdi, r14
  196. mov rsi, rax
  197. mov rdx, rbx
  198. mov rax, qword ptr [rsp]
  199. add rsp, 8
  200. pop rbx
  201. pop r12
  202. pop r13
  203. pop r14
  204. pop r15
  205. pop rbp
  206. jmp rax
  207. .L.str.4:
  208. .asciz "%ld\n"
  209.  
Advertisement
Add Comment
Please, Sign In to add comment