def handle_read_length(self, buff, start, end):
self.set_state_length(self._state, self.parse_uint(buff, start, end) * self._state[<NUM_LIT:1>].value.multiplier)<EOL>if self._state[<NUM_LIT:1>].value.valuetype is ValueType.NESTED:<EOL><INDENT>self.events.append((self._state[<NUM_LIT:1>].value.startevent, self._state[<NUM_LIT:0>], None))<EOL>if self._state[<NUM_LIT:2>] is <NUM_LIT:0>:  <EOL><INDENT>self._scstate = ScannerState.SEGMENT_ENDED<EOL><DEDENT>else:<EOL><INDENT>if self._state[<NUM_LIT:1>].value.multiplier is <NUM_LIT:2>:<EOL><INDENT>self.parentismap = <NUM_LIT:1><EOL>self.waitingforprop = <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>self.parentismap = <NUM_LIT:0><EOL>self.waitingforprop = <NUM_LIT:0><EOL><DEDENT>self.push_state()<EOL>self._scstate = ScannerState.WAITING_FOR_HEADER<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if self._state[<NUM_LIT:1>].value.segmenttype is SegmentType.EXT_FORMAT:<EOL><INDENT>self._scstate = ScannerState.WAITING_FOR_EXT_TYPE<EOL><DEDENT>else:<EOL><INDENT>self._scstate = ScannerState.WAITING_FOR_VALUE<EOL>if self._state[<NUM_LIT:2>] is <NUM_LIT:0>:  <EOL><INDENT>self.events.append((self.value_event_type(EventType.VALUE), self._state[<NUM_LIT:0>], self.empty_value(self._state[<NUM_LIT:0>])))<EOL>self._scstate = self.next_state_afterraw()<EOL>self._scstate = ScannerState.SEGMENT_ENDED<EOL><DEDENT><DEDENT><DEDENT>
handle read of number bytes needed to parse the value 
:param buff:
:param start:
:param end: