bool __usercall bool_CMonRaceDB::ChangeRaceStatus@<al>(double a1@<xmm0>, int a2@<edx>, __int64 a3@<rcx>)
{
__int64 v5; // r14
__int64 v6; // r8
__int64 v7; // rcx
unsigned __int64 v9; // rdi
unsigned __int64 v10; // r12
double v11; // xmm6_8
double v12; // xmm7_8
double v13; // xmm8_8
unsigned __int64 v14; // rdi
unsigned __int64 v15; // r12
double v16; // xmm6_8
double v17; // xmm7_8
double v18; // xmm8_8
unsigned __int64 v19; // rdi
unsigned __int64 v20; // r12
double v21; // xmm6_8
double v22; // xmm7_8
double v23; // xmm8_8
unsigned __int64 v24; // rdi
unsigned __int64 v25; // r12
double v26; // xmm6_8
double v27; // xmm7_8
double v28; // xmm8_8
__int64 v29; // rax
__int64 v30; // [rsp+30h] [rbp-C8h]
__int64 v31; // [rsp+38h] [rbp-C0h]
__int64 v32; // [rsp+40h] [rbp-B8h]
__int64 v33; // [rsp+48h] [rbp-B0h]
__int64 v34; // [rsp+50h] [rbp-A8h]
__int64 v35; // [rsp+58h] [rbp-A0h]
__int64 v36; // [rsp+60h] [rbp-98h]
double v37; // [rsp+78h] [rbp-80h] BYREF
double v38; // [rsp+80h] [rbp-78h]
double v39; // [rsp+88h] [rbp-70h]
if ( (dword_7D524C4 & 1) == 0 )
{
dword_7D524C4 |= 1u;
dword_7D524C0 = L2SERVER_SHARED_GUARD(L"bool CMonRaceDB::ChangeRaceStatus( MONRACESTATUS st)");
}
v5 = (unsigned int)TlsIndex;
v6 = *(int *)(*(_QWORD *)(__readgsqword(0x58u) + 8i64 * (unsigned int)TlsIndex) + 311640i64);
v7 = (int)g_CallStackIndex[v6 + 0x100000];
g_CallStackIndex[v6 + 0x100000] = v7 + 1;
g_CallStackName[v6][v7] = L"bool CMonRaceDB::ChangeRaceStatus( MONRACESTATUS st)";
switch ( a2 )
{
case 1:
*(_DWORD *)(a3 + 1760) = 1;
break;
case 2:
if ( *(_DWORD *)(a3 + 1760) != 1 )
{
--g_CallStackIndex[v6 + 0x100000];
return 0;
}
*(_DWORD *)(a3 + 1760) = 2;
break;
case 3:
*(_DWORD *)(a3 + 1760) = 3;
*(_DWORD *)(a3 + 10908) = 0;
*(_DWORD *)(a3 + 10912) = 0;
*(_DWORD *)(a3 + 10916) = 0;
bool_CMonRaceDB::BroadCastRace((_DWORD *)a3, 0);
v9 = *(_QWORD *)(a3 + 2520);
if ( v9 > *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
while ( 1 )
{
v10 = *(_QWORD *)(a3 + 2528);
if ( *(_QWORD *)(a3 + 2520) > v10 )
DecodePointer(0i64);
if ( v9 == v10 )
break;
if ( v9 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v11 = *(double *)v9;
v12 = *(double *)(v9 + 8);
v13 = *(double *)(v9 + 16);
if ( v9 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v37 = v11;
v38 = v12;
v39 = v13;
LODWORD(v34) = *(_DWORD *)(a3 + 10920);
LODWORD(v33) = 1;
LODWORD(v32) = 1;
LODWORD(v31) = 816;
LODWORD(v30) = 100;
void_BroadcastToNeighborDist_FVector_vPos__int_nRadius__const_char__format______(qword_E427AA8, 0, 0x80000u, &v37, *(_DWORD *)(v9 + 24), "cdddd", v30, v31, v32, v33, v34);
if ( v9 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v9 += 32i64;
}
break;
case 4:
if ( *(_DWORD *)(a3 + 1760) != 3 )
{
--g_CallStackIndex[v6 + 0x100000];
return 0;
}
*(_DWORD *)(a3 + 1760) = 4;
*(_DWORD *)(a3 + 10908) = 0;
*(_DWORD *)(a3 + 10912) = 0;
*(_DWORD *)(a3 + 10916) = 0;
bool_CMonRaceDB::RequestEndBuyTicket__(a3);
v14 = *(_QWORD *)(a3 + 2520);
if ( v14 > *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
while ( 1 )
{
v15 = *(_QWORD *)(a3 + 2528);
if ( *(_QWORD *)(a3 + 2520) > v15 )
DecodePointer(0i64);
if ( v14 == v15 )
break;
if ( v14 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v16 = *(double *)v14;
v17 = *(double *)(v14 + 8);
v18 = *(double *)(v14 + 16);
if ( v14 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v37 = v16;
v38 = v17;
v39 = v18;
LODWORD(v34) = *(_DWORD *)(a3 + 10920);
LODWORD(v33) = 1;
LODWORD(v32) = 1;
LODWORD(v31) = 819;
LODWORD(v30) = 100;
void_BroadcastToNeighborDist_FVector_vPos__int_nRadius__const_char__format______(qword_E427AA8, 0, 0x80000u, &v37, *(_DWORD *)(v14 + 24), "cdddd", v30, v31, v32, v33, v34);
if ( v14 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v14 += 32i64;
}
break;
case 5:
*(_DWORD *)(a3 + 1760) = 5;
*(_DWORD *)(a3 + 1804) = GetTickCount();
v19 = *(_QWORD *)(a3 + 2520);
if ( v19 > *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
while ( 1 )
{
v20 = *(_QWORD *)(a3 + 2528);
if ( *(_QWORD *)(a3 + 2520) > v20 )
DecodePointer(0i64);
if ( v19 == v20 )
break;
if ( v19 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v21 = *(double *)v19;
v22 = *(double *)(v19 + 8);
v23 = *(double *)(v19 + 16);
if ( v19 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v37 = v21;
v38 = v22;
v39 = v23;
LODWORD(v31) = 824;
LODWORD(v30) = 100;
void_BroadcastToNeighborDist_FVector_vPos__int_nRadius__const_char__format______(qword_E427AA8, 0, 0x80000u, &v37, *(_DWORD *)(v19 + 24), "cdd", v30, v31, 0i64);
if ( v19 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v19 += 32i64;
}
void_CMonRaceDB::BroadCastMusic__(a3);
void_CMonRaceDB::BroadCastSound__(a3);
bool_CMonRaceDB::RunRace__(a1, a3);
bool_CMonRaceDB::BroadCastRace((_DWORD *)a3, 0);
break;
case 6:
*(_DWORD *)(a3 + 1760) = 6;
bool_CMonRaceDB::BroadCastRace((_DWORD *)a3, 0);
break;
case 7:
*(_DWORD *)(a3 + 1760) = 7;
v24 = *(_QWORD *)(a3 + 2520);
if ( v24 > *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
while ( 1 )
{
v25 = *(_QWORD *)(a3 + 2528);
if ( *(_QWORD *)(a3 + 2520) > v25 )
DecodePointer(0i64);
if ( v24 == v25 )
break;
if ( v24 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v26 = *(double *)v24;
v27 = *(double *)(v24 + 8);
v28 = *(double *)(v24 + 16);
if ( v24 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v37 = v26;
v38 = v27;
v39 = v28;
LODWORD(v36) = *(_DWORD *)(a3 + 1768) + 1;
LODWORD(v35) = 1;
LODWORD(v34) = *(_DWORD *)(a3 + 1764) + 1;
LODWORD(v33) = 1;
LODWORD(v32) = 2;
LODWORD(v31) = 826;
LODWORD(v30) = 100;
void_BroadcastToNeighborDist_FVector_vPos__int_nRadius__const_char__format______(qword_E427AA8, 0, 0x80000u, &v37, *(_DWORD *)(v24 + 24), "cdddddd", v30, v31, v32, v33, v34, v35, v36);
if ( v24 >= *(_QWORD *)(a3 + 2528) )
DecodePointer(0i64);
v24 += 32i64;
}
bool_CMonRaceDB::RequestEndRace__(a3);
break;
case 8:
*(_DWORD *)(a3 + 1760) = 8;
if ( *(int *)(a3 + 10920) > 0 )
bool_CMonRaceDB::EndRace__(a3);
break;
}
v29 = *(int *)(*(_QWORD *)(__readgsqword(0x58u) + 8 * v5) + 311640i64);
--g_CallStackIndex[v29 + 0x100000];
return 1;
}