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