title: What's point of the instruction "push 0FFFFFFFFh" after a new stack frame establishing?
body: <p>The instruction <code>"push 0FFFFFFFFh</code>" appears that just after a new stack frame within the callee is established,e.g.,</p>
  
  <pre><code>push        ebp  
  mov         ebp,esp  
  push        0FFFFFFFFh  &lt;===HERE          //[ebp-4] is set to 0FFFFFFFFh
  push        0255F58h                      // SEH EXCEPTION_REGISTRATION.handler
  mov         eax,dword ptr fs:[00000000h]  
  push        eax                           // SEH EXCEPTION_REGISTRATION.prev
  sub         esp,0D8h  
  push        ebx  
  push        esi  
  push        edi  
  lea         edi,[ebp-0E4h]                      
  mov         ecx,36h                       // 36h * 0CCCCCCCCh
  mov         eax,0CCCCCCCCh  
  rep stos    dword ptr es:[edi] 
  
  mov         eax,dword ptr [__security_cookie (025A004h)]  
  xor         eax,ebp  
  push        eax  
  
  lea         eax,[ebp-0Ch]  
  mov         dword ptr fs:[00000000h],eax  // Install new EXECEPTION_REGISTRATION
  lea         ecx,[intobj]  
  call        A&lt;int&gt;::A&lt;int&gt; (0251389h)  
  mov         dword ptr [ebp-4],0           //[ebp-4] is set to 0 
  call        A&lt;int&gt;::PrintNum (025139Dh)  
  mov         dword ptr [ebp-0E0h],0  
  mov         dword ptr [ebp-4],0FFFFFFFFh  //[ebp-4] is set to 0FFFFFFFFh again, then [ebp-4] keeps the value in this callee. 
  lea         ecx,[intobj]  
  call        A&lt;int&gt;::~A&lt;int&gt; (025138Eh)  
  mov         eax,dword ptr [ebp-0E0h]
  ...
  </code></pre>
  
  <p>What's point of this instruction "push 0FFFFFFFFh"? </p>
  
  <p><strong>[C++ Source Code]</strong>
    <a href="https://i.stack.imgur.com/H2T6W.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/H2T6W.png" alt="C++ Source Code"></a></p>
  
  <p>[UPDATE] Apr 4 2018</p>
  
  <p>Using Windbg, I can make sure the instruction "push 0FFFFFFFFh"(see "Here" in disassembly code) is nothing with SEH, though I still don't know what's point of this instruction "push 0FFFFFFFFh"?</p>
  
  <pre><code>0:000&gt; dd fs:[0] l4
  0053:00000000  0046fec0 00470000 0046d000 00000000
  
  0:000&gt; dt _Exception_registration_record 0046fec0
  test!_EXCEPTION_REGISTRATION_RECORD
     +0x000 Next             : 0x0046ff28   _EXCEPTION_REGISTRATION_RECORD &lt;== eax
     +0x004 Handler          : 0x00255F58   _EXCEPTION_DISPOSITION test!__scrt_stub_for_acrt_uninitialize+0  &lt;== 0255F58h
  
  0:000&gt; dt _Exception_registration_record 0x0046ff28
  test!_EXCEPTION_REGISTRATION_RECORD
     +0x000 Next             : 0x0046ff84 _EXCEPTION_REGISTRATION_RECORD
     +0x004 Handler          : 0x00283100     _EXCEPTION_DISPOSITION  test!_except_handler4+0
  
  0:000&gt; dt _Exception_registration_record 0x0046ff84
  test!_EXCEPTION_REGISTRATION_RECORD
     +0x000 Next             : 0xffffffff _EXCEPTION_REGISTRATION_RECORD
     +0x004 Handler          : 0x77875845     _EXCEPTION_DISPOSITION  ntdll!_except_handler4+0
  </code></pre>