RtlpCheckDynamicTimeZoneInformation

UINT8 __fastcall RtlpCheckDynamicTimeZoneInformation(_RTL_DYNAMIC_TIME_ZONE_INFORMATION *Dtzi, INT16 Year){
  UINT8 v4; 
  __int128 v6; 
  __int64 v7; 
  __int128 v8; 
  __int128 v9; 
  __int128 v10; 
  __int128 v11; 
  __int128 v12; 
  __int128 v13; 
  __int128 v14; 
  __int128 v15; 
  __int128 v16; 
  __int128 v17; 
  __int128 v18; 
  __int128 v19; 
  __int128 v20; 
  __int128 v21; 
  wchar_t *v22; 
  __int64 v23; 
  __int128 v24; 
  HANDLE Handle; 
  INT64 v26[2]; 
  __int128 v27; 
  __int64 v28; 
  int v29; 
  __int128 Buf1; 
  __int128 v31; 
  __int128 v32; 
  __int128 v33; 
  __int128 v34; 
  __int128 v35; 
  __int128 v36; 
  __int128 v37; 
  __int128 v38; 
  __int128 v39; 
  __int64 v40; 
  int DaylightBias; 
  v28 = 0i64;
  v29 = 0;
  v4 = 0;
  Handle = 0i64;
  *(_OWORD *)v26 = 0i64;
  v27 = 0i64;
  if( (int)RtlpGetDynamicTimeZoneInfoHandle(Dtzi->TimeZoneKeyName, &Handle) >= 0 )
  {
    if( (int)RtlpFindRegTziForCurrentYear((__int64)v26, (const WCHAR *)Handle, Year) >= 0 )
    {
      v6 = *(_OWORD *)&Dtzi->tzi.StandardName[6];
      Buf1 = *(_OWORD *)&Dtzi->tzi.Bias;
      v7 = *(_QWORD *)&Dtzi->tzi.DaylightStart.Minute;
      v8 = *(_OWORD *)&Dtzi->tzi.StandardName[14];
      v31 = v6;
      v9 = *(_OWORD *)&Dtzi->tzi.StandardName[22];
      v32 = v8;
      v10 = *(_OWORD *)&Dtzi->tzi.StandardName[30];
      v33 = v9;
      v11 = *(_OWORD *)&Dtzi->tzi.StandardStart.Milliseconds;
      v34 = v10;
      v12 = *(_OWORD *)&Dtzi->tzi.DaylightName[4];
      v35 = v11;
      v13 = *(_OWORD *)&Dtzi->tzi.DaylightName[20];
      v36 = v12;
      v37 = *(_OWORD *)&Dtzi->tzi.DaylightName[12];
      v14 = *(_OWORD *)&Dtzi->tzi.DaylightName[28];
      v38 = v13;
      v39 = v14;
      v40 = v7;
      DaylightBias = Dtzi->tzi.DaylightBias;
      RtlpRegTziFormatToTzi((INT64)&Buf1, (INT64)v26);
      if( memcmp(&Buf1, Dtzi, 0xACui64) )
      {
        v4 = 1;
        v15 = v31;
        *(_OWORD *)&Dtzi->tzi.Bias = Buf1;
        v16 = v32;
        *(_OWORD *)&Dtzi->tzi.StandardName[6] = v15;
        v17 = v33;
        *(_OWORD *)&Dtzi->tzi.StandardName[14] = v16;
        v18 = v34;
        *(_OWORD *)&Dtzi->tzi.StandardName[22] = v17;
        v19 = v35;
        *(_OWORD *)&Dtzi->tzi.StandardName[30] = v18;
        v20 = v36;
        *(_OWORD *)&Dtzi->tzi.StandardStart.Milliseconds = v19;
        v21 = v37;
        *(_OWORD *)&Dtzi->tzi.DaylightName[4] = v20;
        v22 = &Dtzi->tzi.DaylightName[20];
        *((_OWORD *)v22 - 1) = v21;
        v23 = v40;
        v24 = v39;
        *(_OWORD *)v22 = v38;
        *((_OWORD *)v22 + 1) = v24;
        *((_QWORD *)v22 + 4) = v23;
        *((_DWORD *)v22 + 10) = DaylightBias;
      }
    }
    ZwClose(Handle);
  }
  return v4;
}

Referenced by:

ExpRefreshTimeZoneInformation