{"name": "DecodeMemMultipleWritebackInstruction", "code": "__int64 __fastcall DecodeMemMultipleWritebackInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { unsigned int v2 ; __int64 result ; unsigned int v4 ; unsigned int v5 ; unsigned int v6 ; unsigned int v7 ; unsigned int v8 ; unsigned int @@v9@@ ; int @@v10@@ ; unsigned int @@v11@@ ; unsigned int @@v12@@ ; @@v9@@ = Number ; @@v12@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v11@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v10@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; if ( @@v11@@ == Number ) { v2 = MCInst_getOpcode ( @@a1@@ ) ; if ( v2 <= Number ) { if ( v2 >= Number ) { switch ( v2 ) { case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; goto LABEL_27 ; default : return Number L ; } } return Number L ; } if ( v2 > Number || v2 < Number ) return Number L ; switch ( v2 ) { case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; case Number : MCInst_setOpcode ( @@a1@@ , Number L ) ; break ; default : return Number L ; } LABEL_27 : if ( ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ) { result = DecodeRFEInstruction ( @@a1@@ , @@a2@@ ) ; } else if ( ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) == Number && ! ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ) { v4 = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; MCOperand_CreateImm0 ( @@a1@@ , v4 ) ; result = @@v9@@ ; } else { result = Number L ; } } else { v5 = DecodeGPRRegisterClass ( @@a1@@ , @@v12@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v9@@ , v5 ) != Number ) { result = Number L ; } else { v6 = DecodeGPRRegisterClass ( @@a1@@ , @@v12@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v9@@ , v6 ) != Number ) { result = Number L ; } else { v7 = DecodePredicateOperand ( @@a1@@ , @@v11@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v9@@ , v7 ) != Number ) { result = Number L ; } else { v8 = DecodeRegListOperand ( @@a1@@ , @@v10@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v9@@ , v8 ) != Number ) result = Number L ; else result = @@v9@@ ; } } } } 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": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v12", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}
{"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"}]} {"name": "DecodeRegListOperand", "code": "__int64 __fastcall DecodeRegListOperand ( __int64 @@a1@@ , int @@a2@@ ) { __int64 v2 ; __int64 result ; unsigned int v4 ; int v5 ; unsigned int @@v6@@ ; unsigned int @@v7@@ ; int @@v8@@ ; char @@v9@@ ; unsigned int @@i@@ ; @@v6@@ = Number ; @@v9@@ = Number ; @@v8@@ = Number ; @@v7@@ = MCInst_getOpcode ( @@a1@@ ) ; if ( @@v7@@ == Number ) goto LABEL_12 ; if ( @@v7@@ > Number ) goto LABEL_13 ; if ( @@v7@@ == Number ) goto LABEL_12 ; if ( @@v7@@ > Number ) goto LABEL_13 ; if ( @@v7@@ == Number ) goto LABEL_12 ; if ( @@v7@@ > Number ) goto LABEL_13 ; if ( @@v7@@ > Number ) { if ( @@v7@@ != Number ) goto LABEL_13 ; goto LABEL_12 ; } if ( @@v7@@ >= Number && ( ( Number L << ( ( unsigned __int8 ) @@v7@@ + Number ) ) & Number ) != Number ) { LABEL_12 : @@v9@@ = Number ; v2 = MCInst_getOperand ( @@a1@@ , Number L ) ; @@v8@@ = MCOperand_getReg ( v2 ) ; } LABEL_13 : if ( ! @@a2@@ ) return Number L ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( ( @@a2@@ & ( Number << @@i@@ ) ) != Number ) { v4 = DecodeGPRRegisterClass ( @@a1@@ , @@i@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v6@@ , v4 ) != Number ) return Number L ; if ( @@v9@@ ) { v5 = MCOperand_getReg ( Number * ( * ( unsigned __int8 * ) ( @@a1@@ + Number ) - Number + Number L ) + @@a1@@ ) ; if ( @@v8@@ == v5 ) Check ( & @@v6@@ , Number ) ; } } } if ( @@v7@@ == Number && @@v8@@ == Number && ( ( @@a2@@ & Number ) != Number || ( @@a2@@ & Number ) != Number && ( @@a2@@ & Number ) != Number ) ) result = Number L ; else result = @@v6@@ ; return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v9", "t": {"T": 1, "n": "char", "s": 1}, "location": "s5"}]} {"name": "DecodeRFEInstruction", "code": "__int64 __fastcall DecodeRFEInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { unsigned int v2 ; __int64 result ; unsigned int @@v4@@ ; unsigned int @@v5@@ ; unsigned int @@v6@@ ; @@v4@@ = Number ; @@v5@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v6@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; if ( @@v6@@ == Number ) { @@v6@@ = Number ; } else if ( @@v6@@ <= Number ) { if ( @@v6@@ == Number ) { @@v6@@ = Number ; } else if ( @@v6@@ ) { @@v6@@ = Number ; } else { @@v6@@ = Number ; } } MCOperand_CreateImm0 ( @@a1@@ , @@v6@@ ) ; v2 = DecodeGPRRegisterClass ( @@a1@@ , @@v5@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v4@@ , v2 ) != Number ) result = Number L ; else result = @@v4@@ ; 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": "v4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}