{"name": "DecodeVLDST4Instruction", "code": "__int64 __fastcall DecodeVLDST4Instruction ( __int64 @@a1@@ , unsigned int @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ ) { if ( ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) == Number ) return Number L ; if ( ( unsigned int ) fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ) return DecodeVLDInstruction ( @@a1@@ , @@a2@@ ) ; return DecodeVSTInstruction ( @@a1@@ , @@a2@@ , @@a3@@ , @@a4@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "DecodeVLDInstruction", "code": "__int64 __fastcall DecodeVLDInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { unsigned int v2 ; unsigned int v3 ; __int64 result ; unsigned int v5 ; char v6 ; unsigned int v7 ; unsigned int v8 ; unsigned int v9 ; unsigned int v10 ; unsigned int v11 ; unsigned int v12 ; unsigned int v13 ; unsigned int v14 ; unsigned int v15 ; unsigned int v16 ; unsigned int @@v17@@ ; unsigned int @@v18@@ ; unsigned int @@v19@@ ; unsigned int @@v20@@ ; unsigned int @@v21@@ ; @@v17@@ = Number ; @@v21@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v21@@ |= Number * fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v20@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v19@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v19@@ |= Number * fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v18@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; v2 = MCInst_getOpcode ( @@a1@@ ) ; if ( v2 <= Number ) { if ( v2 >= Number ) goto LABEL_8 ; if ( v2 > Number ) { if ( v2 - Number <= Number ) { v5 = DecodeDPairSpacedRegisterClass ( @@a1@@ , @@v21@@ ) ; v6 = Check ( & @@v17@@ , v5 ) ; if ( v6 != Number ) return Number L ; goto LABEL_14 ; } goto LABEL_12 ; } if ( v2 >= Number ) { LABEL_8 : v3 = DecodeDPairRegisterClass ( @@a1@@ , @@v21@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v3 ) != Number ) return Number L ; goto LABEL_14 ; } } LABEL_12 : v7 = DecodeDPRRegisterClass ( @@a1@@ , @@v21@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v7 ) != Number ) return Number L ; LABEL_14 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v8 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v8 ) == Number ) goto LABEL_19 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v9 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v9 ) == Number ) goto LABEL_19 ; result = Number L ; break ; default : LABEL_19 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v10 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v10 ) == Number ) goto LABEL_24 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v11 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v11 ) == Number ) goto LABEL_24 ; result = Number L ; break ; default : LABEL_24 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : v12 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v12 ) == Number ) goto LABEL_29 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : v13 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v13 ) == Number ) goto LABEL_29 ; result = Number L ; break ; default : LABEL_29 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : MCOperand_CreateImm0 ( @@a1@@ , Number L ) ; goto LABEL_33 ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v14 = DecodeGPRRegisterClass ( @@a1@@ , @@v20@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v14 ) == Number ) goto LABEL_33 ; result = Number L ; break ; default : LABEL_33 : v15 = DecodeAddrMode6Operand ( @@a1@@ , @@v19@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v15 ) != Number ) { result = Number L ; } else { switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_38 ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_42 ; default : if ( @@v18@@ == Number ) { MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; } else { LABEL_38 : if ( @@v18@@ != Number && @@v18@@ != Number ) { v16 = DecodeGPRRegisterClass ( @@a1@@ , @@v18@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v16 ) != Number ) return Number L ; } } LABEL_42 : result = @@v17@@ ; break ; } } break ; } break ; } break ; } break ; } 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": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v20", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]} {"name": "DecodeVSTInstruction", "code": "__int64 __fastcall DecodeVSTInstruction ( __int64 @@a1@@ , unsigned int @@a2@@ ) { __int64 result ; unsigned int v3 ; unsigned int v4 ; unsigned int v5 ; unsigned int v6 ; unsigned int v7 ; unsigned int v8 ; char v9 ; unsigned int v10 ; unsigned int v11 ; unsigned int v12 ; unsigned int v13 ; unsigned int v14 ; unsigned int v15 ; unsigned int v16 ; unsigned int @@v17@@ ; unsigned int @@v18@@ ; unsigned int @@v19@@ ; unsigned int @@v20@@ ; unsigned int @@v21@@ ; @@v17@@ = Number ; @@v21@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v21@@ |= Number * fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v20@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v19@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v19@@ |= Number * fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; @@v18@@ = fieldFromInstruction_4 ( @@a2@@ , Number , Number ) ; switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : if ( @@v18@@ != Number ) { MCOperand_CreateImm0 ( @@a1@@ , Number L ) ; goto LABEL_7 ; } result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v3 = DecodeGPRRegisterClass ( @@a1@@ , @@v20@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v3 ) == Number ) goto LABEL_7 ; result = Number L ; break ; default : LABEL_7 : v4 = DecodeAddrMode6Operand ( @@a1@@ , @@v19@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v4 ) != Number ) { result = Number L ; } else { switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : goto LABEL_15 ; default : if ( @@v18@@ == Number ) { MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; } else if ( @@v18@@ != Number ) { v5 = DecodeGPRRegisterClass ( @@a1@@ , @@v18@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v5 ) != Number ) return Number L ; } LABEL_15 : v6 = MCInst_getOpcode ( @@a1@@ ) ; if ( v6 > Number ) goto LABEL_26 ; if ( v6 >= Number ) goto LABEL_22 ; if ( v6 > Number ) { if ( v6 - Number <= Number ) { v8 = DecodeDPairSpacedRegisterClass ( @@a1@@ , @@v21@@ ) ; v9 = Check ( & @@v17@@ , v8 ) ; if ( v9 != Number ) return Number L ; goto LABEL_28 ; } } else if ( v6 >= Number ) { LABEL_22 : v7 = DecodeDPairRegisterClass ( @@a1@@ , @@v21@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v7 ) != Number ) return Number L ; goto LABEL_28 ; } LABEL_26 : v10 = DecodeDPRRegisterClass ( @@a1@@ , @@v21@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v10 ) != Number ) return Number L ; LABEL_28 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v11 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v11 ) == Number ) goto LABEL_33 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v12 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v12 ) == Number ) goto LABEL_33 ; result = Number L ; break ; default : LABEL_33 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v13 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v13 ) == Number ) goto LABEL_38 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v14 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v14 ) == Number ) goto LABEL_38 ; result = Number L ; break ; default : LABEL_38 : switch ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) ) { case Number : case Number : case Number : case Number : case Number : case Number : v15 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v15 ) == Number ) goto LABEL_43 ; result = Number L ; break ; case Number : case Number : case Number : case Number : case Number : case Number : v16 = DecodeDPRRegisterClass ( @@a1@@ , ( ( _BYTE ) @@v21@@ + Number ) & Number ) ; if ( ( unsigned __int8 ) Check ( & @@v17@@ , v16 ) == Number ) goto LABEL_43 ; result = Number L ; break ; default : LABEL_43 : result = @@v17@@ ; break ; } break ; } break ; } break ; } } break ; } 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": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v20", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}