{"name": "ITStatus_instrLastInITBlock", "code": "bool __fastcall ITStatus_instrLastInITBlock ( __int64 @@a1@@ ) { return * ( _DWORD * ) ( @@a1@@ + Number ) == Number ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]}
{"name": "AddThumbPredicate", "code": "__int64 __fastcall AddThumbPredicate ( __int64 @@a1@@ , __int64 @@a2@@ ) { unsigned int v2 ; __int64 v4 ; __int64 v5 ; __int64 v6 ; unsigned __int16 @@v7@@ ; __int64 @@v8@@ ; unsigned int @@v9@@ ; unsigned int @@i@@ ; unsigned int @@v11@@ ; @@v11@@ = Number ; v2 = MCInst_getOpcode ( @@a2@@ ) ; if ( v2 > Number ) goto LABEL_20 ; if ( v2 >= Number ) { if ( ( ( Number L << ( ( unsigned __int8 ) v2 + Number ) ) & Number ) == Number ) goto LABEL_20 ; goto LABEL_14 ; } if ( v2 > Number ) goto LABEL_20 ; if ( v2 >= Number ) { if ( ( ( Number L << ( ( unsigned __int8 ) v2 - Number ) ) & Number ) == Number ) goto LABEL_20 ; goto LABEL_17 ; } if ( v2 > Number ) goto LABEL_20 ; if ( v2 < Number ) { if ( v2 != Number ) { if ( v2 != Number ) goto LABEL_20 ; goto LABEL_14 ; } LABEL_17 : if ( ITStatus_instrInITBlock ( @@a1@@ + Number ) && ! ITStatus_instrLastInITBlock ( @@a1@@ + Number ) ) @@v11@@ = Number ; goto LABEL_20 ; } LABEL_14 : if ( ! ITStatus_instrInITBlock ( @@a1@@ + Number ) ) return Number L ; @@v11@@ = Number ; LABEL_20 : @@v9@@ = ITStatus_getITCC ( @@a1@@ + Number ) ; if ( @@v9@@ == Number ) @@v9@@ = Number ; if ( ITStatus_instrInITBlock ( @@a1@@ + Number ) ) ITStatus_advanceITState ( @@a1@@ + Number ) ; @@v8@@ = qword_4F140 [ Number * ( unsigned int ) MCInst_getOpcode ( @@a2@@ ) ] ; @@v7@@ = * ( ( unsigned __int8 * ) & unk_4F122 + Number * ( unsigned int ) MCInst_getOpcode ( @@a2@@ ) ) ; for ( @@i@@ = Number ; @@i@@ < @@v7@@ && @@i@@ != ( unsigned int ) MCInst_getNumOperands ( @@a2@@ ) ; ++ @@i@@ ) { if ( ( unsigned __int8 ) MCOperandInfo_isPredicate ( Number L * @@i@@ + @@v8@@ ) ) { v4 = MCOperand_CreateImm1 ( @@a2@@ , @@v9@@ ) ; MCInst_insert0 ( @@a2@@ , @@i@@ , v4 ) ; if ( @@v9@@ != Number ) goto LABEL_33 ; LABEL_32 : v6 = MCOperand_CreateReg1 ( @@a2@@ , Number L ) ; goto LABEL_34 ; } } v5 = MCOperand_CreateImm1 ( @@a2@@ , @@v9@@ ) ; MCInst_insert0 ( @@a2@@ , @@i@@ , v5 ) ; if ( @@v9@@ == Number ) goto LABEL_32 ; LABEL_33 : v6 = MCOperand_CreateReg1 ( @@a2@@ , Number L ) ; LABEL_34 : MCInst_insert0 ( @@a2@@ , @@i@@ + Number , v6 ) ; return @@v11@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s26"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}