CG_DrawBulletImpacts: \x81\xEC\x00\x00\x00\x00\x80\xBC\x24\x00\x00\x00\x 00\x00\x55 xx????xxx?????x
Code:
int __cdecl sub_5AB760(int a1, int a2, int a3, int a4, float a5, unsigned __int16 a6, char a7, char a8, int a9)
{
_BYTE *v9; // eax@2
int v10; // ecx@2
int v11; // eax@6
int result; // eax@8
signed int v13; // ecx@8
signed int v14; // ebx@10
char v15; // zf@10
char *v16; // edx@14
int v17; // edx@14
char v18; // zf@14
int v19; // edi@17
unsigned __int8 v20; // al@21
double v21; // st7@25
double v22; // st7@26
double v23; // st6@29
char v24; // al@37
int v25; // eax@39
double v26; // st7@39
double v27; // st6@42
double v28; // st7@42
int v29; // esi@44
int v30; // ST2C_4@44
int v31; // esi@55
int v32; // ST2C_4@55
int v33; // eax@61
double v34; // st7@61
int v35; // esi@62
int v36; // ebx@66
char v37; // zf@66
double v38; // st7@69
double v39; // st7@69
int v40; // ecx@74
signed int v41; // esi@75
double v42; // st7@75
int v43; // eax@78
float v45; // [sp+10h] [bp-124h]@26
float v46; // [sp+14h] [bp-120h]@26
unsigned __int8 v47; // [sp+2Bh] [bp-109h]@31
char v48[4]; // [sp+2Ch] [bp-108h]@29
int v49; // [sp+30h] [bp-104h]@24
float v50; // [sp+34h] [bp-100h]@24
float v51; // [sp+38h] [bp-FCh]@24
char *v52; // [sp+3Ch] [bp-F8h]@11
float v53; // [sp+40h] [bp-F4h]@10
float v54; // [sp+44h] [bp-F0h]@17
float v55; // [sp+48h] [bp-ECh]@19
int v56; // [sp+4Ch] [bp-E8h]@19
float v57; // [sp+50h] [bp-E4h]@24
float v58; // [sp+54h] [bp-E0h]@24
unsigned __int8 v59; // [sp+5Bh] [bp-D9h]@19
float v60; // [sp+5Ch] [bp-D8h]@19
int v61; // [sp+60h] [bp-D4h]@24
float v62; // [sp+64h] [bp-D0h]@24
float v63; // [sp+68h] [bp-CCh]@24
int v64; // [sp+6Ch] [bp-C8h]@24
float v65; // [sp+70h] [bp-C4h]@24
float v66; // [sp+74h] [bp-C0h]@24
float v67; // [sp+78h] [bp-BCh]@24
int v68; // [sp+84h] [bp-B0h]@24
float v69; // [sp+88h] [bp-ACh]@29
float v70; // [sp+8Ch] [bp-A8h]@29
int v71; // [sp+90h] [bp-A4h]@80
float v72; // [sp+94h] [bp-A0h]@66
float v73; // [sp+98h] [bp-9Ch]@24
float v74; // [sp+9Ch] [bp-98h]@24
float v75; // [sp+A0h] [bp-94h]@24
float v76; // [sp+A4h] [bp-90h]@39
float v77; // [sp+A8h] [bp-8Ch]@39
float v78; // [sp+ACh] [bp-88h]@39
int v79; // [sp+B0h] [bp-84h]@72
int v80; // [sp+B4h] [bp-80h]@72
float v81; // [sp+B8h] [bp-7Ch]@74
int v82; // [sp+BCh] [bp-78h]@74
int v83; // [sp+C0h] [bp-74h]@74
float v84; // [sp+C4h] [bp-70h]@74
int v85; // [sp+C8h] [bp-6Ch]@74
int v86; // [sp+D0h] [bp-64h]@77
float v87; // [sp+D4h] [bp-60h]@77
float v88; // [sp+D8h] [bp-5Ch]@77
int v89; // [sp+DCh] [bp-58h]@84
float v90; // [sp+E0h] [bp-54h]@84
float v91; // [sp+E4h] [bp-50h]@84
int v92; // [sp+F4h] [bp-40h]@84
float v93; // [sp+F8h] [bp-3Ch]@84
float v94; // [sp+FCh] [bp-38h]@84
char v95; // [sp+100h] [bp-34h]@74
int v96; // [sp+104h] [bp-30h]@32
float v97; // [sp+108h] [bp-2Ch]@33
float v98; // [sp+10Ch] [bp-28h]@33
if ( !LOBYTE(a5)
|| (v10 = dword_8DDB50[(unsigned __int8)a4], v9 = *(_BYTE **)v10, **(_BYTE **)v10 == 105)
&& v9[1] == 119
&& v9[2] == 53
&& v9[3] == 95
|| (v11 = *(_DWORD *)(v10 + 120), !(_BYTE)v11) )
LOBYTE(v11) = a4;
v13 = *(_DWORD *)(a2 + 212);
result = dword_8DDF18[(unsigned __int8)v11];
if ( v13 >= 18 && v13 != 50 )
return result;
v14 = 0;
v15 = (*(_BYTE *)(a2 + 464) & 1) == 0;
LODWORD(v53) = 0;
if ( v15 )
{
v52 = 0;
}
else
{
if ( v13 == 1 )
{
v17 = 1376 * *(_DWORD *)(a2 + 352);
v18 = (int *)((char *)&dword_9FC748 + v17) == 0;
v16 = (char *)&dword_9FC748 + v17;
v52 = v16;
if ( !v18 && !*(_DWORD *)v16 )
return result;
}
else
{
v52 = 0;
}
}
if ( !a8 )
{
if ( v13 == 1 )
{
sub_5A8BB0(a4, LODWORD(a5));
if ( *(_DWORD *)(a2 + 216) & 0x80000 )
v24 = 1;
else
v24 = sub_488F30(*(_DWORD *)(a2 + 416)) != 0;
v14 = (unsigned __int8)v24;
v25 = *(_DWORD *)(dword_902468 + 13076) - *(_DWORD *)(dword_902464 + 13076);
v76 = *(float *)(a2 + 232) - *(float *)(a2 + 120);
v26 = *(float *)(a2 + 236) - *(float *)(a2 + 124);
*(_DWORD *)v48 = v25;
v77 = v26;
v78 = *(float *)(a2 + 240) - *(float *)(a2 + 128);
if ( v25 )
{
*(float *)v48 = 1000.0 / (double)*(signed int *)v48;
v76 = *(float *)v48 * v76;
v77 = v77 * *(float *)v48;
v78 = *(float *)v48 * v78;
}
*(float *)v48 = v76 * v76 + v77 * v77 + v78 * v78;
*(float *)v48 = sqrt(*(float *)v48);
if ( *(float *)v48 < 255.0 )
{
v27 = *(float *)v48;
v28 = 255.0;
}
else
{
v28 = 255.0;
v27 = 255.0;
}
*(float *)v48 = v27;
v29 = *(_DWORD *)(a2 + 208);
v30 = *(_DWORD *)(a2 + 208);
v47 = -2;
v54 = *(float *)v48 / v28;
result = sub_4DB2E0(a1, v30, a6, &v47);
if ( !result || (result = sub_55DE90(a1, v29, v47, &v61), !(_BYTE)result) )
return result;
v56 = v61;
v57 = v62;
v58 = v63;
v51 = v63;
v49 = v61;
v48[0] = 0;
v50 = v62;
sub_41C4C0(v52 + 1036, &v64, &v67, &v68);
}
else
{
if ( v13 == 11 )
{
v55 = *(float *)(result + 1600);
v60 = *(float *)(result + 1600);
v54 = 1.0;
if ( a7 )
{
LODWORD(v53) = &dword_8FF100;
sub_4B02E0(a1, &dword_8FF100, &v61);
if ( (unsigned __int8)sub_493790(&dword_8FF100) )
{
v73 = flt_96EDE8;
v74 = flt_96EDEC;
v75 = 0.0;
sub_41C4C0(&v73, &v64, &v67, &v68);
v48[0] = 0;
}
else
{
sub_4031E0(&dword_8FF100);
v48[0] = 0;
}
}
else
{
if ( byte_8FF114 & 4 && dword_8FF2D8 == *(_DWORD *)(a2 + 208) )
{
sub_4031E0(&dword_8FF100);
sub_4B02E0(a1, &dword_8FF100, &v61);
v48[0] = 0;
}
else
{
v31 = *(_DWORD *)(a2 + 208);
v32 = *(_DWORD *)(a2 + 208);
v47 = -2;
result = sub_4DB2E0(a1, v32, a6, &v47);
if ( !result || (result = sub_55DE90(a1, v31, v47, &v61), !(_BYTE)result) )
return result;
v48[0] = 0;
}
}
}
else
{
if ( v13 == 14 || v13 == 12 )
{
v55 = sub_414A50(a4, 0);
v35 = *(_DWORD *)(a2 + 208);
v60 = v55;
v54 = 0.0;
v14 = 1;
v47 = -2;
result = sub_4DB2E0(a1, v35, a6, &v47);
if ( !result || (result = sub_55DE90(a1, v35, v47, &v61), !(_BYTE)result) )
return result;
v48[0] = 0;
}
else
{
if ( v13 < 18 )
return result;
v55 = sub_414A50(a4, 0);
v33 = *(_DWORD *)(a2 + 368);
v60 = v55;
v54 = 0.0;
v14 = 1;
sub_49D660(v33, &v64);
sub_41BAA0(&v64, &v67, &v68);
*(float *)&v61 = *(float *)(a2 + 20);
v34 = *(float *)(a2 + 24);
v48[0] = 1;
v62 = v34;
v63 = *(float *)(a2 + 28);
}
}
v56 = v61;
v57 = v62;
v58 = v63;
v51 = v63;
v49 = v61;
v50 = v62;
}
LABEL_66:
v72 = sub_414A50(a4, SLOBYTE(a5));
v37 = v14 == 0;
v36 = LODWORD(v53);
if ( v37 || !LODWORD(v53) || 0.0 == *(float *)(LODWORD(v53) + 888) )
{
v38 = (v60 - v55) * v54 + v55;
}
else
{
v53 = v55 + (v60 - v55) * v54;
v39 = v53 * (1.0 - *(float *)(v36 + 888));
v72 = v72 + v54 * (v60 - v72);
v38 = v39 + v72 * *(float *)(v36 + 888);
}
v54 = v38;
if ( v52 )
{
v79 = *((_DWORD *)v52 + 13);
v80 = *((_DWORD *)v52 + 14);
}
else
{
v79 = 0;
v80 = 0;
}
memset(&v82, 0, 0x44u);
v84 = 1.0;
v40 = *(_DWORD *)(a2 + 208);
v82 = 2046;
v83 = v40;
v85 = sub_545080(&v79, a4, LODWORD(a5));
sub_41BFA0(&v79, a4, LODWORD(a5), &v81, &v95);
if ( (unsigned __int8)sub_52A190(&v79, a4, LODWORD(a5)) )
{
v42 = v81;
v41 = sub_46B370(a4, LODWORD(a5));
}
else
{
v42 = 8192.0;
v41 = 1;
}
v53 = v42;
v86 = v56;
v87 = v57;
v88 = v58;
if ( v36 )
v43 = *(_DWORD *)v36;
else
v43 = sub_4BB3E0();
v71 = v43;
if ( a9 )
v71 = v43 + 10;
result = sub_4A5CB0(&v71);
if ( v41 > 0 )
{
v52 = (char *)v41;
do
{
v92 = v64;
v93 = v65;
v94 = v66;
v89 = v56;
v90 = v57;
v91 = v58;
sub_5A8C40(v54, (int)&v92, (int)&v64, (int)&v67, (int)&v68, v53);
v84 = 1.0;
if ( !a8 )
{
result = sub_5A88D0();
if ( !(_BYTE)result )
continue;
}
result = sub_5AAFA0(a1, (int)&v82, a4, a5, a2, a3, (int)&v49, v48[0]);
}
while ( v52-- != (char *)1 );
}
return result;
}
v19 = a9 + 2048;
LODWORD(v53) = &dword_8FF100;
v54 = flt_A03950 / 255.0;
if ( 1.0 == flt_8FF478 )
v14 = 1;
sub_4E1130(&dword_8FF100, a4, &v55, &v60);
sub_4B02E0(a1, &dword_8FF100, &v56);
v59 = sub_493790(&dword_8FF100);
v20 = (unsigned __int8)sub_4F0CF0(a1) || (unsigned __int8)sub_4F0CF0(a1);
if ( v59 | v20 )
{
v73 = flt_96EDE8;
v74 = flt_96EDEC;
v75 = 0.0;
sub_41C4C0(&v73, &v64, &v67, &v68);
v61 = v56;
v62 = v57;
v63 = v58;
*(float *)&v49 = *(float *)&v56 + *(float *)&v64 * 45.0;
v50 = v57 + v65 * 45.0;
v51 = 45.0 * v66 + v58;
if ( dword_8FF1F8 & 8 )
{
v21 = -2.5;
}
else
{
v46 = 0.0;
v45 = -90.0;
v22 = flt_96EDE8;
if ( dword_8FF1F8 & 4 )
{
sub_4AF390(flt_96EDE8, v45, v46);
v21 = v22 / -90.0 * 30.0 - 5.0;
}
else
{
sub_4AF390(flt_96EDE8, v45, v46);
v21 = v22 / -90.0 * 30.0 - 8.0;
}
}
*(float *)v48 = v21;
v23 = *(float *)v48;
v48[0] = 1;
*(float *)&v49 = *(float *)&v68 * v23 + *(float *)&v49;
v50 = v69 * v23 + v50;
v51 = v23 * v70 + v51;
goto LABEL_66;
}
if ( dword_96A270 )
{
v49 = v56;
v50 = v57;
v51 = v58;
sub_41C4C0(v52 + 1036, &v64, &v67, &v68);
v48[0] = 1;
*(float *)&v49 = *(float *)&v64 * 45.0 + *(float *)&v49;
v50 = v65 * 45.0 + v50;
v51 = 45.0 * v66 + v51;
goto LABEL_66;
}
v73 = flt_9761BC;
v74 = flt_9761C0;
v75 = 0.0;
v47 = -2;
result = sub_4DB2E0(a1, v19, a6, &v47);
if ( result )
{
result = sub_55DE90(a1, v19, v47, &v96);
if ( (_BYTE)result )
{
v49 = v96;
v50 = v97;
v51 = v98;
sub_41C4C0(&v73, &v64, &v67, &v68);
v48[0] = 1;
goto LABEL_66;
}
}
return result;
}