{"name": "DecodeCopMemInstruction", "code": "__int64 __fastcall DecodeCopMemInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { unsigned int v2 ; unsigned int v4 ; unsigned int v5 ; unsigned int v6 ; unsigned int v7 ; unsigned int @@v8@@ ; int @@v9@@ ; unsigned int @@v10@@ ; unsigned int @@v11@@ ; unsigned int @@v12@@ ; unsigned int @@v13@@ ; unsigned int @@v14@@ ; @@v8@@ = Number ; @@v13@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v12@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v11@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v14@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v10@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v9@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; v2 = MCInst_getOpcode ( @@a1@@ ) ; if ( v2 <= Number ) { if ( v2 < Number ) { if ( v2 > Number ) goto LABEL_12 ; if ( v2 < Number ) { if ( v2 > Number ) { if ( v2 - Number > Number ) goto LABEL_12 ; } else if ( v2 < Number ) { goto LABEL_12 ; } } } if ( @@v11@@ == Number || @@v11@@ == Number ) return Number L ; } LABEL_12 : MCOperand_CreateImm0 ( @@a1@@ , @@v11@@ ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v12@@ ) ; v4 = DecodeGPRRegisterClass ( @@a1@@ , @@v10@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v8@@ , v4 ) != Number ) return Number L ; v5 = MCInst_getOpcode ( @@a1@@ ) ; if ( v5 > Number ) goto LABEL_30 ; if ( v5 < Number ) { if ( v5 <= Number ) { if ( v5 >= Number ) { switch ( v5 ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_28 ; case Number : case Number : case Number : case Number : goto LABEL_29 ; default : goto LABEL_30 ; } } if ( v5 > Number ) { if ( v5 <= Number && v5 >= Number ) { switch ( v5 ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_28 ; case Number : case Number : case Number : case Number : goto LABEL_29 ; default : break ; } } } else if ( v5 >= Number ) { switch ( v5 ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_28 ; case Number : case Number : case Number : case Number : goto LABEL_29 ; default : break ; } } } LABEL_30 : MCOperand_CreateImm0 ( @@a1@@ , @@v14@@ ) ; goto LABEL_31 ; } switch ( v5 ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : LABEL_28 : @@v14@@ = ARM_AM_getAM5Opc ( @@v9@@ != Number , @@v14@@ ) ; MCOperand_CreateImm0 ( @@a1@@ , @@v14@@ ) ; break ; case Number : case Number : case Number : case Number : LABEL_29 : @@v14@@ |= @@v9@@ << Number ; goto LABEL_30 ; default : goto LABEL_30 ; } LABEL_31 : v6 = MCInst_getOpcode ( @@a1@@ ) ; if ( v6 > Number ) { if ( v6 - Number > Number ) return @@v8@@ ; } else if ( v6 < Number ) { return @@v8@@ ; } v7 = DecodePredicateOperand ( @@a1@@ , @@v13@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v8@@ , v7 ) != Number ) return Number L ; return @@v8@@ ; }", "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": "v12", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v14", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v13", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}
{"name": "ARM_AM_getAM5Opc", "code": "__int64 __fastcall ARM_AM_getAM5Opc ( int @@a1@@ , unsigned __int8 @@a2@@ ) { return ( ( @@a1@@ == Number ) << Number ) | ( unsigned int ) @@a2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r64"}]} {"name": "Check", "code": "__int64 __fastcall Check ( _DWORD * @@a1@@ , unsigned int @@a2@@ ) { if ( @@a2@@ == Number ) return Number L ; if ( @@a2@@ <= Number ) { if ( ! @@a2@@ ) { * @@a1@@ = Number ; return Number L ; } if ( @@a2@@ == Number ) { * @@a1@@ = Number ; return Number L ; } } return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]} {"name": "fieldFromInstruction_4", "code": "__int64 __fastcall fieldFromInstruction_4 ( unsigned int @@a1@@ , char @@a2@@ , int @@a3@@ ) { int @@v4@@ ; if ( @@a3@@ == Number ) @@v4@@ = Number ; else @@v4@@ = ( ( Number << @@a3@@ ) - Number ) << @@a2@@ ; return ( @@v4@@ & @@a1@@ ) >> @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]} {"name": "DecodePredicateOperand", "code": "__int64 __fastcall DecodePredicateOperand ( __int64 @@a1@@ , unsigned int @@a2@@ ) { if ( @@a2@@ == Number ) return Number L ; if ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) == Number && @@a2@@ == Number ) return Number L ; MCOperand_CreateImm0 ( @@a1@@ , @@a2@@ ) ; if ( @@a2@@ == Number ) MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; else MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; 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"}]} {"name": "DecodeGPRRegisterClass", "code": "__int64 __fastcall DecodeGPRRegisterClass ( __int64 @@a1@@ , unsigned int @@a2@@ ) { if ( @@a2@@ > Number ) return Number L ; MCOperand_CreateReg0 ( @@a1@@ , ( unsigned __int16 ) GPRDecoderTable [ @@a2@@ ] ) ; 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"}]}