{"name": "tcg_get_arg_str_idx", "code": "char * __fastcall tcg_get_arg_str_idx ( __int64 @@a1@@ , char * @@a2@@ , unsigned int @@a3@@ , int @@a4@@ ) { __int64 @@v5@@ ; @@v5@@ = * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * @@a4@@ ; if ( @@a4@@ >= * ( _DWORD * ) ( @@a1@@ + Number ) ) { if ( ( * ( _BYTE * ) ( @@v5@@ + Number ) & Number ) != Number ) snprintf ( @@a2@@ , ( int ) @@a3@@ , String , ( unsigned int ) ( @@a4@@ - * ( _DWORD * ) ( @@a1@@ + Number ) ) ) ; else snprintf ( @@a2@@ , ( int ) @@a3@@ , String , ( unsigned int ) ( @@a4@@ - * ( _DWORD * ) ( @@a1@@ + Number ) ) ) ; } else { pstrcpy ( @@a2@@ , @@a3@@ , * ( _QWORD * ) ( @@v5@@ + Number ) ) ; } return @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char"}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}]}
{"name": "tcg_get_arg_str_i32", "code": "char * __fastcall tcg_get_arg_str_i32 ( __int64 @@a1@@ , char * @@a2@@ , unsigned int @@a3@@ , int @@a4@@ ) { return tcg_get_arg_str_idx ( @@a1@@ , @@a2@@ , @@a3@@ , @@a4@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char"}, "location": "r64"}]} {"name": "tcg_get_arg_str_i64", "code": "char * __fastcall tcg_get_arg_str_i64 ( __int64 @@a1@@ , char * @@a2@@ , unsigned int @@a3@@ , int @@a4@@ ) { return tcg_get_arg_str_idx ( @@a1@@ , @@a2@@ , @@a3@@ , @@a4@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char"}, "location": "r64"}]} {"name": "tcg_dump_ops", "code": "unsigned __int64 __fastcall tcg_dump_ops ( __int64 @@a1@@ , FILE * @@a2@@ ) { unsigned __int16 * v2 ; __int64 * v3 ; char * v4 ; char * v5 ; char * v6 ; char * v7 ; int v8 ; char * v9 ; int v10 ; char * v11 ; int v12 ; int v13 ; int v14 ; int i ; int j ; int k ; int l ; int v20 ; int @@v21@@ ; signed int @@v22@@ ; int @@v23@@ ; int @@v24@@ ; int @@v25@@ ; int @@v26@@ ; unsigned __int16 * @@v27@@ ; __int64 * @@v28@@ ; const char * * @@v29@@ ; unsigned __int64 @@v30@@ ; __int64 @@v31@@ ; __int64 @@v32@@ ; char @@v33@@ [ Number ] ; unsigned __int64 @@v34@@ ; @@v34@@ = __readfsqword ( Number ) ; @@v25@@ = Number ; @@v27@@ = ( unsigned __int16 * ) & gen_opc_buf ; @@v28@@ = ( __int64 * ) & gen_opparam_buf ; while ( ( unsigned __int64 ) @@v27@@ < gen_opc_ptr ) { v2 = @@v27@@ ++ ; @@v26@@ = * v2 ; @@v29@@ = ( const char * * ) ( & tcg_op_defs + Number * * v2 ) ; switch ( @@v26@@ ) { case Number : @@v32@@ = * @@v28@@ ; if ( ! @@v25@@ ) fputc ( Number , @@a2@@ ) ; fprintf ( @@a2@@ , String , @@v32@@ ) ; @@v25@@ = Number ; @@v22@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v23@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v24@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; break ; case Number : v3 = @@v28@@ ++ ; @@v22@@ = ( unsigned __int64 ) * v3 >> Number ; @@v23@@ = ( unsigned __int16 ) * v3 ; @@v24@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; fprintf ( @@a2@@ , String , * @@v29@@ ) ; v4 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , @@v28@@ [ @@v22@@ - Number + @@v23@@ ] ) ; fputs ( v4 , @@a2@@ ) ; fprintf ( @@a2@@ , String , @@v28@@ [ @@v22@@ + @@v23@@ ] ) ; fprintf ( @@a2@@ , String , ( unsigned int ) @@v22@@ ) ; for ( i = Number ; i < @@v22@@ ; ++ i ) { fputc ( Number , @@a2@@ ) ; v5 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , @@v28@@ [ i ] ) ; fputs ( v5 , @@a2@@ ) ; } for ( j = Number ; j < @@v23@@ - Number ; ++ j ) { fputc ( Number , @@a2@@ ) ; if ( @@v28@@ [ @@v22@@ + j ] == Number ) { fwrite ( String , Number , Number , @@a2@@ ) ; } else { v6 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , @@v28@@ [ @@v22@@ + j ] ) ; fputs ( v6 , @@a2@@ ) ; } } break ; case Number : case Number : @@v22@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v23@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v24@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; v7 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , * @@v28@@ ) ; fprintf ( @@a2@@ , String , * @@v29@@ , v7 ) ; @@v30@@ = @@v28@@ [ Number ] ; @@v31@@ = tcg_find_helper ( @@a1@@ , @@v30@@ ) ; if ( @@v31@@ ) { fputs ( * ( const char * * ) ( @@v31@@ + Number ) , @@a2@@ ) ; } else if ( @@v26@@ == Number ) { fprintf ( @@a2@@ , String , ( unsigned int ) @@v30@@ ) ; } else { fprintf ( @@a2@@ , String , @@v30@@ ) ; } break ; default : fprintf ( @@a2@@ , String , * @@v29@@ ) ; if ( @@v26@@ == Number ) { @@v24@@ = * @@v28@@ ; @@v22@@ = Number ; @@v23@@ = Number ; } else { @@v22@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v23@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; @@v24@@ = * ( ( unsigned __int8 * ) @@v29@@ + Number ) ; } @@v21@@ = Number ; for ( k = Number ; k < @@v22@@ ; ++ k ) { if ( @@v21@@ ) fputc ( Number , @@a2@@ ) ; v8 = @@v21@@ ++ ; v9 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , @@v28@@ [ v8 ] ) ; fputs ( v9 , @@a2@@ ) ; } for ( l = Number ; l < @@v23@@ ; ++ l ) { if ( @@v21@@ ) fputc ( Number , @@a2@@ ) ; v10 = @@v21@@ ++ ; v11 = tcg_get_arg_str_idx ( @@a1@@ , @@v33@@ , Number , @@v28@@ [ v10 ] ) ; fputs ( v11 , @@a2@@ ) ; } if ( ( unsigned int ) ( @@v26@@ - Number ) <= Number && ( ( Number L << ( ( unsigned __int8 ) @@v26@@ - Number ) ) & Number ) != Number ) { if ( ( unsigned __int64 ) @@v28@@ [ @@v21@@ ] <= Number && cond_name [ @@v28@@ [ @@v21@@ ] ] ) { v12 = @@v21@@ ++ ; fprintf ( @@a2@@ , String , cond_name [ @@v28@@ [ v12 ] ] ) ; } else { v13 = @@v21@@ ++ ; fprintf ( @@a2@@ , String , @@v28@@ [ v13 ] ) ; } v20 = Number ; } else { v20 = Number ; } while ( v20 < @@v24@@ ) { if ( @@v21@@ ) fputc ( Number , @@a2@@ ) ; v14 = @@v21@@ ++ ; fprintf ( @@a2@@ , String , @@v28@@ [ v14 ] ) ; ++ v20 ; } break ; } fputc ( Number , @@a2@@ ) ; @@v28@@ += @@v22@@ + @@v23@@ + @@v24@@ ; } return __readfsqword ( Number ) ^ @@v34@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "FILE"}, "location": "r64"}, {"n": "v33", "t": {"T": 2, "n": 136, "s": 1, "t": "char"}, "location": "s144"}, {"n": "v32", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s168"}, {"n": "v30", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s176"}, {"n": "v29", "t": {"T": 3, "t": "const char *"}, "location": "s192"}, {"n": "v28", "t": {"T": 3, "t": "__int64"}, "location": "s200"}, {"n": "v27", "t": {"T": 3, "t": "unsigned __int16"}, "location": "s208"}, {"n": "v26", "t": {"T": 1, "n": "int", "s": 4}, "location": "s212"}, {"n": "v25", "t": {"T": 1, "n": "int", "s": 4}, "location": "s216"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s220"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s224"}, {"n": "v22", "t": {"T": 1, "n": "signed int", "s": 4}, "location": "s228"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s232"}, {"n": "v34", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}