- popl %edi /* save EDI */
- popl %esi /* save ESI */
- popl %ebx /* save EBX */
- popl %ebp /* save EBP */
+ movl 0x2c(%esp), %ecx /* restore EIP */
+
+ movl 0x1c(%esp), %edi /* restore EDI */
+ movl 0x20(%esp), %esi /* restore ESI */
+ movl 0x24(%esp), %ebx /* restore EBX */
+ movl 0x28(%esp), %ebp /* restore EBP */
+
+ /* prepare stack */
+ leal 0x30(%esp), %esp