{"name": "DecodeThumbAddSPReg", "code": "__int64 __fastcall DecodeThumbAddSPReg ( __int64 @@a1@@ , __int16 @@a2@@ ) { unsigned int v2 ; unsigned int v4 ; unsigned int v5 ; unsigned int @@v6@@ ; unsigned int @@v7@@ ; unsigned int @@v8@@ ; @@v6@@ = Number ; if ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) == Number ) { @@v7@@ = ( unsigned __int16 ) fieldFromInstruction_2 ( @@a2@@ , Number , Number ) ; @@v7@@ |= Number * ( unsigned __int16 ) fieldFromInstruction_2 ( @@a2@@ , Number , Number ) ; v2 = DecodeGPRRegisterClass ( @@a1@@ , @@v7@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v6@@ , v2 ) != Number ) return Number L ; MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; v4 = DecodeGPRRegisterClass ( @@a1@@ , @@v7@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v6@@ , v4 ) != Number ) return Number L ; } else if ( ( unsigned int ) MCInst_getOpcode ( @@a1@@ ) == Number ) { @@v8@@ = ( unsigned __int16 ) fieldFromInstruction_2 ( @@a2@@ , Number , Number ) ; MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; MCOperand_CreateReg0 ( @@a1@@ , Number L ) ; v5 = DecodeGPRRegisterClass ( @@a1@@ , @@v8@@ ) ; if ( ( unsigned __int8 ) Check ( & @@v6@@ , v5 ) != Number ) return Number L ; } return @@v6@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r64"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v7", "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_2", "code": "__int64 __fastcall fieldFromInstruction_2 ( __int16 @@a1@@ , char @@a2@@ , int @@a3@@ ) { __int16 @@v4@@ ; if ( @@a3@@ == Number ) @@v4@@ = Number ; else @@v4@@ = ( ( Number << @@a3@@ ) - Number ) << @@a2@@ ; return ( int ) ( unsigned __int16 ) ( @@v4@@ & @@a1@@ ) >> @@a2@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s2"}]} {"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"}]}