{"name": "SignExtend32", "code": "__int64 __fastcall SignExtend32 ( int @@a1@@ , char @@a2@@ ) { return ( unsigned int ) ( @@a1@@ << ( Number - @@a2@@ ) >> ( Number - @@a2@@ ) ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}]}
{"name": "DecodeT2BInstruction", "code": "__int64 __fastcall DecodeT2BInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { int @@v3@@ ; int @@v4@@ ; int @@v5@@ ; int @@v6@@ ; int @@v7@@ ; int @@v8@@ ; @@v8@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v7@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v6@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) == @@v8@@ ; @@v5@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v4@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) | ( @@v6@@ << Number ) | ( ( @@v7@@ == @@v8@@ ) << Number ) | ( @@v8@@ << Number ) | ( @@v5@@ << Number ) ; @@v3@@ = SignExtend32 ( Number * @@v4@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v3@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "DecodeBranchImmInstruction", "code": "__int64 __fastcall DecodeBranchImmInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { int v2 ; int v3 ; __int64 result ; int v5 ; unsigned int v6 ; unsigned int @@v7@@ ; unsigned int @@v8@@ ; unsigned int @@v9@@ ; @@v7@@ = Number ; @@v9@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v8@@ = Number * fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; if ( @@v9@@ == Number ) { MCInst_setOpcode ( @@a1@@ , Number L ) ; v2 = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; v3 = SignExtend32 ( ( Number * v2 ) | @@v8@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , v3 ) ; result = @@v7@@ ; } else { v5 = SignExtend32 ( @@v8@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , v5 ) ; v6 = DecodePredicateOperand ( @@a1@@ , @@v9@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v7@@ , v6 ) != Number ) result = Number L ; else result = @@v7@@ ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]} {"name": "DecodeThumbBROperand", "code": "__int64 __fastcall DecodeThumbBROperand ( __int64 @@a1@@ , int @@a2@@ ) { int @@v2@@ ; @@v2@@ = SignExtend32 ( Number * @@a2@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "DecodeT2BROperand", "code": "__int64 __fastcall DecodeT2BROperand ( __int64 @@a1@@ , int @@a2@@ ) { int @@v2@@ ; @@v2@@ = SignExtend32 ( @@a2@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "DecodeThumbBLXOffset", "code": "__int64 __fastcall DecodeThumbBLXOffset ( __int64 @@a1@@ , unsigned int @@a2@@ ) { int @@v3@@ ; @@v3@@ = SignExtend32 ( Number * ( ( ( ( ( @@a2@@ >> Number ) & Number ) == ( ( @@a2@@ >> Number ) & Number ) ) << Number ) | @@a2@@ & Number | ( ( ( ( @@a2@@ >> Number ) & Number ) == ( ( @@a2@@ >> Number ) & Number ) ) << Number ) ) , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v3@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}]} {"name": "DecodeThumbBCCTargetOperand", "code": "__int64 __fastcall DecodeThumbBCCTargetOperand ( __int64 @@a1@@ , int @@a2@@ ) { int @@v2@@ ; @@v2@@ = SignExtend32 ( Number * @@a2@@ , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]} {"name": "DecodeThumbBLTargetOperand", "code": "__int64 __fastcall DecodeThumbBLTargetOperand ( __int64 @@a1@@ , unsigned int @@a2@@ ) { int @@v3@@ ; @@v3@@ = SignExtend32 ( Number * ( ( ( ( ( @@a2@@ >> Number ) & Number ) == ( ( @@a2@@ >> Number ) & Number ) ) << Number ) | @@a2@@ & Number | ( ( ( ( @@a2@@ >> Number ) & Number ) == ( ( @@a2@@ >> Number ) & Number ) ) << Number ) ) , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v3@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}]} {"name": "DecodeT2Adr", "code": "__int64 __fastcall DecodeT2Adr ( __int64 @@a1@@ , unsigned int @@a2@@ ) { int v3 ; int v4 ; int v5 ; unsigned int v6 ; int @@v7@@ ; @@v7@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; if ( @@v7@@ != ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ) return Number L ; v5 = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; v6 = ( ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) << Number ) | v5 ; v3 = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; v4 = SignExtend32 ( ( @@v7@@ << Number ) | ( v3 << Number ) | v6 , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , v4 ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}