Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.73 KB | None | 0 0
  1. Dump of assembler code for function bigint_sherlock::mul: Dump of assembler code for function bigint_sherlock::mul:
  2. <+0>: push %rbp <+0>: push %rbp
  3. <+1>: mov %rsp,%rbp <+1>: mov %rsp,%rbp
  4. <+4>: sub $0x40,%rsp | <+4>: push %r15
  5. <+8>: mov 0x10(%rbp),%rax | <+6>: push %r14
  6. <+12>: mov 0x18(%rbp),%rcx | <+8>: push %r13
  7. <+16>: mov 0x20(%rbp),%rdx | <+10>: push %r12
  8. <+20>: mov 0x28(%rbp),%rsi | <+12>: push %rbx
  9. <+24>: mov 0x30(%rbp),%r8 | <+13>: sub $0x38,%rsp
  10. <+28>: mov 0x38(%rbp),%r9 | <+17>: mov %rdi,-0x58(%rbp)
  11. <+32>: mov 0x40(%rbp),%r10 | <+21>: mov 0x10(%rbp),%r11
  12. <+36>: mov 0x48(%rbp),%r11 | <+25>: mov 0x18(%rbp),%rsi
  13. <+40>: mov %rax,-0x40(%rbp) | <+29>: mov 0x20(%rbp),%rax
  14. <+44>: mov %rcx,-0x38(%rbp) | <+33>: mov %rax,-0x30(%rbp)
  15. <+48>: mov %rdx,-0x30(%rbp) | <+37>: mov 0x28(%rbp),%rax
  16. <+52>: mov %rsi,-0x28(%rbp) | <+41>: mov %rax,-0x48(%rbp)
  17. <+56>: mov %r8,-0x20(%rbp) | <+45>: mov 0x30(%rbp),%rcx
  18. <+60>: mov %r9,-0x18(%rbp) | <+49>: mov 0x38(%rbp),%r12
  19. <+64>: mov %r10,-0x10(%rbp) | <+53>: mov 0x40(%rbp),%rax
  20. <+68>: mov %r11,-0x8(%rbp) | <+57>: mov %rax,-0x38(%rbp)
  21. <+72>: mov -0x40(%rbp),%rax | <+61>: mov 0x48(%rbp),%rax
  22. <+76>: mulq -0x20(%rbp) | <+65>: mov %rax,-0x60(%rbp)
  23. <+80>: mov %rax,%r8 | <+69>: mov %ecx,%r10d
  24. <+83>: mov %rdx,%r9 | <+72>: shr $0x20,%rcx
  25. <+86>: mov -0x40(%rbp),%rax | <+76>: test %r11,%r11
  26. <+90>: mulq -0x18(%rbp) | <+79>: mov %rsi,-0x40(%rbp)
  27. <+94>: add %rax,%r9 | <+83>: je 0x58276 <bigint_sherlock::mul+198>
  28. <+97>: adc $0x0,%rdx | <+198>: xor %eax,%eax
  29. <+101>: mov %rdx,%r10 | <+200>: mov %rax,-0x50(%rbp)
  30. <+104>: mov -0x40(%rbp),%rax | <+204>: xor %r13d,%r13d
  31. <+108>: mulq -0x10(%rbp) | <+207>: xor %r14d,%r14d
  32. <+112>: add %rax,%r10 | <+210>: mov %r14,%rax
  33. <+115>: adc $0x0,%rdx | <+213>: or %rsi,%rax
  34. <+119>: mov %rdx,%r11 | <+216>: je 0x582fc <bigint_sherlock::mul+332>
  35. <+122>: mov -0x40(%rbp),%rax | <+332>: xor %r8d,%r8d
  36. <+126>: mulq -0x8(%rbp) | <+335>: mov -0x30(%rbp),%rdx
  37. <+130>: add %rax,%r11 | <+339>: mov %r14,%rax
  38. <+133>: adc $0x0,%rdx | <+342>: or %rdx,%rax
  39. <+137>: mov %rdx,%rcx | <+345>: je 0x5837d <bigint_sherlock::mul+461>
  40. <+140>: mov -0x38(%rbp),%rax | <+461>: xor %r15d,%r15d
  41. <+144>: mulq -0x20(%rbp) | <+464>: mov %r14,%rax
  42. <+148>: add %rax,%r9 | <+467>: mov -0x48(%rbp),%rdx
  43. <+151>: adc %rdx,%r10 | <+471>: or %rdx,%rax
  44. <+154>: adc $0x0,%r11 | <+474>: je 0x583f4 <bigint_sherlock::mul+580>
  45. <+158>: adc $0x0,%rcx | <+580>: xor %r9d,%r9d
  46. <+162>: mov -0x38(%rbp),%rax | <+583>: mov -0x38(%rbp),%r10
  47. <+166>: mulq -0x18(%rbp) | <+587>: mov %r12,%r14
  48. <+170>: add %rax,%r10 | <+590>: shr $0x20,%r14
  49. <+173>: adc %rdx,%r11 | <+594>: mov %r12d,%r12d
  50. <+176>: adc $0x0,%rcx | <+597>: test %r11,%r11
  51. <+180>: adc $0x0,%r11 | <+600>: je 0x5847f <bigint_sherlock::mul+719>
  52. <+184>: adc $0x0,%rcx | <+719>: xor %edi,%edi
  53. <+188>: mov -0x38(%rbp),%rax | <+721>: mov %rdi,%rax
  54. <+192>: mulq -0x10(%rbp) | <+724>: mov -0x40(%rbp),%rcx
  55. <+196>: add %rax,%r11 | <+728>: or %rcx,%rax
  56. <+199>: adc $0x0,%rdx | <+731>: je 0x58503 <bigint_sherlock::mul+851>
  57. <+203>: or %rdx,%rcx | <+851>: mov %rdi,%rax
  58. <+206>: mov -0x30(%rbp),%rax | <+854>: mov -0x30(%rbp),%rcx
  59. <+210>: mulq -0x20(%rbp) | <+858>: or %rcx,%rax
  60. <+214>: add %rax,%r10 | <+861>: je 0x58585 <bigint_sherlock::mul+981>
  61. <+217>: adc %rdx,%r11 | <+981>: mov %r13,-0x38(%rbp)
  62. <+220>: adc $0x0,%rcx | <+985>: mov %rdi,%rax
  63. <+224>: mov -0x30(%rbp),%rax | <+988>: mov -0x48(%rbp),%rdx
  64. <+228>: mulq -0x18(%rbp) | <+992>: or %rdx,%rax
  65. <+232>: add %rax,%r11 | <+995>: je 0x585fd <bigint_sherlock::mul+1101>
  66. <+235>: adc $0x0,%rdx | <+1101>: xor %r13d,%r13d
  67. <+239>: or %rdx,%rcx | <+1104>: mov %r10,%r12
  68. <+242>: mov -0x28(%rbp),%rax | <+1107>: shr $0x20,%r12
  69. <+246>: mulq -0x20(%rbp) | <+1111>: mov %r10d,%r14d
  70. <+250>: add %rax,%r11 | <+1114>: test %r11,%r11
  71. <+253>: or %rdx,%rcx | <+1117>: je 0x58684 <bigint_sherlock::mul+1236>
  72. <+256>: cmp $0x0,%rcx | <+1236>: xor %edi,%edi
  73. <+260>: jne 0x58351 <bigint_sherlock::mul+321> | <+1238>: mov %rdi,%rax
  74. <+262>: mov -0x28(%rbp),%rcx | <+1241>: mov -0x40(%rbp),%rsi
  75. <+266>: jrcxz 0x58330 <bigint_sherlock::mul+288> | <+1245>: or %rsi,%rax
  76. <+268>: mov -0x8(%rbp),%rcx | <+1248>: je 0x58709 <bigint_sherlock::mul+1369>
  77. <+272>: mov -0x10(%rbp),%rax | <+1369>: mov %rdi,%rax
  78. <+276>: or %rax,%rcx | <+1372>: mov -0x30(%rbp),%rsi
  79. <+279>: mov -0x18(%rbp),%rax | <+1376>: or %rsi,%rax
  80. <+283>: or %rax,%rcx | <+1379>: je 0x5878c <bigint_sherlock::mul+1500>
  81. <+286>: jmp 0x58351 <bigint_sherlock::mul+321> | <+1500>: mov %rdi,%rax
  82. <+288>: mov -0x8(%rbp),%rcx | <+1503>: or %rdx,%rax
  83. <+292>: jrcxz 0x58347 <bigint_sherlock::mul+311> | <+1506>: je 0x587fb <bigint_sherlock::mul+1611>
  84. <+294>: mov -0x30(%rbp),%rcx | <+1611>: xor %ecx,%ecx
  85. <+298>: mov -0x38(%rbp),%rax | <+1613>: mov -0x60(%rbp),%rax
  86. <+302>: or %rax,%rcx | <+1617>: mov %rax,%r14
  87. <+305>: cmp $0x0,%rcx | <+1620>: shr $0x20,%r14
  88. <+309>: jne 0x58351 <bigint_sherlock::mul+321> | <+1624>: mov %eax,%r12d
  89. <+311>: mov -0x10(%rbp),%rcx | <+1627>: test %r11,%r11
  90. <+315>: jrcxz 0x58351 <bigint_sherlock::mul+321> | <+1630>: je 0x58885 <bigint_sherlock::mul+1749>
  91. <+317>: mov -0x30(%rbp),%rcx | <+1749>: xor %edi,%edi
  92. <+321>: test %rcx,%rcx | <+1751>: mov %rdi,%rax
  93. <+324>: jne 0x5836e <bigint_sherlock::mul+350> | <+1754>: mov -0x40(%rbp),%rdx
  94. <+326>: mov %r8,(%rdi) | <+1758>: or %rdx,%rax
  95. <+329>: mov %r9,0x8(%rdi) | <+1761>: je 0x58909 <bigint_sherlock::mul+1881>
  96. <+333>: mov %r10,0x10(%rdi) | <+1881>: mov %rdi,%rax
  97. <+337>: mov %r11,0x18(%rdi) | <+1884>: mov -0x30(%rbp),%rdx
  98. <+341>: mov %rdi,%rax | <+1888>: or %rdx,%rax
  99. <+344>: add $0x40,%rsp | <+1891>: je 0x5898b <bigint_sherlock::mul+2011>
  100. <+348>: pop %rbp | <+2011>: mov %rdi,%rax
  101. <+349>: retq | <+2014>: mov -0x48(%rbp),%rdx
  102. <+350>: mov 0x3ff29b(%rip),%rdi # 0x457610 | <+2018>: or %rdx,%rax
  103. <+357>: callq 0x57a38 | <+2021>: je 0x58a05 <bigint_sherlock::mul+2133>
  104. > <+2133>: xor %eax,%eax
  105. > <+2135>: test %al,%al
  106. > <+2137>: jne 0x58a3d <bigint_sherlock::mul+2189>
  107. > <+2189>: mov 0x44dbcc(%rip),%rdi # 0x4a6610
  108. > <+2196>: callq 0x579d8
  109. End of assembler dump. End of assembler dump.
  110. Dump of assembler code for function bigint_sherlock::add: Dump of assembler code for function bigint_sherlock::add:
  111. <+0>: push %rbp <+0>: push %rbp
  112. <+1>: mov %rsp,%rbp <+1>: mov %rsp,%rbp
  113. <+4>: sub $0x20,%rsp | <+4>: mov 0x10(%rbp),%r9
  114. <+8>: mov 0x10(%rbp),%rcx | <+8>: mov 0x18(%rbp),%rcx
  115. <+12>: mov 0x18(%rbp),%rdx | <+12>: mov 0x20(%rbp),%rsi
  116. <+16>: mov 0x20(%rbp),%rsi | <+16>: mov 0x28(%rbp),%rdx
  117. <+20>: mov 0x28(%rbp),%r8 | <+20>: mov 0x40(%rbp),%r10
  118. <+24>: mov 0x30(%rbp),%rax | <+24>: mov 0x48(%rbp),%r8
  119. <+28>: mov 0x38(%rbp),%r9 | <+28>: add 0x38(%rbp),%rcx
  120. <+32>: mov 0x40(%rbp),%r10 | <+32>: setb %al
  121. <+36>: mov 0x48(%rbp),%r11 | <+35>: add 0x30(%rbp),%r9
  122. <+40>: mov %rax,-0x20(%rbp) | <+39>: jae 0x58a7f <bigint_sherlock::add+47>
  123. <+44>: mov %r9,-0x18(%rbp) | <+41>: add $0x1,%rcx
  124. <+48>: mov %r10,-0x10(%rbp) | <+45>: adc $0x0,%al
  125. <+52>: mov %r11,-0x8(%rbp) | <+47>: test %al,%al
  126. <+56>: add -0x20(%rbp),%rcx | <+49>: je 0x58a9b <bigint_sherlock::add+75>
  127. <+60>: adc -0x18(%rbp),%rdx | <+51>: movzbl %al,%eax
  128. <+64>: adc -0x10(%rbp),%rsi | <+54>: lea (%rsi,%r10,1),%r11
  129. <+68>: adc -0x8(%rbp),%r8 | <+58>: add %rax,%r11
  130. <+72>: setb %al | <+61>: setb %al
  131. <+75>: test %al,%al | <+64>: add %r10,%rsi
  132. <+77>: jne 0x583e7 <bigint_sherlock::add+103> | <+67>: adc $0x0,%al
  133. <+79>: mov %rcx,(%rdi) | <+69>: test %al,%al
  134. <+82>: mov %rdx,0x8(%rdi) | <+71>: jne 0x58aa8 <bigint_sherlock::add+88>
  135. <+86>: mov %rsi,0x10(%rdi) | <+73>: jmp 0x58ac0 <bigint_sherlock::add+112>
  136. <+90>: mov %r8,0x18(%rdi) | <+75>: add %r10,%rsi
  137. <+94>: mov %rdi,%rax | <+78>: setb %al
  138. <+97>: add $0x20,%rsp | <+81>: mov %rsi,%r11
  139. <+101>: pop %rbp | <+84>: test %al,%al
  140. <+102>: retq | <+86>: je 0x58ac0 <bigint_sherlock::add+112>
  141. <+103>: mov 0x3ff142(%rip),%rdi # 0x457530 | <+88>: movzbl %al,%eax
  142. <+110>: callq 0x57a38 | <+91>: lea (%rdx,%r8,1),%rsi
  143. > <+95>: add %rax,%rsi
  144. > <+98>: setb %al
  145. > <+101>: add %r8,%rdx
  146. > <+104>: adc $0x0,%al
  147. > <+106>: test %al,%al
  148. > <+108>: je 0x58acd <bigint_sherlock::add+125>
  149. > <+110>: jmp 0x58ae1 <bigint_sherlock::add+145>
  150. > <+112>: add %r8,%rdx
  151. > <+115>: setb %al
  152. > <+118>: mov %rdx,%rsi
  153. > <+121>: test %al,%al
  154. > <+123>: jne 0x58ae1 <bigint_sherlock::add+145>
  155. > <+125>: mov %r9,(%rdi)
  156. > <+128>: mov %rcx,0x8(%rdi)
  157. > <+132>: mov %r11,0x10(%rdi)
  158. > <+136>: mov %rsi,0x18(%rdi)
  159. > <+140>: mov %rdi,%rax
  160. > <+143>: pop %rbp
  161. > <+144>: retq
  162. > <+145>: mov 0x44da48(%rip),%rdi # 0x4a6530
  163. > <+152>: callq 0x579d8
  164. End of assembler dump. End of assembler dump.
  165. Dump of assembler code for function bigint_sherlock::sub: Dump of assembler code for function bigint_sherlock::sub:
  166. <+0>: push %rbp <+0>: push %rbp
  167. <+1>: mov %rsp,%rbp <+1>: mov %rsp,%rbp
  168. <+4>: sub $0x20,%rsp | <+4>: mov 0x10(%rbp),%r9
  169. <+8>: mov 0x10(%rbp),%rcx | <+8>: mov 0x18(%rbp),%rcx
  170. <+12>: mov 0x18(%rbp),%rdx | <+12>: mov 0x20(%rbp),%rsi
  171. <+16>: mov 0x20(%rbp),%rsi | <+16>: mov 0x28(%rbp),%rdx
  172. <+20>: mov 0x28(%rbp),%r8 | <+20>: mov 0x40(%rbp),%r10
  173. <+24>: mov 0x30(%rbp),%rax | <+24>: mov 0x48(%rbp),%r8
  174. <+28>: mov 0x38(%rbp),%r9 | <+28>: add 0x38(%rbp),%rcx
  175. <+32>: mov 0x40(%rbp),%r10 | <+32>: setb %al
  176. <+36>: mov 0x48(%rbp),%r11 | <+35>: add 0x30(%rbp),%r9
  177. <+40>: mov %rax,-0x20(%rbp) | <+39>: jae 0x58b1f <bigint_sherlock::sub+47>
  178. <+44>: mov %r9,-0x18(%rbp) | <+41>: add $0x1,%rcx
  179. <+48>: mov %r10,-0x10(%rbp) | <+45>: adc $0x0,%al
  180. <+52>: mov %r11,-0x8(%rbp) | <+47>: test %al,%al
  181. <+56>: add -0x20(%rbp),%rcx | <+49>: je 0x58b3b <bigint_sherlock::sub+75>
  182. <+60>: adc -0x18(%rbp),%rdx | <+51>: movzbl %al,%eax
  183. <+64>: adc -0x10(%rbp),%rsi | <+54>: lea (%rsi,%r10,1),%r11
  184. <+68>: adc -0x8(%rbp),%r8 | <+58>: add %rax,%r11
  185. <+72>: setb %al | <+61>: setb %al
  186. <+75>: test %al,%al | <+64>: add %r10,%rsi
  187. <+77>: jne 0x58467 <bigint_sherlock::sub+103> | <+67>: adc $0x0,%al
  188. <+79>: mov %rcx,(%rdi) | <+69>: test %al,%al
  189. <+82>: mov %rdx,0x8(%rdi) | <+71>: jne 0x58b48 <bigint_sherlock::sub+88>
  190. <+86>: mov %rsi,0x10(%rdi) | <+73>: jmp 0x58b60 <bigint_sherlock::sub+112>
  191. <+90>: mov %r8,0x18(%rdi) | <+75>: add %r10,%rsi
  192. <+94>: mov %rdi,%rax | <+78>: setb %al
  193. <+97>: add $0x20,%rsp | <+81>: mov %rsi,%r11
  194. <+101>: pop %rbp | <+84>: test %al,%al
  195. <+102>: retq | <+86>: je 0x58b60 <bigint_sherlock::sub+112>
  196. <+103>: mov 0x3ff0c2(%rip),%rdi # 0x457530 | <+88>: movzbl %al,%eax
  197. <+110>: callq 0x57a38 | <+91>: lea (%rdx,%r8,1),%rsi
  198. > <+95>: add %rax,%rsi
  199. > <+98>: setb %al
  200. > <+101>: add %r8,%rdx
  201. > <+104>: adc $0x0,%al
  202. > <+106>: test %al,%al
  203. > <+108>: je 0x58b6d <bigint_sherlock::sub+125>
  204. > <+110>: jmp 0x58b81 <bigint_sherlock::sub+145>
  205. > <+112>: add %r8,%rdx
  206. > <+115>: setb %al
  207. > <+118>: mov %rdx,%rsi
  208. > <+121>: test %al,%al
  209. > <+123>: jne 0x58b81 <bigint_sherlock::sub+145>
  210. > <+125>: mov %r9,(%rdi)
  211. > <+128>: mov %rcx,0x8(%rdi)
  212. > <+132>: mov %r11,0x10(%rdi)
  213. > <+136>: mov %rsi,0x18(%rdi)
  214. > <+140>: mov %rdi,%rax
  215. > <+143>: pop %rbp
  216. > <+144>: retq
  217. > <+145>: mov 0x44d9a8(%rip),%rdi # 0x4a6530
  218. > <+152>: callq 0x579d8
  219. End of assembler dump. End of assembler dump.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement