ちなみに、関数のプロローグは、標準的には、
push ebp
mov ebp,esp
sub esp,(AUTO変数のサイズ)

で、しかも、csとeipの順序が反対なので、

// <- esp
// [AUTO変数領域
// ...
// AUTO変数領域]
// [ebp ] <- ebp
// [eip  ]
// [cs  ]
// [eflags]
// [外側esp](もしあれば)
// [外側ss](もしあれば)

と夢の中でお告げがありましたのでご報告いたし上げます(南無)。