PopBatteryUpdateCompositeInformation
VOID __stdcall PopBatteryUpdateCompositeInformation(){
__int64 v0;
__m128i v1;
__int32 v2;
__int64 v3;
unsigned int v4;
__int32 v5;
unsigned int v6;
unsigned __int32 v7;
int v8;
int v9;
unsigned int v10;
__m128i v11;
__m128i v12;
v0 = qword_140C23550;
v1 = 0i64;
v11 = 0i64;
v2 = 0;
v3 = 0i64;
v12 = 0i64;
v4 = 0;
v5 = 0;
if( (__int64 *)qword_140C23550 != &qword_140C23550 )
{
v6 = 0;
v7 = 0;
do
{
v3 = *(_DWORD *)(v0 + 48) | (unsigned int)v3;
v8 = *(_DWORD *)(v0 + 60);
if( v8 != -1 )
v2 += v8;
v9 = *(_DWORD *)(v0 + 64);
if( v9 != -1 )
v5 += v9;
if( v7 < *(_DWORD *)(v0 + 68) )
v7 = *(_DWORD *)(v0 + 68);
if( v4 < *(_DWORD *)(v0 + 72) )
v4 = *(_DWORD *)(v0 + 72);
v10 = *(_DWORD *)(v0 + 76);
v0 = *(_QWORD *)v0;
if( v6 < v10 )
v6 = v10;
}
while( (__int64 *)v0 != &qword_140C23550 );
v11.m128i_i32[3] = v2;
v11.m128i_i32[0] = v3;
v1 = v11;
v12.m128i_i64[1] = __PAIR64__(v6, v4);
v12.m128i_i32[1] = v7;
}
dword_140C23594 = 0;
unk_140C23574 = v1;
if( !v5 )
v5 = v2;
v12.m128i_i32[0] = v5;
*(__m128i *)((char *)&qword_140C23580 + 4) = v12;
DbgPrintEx(
0x92u,
2u,
"\n"
"Composite Information\n"
"|-- Capabilities = 0x%08x\n"
"|-- DesignedCapacity = %u\n"
"|-- FullChargedCapacity = %u\n"
"|-- DefaultAlert1 = %u\n"
"|-- DefaultAlert2 = %u\n"
"|-- CriticalBias = %u\n",
v3,
HIDWORD(_mm_srli_si128(v1, 8).m128i_u64[0]),
v5,
v12.m128i_i32[1],
v4,
HIDWORD(_mm_srli_si128(v12, 8).m128i_u64[0]));
PopAcquirePolicyLock();
if( byte_140C23E5F )
{
byte_140C23E5F = 0;
PopResetCurrentPolicies();
}
PopReleasePolicyLock();
}Referenced by:
PopBatteryWorker