Newer
Older
AMI-Aptio-BIOS-Reversed / LnvDriverDxe / sub_18BC_AsciiVSPrint_full.txt
@Ajax Dong Ajax Dong 2 days ago 33 KB Init
unsigned __int64 __fastcall sub_18BC(
        _BYTE *a1,
        unsigned __int64 n256,
        __int16 a3,
        char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status,
        va_list va)
{
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; // r14
  __int64 v6; // r12
  unsigned __int64 v8; // r13
  __int64 v9; // rdi
  const char *(Buffer____((void__)_0)); // r8
  __int64 n578; // rdx
  __int64 n0xFFFF; // rdx
  _BYTE *v14; // rbx
  unsigned __int64 v15; // r10
  __int64 n2_2; // rsi
  int v17; // eax
  bool v18; // zf
  unsigned __int64 n10; // rcx
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_3; // rdx
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_4; // r8
  unsigned __int64 v22; // r9
  char v23; // r11
  __int64 v24; // rdi
  const char *_r_n_1; // rbx
  va_list va_1; // r10
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_5; // rdx
  int v28; // eax
  unsigned __int64 n13_1; // rcx
  unsigned __int16 *v30; // rax
  int v31; // eax
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_6; // rdx
  unsigned __int64 v33; // rcx
  unsigned __int64 v34; // rcx
  unsigned __int64 v35; // rcx
  unsigned __int64 v36; // rcx
  unsigned __int64 v37; // rcx
  unsigned __int64 v38; // rcx
  __int64 v39; // r15
  int v40; // eax
  unsigned __int64 n13_2; // rcx
  int v42; // eax
  unsigned __int16 *v43; // rdi
  int v44; // r15d
  int v45; // r14d
  int v46; // esi
  unsigned __int64 v47; // rcx
  unsigned __int64 v48; // rcx
  unsigned __int64 v49; // rcx
  unsigned __int64 v50; // rcx
  unsigned __int64 n3; // rcx
  unsigned __int64 n5; // rcx
  signed __int64 v53; // rbx
  char n43; // si
  bool v55; // r15
  unsigned int n16; // r8d
  unsigned __int64 v57; // rdx
  int v58; // eax
  int v59; // eax
  const char *i; // r8
  __int64 n512; // rsi
  unsigned __int64 v62; // rdx
  _BYTE *v63; // rax
  __int64 v64; // rcx
  unsigned __int64 v65; // r10
  __int64 j; // rcx
  __int64 n2_3; // r11
  __int64 i_1; // r8
  __int64 v69; // rdi
  unsigned __int64 v70; // r8
  unsigned __int64 v71; // rdx
  __int64 v72; // rsi
  unsigned __int64 v73; // r14
  __int16 v74; // cx
  unsigned __int64 v75; // rax
  __int64 m; // r8
  __int64 n; // rax
  _BYTE *v78; // rax
  __int64 i_2; // r8
  __int64 v80; // rcx
  _BYTE *v81; // rax
  __int64 k; // rcx
  int v83; // eax
  _BYTE *v84; // rax
  __int64 ii; // rdx
  __int64 v86; // [rsp+80h] [rbp-80h]
  __int64 v87; // [rsp+80h] [rbp-80h]
  unsigned __int64 v88; // [rsp+88h] [rbp-78h]
  unsigned int n2; // [rsp+90h] [rbp-70h]
  unsigned __int64 v90; // [rsp+98h] [rbp-68h]
  char n43_1; // [rsp+A0h] [rbp-60h]
  __int64 v92; // [rsp+B0h] [rbp-50h]
  __int64 v93; // [rsp+B0h] [rbp-50h]
  unsigned __int64 n13; // [rsp+B8h] [rbp-48h] BYREF
  unsigned __int16 *v95; // [rsp+C0h] [rbp-40h]
  __int64 n0xFFFF_1; // [rsp+C8h] [rbp-38h]
  unsigned __int64 v97; // [rsp+D0h] [rbp-30h]
  __int64 n2_1; // [rsp+D8h] [rbp-28h]
  __int64 v99; // [rsp+E0h] [rbp-20h] BYREF
  unsigned __int64 v100; // [rsp+E8h] [rbp-18h]
  _BYTE _r_n[40]; // [rsp+F0h] [rbp-10h] BYREF
  __int64 n512_1; // [rsp+118h] [rbp+18h]
  __int64 v103; // [rsp+168h] [rbp+68h]
  __int16 v104; // [rsp+170h] [rbp+70h]
  char *LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1; // [rsp+178h] [rbp+78h]
  bool v106; // [rsp+188h] [rbp+88h]

  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status; /*0x18c1*/
  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status; /*0x18e0*/
  LOWORD(v6) = a3; /*0x18e7*/
  v8 = (unsigned __int64)a1; /*0x18ed*/
  if ( n256 ) /*0x18f6*/
  {
    v9 = a3 & 0x2000; /*0x18f8*/
    if ( (a3 & 0x2000) == 0 && !a1 ) /*0x1903*/
    {
      (Buffer____((void__)_0)) = "(Buffer != ((void *) 0))"; /*0x1905*/
      n578 = 578; /*0x190c*/
LABEL_5:
      sub_8D8( /*0x1911*/
        (__int64)"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
        n578,
        (__int64)(Buffer____((void__)_0)));
      return 0; /*0x191f*/
    }
  }
  else
  {
    v9 = a3 & 0x2000; /*0x1924*/
    if ( (a3 & 0x2000) == 0 ) /*0x192a*/
      goto LABEL_10; /*0x192a*/
  }
  if ( !LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status ) /*0x192f*/
  {
    (Buffer____((void__)_0)) = "(Format != ((void *) 0))"; /*0x1931*/
    n578 = 586; /*0x1938*/
    goto LABEL_5; /*0x193d*/
  }
LABEL_10:
  if ( (a3 & 0x40) != 0 ) /*0x1948*/
  {
    if ( n256 > 0xF4240 ) /*0x194d*/
    {
      (Buffer____((void__)_0)) = "(BufferSize <= (_gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength))"; /*0x194f*/
      n578 = 595; /*0x1956*/
      goto LABEL_5; /*0x195b*/
    }
    n2 = 2; /*0x195d*/
  }
  else
  {
    if ( n256 > 0xF4240 ) /*0x1969*/
    {
      (Buffer____((void__)_0)) = "(BufferSize <= (_gPcd_FixedAtBuild_PcdMaximumAsciiStringLength))"; /*0x196b*/
      n578 = 600; /*0x1972*/
      goto LABEL_5; /*0x1977*/
    }
    n2 = 1; /*0x1979*/
  }
  if ( (a3 & 0x100) != 0 ) /*0x1988*/
  {
    if ( sub_16FC(LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status) > 0xF4240 ) /*0x1992*/
      sub_8D8( /*0x19a7*/
        (__int64)"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
        611,
        (__int64)"(StrnLenS ((CHAR16 *)Format, (_gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength) + 1) <= (_gPcd_FixedAtB"
                 "uild_PcdMaximumUnicodeStringLength))");
    if ( sub_16FC(LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2) > 0xF4240 ) /*0x19b7*/
      return 0; /*0x19b7*/
    n2_1 = 2; /*0x19bd*/
    n0xFFFF = 0xFFFF; /*0x19c5*/
  }
  else
  {
    if ( sub_1754(LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status) > 0xF4240 ) /*0x19d4*/
      sub_8D8( /*0x19e9*/
        (__int64)"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
        617,
        (__int64)"(AsciiStrnLenS (Format, (_gPcd_FixedAtBuild_PcdMaximumAsciiStringLength) + 1) <= (_gPcd_FixedAtBuild_Pc"
                 "dMaximumAsciiStringLength))");
    if ( sub_1754(LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2) > 0xF4240 ) /*0x19f9*/
      return 0; /*0x19f9*/
    n2_1 = 1; /*0x19ff*/
    n0xFFFF = 255; /*0x1a07*/
  }
  n0xFFFF_1 = n0xFFFF; /*0x1a0c*/
  if ( v9 ) /*0x1a13*/
  {
    v8 &= -(__int64)(n256 != 0); /*0x1a1e*/
  }
  else if ( !n256 ) /*0x1a26*/
  {
    return 0; /*0x1a26*/
  }
  v14 = 0; /*0x1a2c*/
  v15 = 0; /*0x1a2e*/
  v100 = 0; /*0x1a31*/
  v86 = 0; /*0x1a35*/
  v88 = 0; /*0x1a39*/
  if ( v8 ) /*0x1a40*/
  {
    v100 = v8; /*0x1a4d*/
    v14 = (_BYTE *)(v8 + n2 * (n256 - 1)); /*0x1a51*/
    v88 = (unsigned __int64)v14; /*0x1a54*/
  }
  n2_2 = n2_1; /*0x1a58*/
  if ( n2_1 == 1 ) /*0x1a60*/
    v17 = 0; /*0x1a62*/
  else
    v17 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x1a6b*/
  n10 = n0xFFFF /*0x1a77*/
      & (v17 | (unsigned __int64)(unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2);
  v18 = n10 == 0; /*0x1a77*/
LABEL_245:
  n13 = n10; /*0x2637*/
  if ( !v18 )
  {
    LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_3 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1a7f*/
    LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_4 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1a82*/
    if ( !v8 || v8 < (unsigned __int64)v14 )
    {
      v95 = 0; /*0x1a93*/
      v22 = 0; /*0x1a98*/
      v97 = 0; /*0x1a9b*/
      v6 &= 0x2140u; /*0x1aa1*/
      n43_1 = 0; /*0x1aa8*/
      v23 = 0; /*0x1aab*/
      v104 = v6; /*0x1aae*/
      v106 = 0; /*0x1ab2*/
      v24 = 1; /*0x1ab8*/
      v92 = 1; /*0x1abd*/
      v90 = 0; /*0x1ac5*/
      if ( n10 == 10 ) /*0x1acd*/
      {
        LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x2299*/
        _r_n_1 = "\r\n"; /*0x229c*/
        if ( n2_2 == 1 ) /*0x22a6*/
          v59 = 0; /*0x22a8*/
        else
          v59 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x22b1*/
        n13 = n0xFFFF_1 /*0x22c6*/
            & ((unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2
             | (unsigned __int64)v59);
        if ( n13 != 13 ) /*0x22ca*/
          LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_3; /*0x22ca*/
        LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x22ce*/
        goto LABEL_92; /*0x22d2*/
      }
      if ( n10 == 13 ) /*0x1ad7*/
      {
        LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x225b*/
        LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x225e*/
        if ( n2_2 == 1 ) /*0x2265*/
          v58 = 0; /*0x2267*/
        else
          v58 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x2270*/
        n13_2 = n0xFFFF_1 /*0x227d*/
              & ((unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2
               | (unsigned __int64)v58);
        goto LABEL_98; /*0x2281*/
      }
      if ( n10 != 37 ) /*0x1ae1*/
      {
        LOWORD(v6) = v6 | 0x400; /*0x1ae3*/
        _r_n_1 = (const char *)&n13; /*0x1ae8*/
        v104 = v6; /*0x1aec*/
        goto LABEL_92; /*0x1af0*/
      }
      va_1 = va; /*0x1af5*/
      while ( 1 )
      {
        while ( 1 )
        {
          LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_5 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1b06*/
          LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x1b09*/
          LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1b0c*/
          v28 = n2_2 == 1 ? 0 : LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8;
          n13_1 = n0xFFFF_1 /*0x1b2b*/
                & (v28
                 | (unsigned __int64)(unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2);
          n13 = n13_1; /*0x1b2e*/
          if ( n13_1 > 0x2D ) /*0x1b36*/
            break; /*0x1b36*/
          switch ( n13_1 )
          {
            case 0x2DuLL:
              v6 |= 1uLL; /*0x1be9*/
              goto LABEL_77; /*0x1bed*/
            case 0uLL:
              v24 = 0; /*0x1cb0*/
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_5; /*0x1cb2*/
              v92 = 0; /*0x1cb6*/
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_5; /*0x1cba*/
LABEL_79:
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_6 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1cbd*/
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_4 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1cc0*/
              if ( n13_1 > 0x67 ) /*0x1cc7*/
              {
                v47 = n13_1 - 112; /*0x1ef6*/
                if ( v47 ) /*0x1efa*/
                {
                  v48 = v47 - 2; /*0x1f00*/
                  if ( v48 ) /*0x1f04*/
                  {
                    v49 = v48 - 1; /*0x1f0a*/
                    if ( !v49 ) /*0x1f0e*/
                    {
LABEL_120:
                      LOWORD(v6) = v6 | 0x400; /*0x1fc2*/
                      v104 = v6; /*0x1fc7*/
LABEL_121:
                      _r_n_1 = (const char *)*va_1; /*0x1fd0*/
                      va = va_1 + 1; /*0x1fd7*/
                      if ( !*va_1 ) /*0x1fd0*/
                      {
                        LOWORD(v6) = v6 & 0xFBFF; /*0x1ff0*/
                        _r_n_1 = "<null string>"; /*0x1ff5*/
                        v104 = v6; /*0x1ffc*/
                      }
                      v24 &= -(__int64)((v6 & 0x800) != 0); /*0x200e*/
                      goto LABEL_91; /*0x2011*/
                    }
                    v50 = v49 - 1; /*0x1f14*/
                    if ( v50 ) /*0x1f18*/
                    {
                      n3 = v50 - 1; /*0x1f1a*/
                      if ( n3 ) /*0x1f1e*/
                      {
                        if ( n3 != 3 ) /*0x1f28*/
                          goto LABEL_115; /*0x1f28*/
                        goto LABEL_133; /*0x1f28*/
                      }
                      goto LABEL_134; /*0x1f1e*/
                    }
                    va = va_1 + 1; /*0x1f43*/
                    if ( !*va_1 ) /*0x1f3c*/
                    {
                      v22 = v90; /*0x1f5c*/
                      _r_n_1 = "<null time>"; /*0x1f60*/
                      goto LABEL_91; /*0x1f67*/
                    }
                    sub_26C4( /*0x1fac*/
                      _r_n,
                      38,
                      0,
                      "%02d/%02d/%04d  %02d:%02d",
                      *((unsigned __int8 *)*va_1 + 2),
                      *((unsigned __int8 *)*va_1 + 3),
                      *(unsigned __int16 *)*va_1,
                      *((unsigned __int8 *)*va_1 + 4),
                      *((unsigned __int8 *)*va_1 + 5));
                    _r_n_1 = _r_n; /*0x1fb1*/
LABEL_119:
                    v22 = v90; /*0x1fb5*/
                    v23 = 0; /*0x1fb9*/
                    goto LABEL_91; /*0x1fbd*/
                  }
                  n5 = (unsigned __int64)*va_1; /*0x201b*/
                  va = va_1 + 1; /*0x2022*/
                  _r_n_1 = _r_n; /*0x2036*/
                  if ( (__int64)*va_1 >= 0 ) /*0x203d*/
                  {
                    if ( n5 <= 5 ) /*0x206b*/
                    {
                      _r_n_1 = off_33E0[n5]; // "Success" /*0x2074*/
                      goto LABEL_129; /*0x2074*/
                    }
                  }
                  else if ( (n5 & 0x7FFFFFFFFFFFFFFFLL) - 1 <= 0x20 ) /*0x2057*/
                  {
                    _r_n_1 = off_33E0[n5 + 5]; // "Success" /*0x2060*/
LABEL_129:
                    if ( _r_n_1 != _r_n ) /*0x207f*/
                      goto LABEL_91; /*0x207f*/
                  }
                  sub_26C4(_r_n, 38, 0, "%08X", n5); /*0x209c*/
                  goto LABEL_119; /*0x20a1*/
                }
                LOWORD(v6) = v6 & 0xFFC9 | 0x10; /*0x20aa*/
LABEL_132:
                LOWORD(v6) = v6 | 0x20; /*0x20ae*/
LABEL_133:
                LOWORD(v6) = v6 | 0x80; /*0x20b2*/
LABEL_134:
                if ( (v6 & 0x80u) == 0LL ) /*0x20ba*/
                  LOWORD(v6) = v6 & 0xBFFD | 0x4000; /*0x20c0*/
LABEL_136:
                if ( (v6 & 0x10) != 0 ) /*0x20cb*/
                  v53 = (signed __int64)*va_1; /*0x20f0*/
                else
                  v53 = *(int *)va_1; /*0x20d2*/
                va = va_1 + 1; /*0x20d9*/
                n43 = (8 * v6) & 0x20; /*0x2113*/
                if ( (v6 & 2) != 0 ) /*0x211f*/
                  n43 = 43; /*0x211f*/
                n43_1 = n43; /*0x2128*/
                v55 = (v6 & 8) != 0; /*0x212b*/
                v106 = v55; /*0x212f*/
                if ( (v6 & 0x80u) != 0LL ) /*0x2139*/
                {
                  v55 = 0; /*0x217b*/
                  n16 = 16; /*0x217e*/
                  v106 = 0; /*0x2184*/
                  if ( (v6 & 0x10) != 0 || v53 >= 0 ) /*0x2193*/
                    goto LABEL_152; /*0x2193*/
                }
                else
                {
                  n16 = 10; /*0x213b*/
                  if ( (v6 & 8) != 0 ) /*0x2144*/
                  {
                    LOWORD(v6) = v6 & 0xFFDF; /*0x2146*/
                    v24 = 1; /*0x214a*/
                  }
                  if ( v53 < 0 && (v6 & 0x4000) == 0 ) /*0x2158*/
                  {
                    LOWORD(v6) = v6 | 2; /*0x215a*/
                    n43 = 45; /*0x215e*/
                    n43_1 = 45; /*0x2161*/
                    v53 = -v53; /*0x2164*/
LABEL_152:
                    v22 = sub_1844(_r_n, v53, n16) - _r_n; /*0x2197*/
                    v90 = v22; /*0x21ad*/
                    if ( !v53 ) /*0x21b4*/
                    {
                      v22 &= -(__int64)(v24 != 0); /*0x21bf*/
                      v90 = v22; /*0x21c2*/
                    }
                    _r_n_1 = &_r_n[v22]; /*0x21d4*/
                    v57 = 3 - v22 % 3; /*0x21ef*/
                    if ( !(v22 % 3) ) /*0x21ec*/
                      v57 = 0; /*0x21f5*/
                    v97 = v57; /*0x21f9*/
                    if ( v55 && v22 ) /*0x2205*/
                    {
                      v22 += (v22 - 1) / 3; /*0x2214*/
                      v57 = v97; /*0x2217*/
                      v90 = v22; /*0x221b*/
                    }
                    if ( n43 ) /*0x2222*/
                    {
                      v90 = ++v22; /*0x2227*/
                      ++v24; /*0x222b*/
                    }
                    LOWORD(v6) = v6 | 0x1000; /*0x222e*/
                    v23 = 1; /*0x2233*/
                    v104 = v6; /*0x2239*/
                    if ( (v6 & 0xA21) == 0x220 ) /*0x2248*/
                    {
                      v24 = (__int64)v95; /*0x224e*/
                      v97 = v57; /*0x2252*/
                    }
                    goto LABEL_91; /*0x2256*/
                  }
                  if ( (v6 & 0x4010) != 0x4000 ) /*0x2177*/
                    goto LABEL_152; /*0x2177*/
                }
                v53 = (unsigned int)v53; /*0x2195*/
                goto LABEL_152; /*0x2195*/
              }
              if ( n13_1 == 103 ) /*0x1ccd*/
              {
                v43 = (unsigned __int16 *)*va_1; /*0x1e28*/
                va = va_1 + 1; /*0x1e2f*/
                if ( *va_1 ) /*0x1e28*/
                {
                  v44 = *(_DWORD *)v43; /*0x1e58*/
                  v45 = (unsigned __int16)sub_169C(v43 + 2); /*0x1e68*/
                  v46 = (unsigned __int16)sub_169C(v43 + 3); /*0x1ecb*/
                  sub_26C4( /*0x1edc*/
                    _r_n,
                    38,
                    0,
                    "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
                    v44,
                    v45,
                    v46,
                    *((unsigned __int8 *)v43 + 8),
                    *((unsigned __int8 *)v43 + 9),
                    *((unsigned __int8 *)v43 + 10),
                    *((unsigned __int8 *)v43 + 11),
                    *((unsigned __int8 *)v43 + 12),
                    *((unsigned __int8 *)v43 + 13),
                    *((unsigned __int8 *)v43 + 14),
                    *((unsigned __int8 *)v43 + 15));
                  v22 = v90; /*0x1ee1*/
                  _r_n_1 = _r_n; /*0x1ee5*/
                  v23 = 0; /*0x1ee9*/
                  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1; /*0x1eed*/
                }
                else
                {
                  _r_n_1 = "<null guid>"; /*0x1e48*/
                }
                v24 = v92; /*0x1e4f*/
                goto LABEL_91; /*0x1e53*/
              }
              v33 = n13_1 - 10; /*0x1cd3*/
              if ( !v33 ) /*0x1cd7*/
              {
                LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x1dd7*/
                _r_n_1 = "\r\n"; /*0x1dda*/
                LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1de1*/
                if ( n2_2 == 1 ) /*0x1de9*/
                  v42 = 0; /*0x1deb*/
                else
                  v42 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x1df4*/
                v15 = v86; /*0x1df7*/
                n13 = n0xFFFF_1 /*0x1e09*/
                    & ((unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2
                     | (unsigned __int64)v42);
                if ( n13 != 13 ) /*0x1e11*/
                {
                  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_6; /*0x1e17*/
                  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_6; /*0x1e1a*/
                }
                goto LABEL_92; /*0x1e1e*/
              }
              v34 = v33 - 3; /*0x1cdd*/
              if ( !v34 ) /*0x1ce1*/
              {
                LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x1d93*/
                LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x1d96*/
                if ( n2_2 == 1 ) /*0x1d9e*/
                  v40 = 0; /*0x1da0*/
                else
                  v40 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x1da9*/
                v15 = v86; /*0x1dac*/
                n13_2 = n0xFFFF_1 /*0x1dba*/
                      & ((unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2
                       | (unsigned __int64)v40);
LABEL_98:
                n13 = n13_2; /*0x1dbd*/
                if ( n13_2 == 10 ) /*0x1dc5*/
                {
                  _r_n_1 = "\r\n"; /*0x1dcb*/
                }
                else
                {
                  _r_n_1 = "\r"; /*0x2286*/
                  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_4; /*0x228d*/
                  LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_4; /*0x2291*/
                }
                goto LABEL_92; /*0x1dd2*/
              }
              v35 = v34 - 70; /*0x1ce7*/
              if ( !v35 ) /*0x1ceb*/
                goto LABEL_120; /*0x1ceb*/
              v36 = v35 - 5; /*0x1cf1*/
              if ( !v36 ) /*0x1cf5*/
                goto LABEL_132; /*0x1cf5*/
              v37 = v36 - 9; /*0x1cfb*/
              if ( !v37 ) /*0x1cff*/
                goto LABEL_121; /*0x1cff*/
              v38 = v37 - 2; /*0x1d05*/
              if ( !v38 ) /*0x1d09*/
              {
                va = va_1 + 1; /*0x1d27*/
                v99 = *(unsigned __int16 *)va_1; /*0x1d3c*/
                _r_n_1 = (const char *)&v99; /*0x1d40*/
                goto LABEL_90; /*0x1d40*/
              }
              if ( v38 == 1 ) /*0x1d0f*/
                goto LABEL_136; /*0x1d0f*/
LABEL_115:
              _r_n_1 = (const char *)&n13; /*0x1f2e*/
LABEL_90:
              LOWORD(v6) = v6 | 0x400; /*0x1d44*/
              v104 = v6; /*0x1d49*/
LABEL_91:
              v15 = v86; /*0x1d4d*/
LABEL_92:
              v39 = (v6 & 0x400) != 0 ? 0xFFFFLL : 255LL;
              if ( (v6 & 0x1000) != 0 ) /*0x1d81*/
              {
                v103 = ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64) - 1; /*0x1d8a*/
              }
              else
              {
                v22 = 0; /*0x22d7*/
                for ( i = _r_n_1; ; i += 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64) ) /*0x22da*/
                {
                  if ( v22 >= v24 ) /*0x22e0*/
                  {
                    v103 = 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64); /*0x22e2*/
                    if ( (v6 & 0x800) != 0 ) /*0x22eb*/
                      break; /*0x22eb*/
                  }
                  v103 = 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64); /*0x22ff*/
                  if ( ((*(unsigned __int8 *)i | (unsigned __int64)(i[1] << 8)) & v39) == 0 ) /*0x2306*/
                    break; /*0x2306*/
                  ++v22; /*0x2308*/
                }
                v90 = v22; /*0x2310*/
              }
              if ( v24 < v22 ) /*0x231a*/
                v24 = v22; /*0x231a*/
              n512 = v6 & 0x201; /*0x231e*/
              v93 = v24; /*0x2324*/
              n512_1 = n512; /*0x2328*/
              if ( n512 != 512 || (v86 = n2 * ((_QWORD)v95 - v24) + v15, (v6 & 0x2000) != 0) ) /*0x2352*/
              {
                v62 = v88; /*0x2379*/
              }
              else
              {
                v62 = v88; /*0x2354*/
                if ( v8 ) /*0x235b*/
                {
                  v63 = sub_1810((_BYTE *)v8, v88, (__int64)v95 - v24, 32, n2); /*0x236b*/
                  v22 = v90; /*0x2370*/
                  v8 = (unsigned __int64)v63; /*0x2374*/
                }
              }
              v64 = v86; /*0x237d*/
              if ( v23 ) /*0x2384*/
              {
                if ( !n43_1 || (v64 = n2 + v86, v87 = v64, (v6 & 0x2000) != 0) ) /*0x23a0*/
                {
                  v65 = v88; /*0x23dd*/
                }
                else
                {
                  v65 = v88; /*0x23a2*/
                  if ( v8 ) /*0x23a9*/
                  {
                    for ( j = 0; j < 1; ++j ) /*0x23af*/
                    {
                      if ( v8 >= v88 ) /*0x23b4*/
                        break; /*0x23b4*/
                      *(_BYTE *)v8 = n43_1; /*0x23b6*/
                      if ( n2 != 1 ) /*0x23be*/
                        *(_BYTE *)(v8 + 1) = 0; /*0x23c7*/
                      v8 += n2; /*0x23cb*/
                    }
                    v64 = v87; /*0x23d7*/
                  }
                }
                n2_3 = n2; /*0x23e1*/
                i_1 = v24 - v22; /*0x23e8*/
                v86 = n2 * (v24 - v22) + v64; /*0x23f8*/
                v69 = v6 & 0x2000; /*0x23fc*/
                if ( (v6 & 0x2000) == 0 && v8 ) /*0x2407*/
                  v8 = (unsigned __int64)sub_1810((_BYTE *)v8, v65, i_1, (unsigned __int16)v69 + 48, n2); /*0x241d*/
                goto LABEL_201; /*0x241d*/
              }
              n2_3 = n2; /*0x2568*/
              i_2 = v24 - v22; /*0x256f*/
              v80 = n2 * (v24 - v22) + v86; /*0x257c*/
              v86 = v80; /*0x257f*/
              v69 = v6 & 0x2000; /*0x2583*/
              if ( (v6 & 0x2000) == 0 && v8 ) /*0x258e*/
              {
                v81 = sub_1810((_BYTE *)v8, v62, i_2, (unsigned __int16)v69 + 32, n2); /*0x259c*/
                v80 = v86; /*0x25a1*/
                v8 = (unsigned __int64)v81; /*0x25a5*/
              }
              if ( !n43_1 || (v86 = n2_3 + v80, (v6 & 0x2000) != 0) ) /*0x25bd*/
              {
LABEL_201:
                v70 = v88; /*0x2420*/
              }
              else
              {
                v70 = v88; /*0x25c3*/
                if ( v8 ) /*0x25ca*/
                {
                  for ( k = 0; k < 1; ++k ) /*0x25d3*/
                  {
                    if ( v8 >= v88 ) /*0x25d8*/
                      break; /*0x25d8*/
                    *(_BYTE *)v8 = n43_1; /*0x25de*/
                    if ( n2_3 != 1 ) /*0x25e6*/
                      *(_BYTE *)(v8 + 1) = 0; /*0x25ef*/
                    v8 += n2_3; /*0x25f3*/
                  }
                }
              }
              v71 = n43_1 != 0; /*0x242f*/
              if ( v71 < v90 ) /*0x2435*/
              {
                v72 = v86; /*0x243f*/
                v73 = v97; /*0x2443*/
                do /*0x24f2*/
                {
                  v72 += n2_3; /*0x2452*/
                  v74 = v39 & *(_WORD *)_r_n_1; /*0x245f*/
                  if ( !v69 && v8 ) /*0x246a*/
                  {
                    v75 = v88; /*0x246c*/
                    for ( m = 0; m < 1; ++m ) /*0x2470*/
                    {
                      if ( v8 >= v75 ) /*0x2476*/
                        break; /*0x2476*/
                      *(_BYTE *)v8 = v74; /*0x2478*/
                      if ( n2_3 != 1 ) /*0x2480*/
                      {
                        *(_BYTE *)(v8 + 1) = HIBYTE(v74); /*0x2489*/
                        v75 = v88; /*0x248d*/
                      }
                      v8 += n2_3; /*0x2491*/
                    }
                    v70 = v88; /*0x249d*/
                  }
                  _r_n_1 += v103; /*0x24a1*/
                  ++v71; /*0x24a4*/
                  if ( v106 && ++v73 == 3 ) /*0x24b3*/
                  {
                    v73 = 0; /*0x24b5*/
                    if ( ++v71 >= v90 ) /*0x24be*/
                      break; /*0x24be*/
                    v72 += n2_3; /*0x24c0*/
                    if ( !v69 && v8 ) /*0x24cb*/
                    {
                      for ( n = 0; n < 1; ++n ) /*0x24cd*/
                      {
                        if ( v8 >= v70 ) /*0x24d2*/
                          break; /*0x24d2*/
                        *(_BYTE *)v8 = 44; /*0x24d4*/
                        if ( n2_3 != 1 ) /*0x24dd*/
                          *(_BYTE *)(v8 + 1) = 0; /*0x24df*/
                        v8 += n2_3; /*0x24e3*/
                      }
                    }
                  }
                }
                while ( v71 < v90 ); /*0x24f2*/
                LOWORD(v6) = v104; /*0x24f8*/
                LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1; /*0x24fc*/
                v86 = v72; /*0x2500*/
                n512 = n512_1; /*0x2504*/
              }
              v15 = v86; /*0x2508*/
              if ( n512 != 513 || (v15 = n2_3 * ((_QWORD)v95 - v93) + v86, v86 = v15, v69) ) /*0x2532*/
              {
                v14 = (_BYTE *)v88; /*0x2604*/
              }
              else
              {
                v14 = (_BYTE *)v88; /*0x2538*/
                if ( v8 ) /*0x253f*/
                {
                  v78 = sub_1810((_BYTE *)v8, v88, (__int64)v95 - v93, 32, n2_3); /*0x2557*/
                  v15 = v86; /*0x255c*/
                  v8 = (unsigned __int64)v78; /*0x2560*/
                }
              }
              n2_2 = n2_1; /*0x2608*/
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_1; /*0x260c*/
              LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_1 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2; /*0x260f*/
              if ( n2_1 == 1 ) /*0x2617*/
                v83 = 0; /*0x2619*/
              else
                v83 = LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8; /*0x2622*/
              n10 = n0xFFFF_1 /*0x2633*/
                  & ((unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2
                   | (unsigned __int64)v83);
              v18 = n10 == 0; /*0x2633*/
              goto LABEL_245; /*0x2633*/
            case 0x20uLL:
              v6 |= 4uLL; /*0x1be0*/
              goto LABEL_77; /*0x1be4*/
          }
          if ( n13_1 != 42 ) /*0x1b5c*/
          {
            if ( n13_1 == 43 ) /*0x1b62*/
            {
              v6 |= 2uLL; /*0x1b77*/
            }
            else
            {
              if ( n13_1 != 44 ) /*0x1b68*/
                goto LABEL_79; /*0x1b68*/
              v6 |= 8uLL; /*0x1b6e*/
            }
            goto LABEL_77; /*0x1b72*/
          }
          if ( (v6 & 0x800) != 0 ) /*0x1b83*/
          {
            v24 = (__int64)*va_1++; /*0x1bbc*/
            va = va_1; /*0x1bc3*/
            v92 = v24; /*0x1bd7*/
          }
          else
          {
            v6 |= 0x200uLL; /*0x1b85*/
            v104 = v6; /*0x1b8a*/
            v30 = (unsigned __int16 *)*va_1++; /*0x1b93*/
            va = va_1; /*0x1b9a*/
            v95 = v30; /*0x1bae*/
          }
        }
        if ( n13_1 == 46 ) /*0x1bf6*/
        {
          v6 |= 0x800uLL; /*0x1ca4*/
          goto LABEL_77; /*0x1ca4*/
        }
        if ( n13_1 == 48 ) /*0x1c00*/
          break; /*0x1c00*/
        if ( n13_1 <= 0x30 ) /*0x1c02*/
          goto LABEL_79; /*0x1c02*/
        if ( n13_1 <= 0x39 )
        {
LABEL_67:
          v22 = 0; /*0x1c34*/
          do
          {
            if ( n13_1 > 0x39 ) /*0x1c45*/
              break; /*0x1c45*/
            LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 += n2_2; /*0x1c4b*/
            v22 = n13_1 + 2 * (5 * v22 - 24); /*0x1c52*/
            v31 = n2_2 == 1 ? 0 : LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2[1] << 8;
            n13_1 = n0xFFFF_1 /*0x1c71*/
                  & (v31
                   | (unsigned __int64)(unsigned __int8)*LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2);
          }
          while ( n13_1 >= 0x30 );
          v90 = v22; /*0x1c7a*/
          LnvDriverDxeInit___CreateEventEx___DsEfiEventReadyToBoot_Status_2 -= n2_2; /*0x1c7e*/
          if ( (v6 & 0x800) != 0 ) /*0x1c84*/
          {
            v24 = v22; /*0x1c98*/
            v92 = v22; /*0x1c9b*/
          }
          else
          {
            v6 |= 0x200uLL; /*0x1c86*/
            v95 = (unsigned __int16 *)v22; /*0x1c8b*/
            v104 = v6; /*0x1c8f*/
          }
        }
        else
        {
          if ( ((n13_1 - 76) & 0xFFFFFFFFFFFFFFDFuLL) != 0 ) /*0x1c18*/
            goto LABEL_79; /*0x1c18*/
          v6 |= 0x10uLL; /*0x1c1e*/
LABEL_77:
          v104 = v6; /*0x1ca7*/
        }
      }
      if ( (v6 & 0x800) == 0 ) /*0x1c2a*/
      {
        v6 |= 0x20uLL; /*0x1c2c*/
        v104 = v6; /*0x1c30*/
      }
      goto LABEL_67; /*0x1c30*/
    }
  }
  if ( (v6 & 0x2000) != 0 ) /*0x2646*/
    return v15 / n2; /*0x2650*/
  if ( !v8 ) /*0x2658*/
    sub_8D8( /*0x266d*/
      (__int64)"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
      1216,
      (__int64)"Buffer != ((void *) 0)");
  v84 = (_BYTE *)v8; /*0x2675*/
  for ( ii = 0; ii < 1; ++ii ) /*0x2678*/
  {
    if ( v84 >= &v14[n2] ) /*0x2681*/
      break; /*0x2681*/
    *v84 = 0; /*0x2683*/
    if ( n2 != 1 ) /*0x268a*/
      v84[1] = 0; /*0x268c*/
    v84 += n2; /*0x2690*/
  }
  return (__int64)(v8 - v100) / n2; /*0x26b0*/
}