Originally Posted by
Sacred
I already found that, but it seems, that it wont be easy like before:
Code:
signed int __cdecl sub_942830(int a1)
{
signed int result; // eax@2
int v2; // ST1C_4@2
int v3; // ecx@3
void *v4; // ebx@3
int v5; // eax@17
int v6; // eax@20
int v7; // eax@27
int v8; // eax@29
int v9; // [sp+4h] [bp-18h]@11
if ( !sub_42BC70(a1, 1) )
{
sub_A297F0(a1, "Usage: GetBattlefieldStatus(id)", v2);
return 0;
}
v4 = dword_D12770;
v3 = (signed __int64)sub_42BD80(a1, 1);
if ( (_BYTE)dword_D12770 & 1 || !dword_D12770 )
v4 = 0;
while ( 1 )
{
if ( (_BYTE)v4 & 1 || !v4 )
{
sub_42C0E0(a1, "none");
sub_42C010(a1);
sub_42C030(a1, 0.0);
sub_42C030(a1, 0.0);
sub_42C030(a1, 0.0);
sub_42C030(a1, 0.0);
sub_42C010(a1);
sub_42C010(a1);
sub_42C010(a1);
return 9;
}
if ( *((_DWORD *)v4 + 2) == v3 )
break;
v4 = (void *)*((_DWORD *)v4 + 1);
}
switch ( *((_DWORD *)v4 + 13) )
{
case 0:
v9 = (int)"none";
break;
case 1:
v9 = (int)"queued";
break;
case 2:
v9 = (int)"confirm";
break;
case 4:
v9 = (int)"active";
break;
default:
v9 = (int)"error";
break;
}
sub_42C0E0(a1, v9);
if ( *((_DWORD *)v4 + 13) != 2
|| (v5 = *((_DWORD *)v4 + 10), v5 & 0x100000)
|| ((*((_QWORD *)v4 + 5) >> 16) & 0xF) == 1 )
{
if ( *((_DWORD *)v4 + 13) != 4 || dword_F3659C < dword_D7330C || dword_F3659C > dword_D73308 )
goto LABEL_27;
v6 = *(_DWORD *)(dword_D73318 + 4 * (dword_F3659C - dword_D7330C));
}
else
{
if ( (*((_DWORD *)v4 + 10) & 0xFFFF) == 32 )
{
LABEL_27:
v7 = *((_DWORD *)v4 + 10) & 0xFFFF;
if ( v7 >= dword_D98A74 && v7 <= dword_D98A70 && (v8 = *(_DWORD *)(dword_D98A80 + 4 * (v7 - dword_D98A74))) != 0 )
sub_42C0E0(a1, *(_DWORD *)(v8 + 44));
else
sub_42C010(a1);
goto LABEL_32;
}
v6 = sub_465C80(*((_DWORD *)v4 + 12));
}
if ( !v6 )
goto LABEL_27;
sub_42C0E0(a1, *(_DWORD *)(v6 + 24));
LABEL_32:
sub_42C030(a1, (double)*((unsigned int *)v4 + 16));
sub_42C030(a1, (double)*((unsigned int *)v4 + 14));
sub_42C030(a1, (double)*((unsigned int *)v4 + 15));
sub_42C030(a1, (double)*((unsigned int *)v4 + 20));
if ( *((_DWORD *)v4 + 21) )
sub_42C030(a1, 1.0);
else
sub_42C010(a1);
if ( *((_DWORD *)v4 + 22) )
sub_42C030(a1, 1.0);
else
sub_42C010(a1);
if ( *((_DWORD *)v4 + 23) )
{
sub_42C030(a1, 1.0);
result = 9;
}
else
{
sub_42C010(a1);
result = 9;
}
return result;
}