title: What is the value of esp after a function returns?
body: <p>In C / x86, when returning from a function we typically:</p>
  
  <ol>
  <li><code>pop ebp</code> to restore the previous function's frame pointer</li>
  <li><code>ret</code> which (as I understand) contains an implicit <code>pop eip</code> so that the calling function can continue to execute from the return address</li>
  </ol>
  
  <p>At this point, what can I expect esp to contain? Will it be a pointer to whatever was directly above the return address, or is the value of esp also implicitly changed by <code>ret</code> ?</p>
  
  <p>Thanks :)</p>