char __thiscall ReadRtcDateTime(_BYTE *this)
{
unsigned __int8 v3; // al
char v4; // al
unsigned __int8 v5; // al
unsigned __int8 v6; // al
unsigned __int8 v7; // al
unsigned __int8 v8; // al
unsigned __int8 v9; // al
unsigned __int8 v10; // al
unsigned __int8 v11; // al
unsigned __int8 v12; // al
unsigned __int8 v13; // al
unsigned __int8 v14; // al
unsigned __int8 v15; // al
unsigned __int8 v16; // al
bool v17; // zf
unsigned __int8 v18; // al
unsigned __int8 v19; // al
char v20; // [esp+4h] [ebp-4h]
if ( !this || !IsHobInitialized() )
return 0;
v3 = __inbyte(0x70u);
__outbyte(0x70u, v3 & 0x80 | 0xB);
v4 = __inbyte(0x71u);
v20 = v4;
v5 = __inbyte(0x70u);
__outbyte(0x70u, v5 & 0x80);
v6 = __inbyte(0x71u);
*(this + 6) = v6;
v7 = __inbyte(0x70u);
__outbyte(0x70u, v7 & 0x80 | 2);
v8 = __inbyte(0x71u);
*(this + 5) = v8;
v9 = __inbyte(0x70u);
__outbyte(0x70u, v9 & 0x80 | 4);
v10 = __inbyte(0x71u);
*(this + 4) = v10;
v11 = __inbyte(0x70u);
__outbyte(0x70u, v11 & 0x80 | 7);
v12 = __inbyte(0x71u);
*(this + 3) = v12;
v13 = __inbyte(0x70u);
__outbyte(0x70u, v13 & 0x80 | 8);
v14 = __inbyte(0x71u);
*(this + 2) = v14;
v15 = __inbyte(0x70u);
__outbyte(0x70u, v15 & 0x80 | 9);
v16 = __inbyte(0x71u);
*(_WORD *)this = v16;
RtcCenturySet(v20);
v17 = IsLeapYear();
v18 = __inbyte(0x70u);
__outbyte(0x70u, v18 & 0x80 | 0x32);
v19 = __inbyte(0x71u);
if ( v17 )
v19 &= ~0x80u;
*(_WORD *)this += 100 * (unsigned __int8)(v19 - 6 * (v19 >> 4));
return 1;
}