title: c3 at the end of an opcode in Attack Lab
body: <p>I was working on a version of Attack Lab. For phases 4 and 5, among the farm operations, I have several operations ending with a c3, but also followed by a separate <code>retq</code> (c3) instruction such as follows:</p>
  <pre><code>0000000000401a6e &lt;addval_370&gt;:
   401a6e:       8d 87 58 90 90 c3       lea    -0x3c6f6fa8(%rdi),%eax
   401a74:       c3                      retq
  </code></pre>
  <p>From the information that we have been given, I can decipher from the opcodes that the 58 is for <code>popq %rax</code>, and the two 90 stand for <code>nop</code> (no operation) but the program counter is increased by 1. The c3 at the end however is confusing me. Does it mean that after these respective actions, we are executing the return function once? And then we are returning once again? Is it similar in meaning to perhaps an instruction like the following:</p>
  <pre><code>0000000000401a6e &lt;addval_370&gt;:
   401a6e:       8d 87 58 90 90 90       lea    -0x3c6f6fa8(%rdi),%eax
   401a74:       c3                      retq
  </code></pre>
  <p>I know that I am probably incorrect as my reasoning seems quite naive. Hence, any guidance and help is much appreciated.</p>