bool HandleStores(string opcodeStr, Instruction instruction, MetaMidRepresentationOperationFactory operationFactory) { if (instruction.OpCode == OpCodes.Stloc_S || instruction.OpCode == OpCodes.Stloc) { operationFactory.CopyStackIntoLocalVariable(GetVariableIndex(instruction)); return(true); } if (opcodeStr.StartsWith("stloc.")) { var pushedIntValue = opcodeStr.Remove(0, "stloc.".Length).ToInt(); operationFactory.CopyStackIntoLocalVariable(pushedIntValue); return(true); } if (opcodeStr.StartsWith("starg.")) { var parameter = (ParameterInfo)instruction.Operand; var pushedIntValue = parameter.Position; operationFactory.CopyStackIntoArgument(pushedIntValue, _methodInterpreter.AnalyzeProperties); return(true); } if (instruction.OpCode == OpCodes.Stfld) { var fieldInfo = (FieldInfo)instruction.Operand; operationFactory.StoreField(fieldInfo); return(true); } if (opcodeStr.StartsWith("stobj")) { operationFactory.StoreObject((Type)instruction.Operand); return(true); } return(false); }