int __fastcall MicroSecondDelay(int a1)
{
unsigned __int32 v1; // eax
unsigned __int32 i_1; // esi
unsigned int v3; // eax
unsigned int v4; // ecx
unsigned int i_2; // edi
unsigned __int32 v6; // eax
unsigned __int32 i_3; // eax
unsigned __int32 i; // eax
unsigned __int32 v9; // eax
v1 = __indword(0x508u);
i_1 = v1 & 0xFFFFFF;
v3 = 358 * a1 / 0x64u;
v4 = (v3 + i_1 + 1) >> 24;
i_2 = (v3 + i_1 + 1) & 0xFFFFFF;
while ( v4 )
{
v6 = __indword(0x508u);
i_3 = v6 & 0xFFFFFF;
if ( i_3 <= i_1 )
--v4;
i_1 = i_3;
}
for ( i = i_1; i_2 > i; i = v9 & 0xFFFFFF )
{
if ( i_1 > i )
break;
i_1 = i;
v9 = __indword(0x508u);
}
return 0;
}