Force downloading
Force downloading
int sub_8048430()
{
int v0; // r5
int v1; // r4
int v2; // r4
int v3; // r0
int v5; // [sp+0h] [bp-218h]
int v6; // [sp+200h] [bp-18h]
v0 = dword_8064CC8;
v6 = dword_8064CC8;
v1 = sub_8057998();
sub_8006FB4(&v5, 512);
if ( !v1 )
{
v2 = 1;
goto LABEL_59;
}
if ( v1 == 4 )
{
sub_8057942(&unk_807CBF8, &v5, 512, 0);
if ( sub_8057D7E(&unk_807CBF8, (int)"data") )
{
v2 = 1;
goto LABEL_59;
}
goto LABEL_58;
}
if ( v1 != 1 )
{
LABEL_58:
v2 = 0;
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"?xml")
|| sub_8057D7E(&unk_807CBF8, (int)"data")
|| sub_8057D7E(&unk_807CBF8, (int)"patches")
|| sub_8038688() != 1 )
{
LABEL_21:
if ( sub_8057D7E(&unk_807CBF8, (int)"configure") )
{
v2 = sub_80331C8();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"program") )
{
v2 = sub_8034FB0();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"firmwarewrite") )
{
v2 = sub_8033978();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"patch") )
{
v2 = sub_8034388();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"setbootablestoragedrive") )
{
v2 = sub_8035B78();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"ufs") )
{
v2 = sub_8035F44();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"emmc") )
{
v2 = sub_8035F44();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"power") )
{
v2 = sub_8034E74();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"benchmark") )
{
v2 = sub_8032DD4();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"read") )
{
v2 = sub_8035730();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"getstorageinfo") )
{
v2 = sub_8034250();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"getcrc16digest") )
{
v2 = sub_8033D2C(1);
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"getsha256digest") )
{
v2 = sub_8033D2C(0);
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"erase") )
{
v2 = sub_80336D0();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"peek") )
{
v2 = sub_8034A24();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)"poke") )
{
v2 = sub_8034C1C();
goto LABEL_59;
}
if ( sub_8057D7E(&unk_807CBF8, (int)&dword_80486C8) )
{
v2 = sub_803437C();
goto LABEL_59;
}
if ( !sub_8057D7E(&unk_807CBF8, (int)"?xml")
&& !sub_8057D7E(&unk_807CBF8, (int)"data")
&& !sub_8057D7E(&unk_807CBF8, (int)"patches") )
{
if ( sub_8057942(&unk_807CBF8, &v5, 512, 0) )
sub_8038E28("WARNING: Ignoring unrecognized tag '%s'. Continuing.");
else
sub_8038E28("WARNING: Ignoring unrecognized tag too long to display. Continuing.");
v2 = sub_8054FF4(1);
goto LABEL_59;
}
goto LABEL_58;
}
if ( byte_8066114 || sub_8057D7E(&unk_807CBF8, (int)&dword_80486C8) )
{
if ( !byte_8066114 && sub_8057D7E(&unk_807CBF8, (int)&dword_80486C8) )
{
v2 = sub_803437C();
goto LABEL_59;
}
goto LABEL_21;
}
if ( sub_8057D7E(&unk_807CBF8, (int)&dword_80486CC) )
{
v3 = sub_8057984(&unk_807CBF8, 4, &unk_807F1F0);
v2 = sub_8035CE4(v3);
}
else
{
sub_8038E28("ERROR: Only nop and sig tag can be recevied before authentication.");
v2 = sub_8054FF4(0);
}
LABEL_59:
if ( v6 != v0 )
sub_8018D6C();
return v2;
}