// PlatformSetupPolicy - decompiled from Platform.efi
_WORD *__fastcall PlatformSetupPolicy(_WORD *a1, _WORD *a2)
{
_WORD *v3; // rbx
_WORD *v5; // rcx
_WORD *v6; // rdx
__int16 v7; // ax
v3 = a1; /*0x5722*/
if ( 2 * SetupOptionQuery(a1) == -2 ) /*0x5737*/
Assert((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\String.c", 485, (__int64)"StrSize (String) != 0"); /*0x574c*/
if ( 2 * SetupOptionQuery(a2) == -2 ) /*0x5764*/
Assert((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\String.c", 486, (__int64)"StrSize (SearchString) != 0"); /*0x5779*/
if ( !*a2 ) /*0x577e*/
return v3; /*0x5783*/
while ( 1 ) /*0x57b6*/
{
v7 = *v3; /*0x57b6*/
if ( !*v3 ) /*0x57b6*/
return 0; /*0x57be*/
v5 = a2; /*0x5788*/
v6 = v3; /*0x578b*/
if ( v7 == *a2 ) /*0x5791*/
{
do /*0x57a6*/
{
if ( !v7 ) /*0x5796*/
break; /*0x5796*/
++v3; /*0x5798*/
++v5; /*0x579c*/
v7 = *v3; /*0x57a0*/
}
while ( *v3 == *v5 ); /*0x57a6*/
}
if ( !*v5 ) /*0x57a8*/
break; /*0x57a8*/
if ( !*v3 ) /*0x57b0*/
return 0; /*0x57b0*/
v3 = v6 + 1; /*0x57b2*/
}
return v6; /*0x57ca*/
}