int __fastcall abortboot_19138(int bootdelay)
{
int v1; // r4@1
unsigned __int64 v2; // r0@1
signed int v3; // r0@1
signed __int64 v4; // r2@1
__int64 v5; // r0@1
char *v6; // r0@1
char *v7; // r4@1
char *v8; // r0@1
char *v9; // r3@1
char v10; // zf@1
int v11; // r4@1
char *v12; // r6@3
char *v13; // r0@5
delaykey *v14; // r3@9
unsigned int v15; // r4@12
char *i; // r3@15
int v17; // r5@20
delaykey *v18; // r3@20
signed int v19; // r10@20
unsigned int v20; // r2@21
delaykey *v21; // ST04_4@23
int v22; // r0@23
unsigned __int64 v23; // r0@27
unsigned __int64 v25; // [sp+8h] [bp-78h]@1
char v26[32]; // [sp+10h] [bp-70h]@15
delaykey _dk[4]; // [sp+30h] [bp-50h]@1
char v28; // [sp+60h] [bp-20h]@16
v1 = bootdelay;
LODWORD(v2) = get_ticks_23F34();
v25 = v2;
v3 = sub_81F23F44();
v4 = get_tbclk_3B104(v3, 1000u) * (signed __int64)v1;
HIDWORD(v5) = HIDWORD(v25);
LODWORD(v5) = v25 + v4;
v25 = v5 + v4;
sub_81F1FD18(_dk, 0, 48);
_dk[0].retry = 1;
_dk[0].str = (char *)getenv_13B6C("bootdelaykey");
_dk[1].retry = 1;
_dk[1].str = (char *)getenv_13B6C("bootdelaykey2");
v6 = (char *)getenv_13B6C("bootstopkey");
v7 = v6;
_dk[2].str = v6;
v8 = (char *)getenv_13B6C("bootstopkey2");
v10 = v7 == 0;
v11 = 0;
if ( v10 )
v9 = "read from corrupted volume %d" + 28;
v12 = 0;
_dk[3].str = v8;
if ( v10 )
_dk[2].str = v9;
do
{
v13 = _dk[v11].str;
if ( v13 )
v13 = (char *)sub_81F1FAD4(v13);
if ( (unsigned int)v13 >= 0x20 )
v13 = (char *)32;
v14 = &_dk[v11];
++v11;
if ( v12 < v13 )
v12 = v13;
v14->len = (unsigned int)v13;
}
while ( v11 != 4 );
v15 = 0;
do
{
if ( sub_81F16248() )
{
if ( v15 < (unsigned int)v12 )
{
*(&v28 + v15++ - 80) = sub_81F16218();
}
else
{
for ( i = v26; i - v26 < (unsigned int)(v12 - 1); ++i )
*i = i[1];
v12[(_DWORD)&v28 - 81] = sub_81F16218();
}
}
v17 = 0;
v18 = _dk;
v19 = 0;
do
{
v20 = v18[v17].len;
if ( v20 )
{
if ( v15 >= v20 )
{
v21 = v18;
v22 = sub_81F1FE60((int)&v26[v15 - v20], (int)v18[v17].str, v20);
v18 = v21;
if ( !v22 )
v19 = 1;
}
}
++v17;
}
while ( v17 != 4 );
if ( v19 )
break;
LODWORD(v23) = get_ticks_23F34();
}
while ( v25 >= v23 );
fn_Printf2UART_162D8("U-boot Start from NORMAL Mode!\n");
sub_81F190F0(1);
return 0;
}