title: why ecx is pushed to the stack twice,just one after another?
body: <p>Here, in this function prologue ecx is pushed to the stack twice one after another, Why??</p>
  
  <pre><code>push    ebp
  mov     ebp, esp
  
  push    ecx
  push    ecx
  and     [ebp+var_8], 0
  and     [ebp+var_4], 0
  push    ebx
  mov     ebx, [ebp+arg_0]
  push    esi
  push    edi
  or      edi, 0FFFFFFFFh
  push    edi             ; size_t
  lea     eax, [ebp+var_8]
  push    eax             ; int
  mov     eax, [ebp+arg_4]
  call    sub_671FF38E
  push    2Eh             ; wchar_t
  lea     esi, [ebp+var_8]
  call    sub_673AFD82
  cmp     eax, edi
  jz      loc_677E564B
  </code></pre>