PopDiagTraceCsExitReason

char __fastcall PopDiagTraceCsExitReason(__int64 a1, __int64 a2){
  __int64 v3; 
  __int64 v4; 
  __int64 v5; 
  unsigned __int8 v6; 
  unsigned int v7; 
  int v8; 
  int v9; 
  VOID **UserData; 
  int v11; 
  VOID **v12; 
  char v14; 
  char v15; 
  char v16; 
  char v17; 
  int v18; 
  int v19; 
  int v20; 
  _BOOL4 v21; 
  int v22; 
  int v23; 
  unsigned int v24; 
  int v25; 
  int v26; 
  int v27; 
  int v28; 
  int v29; 
  int v30; 
  int v31; 
  int v32; 
  int v33; 
  int v34; 
  int v35; 
  _BOOL4 v36; 
  int v37; 
  int v38; 
  unsigned int v39; 
  int v40; 
  int v41; 
  int v42; 
  int v43; 
  int v44; 
  int v45; 
  int v46; 
  __int64 v47; 
  __int64 v48; 
  __int64 v49; 
  __int64 v50; 
  __int64 v51; 
  __int64 v52; 
  __int64 v53; 
  __int64 v54; 
  __int64 v55; 
  __int64 v56; 
  __int64 v57; 
  __int64 v58; 
  __int64 v59; 
  __int64 v60; 
  __int64 v61; 
  __int64 v62; 
  UINT64 v63; 
  __int64 v64; 
  __int64 v65; 
  __int64 v66; 
  __int64 v67; 
  __int64 v68; 
  __int64 v69; 
  __int64 v70; 
  __int64 v71; 
  __int64 v72; 
  __int64 v73; 
  __int64 v74; 
  __int64 v75; 
  __int64 v76; 
  __int64 v77; 
  __int64 v78; 
  __int64 v79; 
  _EVENT_DATA_DESCRIPTOR v80; 
  UINT64 *v81; 
  __int64 v82; 
  int *v83; 
  __int64 v84; 
  __int64 *v85; 
  __int64 v86; 
  __int64 *v87; 
  __int64 v88; 
  __int64 *v89; 
  __int64 v90; 
  __int64 *v91; 
  __int64 v92; 
  __int64 *v93; 
  __int64 v94; 
  int *v95; 
  __int64 v96; 
  char *v97; 
  __int64 v98; 
  int *v99; 
  __int64 v100; 
  int *v101; 
  __int64 v102; 
  __int64 *v103; 
  __int64 v104; 
  __int64 *v105; 
  __int64 v106; 
  int *v107; 
  __int64 v108; 
  __int64 *v109; 
  __int64 v110; 
  __int64 *v111; 
  __int64 v112; 
  int *v113; 
  __int64 v114; 
  int *v115; 
  __int64 v116; 
  __int64 *v117; 
  __int64 v118; 
  int *v119; 
  __int64 v120; 
  int *v121; 
  __int64 v122; 
  int *v123; 
  __int64 v124; 
  int *v125; 
  __int64 v126; 
  int *v127; 
  __int64 v128; 
  int *v129; 
  __int64 v130; 
  __int64 *v131; 
  __int64 v132; 
  __int64 *v133; 
  __int64 v134; 
  __int64 *v135; 
  __int64 v136; 
  __int64 *v137; 
  __int64 v138; 
  __int64 *v139; 
  __int64 v140; 
  __int64 *v141; 
  __int64 v142; 
  char *v143; 
  __int64 v144; 
  char *v145; 
  __int64 v146; 
  __int64 v147; 

  v147 = a2;
  v3 = *(_QWORD *)(a1 + 32);
  v4 = *(_QWORD *)(a1 + 88);
  v19 = *(_DWORD *)a1;
  v50 = *(_QWORD *)(a1 + 40);
  v47 = *(_QWORD *)(a1 + 48);
  v20 = *(_DWORD *)(a1 + 56);
  v49 = *(_QWORD *)(a1 + 64);
  v48 = *(_QWORD *)(a1 + 72);
  v53 = *(_QWORD *)(a1 + 96);
  v56 = *(_QWORD *)(a1 + 104);
  v57 = *(_QWORD *)(a1 + 80);
  v5 = *(_QWORD *)(a1 + 128);
  v6 = *(_BYTE *)(a1 + 124);
  v54 = v5;
  v14 = v6 >> 1;
  v22 = *(_DWORD *)(a1 + 116);
  v55 = *(_QWORD *)(a1 + 152);
  v23 = v6 & 1;
  v7 = *(unsigned __int8 *)(a1 + 125);
  LOBYTE(v5) = *(_BYTE *)(a1 + 125);
  v18 = 0;
  v25 = v5 & 1;
  v59 = *(_QWORD *)(a1 + 224);
  v58 = *(_QWORD *)(a1 + 232);
  v60 = *(_QWORD *)(a1 + 240);
  v61 = *(_QWORD *)(a1 + 248);
  v62 = *(_QWORD *)(a1 + 256);
  v31 = *(_DWORD *)(a1 + 180);
  v32 = *(_DWORD *)(a1 + 184);
  v27 = (unsigned __int8)PopConsoleExternalDisplayConnected;
  v26 = (unsigned __int8)PopLidOpened;
  v33 = *(unsigned __int8 *)(a1 + 188);
  v28 = *(_DWORD *)(a1 + 192);
  v29 = *(_DWORD *)(a1 + 196);
  v30 = *(_DWORD *)(a1 + 216);
  v52 = v3;
  v51 = v4;
  v24 = (v7 >> 1) & 1;
  if( !v3 )
  {
    v47 = 0i64;
    v4 = 0i64;
    v50 = 0i64;
    v49 = 0i64;
    v48 = 0i64;
    v51 = 0i64;
  }
  v8 = *(_DWORD *)(a1 + 264);
  v9 = *(_DWORD *)(a1 + 268);
  LOBYTE(UserData) = v4 != 0;
  v11 = 0;
  v21 = v4 != 0;
  if( PopDiagHandleRegistered )
  {
    LOBYTE(UserData) = EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_CS_EXIT_REASON);
    if( (_BYTE)UserData )
    {
      UserData = ExAllocatePoolWithTag(1ui64, 0x2E0ui64, 1346721364i64);
      v12 = UserData;
      if( UserData )
      {
        UserData[1] = (VOID *)4;
        *UserData = &v19;
        UserData[2] = &v47;
        UserData[3] = (VOID *)8;
        UserData[4] = &v48;
        UserData[5] = (VOID *)8;
        UserData[6] = &v49;
        UserData[7] = (VOID *)8;
        UserData[8] = &v50;
        UserData[9] = (VOID *)8;
        UserData[10] = &v52;
        UserData[11] = (VOID *)8;
        UserData[12] = &v20;
        UserData[13] = (VOID *)4;
        UserData[14] = &v14;
        UserData[15] = (VOID *)1;
        UserData[16] = &v21;
        UserData[17] = (VOID *)4;
        UserData[18] = &v22;
        UserData[19] = (VOID *)4;
        UserData[20] = &v51;
        UserData[21] = (VOID *)8;
        UserData[22] = &v53;
        UserData[23] = (VOID *)8;
        UserData[24] = &v23;
        UserData[25] = (VOID *)4;
        UserData[26] = &v54;
        UserData[27] = (VOID *)8;
        UserData[28] = &v55;
        UserData[29] = (VOID *)8;
        UserData[30] = &v24;
        UserData[31] = (VOID *)4;
        UserData[32] = &v25;
        UserData[33] = (VOID *)4;
        UserData[34] = &v56;
        UserData[35] = (VOID *)8;
        UserData[36] = &v31;
        UserData[37] = (VOID *)4;
        UserData[38] = &v32;
        UserData[39] = (VOID *)4;
        UserData[40] = &v26;
        UserData[41] = (VOID *)4;
        UserData[42] = &v27;
        UserData[43] = (VOID *)4;
        UserData[44] = &v147;
        UserData[45] = (VOID *)1;
        UserData[46] = &v33;
        UserData[47] = (VOID *)4;
        UserData[48] = &v28;
        UserData[49] = (VOID *)4;
        UserData[50] = &v29;
        UserData[51] = (VOID *)4;
        UserData[52] = &PopWnfCsEnterScenarioId;
        UserData[53] = (VOID *)8;
        UserData[55] = (VOID *)4;
        UserData[54] = &KUSER_SHARED_DATA + 708;
        UserData[57] = (VOID *)4;
        UserData[56] = &v30;
        UserData[59] = (VOID *)8;
        UserData[58] = &v57;
        UserData[60] = &v58;
        UserData[61] = (VOID *)8;
        UserData[62] = &v59;
        UserData[63] = (VOID *)8;
        UserData[64] = &v60;
        UserData[65] = (VOID *)8;
        UserData[66] = &v61;
        UserData[67] = (VOID *)8;
        UserData[68] = &v62;
        UserData[69] = (VOID *)8;
        v18 = *(unsigned __int8 *)(a1 + 272);
        UserData[70] = &v18;
        UserData[71] = (VOID *)4;
        UserData[72] = (VOID *)(a1 + 288);
        UserData[73] = (VOID *)4;
        UserData[74] = (VOID *)(a1 + 292);
        UserData[75] = (VOID *)4;
        UserData[76] = (VOID *)(a1 + 280);
        UserData[77] = (VOID *)8;
        UserData[78] = (VOID *)(a1 + 312);
        UserData[79] = (VOID *)4;
        UserData[80] = (VOID *)(a1 + 316);
        UserData[81] = (VOID *)4;
        UserData[82] = (VOID *)(a1 + 304);
        UserData[83] = (VOID *)8;
        UserData[84] = (VOID *)(a1 + 296);
        UserData[85] = (VOID *)4;
        UserData[86] = (VOID *)(a1 + 300);
        UserData[87] = (VOID *)4;
        UserData[88] = (VOID *)(a1 + 320);
        UserData[89] = (VOID *)4;
        UserData[90] = (VOID *)(a1 + 324);
        UserData[91] = (VOID *)4;
        EtwWrite(PopDiagHandle, &POP_ETW_EVENT_CS_EXIT_REASON, 0, 0x2Eu, (PEVENT_DATA_DESCRIPTOR)UserData);
        LOBYTE(UserData) = (unsigned __int8)ExFreePoolWithTag(v12, 0x50455654u);
      }
      else
      {
        v11 = -1073741670;
      }
    }
  }
  if( *(&stru_140C00F40 + 1194) > 5u )
  {
    LOBYTE(UserData) = tlgKeywordOn((__int64)&stru_140C00F40 + 4776, 0x400000000000i64);
    if( (_BYTE)UserData )
    {
      v63 = PopWnfCsEnterScenarioId;
      v81 = &v63;
      v34 = v19;
      v83 = &v34;
      v64 = v47;
      v85 = &v64;
      v65 = v48;
      v87 = &v65;
      v66 = v49;
      v89 = &v66;
      v67 = v50;
      v91 = &v67;
      v68 = v52;
      v93 = &v68;
      v35 = v20;
      v95 = &v35;
      v15 = v14;
      v97 = &v15;
      v36 = v21;
      v99 = (int *)&v36;
      v37 = v22;
      v101 = &v37;
      v69 = v51;
      v103 = &v69;
      v70 = v53;
      v105 = &v70;
      v38 = v23;
      v107 = &v38;
      v71 = v54;
      v109 = &v71;
      v72 = v55;
      v111 = &v72;
      v82 = 8i64;
      v84 = 4i64;
      v86 = 8i64;
      v88 = 8i64;
      v90 = 8i64;
      v92 = 8i64;
      v94 = 8i64;
      v96 = 4i64;
      v98 = 1i64;
      v100 = 4i64;
      v102 = 4i64;
      v104 = 8i64;
      v106 = 8i64;
      v108 = 4i64;
      v110 = 8i64;
      v112 = 8i64;
      v39 = v24;
      v113 = (int *)&v39;
      v40 = v25;
      v115 = &v40;
      v73 = v56;
      v117 = &v73;
      v41 = v26;
      v119 = &v41;
      v42 = v27;
      v121 = &v42;
      v43 = v28;
      v123 = &v43;
      v44 = v29;
      v125 = &v44;
      v127 = &v45;
      v46 = v30;
      v129 = &v46;
      v74 = v57;
      v131 = &v74;
      v75 = v58;
      v133 = &v75;
      v76 = v59;
      v135 = &v76;
      v77 = v60;
      v137 = &v77;
      v78 = v61;
      v139 = &v78;
      v79 = v62;
      v141 = &v79;
      v143 = &v16;
      v145 = &v17;
      v114 = 4i64;
      v116 = 4i64;
      v118 = 8i64;
      v120 = 4i64;
      v122 = 4i64;
      v124 = 4i64;
      v126 = 4i64;
      v45 = v11;
      v128 = 4i64;
      v130 = 4i64;
      v132 = 8i64;
      v134 = 8i64;
      v136 = 8i64;
      v138 = 8i64;
      v140 = 8i64;
      v142 = 8i64;
      v16 = v8;
      v144 = 1i64;
      v17 = v9;
      v146 = 1i64;
      LOBYTE(UserData) = tlgWriteTransfer_EtwWriteTransfer(
                           (__int64)&stru_140C00F40 + 4776,
                           (unsigned __int8 *)&word_14002787E,
                           0i64,
                           0i64,
                           0x23u,
                           &v80);
    }
  }
  return(char)UserData;
}

Referenced by:

PopCaptureSleepStudyStatistics