title: Does anyone know CPPEH_RECORD construct？
body: <p>I reversed one executable file in which I find the <code>CPPEH_RECORD</code> construct. I want to know details about it. But there is no more explanation in google search! Please tell me more about it, or give me some links! Thanks to every body that helps! 
  The same question can be found <a href="https://stackoverflow.com/questions/37873744/function-of-cppeh-record-constructor">here on SO</a>.</p>
  
  <pre><code>void __noreturn start()
  {
    int v0; // eax@3
    char **argv; // [sp+10h] [bp-2Ch]@3
    int v2; // [sp+14h] [bp-28h]@3
    int v3; // [sp+18h] [bp-24h]@4
    char **envp; // [sp+1Ch] [bp-20h]@3
    int argc; // [sp+20h] [bp-1Ch]@3
  
  
    CPPEH_RECORD ms_exc; // [sp+24h] [bp-18h]@1
  
    ms_exc.registration.TryLevel = 0;
  
  
    _set_app_type(1);
    dword_403080 = -1;
    dword_403084 = -1;
    *(_DWORD *)_p__fmode() = dword_40307C;
    *(_DWORD *)_p__commode() = dword_403078;
    dword_403088 = adjust_fdiv;
    nullsub_1();
    if ( !dword_403068 )
      _setusermatherr(sub_4011BE);
    _setdefaultprecision();
    initterm(&amp;unk_403008, &amp;unk_40300C);
    v2 = dword_403074;
    _getmainargs(&amp;argc, &amp;argv, &amp;envp, dword_403070, &amp;v2);
    initterm(&amp;unk_403000, &amp;unk_403004);
    *(_DWORD *)_p___initenv() = envp;
    v0 = main(argc, (const char **)argv, (const char **)envp);
    v3 = v0;
    exit(v0);
  }
  </code></pre>