PopBsdUpdateWorker

VOID __stdcall PopBsdUpdateWorker(){
  int v0; 
  int v1; 
  int v2; 
  char v3; 
  INT64 v4[2]; 
  __int128 v5; 
  INT64 v6[2]; 
  __int128 v7; 
  INT64 v8[2]; 
  __int128 v9; 
  __int128 v10; 

  *(_OWORD *)v8 = 0i64;
  v9 = 0i64;
  v10 = 0i64;
  *(_OWORD *)v4 = 0i64;
  v5 = 0i64;
  *(_OWORD *)v6 = 0i64;
  v7 = 0i64;
  while( 1 )
  {
    PopAcquireRwLockExclusive((_POP_RW_LOCK *)((char *)&stru_140C23628 + 6312));
    v3 = *(&stru_140C23628 + 6216);
    if( !*(&stru_140C23628 + 1554) )
      break;
    v0 = *(&stru_140C23628 + 6216) & 1;
    if( (*(&stru_140C23628 + 6216) & 1) != 0 )
    {
      *(_QWORD *)&xmmword_140C502D8 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
      *((_DWORD *)&xmmword_140C502D8 + 2) = RtlComputeCrc32(0i64, &xmmword_140C502D8, 8ui64);
      *(_OWORD *)v4 = xmmword_140C502C8;
      v5 = *(_OWORD *)&xmmword_140C502D8;
    }
    v1 = v3 & 2;
    if( (v3 & 2) != 0 )
    {
      *(_OWORD *)v6 = xmmword_140C50488;
      v7 = unk_140C50498;
    }
    v2 = v3 & 4;
    if( v2 )
    {
      *(_OWORD *)v8 = xmmword_140C50298;
      v9 = xmmword_140C502A8;
      v10 = xmmword_140C502B8;
    }
    *(&stru_140C23628 + 1554) = 0;
    PopReleaseRwLock((_POP_RW_LOCK *)((char *)&stru_140C23628 + 6312));
    if( v0 )
      PopWriteBsdPoInfo(7ui64, (INT64)v4);
    if( v1 )
      PopWriteBsdPoInfo(0x10ui64, (INT64)v6);
    if( v2 )
      PopWriteBsdPoInfo(0xEui64, (INT64)v8);
  }
  PopOkayToQueueNextWorkItem((_POP_WORK_ITEM *)((char *)&stru_140C23628 + 6488));
  PopReleaseRwLock((_POP_RW_LOCK *)((char *)&stru_140C23628 + 6312));
}

Referenced by:

No references.