{"name": "decodeULEB128", "code": "__int64 __fastcall decodeULEB128 ( char * @@a1@@ , _DWORD * @@a2@@ ) { char * @@v2@@ ; char * @@v4@@ ; int @@v5@@ ; __int64 @@v6@@ ; @@v4@@ = @@a1@@ ; @@v6@@ = Number L ; @@v5@@ = Number ; do { @@v6@@ += ( * @@v4@@ & Number ) << @@v5@@ ; @@v5@@ += Number ; @@v2@@ = @@v4@@ ++ ; } while ( * @@v2@@ < Number ) ; if ( @@a2@@ ) * @@a2@@ = ( _DWORD ) @@v4@@ - ( _DWORD ) @@a1@@ ; return @@v6@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "char"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v2", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v4", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}
{"name": "decodeInstruction_2", "code": "__int64 __fastcall decodeInstruction_2 ( char * @@a1@@ , __int64 @@a2@@ , unsigned __int16 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , char @@a6@@ ) { __int64 result ; char * v7 ; char * v8 ; char * v9 ; char * v10 ; char * v11 ; char * v12 ; bool v13 ; unsigned int @@v17@@ ; unsigned __int16 @@v18@@ ; int @@v19@@ ; unsigned __int16 @@v20@@ ; int @@v21@@ ; unsigned int @@v23@@ ; int @@v24@@ ; unsigned int @@v25@@ ; unsigned int @@v26@@ ; bool @@v27@@ ; unsigned __int16 @@v28@@ ; unsigned __int16 @@v29@@ ; __int64 @@v30@@ ; unsigned int @@v31@@ ; int @@v32@@ ; char * @@v33@@ ; @@v30@@ = ARM_getFeatureBits ( @@a6@@ ) ; @@v33@@ = @@a1@@ ; @@v32@@ = Number ; @@v31@@ = Number ; while ( Number ) { switch ( * @@v33@@ ) { case Number : @@v21@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v17@@ = ( unsigned __int8 ) * ++ @@v33@@ ; ++ @@v33@@ ; @@v32@@ = ( unsigned __int16 ) fieldFromInstruction_2 ( @@a3@@ , @@v21@@ , @@v17@@ ) ; continue ; case Number : @@v18@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v7 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v7 ; v8 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v8 << Number ; if ( @@v32@@ != @@v18@@ ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v21@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v17@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v20@@ = fieldFromInstruction_2 ( @@a3@@ , @@v21@@ , @@v17@@ ) ; @@v19@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v9 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v9 ; v10 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v10 << Number ; if ( @@v19@@ != @@v20@@ ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v24@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v11 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v11 ; v12 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v12 << Number ; if ( ! checkDecoderPredicate ( @@v24@@ , @@v30@@ ) ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v26@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; @@v25@@ = decodeULEB128 ( @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; MCInst_setOpcode ( @@a2@@ , @@v26@@ ) ; result = decodeToMCInst_2 ( @@v31@@ , @@v25@@ , @@a3@@ , @@a2@@ , @@a4@@ , @@a5@@ ) ; break ; case Number : @@v29@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; @@v28@@ = decodeULEB128 ( @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v13 = ( @@v29@@ & @@a3@@ ) != Number || ( ~ @@a3@@ & @@v28@@ ) != Number ; @@v27@@ = v13 ; if ( v13 ) @@v31@@ = Number ; continue ; case Number : result = Number L ; break ; default : result = Number L ; break ; } return result ; } }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "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": "a6", "t": {"T": 1, "n": "char", "s": 1}, "location": "r80"}, {"n": "v32", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v31", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v30", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v29", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s26"}, {"n": "v28", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s28"}, {"n": "v27", "t": {"T": 1, "n": "bool", "s": 1}, "location": "s29"}, {"n": "v26", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v25", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v23", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s48"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s58"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}, {"n": "v18", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s66"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s72"}, {"n": "v33", "t": {"T": 3, "t": "char"}, "location": "s8"}]} {"name": "decodeInstruction_4", "code": "__int64 __fastcall decodeInstruction_4 ( char * @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , char @@a6@@ ) { __int64 result ; char * v7 ; char * v8 ; char * v9 ; char * v10 ; char * v11 ; char * v12 ; bool v13 ; unsigned int @@v17@@ ; int @@v18@@ ; int @@v19@@ ; int @@v20@@ ; int @@v21@@ ; unsigned int @@v23@@ ; int @@v24@@ ; unsigned int @@v25@@ ; unsigned int @@v26@@ ; bool @@v27@@ ; int @@v28@@ ; int @@v29@@ ; __int64 @@v30@@ ; unsigned int @@v31@@ ; int @@v32@@ ; char * @@v33@@ ; @@v30@@ = ARM_getFeatureBits ( @@a6@@ ) ; @@v33@@ = @@a1@@ ; @@v32@@ = Number ; @@v31@@ = Number ; while ( Number ) { switch ( * @@v33@@ ) { case Number : @@v21@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v17@@ = ( unsigned __int8 ) * ++ @@v33@@ ; ++ @@v33@@ ; @@v32@@ = fieldFromInstruction_4 ( @@a3@@ , @@v21@@ , @@v17@@ ) ; continue ; case Number : @@v18@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v7 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v7 ; v8 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v8 << Number ; if ( @@v18@@ != @@v32@@ ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v21@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v17@@ = ( unsigned __int8 ) * ++ @@v33@@ ; @@v20@@ = fieldFromInstruction_4 ( @@a3@@ , @@v21@@ , @@v17@@ ) ; @@v19@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v9 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v9 ; v10 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v10 << Number ; if ( @@v19@@ != @@v20@@ ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v24@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v11 = @@v33@@ ++ ; @@v23@@ = ( unsigned __int8 ) * v11 ; v12 = @@v33@@ ++ ; @@v23@@ |= ( unsigned __int8 ) * v12 << Number ; if ( ! checkDecoderPredicate ( @@v24@@ , @@v30@@ ) ) @@v33@@ += @@v23@@ ; continue ; case Number : @@v26@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; @@v25@@ = decodeULEB128 ( @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; MCInst_setOpcode ( @@a2@@ , @@v26@@ ) ; result = decodeToMCInst_4 ( @@v31@@ , @@v25@@ , @@a3@@ , @@a2@@ , @@a4@@ , @@a5@@ ) ; break ; case Number : @@v29@@ = decodeULEB128 ( ++ @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; @@v28@@ = decodeULEB128 ( @@v33@@ , & @@v17@@ ) ; @@v33@@ += @@v17@@ ; v13 = ( @@v29@@ & @@a3@@ ) != Number || ( @@v28@@ & ~ @@a3@@ ) != Number ; @@v27@@ = v13 ; if ( v13 ) @@v31@@ = Number ; continue ; case Number : result = Number L ; break ; default : result = Number L ; break ; } return result ; } }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "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": "a6", "t": {"T": 1, "n": "char", "s": 1}, "location": "r80"}, {"n": "v32", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v31", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v30", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v27", "t": {"T": 1, "n": "bool", "s": 1}, "location": "s33"}, {"n": "v26", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v25", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v23", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s52"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v20", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s76"}, {"n": "v33", "t": {"T": 3, "t": "char"}, "location": "s8"}]}