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