unsigned __int64 __fastcall sub_E14(
unsigned __int64 a1,
unsigned __int64 n0xF4240,
__int64 a3,
unsigned __int8 *a4,
unsigned __int16 **a5)
{
unsigned __int8 *v5; // rsi
__int64 v6; // r12
unsigned __int64 v8; // r13
__int64 v9; // rdi
__int64 v11; // r8
int n1000000; // r9d
__int64 n2_1; // r15
unsigned __int64 n1000000_2; // rax
unsigned int n1000000_1; // r9d
unsigned __int64 v16; // rax
unsigned int v17; // r9d
unsigned __int64 v18; // rdi
unsigned __int64 v19; // r10
__int64 v20; // rax
__int64 v21; // rcx
unsigned __int8 *v22; // rdx
unsigned __int8 *v23; // r8
unsigned __int64 v24; // r9
char v25; // r11
unsigned __int64 v26; // rdi
const char *_r_n_1; // rbx
unsigned __int16 **v28; // r10
unsigned __int8 *v29; // rdx
int v30; // eax
unsigned __int64 n13_1; // rcx
unsigned __int16 *v32; // rax
int v33; // eax
unsigned __int8 *v34; // rdx
unsigned __int64 v35; // rcx
unsigned __int64 v36; // rcx
unsigned __int64 v37; // rcx
unsigned __int64 v38; // rcx
unsigned __int64 v39; // rcx
unsigned __int64 v40; // rcx
__int64 v41; // r15
int v42; // eax
int v43; // eax
unsigned __int8 *v44; // rdi
int v45; // r15d
int v46; // r14d
unsigned __int16 v47; // ax
unsigned __int64 v48; // rcx
unsigned __int64 v49; // rcx
unsigned __int64 v50; // rcx
unsigned __int64 v51; // rcx
unsigned __int64 n3; // rcx
unsigned __int16 *n5; // rcx
__int64 v54; // rbx
char n43; // r14
bool v56; // r15
__int64 n16; // r8
unsigned __int64 v58; // rdx
int v59; // eax
const char *i; // r8
__int64 n512; // r14
int v62; // edx
__int64 v63; // rax
__int64 v64; // rcx
int v65; // r10d
__int64 j; // rcx
__int64 n2_3; // r11
int v68; // r8d
__int64 v69; // rdi
unsigned __int64 v70; // r8
unsigned __int64 v71; // rdx
__int64 v72; // r14
unsigned __int64 v73; // rsi
__int16 v74; // cx
unsigned __int64 v75; // rax
__int64 m; // r8
__int64 n; // rax
__int64 v78; // rax
int v79; // r8d
__int64 v80; // rcx
__int64 v81; // rax
__int64 k; // rcx
int v83; // eax
unsigned __int64 n10; // rcx
_BYTE *v85; // rax
__int64 ii; // rdx
__int64 v87; // [rsp+80h] [rbp-80h]
__int64 v88; // [rsp+80h] [rbp-80h]
unsigned __int64 v89; // [rsp+88h] [rbp-78h]
unsigned int n2; // [rsp+90h] [rbp-70h]
unsigned __int64 v91; // [rsp+98h] [rbp-68h]
char n43_1; // [rsp+A0h] [rbp-60h]
__int64 v93; // [rsp+B0h] [rbp-50h]
unsigned __int64 v94; // [rsp+B0h] [rbp-50h]
unsigned __int64 n13; // [rsp+B8h] [rbp-48h] BYREF
unsigned __int16 *v96; // [rsp+C0h] [rbp-40h]
__int64 n0xFFFF; // [rsp+C8h] [rbp-38h]
unsigned __int64 v98; // [rsp+D0h] [rbp-30h]
__int64 v99; // [rsp+D8h] [rbp-28h] BYREF
__int64 n2_2; // [rsp+E0h] [rbp-20h]
unsigned __int64 v101; // [rsp+E8h] [rbp-18h]
_BYTE _r_n[40]; // [rsp+F0h] [rbp-10h] BYREF
__int64 n512_1; // [rsp+118h] [rbp+18h]
__int64 v104; // [rsp+168h] [rbp+68h]
__int16 v105; // [rsp+170h] [rbp+70h]
unsigned __int8 *v106; // [rsp+178h] [rbp+78h]
bool v107; // [rsp+188h] [rbp+88h]
v106 = a4; /*0xe19*/
v5 = a4; /*0xe43*/
LOWORD(v6) = a3; /*0xe46*/
v8 = a1; /*0xe4c*/
if ( n0xF4240 ) /*0xe55*/
{
v9 = a3 & 0x2000; /*0xe57*/
if ( (a3 & 0x2000) == 0 && !a1 ) /*0xe6b*/
{
sub_788("e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c", 578, "(Buffer != ((void *) 0))"); /*0xe7c*/
if ( !v8 ) /*0xe84*/
return 0; /*0xe84*/
}
}
else
{
v9 = a3 & 0x2000; /*0xe8d*/
if ( (a3 & 0x2000) == 0 ) /*0xe93*/
goto LABEL_9; /*0xe93*/
}
if ( !v5 ) /*0xea1*/
{
sub_788("e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c", 586, "(Format != ((void *) 0))"); /*0xeb2*/
return 0; /*0xe88*/
}
LABEL_9:
if ( (v6 & 0x40) != 0 ) /*0xec0*/
{
if ( n0xF4240 > 0xF4240 ) /*0xed8*/
{
sub_788( /*0xee9*/
"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
595,
"(BufferSize <= (_gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength))");
return 0; /*0xef9*/
}
n2 = 2; /*0xf02*/
}
else
{
if ( n0xF4240 > 0xF4240 ) /*0xf23*/
{
sub_788( /*0xf34*/
"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
600,
"(BufferSize <= (_gPcd_FixedAtBuild_PcdMaximumAsciiStringLength))");
return 0; /*0xf46*/
}
n2 = 1; /*0xf52*/
}
if ( (v6 & 0x100) != 0 ) /*0xf5e*/
{
if ( (unsigned __int64)sub_C9C(v5, 1000001, a3, 1000000) > 0xF4240 ) /*0xf80*/
sub_788( /*0xf91*/
"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
611,
"(StrnLenS ((CHAR16 *)Format, (_gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength) + 1) <= (_gPcd_FixedAtBuild_PcdM"
"aximumUnicodeStringLength))");
if ( (unsigned __int64)sub_C9C(v5, 1000001, v11, n1000000) > 0xF4240 ) /*0xfaf*/
return 0; /*0xfaf*/
n2_1 = 2; /*0xfba*/
n0xFFFF = 0xFFFF; /*0xfc0*/
}
else
{
n1000000_2 = sub_D0C(v5, 1000001); /*0xfdb*/
if ( n1000000_2 > n1000000_1 ) /*0xfe6*/
{
sub_788( /*0xff7*/
"e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c",
617,
"(AsciiStrnLenS (Format, (_gPcd_FixedAtBuild_PcdMaximumAsciiStringLength) + 1) <= (_gPcd_FixedAtBuild_PcdMaximumA"
"sciiStringLength))");
n1000000_1 = 1000000; /*0xffc*/
}
v16 = sub_D0C(v5, n1000000_1 + 1); /*0x100a*/
if ( v16 > v17 ) /*0x1015*/
return 0; /*0x1015*/
n2_1 = 1; /*0x101b*/
n0xFFFF = 255; /*0x1021*/
}
n2_2 = n2_1; /*0x1029*/
if ( v9 ) /*0x1030*/
{
v8 &= -(__int64)(n0xF4240 != 0); /*0x103b*/
}
else if ( !n0xF4240 ) /*0x1043*/
{
return 0; /*0x1043*/
}
v18 = 0; /*0x1049*/
v19 = 0; /*0x104b*/
v101 = 0; /*0x104e*/
v87 = 0; /*0x1052*/
v89 = 0; /*0x1056*/
if ( v8 ) /*0x105d*/
{
v101 = v8; /*0x106a*/
v18 = v8 + n2 * (n0xF4240 - 1); /*0x106e*/
v89 = v18; /*0x1071*/
}
if ( n2_1 == 1 ) /*0x1079*/
LODWORD(v20) = 0; /*0x107b*/
else
LODWORD(v20) = (char)v5[1] << 8; /*0x1083*/
v21 = *v5; /*0x1086*/
v20 = (int)v20; /*0x1089*/
LABEL_243:
n10 = n0xFFFF & (v20 | v21); /*0x1c30*/
n13 = n10; /*0x1c3a*/
if ( n10 )
{
v22 = v5; /*0x1090*/
v23 = v5; /*0x1093*/
if ( !v8 || v8 < v18 )
{
v96 = 0; /*0x10a4*/
v24 = 0; /*0x10a9*/
v98 = 0; /*0x10ac*/
v6 &= 0x2140u; /*0x10b2*/
n43_1 = 0; /*0x10b9*/
v25 = 0; /*0x10bc*/
v105 = v6; /*0x10bf*/
v107 = 0; /*0x10c3*/
v26 = 1; /*0x10c9*/
v93 = 1; /*0x10ce*/
v91 = 0; /*0x10d6*/
if ( n10 == 10 ) /*0x10de*/
{
v5 += n2_1; /*0x189b*/
_r_n_1 = "\r\n"; /*0x189e*/
if ( n2_1 == 1 ) /*0x18a8*/
v59 = 0; /*0x18aa*/
else
v59 = (char)v5[1] << 8; /*0x18b2*/
n13 = n0xFFFF & (*v5 | (unsigned __int64)v59); /*0x18c6*/
if ( n13 != 13 ) /*0x18ca*/
v5 = v22; /*0x18ca*/
v106 = v5; /*0x18ce*/
goto LABEL_91; /*0x18d2*/
}
if ( n10 == 13 ) /*0x10e8*/
{
v5 += n2_1; /*0x1869*/
v106 = v5; /*0x186c*/
if ( n2_1 == 1 ) /*0x1873*/
v42 = 0; /*0x1875*/
else
v42 = (char)v5[1] << 8; /*0x1880*/
LABEL_97:
n13 = n0xFFFF & (*v5 | (unsigned __int64)v42); /*0x13b5*/
if ( n13 == 10 ) /*0x13c9*/
{
_r_n_1 = "\r\n"; /*0x13cf*/
}
else
{
_r_n_1 = "\r"; /*0x1888*/
v106 = v23; /*0x188f*/
v5 = v23; /*0x1893*/
}
goto LABEL_91; /*0x13d6*/
}
if ( n10 != 37 ) /*0x10f2*/
{
LOWORD(v6) = v6 | 0x400; /*0x10f4*/
_r_n_1 = (const char *)&n13; /*0x10f9*/
v105 = v6; /*0x10fd*/
goto LABEL_91; /*0x1101*/
}
v28 = a5; /*0x1106*/
while ( 1 )
{
while ( 1 )
{
v29 = v5; /*0x1113*/
v5 += n2_1; /*0x1116*/
v106 = v5; /*0x1119*/
v30 = n2_1 == 1 ? 0 : (char)v5[1] << 8;
n13_1 = n0xFFFF & (v30 | (unsigned __int64)*v5); /*0x1136*/
n13 = n13_1; /*0x1139*/
if ( n13_1 > 0x2D ) /*0x1141*/
break; /*0x1141*/
switch ( n13_1 )
{
case 0x2DuLL:
v6 |= 1uLL; /*0x11f4*/
goto LABEL_76; /*0x11f8*/
case 0uLL:
v26 = 0; /*0x12b6*/
v106 = v29; /*0x12b8*/
v93 = 0; /*0x12bc*/
v5 = v29; /*0x12c0*/
LABEL_78:
v34 = v5; /*0x12c3*/
v23 = v5; /*0x12c6*/
if ( n13_1 > 0x67 ) /*0x12cd*/
{
v48 = n13_1 - 112; /*0x1500*/
if ( v48 ) /*0x1504*/
{
v49 = v48 - 2; /*0x150a*/
if ( v49 ) /*0x150e*/
{
v50 = v49 - 1; /*0x1514*/
if ( !v50 ) /*0x1518*/
{
LABEL_119:
LOWORD(v6) = v6 | 0x400; /*0x15cc*/
v105 = v6; /*0x15d1*/
LABEL_120:
_r_n_1 = (const char *)*v28; /*0x15da*/
a5 = v28 + 1; /*0x15e1*/
if ( !*v28 ) /*0x15da*/
{
LOWORD(v6) = v6 & 0xFBFF; /*0x15fa*/
_r_n_1 = "<null string>"; /*0x15ff*/
v105 = v6; /*0x1606*/
}
v26 &= -(__int64)((v6 & 0x800) != 0); /*0x1618*/
goto LABEL_90; /*0x161b*/
}
v51 = v50 - 1; /*0x151e*/
if ( v51 ) /*0x1522*/
{
n3 = v51 - 1; /*0x1524*/
if ( n3 ) /*0x1528*/
{
if ( n3 != 3 ) /*0x1532*/
goto LABEL_114; /*0x1532*/
goto LABEL_132; /*0x1532*/
}
goto LABEL_133; /*0x1528*/
}
a5 = v28 + 1; /*0x154d*/
if ( !*v28 ) /*0x1546*/
{
v24 = v91; /*0x1566*/
_r_n_1 = "<null time>"; /*0x156a*/
goto LABEL_90; /*0x1571*/
}
sub_1CD0( /*0x15b6*/
_r_n,
38,
0,
"%02d/%02d/%04d %02d:%02d",
*((unsigned __int8 *)*v28 + 2),
*((unsigned __int8 *)*v28 + 3),
**v28,
*((unsigned __int8 *)*v28 + 4),
*((unsigned __int8 *)*v28 + 5));
_r_n_1 = _r_n; /*0x15bb*/
LABEL_118:
v24 = v91; /*0x15bf*/
v25 = 0; /*0x15c3*/
goto LABEL_90; /*0x15c7*/
}
n5 = *v28; /*0x1625*/
a5 = v28 + 1; /*0x162c*/
_r_n_1 = _r_n; /*0x1640*/
if ( (__int64)*v28 >= 0 ) /*0x1647*/
{
if ( (unsigned __int64)n5 <= 5 ) /*0x1675*/
{
_r_n_1 = off_8C70[(_QWORD)n5];// "Success" /*0x167e*/
goto LABEL_128; /*0x167e*/
}
}
else if ( ((unsigned __int64)n5 & 0x7FFFFFFFFFFFFFFFLL) - 1 <= 0x20 ) /*0x1661*/
{
_r_n_1 = off_8C70[(_QWORD)n5 + 5];// "Success" /*0x166a*/
LABEL_128:
if ( _r_n_1 != _r_n ) /*0x1689*/
goto LABEL_90; /*0x1689*/
}
sub_1CD0(_r_n, 38, 0, "%08X", (_DWORD)n5); /*0x16a6*/
goto LABEL_118; /*0x16ab*/
}
LOWORD(v6) = v6 & 0xFFC9 | 0x10; /*0x16b4*/
LABEL_131:
LOWORD(v6) = v6 | 0x20; /*0x16b8*/
LABEL_132:
LOWORD(v6) = v6 | 0x80; /*0x16bc*/
LABEL_133:
if ( (v6 & 0x80u) == 0LL ) /*0x16c4*/
LOWORD(v6) = v6 & 0xBFFD | 0x4000; /*0x16ca*/
LABEL_135:
if ( (v6 & 0x10) != 0 ) /*0x16d5*/
v54 = (__int64)*v28; /*0x16fa*/
else
v54 = *(int *)v28; /*0x16dc*/
a5 = v28 + 1; /*0x16e3*/
n43 = (8 * v6) & 0x20; /*0x171d*/
if ( (v6 & 2) != 0 ) /*0x172a*/
n43 = 43; /*0x172a*/
n43_1 = n43; /*0x1734*/
v56 = (v6 & 8) != 0; /*0x1738*/
v107 = v56; /*0x173c*/
if ( (v6 & 0x80u) != 0LL ) /*0x1746*/
{
v56 = 0; /*0x1789*/
n16 = 16; /*0x178c*/
v107 = 0; /*0x1792*/
if ( (v6 & 0x10) != 0 || v54 >= 0 ) /*0x17a1*/
goto LABEL_151; /*0x17a1*/
}
else
{
n16 = 10; /*0x1748*/
if ( (v6 & 8) != 0 ) /*0x1751*/
{
LOWORD(v6) = v6 & 0xFFDF; /*0x1753*/
v26 = 1; /*0x1757*/
}
if ( v54 < 0 && (v6 & 0x4000) == 0 ) /*0x1765*/
{
LOWORD(v6) = v6 | 2; /*0x1767*/
n43 = 45; /*0x176b*/
n43_1 = 45; /*0x176e*/
v54 = -v54; /*0x1772*/
LABEL_151:
v24 = sub_D94(_r_n, v54, n16) - (_QWORD)_r_n; /*0x17a5*/
v91 = v24; /*0x17bb*/
if ( !v54 ) /*0x17c2*/
{
v24 &= -(__int64)(v26 != 0); /*0x17cd*/
v91 = v24; /*0x17d0*/
}
_r_n_1 = &_r_n[v24]; /*0x17e2*/
v58 = 3 - v24 % 3; /*0x17fd*/
if ( !(v24 % 3) ) /*0x17fa*/
v58 = 0; /*0x1803*/
v98 = v58; /*0x1807*/
if ( v56 && v24 ) /*0x1813*/
{
v24 += (v24 - 1) / 3; /*0x1822*/
v58 = v98; /*0x1825*/
v91 = v24; /*0x1829*/
}
if ( n43 ) /*0x1830*/
{
v91 = ++v24; /*0x1835*/
++v26; /*0x1839*/
}
LOWORD(v6) = v6 | 0x1000; /*0x183c*/
v25 = 1; /*0x1841*/
v105 = v6; /*0x1847*/
if ( (v6 & 0xA21) == 0x220 ) /*0x1856*/
{
v26 = (unsigned __int64)v96; /*0x185c*/
v98 = v58; /*0x1860*/
}
goto LABEL_90; /*0x1864*/
}
if ( (v6 & 0x4010) != 0x4000 ) /*0x1785*/
goto LABEL_151; /*0x1785*/
}
v54 = (unsigned int)v54; /*0x17a3*/
goto LABEL_151; /*0x17a3*/
}
if ( n13_1 == 103 ) /*0x12d3*/
{
v44 = (unsigned __int8 *)*v28; /*0x142a*/
a5 = v28 + 1; /*0x1431*/
if ( *v28 ) /*0x142a*/
{
v45 = sub_2B6C(v44, v5, v5); /*0x1466*/
v46 = (unsigned __int16)sub_2B34(v44 + 4); /*0x1472*/
v47 = sub_2B34(v44 + 6); /*0x1476*/
sub_1CD0( /*0x14e6*/
_r_n,
38,
0,
"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
v45,
v46,
v47,
v44[8],
v44[9],
v44[10],
v44[11],
v44[12],
v44[13],
v44[14],
v44[15]);
v24 = v91; /*0x14eb*/
_r_n_1 = _r_n; /*0x14ef*/
v25 = 0; /*0x14f3*/
v5 = v106; /*0x14f7*/
}
else
{
_r_n_1 = "<null guid>"; /*0x144a*/
}
v26 = v93; /*0x1451*/
goto LABEL_90; /*0x1455*/
}
v35 = n13_1 - 10; /*0x12d9*/
if ( !v35 ) /*0x12dd*/
{
v5 += n2_1; /*0x13db*/
_r_n_1 = "\r\n"; /*0x13de*/
v106 = v5; /*0x13e5*/
if ( n2_1 == 1 ) /*0x13ed*/
v43 = 0; /*0x13ef*/
else
v43 = (char)v5[1] << 8; /*0x13f7*/
v19 = v87; /*0x13fa*/
n13 = n0xFFFF & (*v5 | (unsigned __int64)v43); /*0x140b*/
if ( n13 != 13 ) /*0x1413*/
{
v5 = v34; /*0x1419*/
v106 = v34; /*0x141c*/
}
goto LABEL_91; /*0x1420*/
}
v36 = v35 - 3; /*0x12e3*/
if ( !v36 ) /*0x12e7*/
{
v5 += n2_1; /*0x1399*/
v106 = v5; /*0x139c*/
if ( n2_1 == 1 ) /*0x13a4*/
v42 = 0; /*0x13a6*/
else
v42 = (char)v5[1] << 8; /*0x13ae*/
v19 = v87; /*0x13b1*/
goto LABEL_97; /*0x13b1*/
}
v37 = v36 - 70; /*0x12ed*/
if ( !v37 ) /*0x12f1*/
goto LABEL_119; /*0x12f1*/
v38 = v37 - 5; /*0x12f7*/
if ( !v38 ) /*0x12fb*/
goto LABEL_131; /*0x12fb*/
v39 = v38 - 9; /*0x1301*/
if ( !v39 ) /*0x1305*/
goto LABEL_120; /*0x1305*/
v40 = v39 - 2; /*0x130b*/
if ( !v40 ) /*0x130f*/
{
a5 = v28 + 1; /*0x132d*/
v99 = *(unsigned __int16 *)v28; /*0x1342*/
_r_n_1 = (const char *)&v99; /*0x1346*/
goto LABEL_89; /*0x1346*/
}
if ( v40 == 1 ) /*0x1315*/
goto LABEL_135; /*0x1315*/
LABEL_114:
_r_n_1 = (const char *)&n13; /*0x1538*/
LABEL_89:
LOWORD(v6) = v6 | 0x400; /*0x134a*/
v105 = v6; /*0x134f*/
LABEL_90:
v19 = v87; /*0x1353*/
LABEL_91:
v41 = (v6 & 0x400) != 0 ? 0xFFFFLL : 255LL;
if ( (v6 & 0x1000) != 0 ) /*0x1387*/
{
v104 = ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64) - 1; /*0x1390*/
}
else
{
v24 = 0; /*0x18d7*/
for ( i = _r_n_1; ; i += 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64) ) /*0x18da*/
{
if ( v24 >= v26 ) /*0x18e0*/
{
v104 = 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64); /*0x18e2*/
if ( (v6 & 0x800) != 0 ) /*0x18eb*/
break; /*0x18eb*/
}
v104 = 1 - ((unsigned __int128)-(__int128)(v6 & 0x400) >> 64); /*0x18ff*/
if ( ((*(unsigned __int8 *)i | (unsigned __int64)(i[1] << 8)) & v41) == 0 ) /*0x1906*/
break; /*0x1906*/
++v24; /*0x1908*/
}
v91 = v24; /*0x1910*/
}
if ( v26 < v24 ) /*0x191a*/
v26 = v24; /*0x191a*/
n512 = v6 & 0x201; /*0x191e*/
v94 = v26; /*0x1925*/
n512_1 = n512; /*0x1929*/
if ( n512 != 512 || (v87 = n2 * ((_QWORD)v96 - v26) + v19, (v6 & 0x2000) != 0) ) /*0x1953*/
{
v62 = v89; /*0x197a*/
}
else
{
v62 = v89; /*0x1955*/
if ( v8 ) /*0x195c*/
{
v63 = sub_D60(v8, v89, (int)v96 - (int)v26, 32, n2); /*0x196c*/
v24 = v91; /*0x1971*/
v8 = v63; /*0x1975*/
}
}
v64 = v87; /*0x197e*/
if ( v25 ) /*0x1985*/
{
if ( !n43_1 || (v64 = n2 + v87, v88 = v64, (v6 & 0x2000) != 0) ) /*0x19a1*/
{
v65 = v89; /*0x19de*/
}
else
{
v65 = v89; /*0x19a3*/
if ( v8 ) /*0x19aa*/
{
for ( j = 0; j < 1; ++j ) /*0x19b0*/
{
if ( v8 >= v89 ) /*0x19b5*/
break; /*0x19b5*/
*(_BYTE *)v8 = n43_1; /*0x19b7*/
if ( n2 != 1 ) /*0x19bf*/
*(_BYTE *)(v8 + 1) = 0; /*0x19c8*/
v8 += n2; /*0x19cc*/
}
v64 = v88; /*0x19d8*/
}
}
n2_3 = n2; /*0x19e2*/
v68 = v26 - v24; /*0x19e9*/
v87 = n2 * (v26 - v24) + v64; /*0x19f9*/
v69 = v6 & 0x2000; /*0x19fd*/
if ( (v6 & 0x2000) == 0 && v8 ) /*0x1a08*/
v8 = sub_D60(v8, v65, v68, (int)v69 + 48, n2); /*0x1a1e*/
goto LABEL_199; /*0x1a1e*/
}
n2_3 = n2; /*0x1b6a*/
v79 = v26 - v24; /*0x1b71*/
v80 = n2 * (v26 - v24) + v87; /*0x1b7e*/
v87 = v80; /*0x1b81*/
v69 = v6 & 0x2000; /*0x1b85*/
if ( (v6 & 0x2000) == 0 && v8 ) /*0x1b90*/
{
v81 = sub_D60(v8, v62, v79, (int)v69 + 32, n2); /*0x1b9e*/
v80 = v87; /*0x1ba3*/
v8 = v81; /*0x1ba7*/
}
if ( !n43_1 || (v87 = n2_3 + v80, (v6 & 0x2000) != 0) ) /*0x1bbf*/
{
LABEL_199:
v70 = v89; /*0x1a21*/
}
else
{
v70 = v89; /*0x1bc5*/
if ( v8 ) /*0x1bcc*/
{
for ( k = 0; k < 1; ++k ) /*0x1bd5*/
{
if ( v8 >= v89 ) /*0x1bda*/
break; /*0x1bda*/
*(_BYTE *)v8 = n43_1; /*0x1be0*/
if ( n2_3 != 1 ) /*0x1be8*/
*(_BYTE *)(v8 + 1) = 0; /*0x1bf1*/
v8 += n2_3; /*0x1bf5*/
}
}
}
v71 = n43_1 != 0; /*0x1a30*/
if ( v71 < v91 ) /*0x1a36*/
{
v72 = v87; /*0x1a40*/
v73 = v98; /*0x1a44*/
do /*0x1af2*/
{
v72 += n2_3; /*0x1a53*/
v74 = v41 & *(_WORD *)_r_n_1; /*0x1a60*/
if ( !v69 && v8 ) /*0x1a6b*/
{
v75 = v89; /*0x1a6d*/
for ( m = 0; m < 1; ++m ) /*0x1a71*/
{
if ( v8 >= v75 ) /*0x1a77*/
break; /*0x1a77*/
*(_BYTE *)v8 = v74; /*0x1a79*/
if ( n2_3 != 1 ) /*0x1a81*/
{
*(_BYTE *)(v8 + 1) = HIBYTE(v74); /*0x1a8a*/
v75 = v89; /*0x1a8e*/
}
v8 += n2_3; /*0x1a92*/
}
v70 = v89; /*0x1a9e*/
}
_r_n_1 += v104; /*0x1aa2*/
++v71; /*0x1aa5*/
if ( v107 && ++v73 == 3 ) /*0x1ab4*/
{
v73 = 0; /*0x1ab6*/
if ( ++v71 >= v91 ) /*0x1abe*/
break; /*0x1abe*/
v72 += n2_3; /*0x1ac0*/
if ( !v69 && v8 ) /*0x1acb*/
{
for ( n = 0; n < 1; ++n ) /*0x1acd*/
{
if ( v8 >= v70 ) /*0x1ad2*/
break; /*0x1ad2*/
*(_BYTE *)v8 = 44; /*0x1ad4*/
if ( n2_3 != 1 ) /*0x1add*/
*(_BYTE *)(v8 + 1) = 0; /*0x1adf*/
v8 += n2_3; /*0x1ae3*/
}
}
}
}
while ( v71 < v91 ); /*0x1af2*/
LOWORD(v6) = v105; /*0x1af8*/
v5 = v106; /*0x1afc*/
v87 = v72; /*0x1b00*/
n512 = n512_1; /*0x1b04*/
}
v19 = v87; /*0x1b08*/
if ( n512 != 513 || (v19 = n2_3 * ((_QWORD)v96 - v94) + v87, v87 = v19, v69) ) /*0x1b32*/
{
v18 = v89; /*0x1c06*/
}
else
{
v18 = v89; /*0x1b38*/
if ( v8 ) /*0x1b3f*/
{
v78 = sub_D60(v8, v89, (int)v96 - (int)v94, 32, n2_3); /*0x1b59*/
v19 = v87; /*0x1b5e*/
v8 = v78; /*0x1b62*/
}
}
n2_1 = n2_2; /*0x1c0a*/
v5 += n2_2; /*0x1c0e*/
v106 = v5; /*0x1c11*/
if ( n2_2 == 1 ) /*0x1c19*/
v83 = 0; /*0x1c1b*/
else
v83 = (char)v5[1] << 8; /*0x1c23*/
v21 = v83; /*0x1c2a*/
v20 = *v5; /*0x1c2d*/
goto LABEL_243; /*0x1c2d*/
case 0x20uLL:
v6 |= 4uLL; /*0x11eb*/
goto LABEL_76; /*0x11ef*/
}
if ( n13_1 != 42 ) /*0x1167*/
{
if ( n13_1 == 43 ) /*0x116d*/
{
v6 |= 2uLL; /*0x1182*/
}
else
{
if ( n13_1 != 44 ) /*0x1173*/
goto LABEL_78; /*0x1173*/
v6 |= 8uLL; /*0x1179*/
}
goto LABEL_76; /*0x117d*/
}
if ( (v6 & 0x800) != 0 ) /*0x118e*/
{
v26 = (unsigned __int64)*v28++; /*0x11c7*/
a5 = v28; /*0x11ce*/
v93 = v26; /*0x11e2*/
}
else
{
v6 |= 0x200uLL; /*0x1190*/
v105 = v6; /*0x1195*/
v32 = *v28++; /*0x119e*/
a5 = v28; /*0x11a5*/
v96 = v32; /*0x11b9*/
}
}
if ( n13_1 == 46 ) /*0x1201*/
{
v6 |= 0x800uLL; /*0x12aa*/
goto LABEL_76; /*0x12aa*/
}
if ( n13_1 == 48 ) /*0x120b*/
break; /*0x120b*/
if ( n13_1 <= 0x30 ) /*0x120d*/
goto LABEL_78; /*0x120d*/
if ( n13_1 <= 0x39 )
{
LABEL_66:
v24 = 0; /*0x123c*/
do
{
if ( n13_1 > 0x39 ) /*0x124d*/
break; /*0x124d*/
v5 += n2_1; /*0x1253*/
v24 = n13_1 + 2 * (5 * v24 - 24); /*0x125a*/
v33 = n2_1 == 1 ? 0 : (char)v5[1] << 8;
n13_1 = n0xFFFF & (v33 | (unsigned __int64)*v5); /*0x1277*/
}
while ( n13_1 >= 0x30 );
v91 = v24; /*0x1280*/
v5 -= n2_1; /*0x1284*/
if ( (v6 & 0x800) != 0 ) /*0x128a*/
{
v26 = v24; /*0x129e*/
v93 = v24; /*0x12a1*/
}
else
{
v6 |= 0x200uLL; /*0x128c*/
v96 = (unsigned __int16 *)v24; /*0x1291*/
v105 = v6; /*0x1295*/
}
}
else
{
if ( ((n13_1 - 76) & 0xFFFFFFFFFFFFFFDFuLL) != 0 ) /*0x1223*/
goto LABEL_78; /*0x1223*/
v6 |= 0x10uLL; /*0x1229*/
LABEL_76:
v105 = v6; /*0x12ad*/
}
}
if ( (v6 & 0x800) == 0 ) /*0x1232*/
{
v6 |= 0x20uLL; /*0x1234*/
v105 = v6; /*0x1238*/
}
goto LABEL_66; /*0x1238*/
}
}
if ( (v6 & 0x2000) != 0 ) /*0x1c49*/
return v19 / n2; /*0x1c53*/
if ( !v8 ) /*0x1c64*/
sub_788("e:\\hs\\MdePkg\\Library\\BasePrintLib\\PrintLibInternal.c", 1216, "Buffer != ((void *) 0)"); /*0x1c79*/
v85 = (_BYTE *)v8; /*0x1c81*/
for ( ii = 0; ii < 1; ++ii ) /*0x1c84*/
{
if ( (unsigned __int64)v85 >= n2 + v18 ) /*0x1c8d*/
break; /*0x1c8d*/
*v85 = 0; /*0x1c8f*/
if ( n2 != 1 ) /*0x1c96*/
v85[1] = 0; /*0x1c98*/
v85 += n2; /*0x1c9c*/
}
return (__int64)(v8 - v101) / n2; /*0x1cbc*/
}