PopAccountCbEnergyChange

INT64 __stdcall PopAccountCbEnergyChange(){
  __int64 *v0; 
  INT64 result; 
  __int64 v2; 
  int v3; 
  const CHAR *v4; 
  const CHAR *v5; 
  char v6; 
  const CHAR *v7; 
  const CHAR *v8; 
  int v9; 
  int v10; 
  unsigned __int8 v11; 
  const CHAR *v12; 
  const CHAR *v13; 
  unsigned __int8 v14; 
  unsigned __int8 v15; 
  const CHAR *v16; 
  __int64 v17; 
  int v18; 
  const CHAR *v19; 
  const CHAR *v20; 
  char v21; 
  const CHAR *v22; 
  const CHAR *v23; 
  unsigned __int8 v24; 
  const CHAR *v25; 
  const CHAR *v26; 
  unsigned __int8 v27; 
  unsigned __int8 v28; 
  const CHAR *v29; 
  const CHAR *v30; 
  char v31; 
  const CHAR *v32; 
  const CHAR *v33; 
  char v34; 
  const CHAR *v35; 
  const CHAR *v36; 
  char v37; 
  const CHAR *v38; 
  unsigned int v39; 
  unsigned __int64 v40; 
  int v41; 
  unsigned int v42; 
  int v43; 
  int v44; 
  int v45; 
  __int64 v46; 
  __int128 v47; 
  INT64 v48; 
  struct _EVENT_DATA_DESCRIPTOR v49; 
  INT64 *v50; 
  int v51; 
  int v52; 
  char v53[16]; 
  char v54[16]; 
  char v55[16]; 
  char v56[16]; 
  __int128 *v57; 
  int v58; 
  int v59; 
  int *v60; 
  int v61; 
  int v62; 
  char v63[16]; 
  char v64[16]; 
  char v65[16]; 
  char v66[16]; 
  char v67[16]; 
  char v68[16]; 
  char v69[16]; 
  int *v70; 
  int v71; 
  int v72; 
  int *v73; 
  int v74; 
  int v75; 
  int *v76; 
  int v77; 
  int v78; 
  int *v79; 
  int v80; 
  int v81; 
  __int64 *v82; 
  int v83; 
  int v84; 
  __int64 v85; 
  int v86; 
  int v87; 
  v0 = (__int64 *)qword_140C23540;
  result = 0i64;
  v47 = 0ui64;
  if( (__int64 *)qword_140C23540 != &qword_140C23540 )
  {
    do
    {
      result += v0[25];
      v0 = (__int64 *)*v0;
    }
    while( v0 != &qword_140C23540 );
    *((_QWORD *)&v47 + 1) = result;
  }
  v2 = qword_140C23550;
  v3 = 0;
  LODWORD(v47) = 0;
  if( (__int64 *)qword_140C23550 != &qword_140C23550 )
  {
    do
    {
      v3 |= *(_DWORD *)(v2 + 128);
      v2 = *(_QWORD *)v2;
    }
    while( (__int64 *)v2 != &qword_140C23550 );
    LODWORD(v47) = v3;
  }
  if( v3 != (_DWORD)xmmword_140C23720 || result != *((_QWORD *)&xmmword_140C23720 + 1) )
  {
    xmmword_140C23720 = v47;
    if( (unsigned int)dword_140C021E8 > 5 )
    {
      v52 = 0;
      v48 = result;
      v4 = "Energy Counter Unavailable";
      v50 = &v48;
      if( (v3 & 1) == 0 )
        v4 = "-";
      v51 = 8;
      tlgCreate1Sz_char((__int64)v53, v4);
      v7 = "Relative Capacity Unit";
      if( (v6 & 2) == 0 )
        v7 = v5;
      tlgCreate1Sz_char((__int64)v54, v7);
      v10 = v9 - 4;
      v12 = "FCC Unavailable";
      if( (v11 & (unsigned __int8)(v9 - 4)) == 0 )
        v12 = v8;
      tlgCreate1Sz_char((__int64)v55, v12);
      v16 = "Capacity Unavailable";
      if( (v14 & v15) == 0 )
        v16 = v13;
      tlgCreate1Sz_char((__int64)v56, v16);
      v59 = 0;
      v62 = 0;
      v19 = "AC Power";
      v57 = &v47;
      v41 = dword_140C23534;
      v60 = &v41;
      if( (qword_140C23560 & 1) == 0 )
        v19 = "DC Power";
      *(_QWORD *)&v47 = v17;
      v58 = v18;
      v61 = v10;
      tlgCreate1Sz_char((__int64)v63, v19);
      v22 = "Battery Discharging";
      if( (v21 & 2) == 0 )
        v22 = v20;
      tlgCreate1Sz_char((__int64)v64, v22);
      v25 = "Battery Charging";
      if( (v24 & (unsigned __int8)v10) == 0 )
        v25 = v23;
      tlgCreate1Sz_char((__int64)v65, v25);
      v29 = "Battery Critical";
      if( (v27 & v28) == 0 )
        v29 = v26;
      tlgCreate1Sz_char((__int64)v66, v29);
      v32 = "Battery charge limiting mode";
      if( (v31 & 0x10) == 0 )
        v32 = v30;
      tlgCreate1Sz_char((__int64)v67, v32);
      v35 = "Battery charging state power supply present";
      if( (v34 & 0x20) == 0 )
        v35 = v33;
      tlgCreate1Sz_char((__int64)v68, v35);
      v38 = "Battery charging state adequate";
      if( (v37 & 0x40) == 0 )
        v38 = v36;
      tlgCreate1Sz_char((__int64)v69, v38);
      if( HIDWORD(qword_140C23580) )
        v39 = (unsigned int)(100 * HIDWORD(qword_140C23560) + (HIDWORD(qword_140C23580) >> 1))
            / HIDWORD(qword_140C23580);
      else
        v39 = 0;
      v72 = 0;
      v42 = v39;
      v70 = (int *)&v42;
      v71 = v10;
      if( HIDWORD(qword_140C23580) )
        v40 = 100000 * (unsigned __int64)HIDWORD(qword_140C23560) / HIDWORD(qword_140C23580);
      else
        LODWORD(v40) = 0;
      v75 = 0;
      v78 = 0;
      v81 = 0;
      v84 = 0;
      v87 = 0;
      v43 = v40;
      v73 = &v43;
      v44 = HIDWORD(qword_140C23560);
      v76 = &v44;
      v79 = &v45;
      v46 = qword_140C23568;
      v82 = &v46;
      v85 = (__int64)&v46 + 4;
      v45 = HIDWORD(qword_140C23580);
      v74 = v10;
      v77 = v10;
      v80 = v10;
      v83 = v10;
      v86 = v10;
      LODWORD(result) = tlgWriteTransfer_EtwWriteTransfer(
                          (__int64)&dword_140C021E8,
                          (unsigned __int8 *)&word_140027FAE,
                          0i64,
                          0i64,
                          0x16u,
                          &v49);
    }
  }
  return result;
}

Referenced by:

PopBatteryApplyCompositeState