{"name": "tcg_malloc", "code": "__int64 __fastcall tcg_malloc ( int @@a1@@ ) { __int64 @@v2@@ ; @@v2@@ = tcg_ctx [ Number ] ; if ( ( unsigned __int64 ) ( ( int ) ( ( @@a1@@ + Number ) & Number ) + tcg_ctx [ Number ] ) > tcg_ctx [ Number ] ) return tcg_malloc_internal ( tcg_ctx , ( @@a1@@ + Number ) & Number ) ; tcg_ctx [ Number ] += ( int ) ( ( @@a1@@ + Number ) & Number ) ; return @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}]}
{"name": "tcg_out_reloc", "code": "unsigned __int64 __fastcall tcg_out_reloc ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ , int @@a4@@ , __int64 @@a5@@ ) { __int64 @@v8@@ ; __int64 @@v9@@ ; unsigned __int64 @@v10@@ ; @@v10@@ = __readfsqword ( Number ) ; @@v8@@ = Number L * @@a4@@ + * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( * ( _DWORD * ) @@v8@@ ) { patch_reloc ( @@a2@@ , @@a3@@ , * ( _QWORD * ) ( @@v8@@ + Number ) , @@a5@@ ) ; } else { @@v9@@ = tcg_malloc ( Number ) ; * ( _DWORD * ) ( @@v9@@ + Number ) = @@a3@@ ; * ( _QWORD * ) ( @@v9@@ + Number ) = @@a2@@ ; * ( _QWORD * ) ( @@v9@@ + Number ) = @@a5@@ ; * ( _QWORD * ) @@v9@@ = * ( _QWORD * ) ( @@v8@@ + Number ) ; * ( _QWORD * ) ( @@v8@@ + Number ) = @@v9@@ ; } return __readfsqword ( Number ) ^ @@v10@@ ; }", "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": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "tcg_malloc_internal", "code": "__int64 __fastcall tcg_malloc_internal ( _QWORD * @@a1@@ , int @@a2@@ ) { __int64 v3 ; __int64 * v4 ; if ( @@a2@@ <= Number ) { v4 = ( __int64 * ) @@a1@@ [ Number ] ; if ( v4 ) { if ( * v4 ) { v3 = * v4 ; goto LABEL_14 ; } } else { v3 = @@a1@@ [ Number ] ; if ( v3 ) goto LABEL_14 ; } v3 = qemu_malloc ( Number L ) ; * ( _DWORD * ) ( v3 + Number ) = Number ; * ( _QWORD * ) v3 = Number L ; if ( @@a1@@ [ Number ] ) * ( _QWORD * ) @@a1@@ [ Number ] = v3 ; else @@a1@@ [ Number ] = v3 ; } else { v3 = qemu_malloc ( @@a2@@ + Number L ) ; * ( _DWORD * ) ( v3 + Number ) = @@a2@@ ; if ( @@a1@@ [ Number ] ) * ( _QWORD * ) @@a1@@ [ Number ] = v3 ; else @@a1@@ [ Number ] = v3 ; * ( _QWORD * ) v3 = @@a1@@ [ Number ] ; } LABEL_14 : @@a1@@ [ Number ] = v3 ; * @@a1@@ = @@a2@@ + v3 + Number ; @@a1@@ [ Number ] = * ( int * ) ( v3 + Number ) + v3 + Number ; return v3 + Number ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}]} {"name": "tcg_func_start", "code": "unsigned __int64 __fastcall tcg_func_start ( __int64 @@a1@@ ) { int @@i@@ ; unsigned __int64 @@v3@@ ; @@v3@@ = __readfsqword ( Number ) ; tcg_pool_reset ( ( _QWORD * ) @@a1@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) * ( _DWORD * ) ( @@a1@@ + Number * ( @@i@@ + Number L ) ) = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = tcg_malloc ( Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; gen_opc_ptr = ( __int64 ) & gen_opc_buf ; gen_opparam_ptr = ( __int64 ) & gen_opparam_buf ; return __readfsqword ( Number ) ^ @@v3@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "tcg_liveness_analysis", "code": "unsigned __int64 __fastcall tcg_liveness_analysis ( __int64 @@a1@@ ) { int v2 ; int m ; int n ; int l ; int j ; int k ; int @@i@@ ; int v9 ; int v10 ; int @@v11@@ ; unsigned int @@v12@@ ; int @@v13@@ ; int v14 ; int v15 ; int v16 ; int v17 ; int @@v18@@ ; int v19 ; int v20 ; _QWORD * v21 ; _QWORD * v22 ; _QWORD * v23 ; void * @@s@@ ; unsigned __int8 * @@v25@@ ; unsigned __int64 @@v26@@ ; @@v26@@ = __readfsqword ( Number ) ; gen_opc_ptr += Number L ; @@v11@@ = ( gen_opc_ptr - ( __int64 ) & gen_opc_buf ) >> Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = tcg_malloc ( Number * @@v11@@ ) ; @@s@@ = ( void * ) tcg_malloc ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; memset ( @@s@@ , Number , * ( int * ) ( @@a1@@ + Number ) ) ; v21 = ( _QWORD * ) gen_opparam_ptr ; for ( @@i@@ = @@v11@@ - Number ; @@i@@ >= Number ; -- @@i@@ ) { @@v12@@ = * ( ( unsigned __int16 * ) & gen_opc_buf + @@i@@ ) ; @@v25@@ = ( unsigned __int8 * ) ( & tcg_op_defs + Number * * ( ( unsigned __int16 * ) & gen_opc_buf + @@i@@ ) ) ; if ( @@v12@@ > Number ) { if ( @@v12@@ == Number ) { v21 -= @@v25@@ [ Number ] ; } else { LABEL_30 : v21 -= @@v25@@ [ Number ] ; v15 = @@v25@@ [ Number ] ; v17 = @@v25@@ [ Number ] ; if ( ( @@v25@@ [ Number ] & Number ) != Number || ! @@v25@@ [ Number ] ) { LABEL_37 : for ( j = Number ; j < v17 ; ++ j ) * ( ( _BYTE * ) @@s@@ + ( int ) v21 [ j ] ) = Number ; if ( ( @@v25@@ [ Number ] & Number ) != Number ) { tcg_la_bb_end ( @@a1@@ , @@s@@ ) ; } else if ( ( @@v25@@ [ Number ] & Number ) != Number ) { memset ( @@s@@ , Number , * ( int * ) ( @@a1@@ + Number ) ) ; } v10 = Number ; for ( k = Number ; k < v15 ; ++ k ) { v20 = v21 [ k + v17 ] ; if ( * ( ( _BYTE * ) @@s@@ + v20 ) ) v10 |= Number << k ; * ( ( _BYTE * ) @@s@@ + v20 ) = Number ; } * ( _WORD * ) ( Number L * @@i@@ + * ( _QWORD * ) ( @@a1@@ + Number ) ) = v10 ; } else { for ( l = Number ; l < v17 ; ++ l ) { if ( ! * ( ( _BYTE * ) @@s@@ + ( int ) v21 [ l ] ) ) goto LABEL_37 ; } tcg_set_nop ( @@a1@@ , ( _WORD * ) & gen_opc_buf + @@i@@ , v21 , @@v25@@ [ Number ] ) ; } } } else { switch ( * ( ( _WORD * ) & gen_opc_buf + @@i@@ ) ) { case Number : continue ; case Number : v21 -= ( int ) * ( v21 - Number ) ; continue ; case Number : * ( ( _BYTE * ) @@s@@ + * -- v21 ) = Number ; continue ; case Number : -- v21 ; tcg_la_bb_end ( @@a1@@ , @@s@@ ) ; continue ; case Number : @@v13@@ = * ( v21 - Number ) ; v22 = & v21 [ - @@v13@@ ] ; v14 = ( unsigned __int16 ) * v22 ; v16 = * v22 >> Number ; v23 = v22 + Number ; @@v18@@ = v23 [ v16 + v14 ] ; if ( ( @@v18@@ & Number ) == Number ) goto LABEL_12 ; v2 = Number ; break ; default : goto LABEL_30 ; } while ( Number ) { if ( v2 >= v16 ) { tcg_set_nop ( @@a1@@ , ( _WORD * ) & gen_opc_buf + @@i@@ , v23 - Number , @@v13@@ ) ; goto LABEL_25 ; } if ( ! * ( ( _BYTE * ) @@s@@ + ( int ) v23 [ v2 ] ) ) break ; ++ v2 ; } LABEL_12 : for ( m = Number ; m < v16 ; ++ m ) * ( ( _BYTE * ) @@s@@ + ( int ) v23 [ m ] ) = Number ; if ( ( @@v18@@ & Number ) == Number ) memset ( @@s@@ , Number , * ( int * ) ( @@a1@@ + Number ) ) ; v9 = Number ; for ( n = Number ; n < v14 ; ++ n ) { v19 = v23 [ n + v16 ] ; if ( v19 != Number ) { if ( * ( ( _BYTE * ) @@s@@ + v19 ) ) v9 |= Number << n ; * ( ( _BYTE * ) @@s@@ + v19 ) = Number ; } } * ( _WORD * ) ( Number L * @@i@@ + * ( _QWORD * ) ( @@a1@@ + Number ) ) = v9 ; LABEL_25 : v21 = v23 - Number ; } } if ( v21 != ( _QWORD * ) & gen_opparam_buf ) { fprintf ( stderr , String , String , Number L ) ; abort ( ) ; } return __readfsqword ( Number ) ^ @@v26@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v25", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s16"}, {"n": "s", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v12", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s56"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v26", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}