Newer
Older
AMI-Aptio-BIOS-Reversed / PurleySktPkg / SouthClusterLbg / SiInit / Pei / SiInitPreMem / BaseMemoryStallHelpers.c
@Ajax Dong Ajax Dong 2 days ago 2 KB Recovering names (cleanups)
/* Consolidated from decompiled shard files. */
/* Source: ffd7f6ec.c */
void *__cdecl FillBuffer(void *buf, unsigned int count, char value)
{
  memset(buf, value, count); /*0xffd7f6f9*/
  return buf; /*0xffd7f6ff*/
}

/* Source: ffd7f72c.c */
char *__cdecl CopyMemoryBytes(char *dst, char *src, unsigned int count_1)
{
  unsigned int count; // edx
  char *dst_1; // edi
  char *src_1; // esi

  count = count_1; /*0xffd7f736*/
  if ( src < dst && &src[count_1 - 1] >= dst ) /*0xffd7f744*/
  {
    src_1 = &src[count_1 - 1]; /*0xffd7f758*/
    dst_1 = &dst[count_1 - 1]; /*0xffd7f75a*/
  }
  else
  {
    count = count_1 & 3; /*0xffd7f748*/
    qmemcpy(dst, src, 4 * (count_1 >> 2)); /*0xffd7f751*/
    src_1 = &src[4 * (count_1 >> 2)]; /*0xffd7f751*/
    dst_1 = &dst[4 * (count_1 >> 2)]; /*0xffd7f751*/
  }
  qmemcpy(dst_1, src_1, count); /*0xffd7f761*/
  return dst; /*0xffd7f768*/
}

/* Source: ffd7f76c.c */
int __cdecl StoreDwordPairs(int a1, int a2, int a3, int a4)
{
  do /*0xffd7f785*/
  {
    *(_DWORD *)(a1 + 8 * a2 - 8) = a3; /*0xffd7f77d*/
    *(_DWORD *)(a1 + 8 * a2-- - 4) = a4; /*0xffd7f781*/
  }
  while ( a2 ); /*0xffd7f785*/
  return a1; /*0xffd7f789*/
}

/* Source: ffd7f78c.c */
void *__cdecl FillBuffer32(void *buf, unsigned int count, int value)
{
  memset32(buf, value, count); /*0xffd7f799*/
  return buf; /*0xffd7f79f*/
}

/* Source: ffd7f9f7.c */
int __fastcall StallForTicks(unsigned int a1)
{
  unsigned int v1; // esi
  int n0x400000; // edi
  int v3; // ebx
  int result; // eax

  v1 = a1 >> 22; /*0xffd7fa04*/
  n0x400000 = a1 & 0x3FFFFF; /*0xffd7fa07*/
  do /*0xffd7fa3f*/
  {
    v3 = n0x400000 + (sub_FFD8CD6B(1288) & 0xFFFFFF); /*0xffd7fa1c*/
    n0x400000 = 0x400000; /*0xffd7fa1e*/
    while ( ((v3 - sub_FFD8CD6B(1288)) & 0x800000) == 0 ) /*0xffd7fa38*/
      _mm_pause(); /*0xffd7fa25*/
    result = v1--; /*0xffd7fa3a*/
  }
  while ( result ); /*0xffd7fa3f*/
  return result; /*0xffd7fa41*/
}

/* Source: ffd7fa46.c */
unsigned int __fastcall StallMicroseconds(unsigned int a1)
{
  unsigned int v2; // eax
  unsigned __int64 v3; // rtt

  v2 = (3579545 * (unsigned __int64)a1) >> 32; /*0xffd7fa6c*/
  LODWORD(v3) = 3579545 * a1; /*0xffd7fa7c*/
  HIDWORD(v3) = v2 % 0xF4240; /*0xffd7fa7c*/
  StallForTicks(v3 / 0xF4240, v2 / 0xF4240); /*0xffd7fa81*/
  return a1; /*0xffd7fa88*/
}