{"name": "CG_SetParticleActive", "code": "_BOOL8 __fastcall CG_SetParticleActive ( __int64 @@a1@@ , int @@a2@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ ; return @@a2@@ != Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}]}
{"name": "CG_RainParticleGenerate", "code": "__int64 __fastcall CG_RainParticleGenerate ( __int64 @@a1@@ , _DWORD * @@a2@@ , float @@a3@@ ) { __int16 @@v3@@ ; float v4 ; float v5 ; __m128i v6 ; __m128i v7 ; float v9 ; float v10 ; float v11 ; float v12 ; double v13 ; double v14 ; double @@v15@@ ; float @@v17@@ ; float @@v18@@ ; float @@v19@@ ; float @@v20@@ ; @@v3@@ = rand ( ) ; v4 = Number * ( float ) ( ( float ) ( ( float ) ( @@v3@@ & Number ) / Number ) + ( float ) ( ( float ) ( @@v3@@ & Number ) / Number ) ) ; @@v20@@ = v4 ; @@v19@@ = ( float ) ( ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) * Number ) + Number ; @@v15@@ = cg [ Number ] ; v5 = sin ( v4 ) * @@v19@@ + @@v15@@ ; * ( float * ) @@a1@@ = v5 ; v6 = ( __m128i ) LODWORD ( cg [ Number ] ) ; * ( float * ) v6 . m128i_i32 = cos ( @@v20@@ ) * @@v19@@ + * ( float * ) v6 . m128i_i32 ; * ( _DWORD * ) ( @@a1@@ + Number ) = v6 . m128i_i32 [ Number ] ; * ( double * ) v6 . m128i_i64 = BG_GetSkyHeightAtPoint ( @@a1@@ ) ; @@v18@@ = COERCE_FLOAT ( _mm_cvtsi128_si32 ( v6 ) ) ; v7 = ( __m128i ) LODWORD ( @@v18@@ ) ; if ( @@v18@@ == Number ) return Number L ; * ( double * ) v7 . m128i_i64 = BG_GetSkyGroundHeightAtPoint ( @@a1@@ ) ; @@v17@@ = COERCE_FLOAT ( _mm_cvtsi128_si32 ( v7 ) ) ; if ( @@v17@@ >= @@v18@@ ) return Number L ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( ( float ) ( @@v18@@ - @@v17@@ ) * ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) ) + @@v17@@ ; if ( dword_49498 > Number && ( float ) ( * ( float * ) ( @@a1@@ + Number ) - cg [ Number ] ) > ( float ) dword_49498 ) { * ( float * ) ( @@a1@@ + Number ) = ( float ) dword_49498 + cg [ Number ] ; if ( @@v17@@ > * ( float * ) ( @@a1@@ + Number ) ) return Number L ; } v9 = ( double ) ( Number - SLODWORD ( cg [ Number ] ) % Number ) * ( ( double ) dword_4945C * Number ) + ( double ) dword_4945C * Number ; if ( ( float ) dword_494E4 > v9 ) return Number L ; CG_SetParticleActive ( @@a1@@ , Number ) ; v10 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) * Number * Number + Number ; * ( float * ) ( @@a1@@ + Number ) = v10 ; v11 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) * Number * Number + Number ; * ( float * ) ( @@a1@@ + Number ) = v11 ; v12 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) * Number * Number + Number ; * ( float * ) ( @@a1@@ + Number ) = v12 ; * ( _DWORD * ) ( @@a1@@ + Number ) = * @@a2@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ [ Number ] ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ [ Number ] ; v13 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) - Number ; * ( float * ) & v13 = * ( float * ) ( @@a1@@ + Number ) + ( v13 + v13 ) * Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = LODWORD ( v13 ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; VectorNormalizeFast ( @@a1@@ + Number ) ; v14 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) - Number ; * ( float * ) & v14 = ( v14 + v14 ) * Number + Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = LODWORD ( v14 ) ; * ( float * ) ( @@a1@@ + Number ) = @@a3@@ ; if ( dword_4949C <= Number ) * ( _QWORD * ) ( @@a1@@ + Number ) = & dword_49440 ; else * ( _QWORD * ) ( @@a1@@ + Number ) = ( char * ) & cg_atmFx + Number * ( rand ( ) % dword_4949C ) + Number ; return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "float", "s": 4}, "location": "r496"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r8"}, {"n": "v18", "t": {"T": 1, "n": "float", "s": 4}, "location": "s12"}, {"n": "v17", "t": {"T": 1, "n": "float", "s": 4}, "location": "s16"}, {"n": "v20", "t": {"T": 1, "n": "float", "s": 4}, "location": "s4"}, {"n": "v15", "t": {"T": 1, "n": "double", "s": 8}, "location": "s64"}, {"n": "v19", "t": {"T": 1, "n": "float", "s": 4}, "location": "s8"}]} {"name": "CG_RainParticleCheckVisible", "code": "_BOOL8 __fastcall CG_RainParticleCheckVisible ( __int64 @@a1@@ ) { _BOOL8 @@result@@ ; float v2 ; double v3 ; float @@v4@@ ; float @@v5@@ ; if ( ! @@a1@@ || ! * ( _DWORD * ) ( @@a1@@ + Number ) ) return Number L ; v2 = Number * ( double ) ( LODWORD ( cg [ Number ] ) - dword_49458 ) ; * ( float * ) @@a1@@ = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) @@a1@@ ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) ( @@a1@@ + Number ) ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) ( @@a1@@ + Number ) ; @@v4@@ = * ( float * ) ( @@a1@@ + Number ) + * ( float * ) ( @@a1@@ + Number ) ; v3 = BG_GetSkyGroundHeightAtPoint ( @@a1@@ ) ; if ( * ( float * ) & v3 > @@v4@@ || ( @@v5@@ = * ( float * ) ( @@a1@@ + Number ) - cg [ Number ] , ( float ) ( ( float ) ( @@v5@@ * @@v5@@ ) + ( float ) ( ( float ) ( * ( float * ) @@a1@@ - cg [ Number ] ) * ( float ) ( * ( float * ) @@a1@@ - cg [ Number ] ) ) ) > Number ) ) { @@result@@ = CG_SetParticleActive ( @@a1@@ , Number ) ; } else { @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "_BOOL8", "s": 8}, "location": "r8"}, {"n": "v4", "t": {"T": 1, "n": "float", "s": 4}, "location": "s28"}, {"n": "v5", "t": {"T": 1, "n": "float", "s": 4}, "location": "s8"}]} {"name": "CG_SnowParticleGenerate", "code": "__int64 __fastcall CG_SnowParticleGenerate ( __int64 @@a1@@ , _DWORD * @@a2@@ ) { __int16 v2 ; float v3 ; float v4 ; __m128i v5 ; __m128i v6 ; double v8 ; __int16 v9 ; double @@v10@@ ; float @@v11@@ ; float @@v12@@ ; float @@v13@@ ; float @@v14@@ ; v2 = rand ( ) ; v3 = Number * ( float ) ( ( float ) ( ( float ) ( v2 & Number ) / Number ) + ( float ) ( ( float ) ( v2 & Number ) / Number ) ) ; @@v14@@ = v3 ; @@v13@@ = ( float ) ( ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) * Number ) + Number ; @@v10@@ = cg [ Number ] ; v4 = sin ( v3 ) * @@v13@@ + @@v10@@ ; * ( float * ) @@a1@@ = v4 ; v5 = ( __m128i ) LODWORD ( cg [ Number ] ) ; * ( float * ) v5 . m128i_i32 = cos ( @@v14@@ ) * @@v13@@ + * ( float * ) v5 . m128i_i32 ; * ( _DWORD * ) ( @@a1@@ + Number ) = v5 . m128i_i32 [ Number ] ; * ( double * ) v5 . m128i_i64 = BG_GetSkyHeightAtPoint ( @@a1@@ ) ; @@v12@@ = COERCE_FLOAT ( _mm_cvtsi128_si32 ( v5 ) ) ; v6 = ( __m128i ) LODWORD ( @@v12@@ ) ; if ( @@v12@@ == Number ) return Number L ; * ( double * ) v6 . m128i_i64 = BG_GetSkyGroundHeightAtPoint ( @@a1@@ ) ; @@v11@@ = COERCE_FLOAT ( _mm_cvtsi128_si32 ( v6 ) ) ; if ( @@v11@@ >= @@v12@@ ) return Number L ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( ( float ) ( @@v12@@ - @@v11@@ ) * ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) ) + @@v11@@ ; if ( dword_49498 > Number && ( float ) ( * ( float * ) ( @@a1@@ + Number ) - cg [ Number ] ) > ( float ) dword_49498 ) { * ( float * ) ( @@a1@@ + Number ) = ( float ) dword_49498 + cg [ Number ] ; if ( @@v11@@ > * ( float * ) ( @@a1@@ + Number ) ) return Number L ; } CG_SetParticleActive ( @@a1@@ , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * @@a2@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ [ Number ] ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@a2@@ [ Number ] ; v8 = ( float ) ( ( float ) ( rand ( ) & Number ) / Number ) - Number ; * ( float * ) & v8 = * ( float * ) ( @@a1@@ + Number ) + ( v8 + v8 ) * Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = LODWORD ( v8 ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; VectorNormalizeFast ( @@a1@@ + Number ) ; v9 = rand ( ) ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( ( float ) ( ( float ) ( v9 & Number ) / Number ) + ( float ) ( ( float ) ( v9 & Number ) / Number ) ) + Number ; * ( float * ) ( @@a1@@ + Number ) = Number * * ( float * ) ( @@a1@@ + Number ) ; if ( dword_4949C <= Number ) * ( _QWORD * ) ( @@a1@@ + Number ) = & dword_49440 ; else * ( _QWORD * ) ( @@a1@@ + Number ) = ( char * ) & cg_atmFx + Number * ( rand ( ) % dword_4949C ) + Number ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v12", "t": {"T": 1, "n": "float", "s": 4}, "location": "s12"}, {"n": "v11", "t": {"T": 1, "n": "float", "s": 4}, "location": "s16"}, {"n": "v14", "t": {"T": 1, "n": "float", "s": 4}, "location": "s4"}, {"n": "v10", "t": {"T": 1, "n": "double", "s": 8}, "location": "s48"}, {"n": "v13", "t": {"T": 1, "n": "float", "s": 4}, "location": "s8"}]} {"name": "CG_SnowParticleCheckVisible", "code": "_BOOL8 __fastcall CG_SnowParticleCheckVisible ( __int64 @@a1@@ ) { _BOOL8 @@result@@ ; float v2 ; double v3 ; float @@v4@@ ; float @@v5@@ ; if ( ! @@a1@@ || ! * ( _DWORD * ) ( @@a1@@ + Number ) ) return Number L ; v2 = Number * ( double ) ( LODWORD ( cg [ Number ] ) - dword_49458 ) ; * ( float * ) @@a1@@ = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) @@a1@@ ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) ( @@a1@@ + Number ) ; * ( float * ) ( @@a1@@ + Number ) = ( float ) ( * ( float * ) ( @@a1@@ + Number ) * v2 ) + * ( float * ) ( @@a1@@ + Number ) ; @@v4@@ = * ( float * ) ( @@a1@@ + Number ) ; v3 = BG_GetSkyGroundHeightAtPoint ( @@a1@@ ) ; if ( * ( float * ) & v3 > @@v4@@ || ( @@v5@@ = * ( float * ) ( @@a1@@ + Number ) - cg [ Number ] , ( float ) ( ( float ) ( @@v5@@ * @@v5@@ ) + ( float ) ( ( float ) ( * ( float * ) @@a1@@ - cg [ Number ] ) * ( float ) ( * ( float * ) @@a1@@ - cg [ Number ] ) ) ) > Number ) ) { @@result@@ = CG_SetParticleActive ( @@a1@@ , Number ) ; } else { @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "_BOOL8", "s": 8}, "location": "r8"}, {"n": "v4", "t": {"T": 1, "n": "float", "s": 4}, "location": "s28"}, {"n": "v5", "t": {"T": 1, "n": "float", "s": 4}, "location": "s8"}]}