   1               		.file	"Stream.cpp"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   9               		.text
  10               	.Ltext0:
 133               	.global	_ZN6Stream9timedReadEv
 135               	_ZN6Stream9timedReadEv:
 136               		.stabd	46,0,0
   1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** /*
   2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  Stream.cpp - adds parsing methods to Stream class
   3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  Copyright (c) 2008 David A. Mellis.  All right reserved.
   4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
   5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  This library is free software; you can redistribute it and/or
   6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  modify it under the terms of the GNU Lesser General Public
   7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  License as published by the Free Software Foundation; either
   8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  version 2.1 of the License, or (at your option) any later version.
   9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  This library is distributed in the hope that it will be useful,
  11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  Lesser General Public License for more details.
  14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  You should have received a copy of the GNU Lesser General Public
  16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  License along with this library; if not, write to the Free Software
  17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  Created July 2011
  20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  parsing functions based on TextFinder library by Michael Margolis
  21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  findMulti/findUntil routines written by Jim Leonard/Xuth
  23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  */
  24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** #include "Arduino.h"
  26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** #include "Stream.h"
  27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** #define PARSE_TIMEOUT 1000  // default number of milli-seconds to wait
  29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // protected method to read stream with timeout
  31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::timedRead()
  32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 138               	.LM0:
 139               	.LFBB1:
 140 0000 0F93      		push r16
 141 0002 1F93      		push r17
 142 0004 CF93      		push r28
 143 0006 DF93      		push r29
 144               	/* prologue: function */
 145               	/* frame size = 0 */
 146               	/* stack size = 4 */
 147               	.L__stack_usage = 4
 148 0008 EC01      		movw r28,r24
  33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c;
  34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   _startMillis = millis();
 150               	.LM1:
 151 000a 0E94 0000 		call millis
 152 000e 6887      		std Y+8,r22
 153 0010 7987      		std Y+9,r23
 154 0012 8A87      		std Y+10,r24
 155 0014 9B87      		std Y+11,r25
 156               	.L3:
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do {
  36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = read();
 158               	.LM2:
 159 0016 E881      		ld r30,Y
 160 0018 F981      		ldd r31,Y+1
 161 001a 0284      		ldd __tmp_reg__,Z+10
 162 001c F385      		ldd r31,Z+11
 163 001e E02D      		mov r30,__tmp_reg__
 164 0020 CE01      		movw r24,r28
 165 0022 0995      		icall
  37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c >= 0) return c;
 167               	.LM3:
 168 0024 97FF      		sbrs r25,7
 169 0026 00C0      		rjmp .L2
  38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   } while(millis() - _startMillis < _timeout);
 171               	.LM4:
 172 0028 0E94 0000 		call millis
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do {
 174               	.LM5:
 175 002c 0885      		ldd r16,Y+8
 176 002e 1985      		ldd r17,Y+9
 177 0030 2A85      		ldd r18,Y+10
 178 0032 3B85      		ldd r19,Y+11
 179 0034 DC01      		movw r26,r24
 180 0036 CB01      		movw r24,r22
 181 0038 801B      		sub r24,r16
 182 003a 910B      		sbc r25,r17
 183 003c A20B      		sbc r26,r18
 184 003e B30B      		sbc r27,r19
 185 0040 0C81      		ldd r16,Y+4
 186 0042 1D81      		ldd r17,Y+5
 187 0044 2E81      		ldd r18,Y+6
 188 0046 3F81      		ldd r19,Y+7
 189 0048 8017      		cp r24,r16
 190 004a 9107      		cpc r25,r17
 191 004c A207      		cpc r26,r18
 192 004e B307      		cpc r27,r19
 193 0050 00F0      		brlo .L3
  39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return -1;     // -1 indicates timeout
 195               	.LM6:
 196 0052 8FEF      		ldi r24,lo8(-1)
 197 0054 9FEF      		ldi r25,lo8(-1)
 198               	.L2:
 199               	/* epilogue start */
  40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 201               	.LM7:
 202 0056 DF91      		pop r29
 203 0058 CF91      		pop r28
 204 005a 1F91      		pop r17
 205 005c 0F91      		pop r16
 206 005e 0895      		ret
 211               	.Lscope1:
 213               		.stabd	78,0,0
 216               	.global	_ZN6Stream9timedPeekEv
 218               	_ZN6Stream9timedPeekEv:
 219               		.stabd	46,0,0
  41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // protected method to peek stream with timeout
  43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::timedPeek()
  44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 221               	.LM8:
 222               	.LFBB2:
 223 0060 0F93      		push r16
 224 0062 1F93      		push r17
 225 0064 CF93      		push r28
 226 0066 DF93      		push r29
 227               	/* prologue: function */
 228               	/* frame size = 0 */
 229               	/* stack size = 4 */
 230               	.L__stack_usage = 4
 231 0068 EC01      		movw r28,r24
  45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c;
  46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   _startMillis = millis();
 233               	.LM9:
 234 006a 0E94 0000 		call millis
 235 006e 6887      		std Y+8,r22
 236 0070 7987      		std Y+9,r23
 237 0072 8A87      		std Y+10,r24
 238 0074 9B87      		std Y+11,r25
 239               	.L9:
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do {
  48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = peek();
 241               	.LM10:
 242 0076 E881      		ld r30,Y
 243 0078 F981      		ldd r31,Y+1
 244 007a 0484      		ldd __tmp_reg__,Z+12
 245 007c F585      		ldd r31,Z+13
 246 007e E02D      		mov r30,__tmp_reg__
 247 0080 CE01      		movw r24,r28
 248 0082 0995      		icall
  49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c >= 0) return c;
 250               	.LM11:
 251 0084 97FF      		sbrs r25,7
 252 0086 00C0      		rjmp .L8
  50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   } while(millis() - _startMillis < _timeout);
 254               	.LM12:
 255 0088 0E94 0000 		call millis
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do {
 257               	.LM13:
 258 008c 0885      		ldd r16,Y+8
 259 008e 1985      		ldd r17,Y+9
 260 0090 2A85      		ldd r18,Y+10
 261 0092 3B85      		ldd r19,Y+11
 262 0094 DC01      		movw r26,r24
 263 0096 CB01      		movw r24,r22
 264 0098 801B      		sub r24,r16
 265 009a 910B      		sbc r25,r17
 266 009c A20B      		sbc r26,r18
 267 009e B30B      		sbc r27,r19
 268 00a0 0C81      		ldd r16,Y+4
 269 00a2 1D81      		ldd r17,Y+5
 270 00a4 2E81      		ldd r18,Y+6
 271 00a6 3F81      		ldd r19,Y+7
 272 00a8 8017      		cp r24,r16
 273 00aa 9107      		cpc r25,r17
 274 00ac A207      		cpc r26,r18
 275 00ae B307      		cpc r27,r19
 276 00b0 00F0      		brlo .L9
  51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return -1;     // -1 indicates timeout
 278               	.LM14:
 279 00b2 8FEF      		ldi r24,lo8(-1)
 280 00b4 9FEF      		ldi r25,lo8(-1)
 281               	.L8:
 282               	/* epilogue start */
  52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 284               	.LM15:
 285 00b6 DF91      		pop r29
 286 00b8 CF91      		pop r28
 287 00ba 1F91      		pop r17
 288 00bc 0F91      		pop r16
 289 00be 0895      		ret
 294               	.Lscope2:
 296               		.stabd	78,0,0
 301               	.global	_ZN6Stream13peekNextDigitE13LookaheadModeb
 303               	_ZN6Stream13peekNextDigitE13LookaheadModeb:
 304               		.stabd	46,0,0
  53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns peek of the next digit in the stream or -1 if timeout
  55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // discards non-numeric characters
  56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::peekNextDigit(LookaheadMode lookahead, bool detectDecimal)
  57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 306               	.LM16:
 307               	.LFBB3:
 308 00c0 0F93      		push r16
 309 00c2 1F93      		push r17
 310 00c4 CF93      		push r28
 311 00c6 DF93      		push r29
 312               	/* prologue: function */
 313               	/* frame size = 0 */
 314               	/* stack size = 4 */
 315               	.L__stack_usage = 4
 316 00c8 EC01      		movw r28,r24
 317 00ca 162F      		mov r17,r22
 318 00cc 042F      		mov r16,r20
 319               	.L18:
  58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c;
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (1) {
  60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedPeek();
 321               	.LM17:
 322 00ce CE01      		movw r24,r28
 323 00d0 0E94 0000 		call _ZN6Stream9timedPeekEv
  61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if( c < 0 ||
 325               	.LM18:
 326 00d4 97FD      		sbrc r25,7
 327 00d6 00C0      		rjmp .L13
 329               	.LM19:
 330 00d8 8D32      		cpi r24,45
 331 00da 9105      		cpc r25,__zero_reg__
 332 00dc 01F0      		breq .L20
  63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         c == '-' ||
 334               	.LM20:
 335 00de 9C01      		movw r18,r24
 336 00e0 2053      		subi r18,48
 337 00e2 3109      		sbc r19,__zero_reg__
 338 00e4 2A30      		cpi r18,10
 339 00e6 3105      		cpc r19,__zero_reg__
 340 00e8 00F0      		brlo .L13
  64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         (c >= '0' && c <= '9') ||
 342               	.LM21:
 343 00ea 0023      		tst r16
 344 00ec 01F0      		breq .L14
  65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         (detectDecimal && c == '.')) return c;
 346               	.LM22:
 347 00ee 8E32      		cpi r24,46
 348 00f0 9105      		cpc r25,__zero_reg__
 349 00f2 01F0      		breq .L22
 350               	.L14:
  66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     switch( lookahead ){
 352               	.LM23:
 353 00f4 1130      		cpi r17,lo8(1)
 354 00f6 01F0      		breq .L24
 355 00f8 1230      		cpi r17,lo8(2)
 356 00fa 01F4      		brne .L15
  68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         case SKIP_NONE: return -1; // Fail code.
  69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         case SKIP_WHITESPACE:
  70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****             switch( c ){
 358               	.LM24:
 359 00fc 8D30      		cpi r24,13
 360 00fe 9105      		cpc r25,__zero_reg__
 361 0100 01F0      		breq .L15
 362 0102 04F4      		brge .L17
 363 0104 0997      		sbiw r24,9
 364 0106 0297      		sbiw r24,2
 365 0108 00F0      		brlo .L15
 366 010a 00C0      		rjmp .L24
 367               	.L17:
 368 010c 8097      		sbiw r24,32
 369 010e 01F4      		brne .L24
 370               	.L15:
  71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****                 case ' ':
  72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****                 case '\t':
  73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****                 case '\r':
  74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****                 case '\n': break;
  75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****                 default: return -1; // Fail code.
  76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****             }
  77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         case SKIP_ALL:
  78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****             break;
  79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     }
  80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     read();  // discard non-numeric
 372               	.LM25:
 373 0110 E881      		ld r30,Y
 374 0112 F981      		ldd r31,Y+1
 375 0114 0284      		ldd __tmp_reg__,Z+10
 376 0116 F385      		ldd r31,Z+11
 377 0118 E02D      		mov r30,__tmp_reg__
 378 011a CE01      		movw r24,r28
 379 011c 0995      		icall
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedPeek();
 381               	.LM26:
 382 011e 00C0      		rjmp .L18
 383               	.L20:
 384 0120 8DE2      		ldi r24,lo8(45)
 385 0122 00C0      		rjmp .L34
 386               	.L22:
 387 0124 8EE2      		ldi r24,lo8(46)
 388               	.L34:
 389 0126 90E0      		ldi r25,0
 390 0128 00C0      		rjmp .L13
 391               	.L24:
  75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****             }
 393               	.LM27:
 394 012a 8FEF      		ldi r24,lo8(-1)
 395 012c 9FEF      		ldi r25,lo8(-1)
 396               	.L13:
 397               	/* epilogue start */
  81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
  82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 399               	.LM28:
 400 012e DF91      		pop r29
 401 0130 CF91      		pop r28
 402 0132 1F91      		pop r17
 403 0134 0F91      		pop r16
 404 0136 0895      		ret
 409               	.Lscope3:
 411               		.stabd	78,0,0
 415               	.global	_ZN6Stream10setTimeoutEm
 417               	_ZN6Stream10setTimeoutEm:
 418               		.stabd	46,0,0
  83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Public Methods
  85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** //////////////////////////////////////////////////////////////
  86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** void Stream::setTimeout(unsigned long timeout)  // sets the maximum number of milliseconds to wait
  88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 420               	.LM29:
 421               	.LFBB4:
 422               	/* prologue: function */
 423               	/* frame size = 0 */
 424               	/* stack size = 0 */
 425               	.L__stack_usage = 0
  89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   _timeout = timeout;
 427               	.LM30:
 428 0138 FC01      		movw r30,r24
 429 013a 4483      		std Z+4,r20
 430 013c 5583      		std Z+5,r21
 431 013e 6683      		std Z+6,r22
 432 0140 7783      		std Z+7,r23
 433 0142 0895      		ret
 435               	.Lscope4:
 437               		.stabd	78,0,0
 442               	.global	_ZN6Stream8parseIntE13LookaheadModec
 444               	_ZN6Stream8parseIntE13LookaheadModec:
 445               		.stabd	46,0,0
  90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
  91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****  // find returns true if the target string is found
  93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool  Stream::find(char *target)
  94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
  95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, strlen(target), NULL, 0);
  96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
  97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
  98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // reads data from the stream until the target string of given length is found
  99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns true if target string is found, false if timed out
 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::find(char *target, size_t length)
 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, length, NULL, 0);
 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as find but search ends if the terminator string is found
 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool  Stream::findUntil(char *target, char *terminator)
 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, strlen(target), terminator, strlen(terminator));
 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // reads data from the stream until the target string of the given length is found
 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // search terminated if the terminator string is found
 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns true if target string is found, false if terminated or timed out
 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen)
 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if (terminator == NULL) {
 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     MultiTarget t[1] = {{target, targetLen, 0}};
 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return findMulti(t, 1) == 0 ? true : false;
 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   } else {
 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     MultiTarget t[2] = {{target, targetLen, 0}, {terminator, termLen, 0}};
 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return findMulti(t, 2) == 0 ? true : false;
 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the first valid (long) integer value from the current position.
 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // lookahead determines how parseInt looks ahead in the stream.
 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // See LookaheadMode enumeration at the top of the file.
 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Lookahead is terminated by the first character that is not a valid part of an integer.
 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // Once parsing commences, 'ignore' will be skipped in the stream.
 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** long Stream::parseInt(LookaheadMode lookahead, char ignore)
 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 447               	.LM31:
 448               	.LFBB5:
 449 0144 BF92      		push r11
 450 0146 CF92      		push r12
 451 0148 DF92      		push r13
 452 014a EF92      		push r14
 453 014c FF92      		push r15
 454 014e 0F93      		push r16
 455 0150 1F93      		push r17
 456 0152 CF93      		push r28
 457 0154 DF93      		push r29
 458               	/* prologue: function */
 459               	/* frame size = 0 */
 460               	/* stack size = 9 */
 461               	.L__stack_usage = 9
 462 0156 8C01      		movw r16,r24
 463 0158 C42F      		mov r28,r20
 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   bool isNegative = false;
 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   long value = 0;
 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c;
 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   c = peekNextDigit(lookahead, false);
 465               	.LM32:
 466 015a 40E0      		ldi r20,0
 467 015c 0E94 0000 		call _ZN6Stream13peekNextDigitE13LookaheadModeb
 468 0160 FC01      		movw r30,r24
 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   // ignore non numeric leading characters
 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(c < 0)
 470               	.LM33:
 471 0162 97FD      		sbrc r25,7
 472 0164 00C0      		rjmp .L41
 473 0166 C12C      		mov r12,__zero_reg__
 474 0168 D12C      		mov r13,__zero_reg__
 475 016a 7601      		movw r14,r12
 476 016c B12C      		mov r11,__zero_reg__
 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return 0; // zero returned if timeout
 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do{
 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if(c == ignore)
 478               	.LM34:
 479 016e D0E0      		ldi r29,0
 480               	.L38:
 481 0170 EC17      		cp r30,r28
 482 0172 FD07      		cpc r31,r29
 483 0174 01F0      		breq .L39
 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       ; // ignore this character
 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if(c == '-')
 485               	.LM35:
 486 0176 ED32      		cpi r30,45
 487 0178 F105      		cpc r31,__zero_reg__
 488 017a 01F0      		breq .L42
 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       isNegative = true;
 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if(c >= '0' && c <= '9')        // is c a digit?
 490               	.LM36:
 491 017c CF01      		movw r24,r30
 492 017e C097      		sbiw r24,48
 493 0180 0A97      		sbiw r24,10
 494 0182 00F4      		brsh .L39
 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       value = value * 10 + c - '0';
 496               	.LM37:
 497 0184 AAE0      		ldi r26,lo8(10)
 498 0186 B0E0      		ldi r27,0
 499 0188 A701      		movw r20,r14
 500 018a 9601      		movw r18,r12
 501 018c 0E94 0000 		call __muluhisi3
 502 0190 6F01      		movw r12,r30
 503 0192 FF0F      		lsl r31
 504 0194 EE08      		sbc r14,r14
 505 0196 FF08      		sbc r15,r15
 506 0198 DC01      		movw r26,r24
 507 019a CB01      		movw r24,r22
 508 019c 8C0D      		add r24,r12
 509 019e 9D1D      		adc r25,r13
 510 01a0 AE1D      		adc r26,r14
 511 01a2 BF1D      		adc r27,r15
 512 01a4 6C01      		movw r12,r24
 513 01a6 7D01      		movw r14,r26
 514 01a8 20E3      		ldi r18,48
 515 01aa C21A      		sub r12,r18
 516 01ac D108      		sbc r13,__zero_reg__
 517 01ae E108      		sbc r14,__zero_reg__
 518 01b0 F108      		sbc r15,__zero_reg__
 519 01b2 00C0      		rjmp .L39
 520               	.L42:
 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       isNegative = true;
 522               	.LM38:
 523 01b4 BB24      		clr r11
 524 01b6 B394      		inc r11
 525               	.L39:
 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     read();  // consume the character we got with peek
 527               	.LM39:
 528 01b8 D801      		movw r26,r16
 529 01ba ED91      		ld r30,X+
 530 01bc FC91      		ld r31,X
 531 01be 0284      		ldd __tmp_reg__,Z+10
 532 01c0 F385      		ldd r31,Z+11
 533 01c2 E02D      		mov r30,__tmp_reg__
 534 01c4 C801      		movw r24,r16
 535 01c6 0995      		icall
 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedPeek();
 537               	.LM40:
 538 01c8 C801      		movw r24,r16
 539 01ca 0E94 0000 		call _ZN6Stream9timedPeekEv
 540 01ce FC01      		movw r30,r24
 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while( (c >= '0' && c <= '9') || c == ignore );
 542               	.LM41:
 543 01d0 C097      		sbiw r24,48
 544 01d2 0A97      		sbiw r24,10
 545 01d4 00F0      		brlo .L38
 547               	.LM42:
 548 01d6 CE17      		cp r28,r30
 549 01d8 DF07      		cpc r29,r31
 550 01da 01F0      		breq .L38
 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(isNegative)
 552               	.LM43:
 553 01dc BB20      		tst r11
 554 01de 01F0      		breq .L43
 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     value = -value;
 556               	.LM44:
 557 01e0 6627      		clr r22
 558 01e2 7727      		clr r23
 559 01e4 CB01      		movw r24,r22
 560 01e6 6C19      		sub r22,r12
 561 01e8 7D09      		sbc r23,r13
 562 01ea 8E09      		sbc r24,r14
 563 01ec 9F09      		sbc r25,r15
 564 01ee 00C0      		rjmp .L37
 565               	.L41:
 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 567               	.LM45:
 568 01f0 60E0      		ldi r22,0
 569 01f2 70E0      		ldi r23,0
 570 01f4 CB01      		movw r24,r22
 571 01f6 00C0      		rjmp .L37
 572               	.L43:
 573 01f8 C701      		movw r24,r14
 574 01fa B601      		movw r22,r12
 575               	.L37:
 576               	/* epilogue start */
 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return value;
 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 578               	.LM46:
 579 01fc DF91      		pop r29
 580 01fe CF91      		pop r28
 581 0200 1F91      		pop r17
 582 0202 0F91      		pop r16
 583 0204 FF90      		pop r15
 584 0206 EF90      		pop r14
 585 0208 DF90      		pop r13
 586 020a CF90      		pop r12
 587 020c BF90      		pop r11
 588 020e 0895      		ret
 594               	.Lscope5:
 596               		.stabd	78,0,0
 597               	.global	__mulsf3
 598               	.global	__floatsisf
 603               	.global	_ZN6Stream10parseFloatE13LookaheadModec
 605               	_ZN6Stream10parseFloatE13LookaheadModec:
 606               		.stabd	46,0,0
 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as parseInt but returns a floating point value
 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** float Stream::parseFloat(LookaheadMode lookahead, char ignore)
 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 608               	.LM47:
 609               	.LFBB6:
 610 0210 4F92      		push r4
 611 0212 5F92      		push r5
 612 0214 6F92      		push r6
 613 0216 7F92      		push r7
 614 0218 AF92      		push r10
 615 021a BF92      		push r11
 616 021c CF92      		push r12
 617 021e DF92      		push r13
 618 0220 EF92      		push r14
 619 0222 FF92      		push r15
 620 0224 0F93      		push r16
 621 0226 1F93      		push r17
 622 0228 CF93      		push r28
 623 022a DF93      		push r29
 624               	/* prologue: function */
 625               	/* frame size = 0 */
 626               	/* stack size = 14 */
 627               	.L__stack_usage = 14
 628 022c 5C01      		movw r10,r24
 629 022e 042F      		mov r16,r20
 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   bool isNegative = false;
 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   bool isFraction = false;
 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   long value = 0;
 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c;
 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   float fraction = 1.0;
 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   c = peekNextDigit(lookahead, true);
 631               	.LM48:
 632 0230 41E0      		ldi r20,lo8(1)
 633 0232 0E94 0000 		call _ZN6Stream13peekNextDigitE13LookaheadModeb
 634 0236 FC01      		movw r30,r24
 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     // ignore non numeric leading characters
 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(c < 0)
 636               	.LM49:
 637 0238 97FD      		sbrc r25,7
 638 023a 00C0      		rjmp .L52
 639 023c 412C      		mov r4,__zero_reg__
 640 023e 512C      		mov r5,__zero_reg__
 641 0240 80E8      		ldi r24,lo8(-128)
 642 0242 682E      		mov r6,r24
 643 0244 8FE3      		ldi r24,lo8(63)
 644 0246 782E      		mov r7,r24
 645 0248 C12C      		mov r12,__zero_reg__
 646 024a D12C      		mov r13,__zero_reg__
 647 024c 7601      		movw r14,r12
 648 024e C0E0      		ldi r28,0
 649 0250 D0E0      		ldi r29,0
 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return 0; // zero returned if timeout
 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   do{
 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if(c == ignore)
 651               	.LM50:
 652 0252 10E0      		ldi r17,0
 653               	.L46:
 654 0254 E017      		cp r30,r16
 655 0256 F107      		cpc r31,r17
 656 0258 01F0      		breq .L47
 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       ; // ignore
 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if(c == '-')
 658               	.LM51:
 659 025a ED32      		cpi r30,45
 660 025c F105      		cpc r31,__zero_reg__
 661 025e 01F0      		breq .L53
 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       isNegative = true;
 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if (c == '.')
 663               	.LM52:
 664 0260 EE32      		cpi r30,46
 665 0262 F105      		cpc r31,__zero_reg__
 666 0264 01F0      		breq .L54
 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       isFraction = true;
 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if(c >= '0' && c <= '9')  {      // is c a digit?
 668               	.LM53:
 669 0266 CF01      		movw r24,r30
 670 0268 C097      		sbiw r24,48
 671 026a 0A97      		sbiw r24,10
 672 026c 00F4      		brsh .L47
 180:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       value = value * 10 + c - '0';
 674               	.LM54:
 675 026e AAE0      		ldi r26,lo8(10)
 676 0270 B0E0      		ldi r27,0
 677 0272 A701      		movw r20,r14
 678 0274 9601      		movw r18,r12
 679 0276 0E94 0000 		call __muluhisi3
 680 027a 6F01      		movw r12,r30
 681 027c FF0F      		lsl r31
 682 027e EE08      		sbc r14,r14
 683 0280 FF08      		sbc r15,r15
 684 0282 C60E      		add r12,r22
 685 0284 D71E      		adc r13,r23
 686 0286 E81E      		adc r14,r24
 687 0288 F91E      		adc r15,r25
 688 028a 80E3      		ldi r24,48
 689 028c C81A      		sub r12,r24
 690 028e D108      		sbc r13,__zero_reg__
 691 0290 E108      		sbc r14,__zero_reg__
 692 0292 F108      		sbc r15,__zero_reg__
 181:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       if(isFraction)
 694               	.LM55:
 695 0294 CC23      		tst r28
 696 0296 01F0      		breq .L47
 182:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****          fraction *= 0.1;
 698               	.LM56:
 699 0298 2DEC      		ldi r18,lo8(-51)
 700 029a 3CEC      		ldi r19,lo8(-52)
 701 029c 4CEC      		ldi r20,lo8(-52)
 702 029e 5DE3      		ldi r21,lo8(61)
 703 02a0 C301      		movw r24,r6
 704 02a2 B201      		movw r22,r4
 705 02a4 0E94 0000 		call __mulsf3
 706 02a8 2B01      		movw r4,r22
 707 02aa 3C01      		movw r6,r24
 708 02ac 00C0      		rjmp .L47
 709               	.L53:
 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if (c == '.')
 711               	.LM57:
 712 02ae D1E0      		ldi r29,lo8(1)
 713 02b0 00C0      		rjmp .L47
 714               	.L54:
 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     else if(c >= '0' && c <= '9')  {      // is c a digit?
 716               	.LM58:
 717 02b2 C1E0      		ldi r28,lo8(1)
 718               	.L47:
 183:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     }
 184:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     read();  // consume the character we got with peek
 720               	.LM59:
 721 02b4 D501      		movw r26,r10
 722 02b6 ED91      		ld r30,X+
 723 02b8 FC91      		ld r31,X
 724 02ba 0284      		ldd __tmp_reg__,Z+10
 725 02bc F385      		ldd r31,Z+11
 726 02be E02D      		mov r30,__tmp_reg__
 727 02c0 C501      		movw r24,r10
 728 02c2 0995      		icall
 185:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedPeek();
 730               	.LM60:
 731 02c4 C501      		movw r24,r10
 732 02c6 0E94 0000 		call _ZN6Stream9timedPeekEv
 733 02ca FC01      		movw r30,r24
 186:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 187:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while( (c >= '0' && c <= '9')  || (c == '.' && !isFraction) || c == ignore );
 735               	.LM61:
 736 02cc C097      		sbiw r24,48
 737 02ce 0A97      		sbiw r24,10
 738 02d0 00F0      		brlo .L46
 740               	.LM62:
 741 02d2 EE32      		cpi r30,46
 742 02d4 F105      		cpc r31,__zero_reg__
 743 02d6 01F4      		brne .L49
 745               	.LM63:
 746 02d8 CC23      		tst r28
 747 02da 01F4      		brne .+2
 748 02dc 00C0      		rjmp .L46
 749               	.L49:
 751               	.LM64:
 752 02de 0E17      		cp r16,r30
 753 02e0 1F07      		cpc r17,r31
 754 02e2 01F4      		brne .+2
 755 02e4 00C0      		rjmp .L46
 188:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 189:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(isNegative)
 757               	.LM65:
 758 02e6 DD23      		tst r29
 759 02e8 01F0      		breq .L50
 190:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     value = -value;
 761               	.LM66:
 762 02ea F094      		com r15
 763 02ec E094      		com r14
 764 02ee D094      		com r13
 765 02f0 C094      		com r12
 766 02f2 C11C      		adc r12,__zero_reg__
 767 02f4 D11C      		adc r13,__zero_reg__
 768 02f6 E11C      		adc r14,__zero_reg__
 769 02f8 F11C      		adc r15,__zero_reg__
 770               	.L50:
 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(isFraction)
 192:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return value * fraction;
 772               	.LM67:
 773 02fa C701      		movw r24,r14
 774 02fc B601      		movw r22,r12
 191:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if(isFraction)
 776               	.LM68:
 777 02fe CC23      		tst r28
 778 0300 01F0      		breq .L51
 780               	.LM69:
 781 0302 0E94 0000 		call __floatsisf
 782 0306 A301      		movw r20,r6
 783 0308 9201      		movw r18,r4
 784 030a 0E94 0000 		call __mulsf3
 785 030e 00C0      		rjmp .L45
 786               	.L51:
 193:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   else
 194:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return value;
 788               	.LM70:
 789 0310 0E94 0000 		call __floatsisf
 790 0314 00C0      		rjmp .L45
 791               	.L52:
 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 793               	.LM71:
 794 0316 60E0      		ldi r22,0
 795 0318 70E0      		ldi r23,0
 796 031a CB01      		movw r24,r22
 797               	.L45:
 798               	/* epilogue start */
 195:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 800               	.LM72:
 801 031c DF91      		pop r29
 802 031e CF91      		pop r28
 803 0320 1F91      		pop r17
 804 0322 0F91      		pop r16
 805 0324 FF90      		pop r15
 806 0326 EF90      		pop r14
 807 0328 DF90      		pop r13
 808 032a CF90      		pop r12
 809 032c BF90      		pop r11
 810 032e AF90      		pop r10
 811 0330 7F90      		pop r7
 812 0332 6F90      		pop r6
 813 0334 5F90      		pop r5
 814 0336 4F90      		pop r4
 815 0338 0895      		ret
 824               	.Lscope6:
 826               		.stabd	78,0,0
 830               	.global	_ZN6Stream9readBytesEPcj
 832               	_ZN6Stream9readBytesEPcj:
 833               		.stabd	46,0,0
 196:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 197:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // read characters from stream into buffer
 198:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // terminates if length characters have been read, or timeout (see setTimeout)
 199:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the number of characters placed in the buffer
 200:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // the buffer is NOT null terminated.
 201:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** //
 202:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t Stream::readBytes(char *buffer, size_t length)
 203:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 835               	.LM73:
 836               	.LFBB7:
 837 033a CF92      		push r12
 838 033c DF92      		push r13
 839 033e EF92      		push r14
 840 0340 FF92      		push r15
 841 0342 0F93      		push r16
 842 0344 1F93      		push r17
 843 0346 CF93      		push r28
 844 0348 DF93      		push r29
 845               	/* prologue: function */
 846               	/* frame size = 0 */
 847               	/* stack size = 8 */
 848               	.L__stack_usage = 8
 849 034a 6C01      		movw r12,r24
 850 034c 7A01      		movw r14,r20
 851 034e 8B01      		movw r16,r22
 204:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   size_t count = 0;
 853               	.LM74:
 854 0350 C0E0      		ldi r28,0
 855 0352 D0E0      		ldi r29,0
 856               	.L66:
 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (count < length) {
 858               	.LM75:
 859 0354 CE15      		cp r28,r14
 860 0356 DF05      		cpc r29,r15
 861 0358 01F0      		breq .L65
 862               	.LBB20:
 206:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     int c = timedRead();
 864               	.LM76:
 865 035a C601      		movw r24,r12
 866 035c 0E94 0000 		call _ZN6Stream9timedReadEv
 207:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c < 0) break;
 868               	.LM77:
 869 0360 97FD      		sbrc r25,7
 870 0362 00C0      		rjmp .L67
 208:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     *buffer++ = (char)c;
 872               	.LM78:
 873 0364 F801      		movw r30,r16
 874 0366 8193      		st Z+,r24
 875 0368 8F01      		movw r16,r30
 209:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     count++;
 877               	.LM79:
 878 036a 2196      		adiw r28,1
 879               	.LBE20:
 205:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     int c = timedRead();
 881               	.LM80:
 882 036c 00C0      		rjmp .L66
 883               	.L67:
 884 036e 7E01      		movw r14,r28
 885               	.L65:
 210:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 211:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return count;
 212:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 887               	.LM81:
 888 0370 C701      		movw r24,r14
 889               	/* epilogue start */
 890 0372 DF91      		pop r29
 891 0374 CF91      		pop r28
 892 0376 1F91      		pop r17
 893 0378 0F91      		pop r16
 894 037a FF90      		pop r15
 895 037c EF90      		pop r14
 896 037e DF90      		pop r13
 897 0380 CF90      		pop r12
 898 0382 0895      		ret
 903               	.Lscope7:
 905               		.stabd	78,0,0
 910               	.global	_ZN6Stream14readBytesUntilEcPcj
 912               	_ZN6Stream14readBytesUntilEcPcj:
 913               		.stabd	46,0,0
 213:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 214:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 215:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // as readBytes with terminator character
 216:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // terminates if length characters have been read, timeout, or if the terminator character  detecte
 217:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** // returns the number of characters placed in the buffer (0 means no valid data found)
 218:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 219:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length)
 220:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 915               	.LM82:
 916               	.LFBB8:
 917 0384 AF92      		push r10
 918 0386 BF92      		push r11
 919 0388 CF92      		push r12
 920 038a DF92      		push r13
 921 038c EF92      		push r14
 922 038e FF92      		push r15
 923 0390 0F93      		push r16
 924 0392 1F93      		push r17
 925 0394 CF93      		push r28
 926 0396 DF93      		push r29
 927               	/* prologue: function */
 928               	/* frame size = 0 */
 929               	/* stack size = 10 */
 930               	.L__stack_usage = 10
 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if (length < 1) return 0;
 932               	.LM83:
 933 0398 2115      		cp r18,__zero_reg__
 934 039a 3105      		cpc r19,__zero_reg__
 935 039c 01F0      		breq .L71
 936 039e 8901      		movw r16,r18
 937 03a0 5C01      		movw r10,r24
 938 03a2 6A01      		movw r12,r20
 939 03a4 C0E0      		ldi r28,0
 940 03a6 D0E0      		ldi r29,0
 941               	.LBB21:
 222:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   size_t index = 0;
 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (index < length) {
 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     int c = timedRead();
 225:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c < 0 || c == terminator) break;
 943               	.LM84:
 944 03a8 E62E      		mov r14,r22
 945 03aa F12C      		mov r15,__zero_reg__
 946               	.L70:
 224:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c < 0 || c == terminator) break;
 948               	.LM85:
 949 03ac C501      		movw r24,r10
 950 03ae 0E94 0000 		call _ZN6Stream9timedReadEv
 952               	.LM86:
 953 03b2 97FD      		sbrc r25,7
 954 03b4 00C0      		rjmp .L73
 956               	.LM87:
 957 03b6 8E15      		cp r24,r14
 958 03b8 9F05      		cpc r25,r15
 959 03ba 01F0      		breq .L73
 226:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     *buffer++ = (char)c;
 961               	.LM88:
 962 03bc F601      		movw r30,r12
 963 03be 8193      		st Z+,r24
 964 03c0 6F01      		movw r12,r30
 227:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     index++;
 966               	.LM89:
 967 03c2 2196      		adiw r28,1
 968               	.LBE21:
 223:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     int c = timedRead();
 970               	.LM90:
 971 03c4 0C17      		cp r16,r28
 972 03c6 1D07      		cpc r17,r29
 973 03c8 01F4      		brne .L70
 974 03ca C801      		movw r24,r16
 975 03cc 00C0      		rjmp .L69
 976               	.L71:
 221:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   size_t index = 0;
 978               	.LM91:
 979 03ce 80E0      		ldi r24,0
 980 03d0 90E0      		ldi r25,0
 981 03d2 00C0      		rjmp .L69
 982               	.L73:
 983 03d4 CE01      		movw r24,r28
 984               	.L69:
 985               	/* epilogue start */
 228:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 229:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return index; // return number of characters, not including null terminator
 230:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 987               	.LM92:
 988 03d6 DF91      		pop r29
 989 03d8 CF91      		pop r28
 990 03da 1F91      		pop r17
 991 03dc 0F91      		pop r16
 992 03de FF90      		pop r15
 993 03e0 EF90      		pop r14
 994 03e2 DF90      		pop r13
 995 03e4 CF90      		pop r12
 996 03e6 BF90      		pop r11
 997 03e8 AF90      		pop r10
 998 03ea 0895      		ret
 1006               	.Lscope8:
 1008               		.stabd	78,0,0
 1009               		.section	.rodata.str1.1,"aMS",@progbits,1
 1010               	.LC0:
 1011 0000 00        		.string	""
 1012               		.text
 1015               	.global	_ZN6Stream10readStringEv
 1017               	_ZN6Stream10readStringEv:
 1018               		.stabd	46,0,0
 231:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 232:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String Stream::readString()
 233:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 1020               	.LM93:
 1021               	.LFBB9:
 1022 03ec 0F93      		push r16
 1023 03ee 1F93      		push r17
 1024 03f0 CF93      		push r28
 1025 03f2 DF93      		push r29
 1026               	/* prologue: function */
 1027               	/* frame size = 0 */
 1028               	/* stack size = 4 */
 1029               	.L__stack_usage = 4
 1030 03f4 EC01      		movw r28,r24
 1031 03f6 8B01      		movw r16,r22
 234:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   String ret;
 1033               	.LM94:
 1034 03f8 60E0      		ldi r22,lo8(.LC0)
 1035 03fa 70E0      		ldi r23,hi8(.LC0)
 1036 03fc 0E94 0000 		call _ZN6StringC1EPKc
 1037               	.L78:
 235:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c = timedRead();
 1039               	.LM95:
 1040 0400 C801      		movw r24,r16
 1041 0402 0E94 0000 		call _ZN6Stream9timedReadEv
 236:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (c >= 0)
 1043               	.LM96:
 1044 0406 97FD      		sbrc r25,7
 1045 0408 00C0      		rjmp .L75
 1046               	.LBB22:
 1047               	.LBB23:
 1049               	.Ltext1:
   1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** /*
   2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   WString.h - String library for Wiring & Arduino
   3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   ...mostly rewritten by Paul Stoffregen...
   4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   Copyright (c) 2009-10 Hernando Barragan.  All right reserved.
   5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   Copyright 2011, Paul Stoffregen, paul@pjrc.com
   6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
   7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   This library is free software; you can redistribute it and/or
   8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   modify it under the terms of the GNU Lesser General Public
   9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   License as published by the Free Software Foundation; either
  10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   version 2.1 of the License, or (at your option) any later version.
  11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   This library is distributed in the hope that it will be useful,
  13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   Lesser General Public License for more details.
  16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   You should have received a copy of the GNU Lesser General Public
  18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   License along with this library; if not, write to the Free Software
  19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** */
  21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #ifndef String_class_h
  23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #define String_class_h
  24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #ifdef __cplusplus
  25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include <stdlib.h>
  27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include <string.h>
  28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include <ctype.h>
  29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #include <avr/pgmspace.h>
  30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // When compiling programs with this class, the following gcc parameters
  32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // dramatically increase performance and memory (RAM) efficiency, typically
  33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // with little or no increase in code size.
  34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** //     -felide-constructors
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** //     -std=c++0x
  36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class __FlashStringHelper;
  38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** #define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
  39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // An inherited class for holding the result of a concatenation.  These
  41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // result objects are assumed to be writable by subsequent concatenations.
  42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class StringSumHelper;
  43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** // The string class
  45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** class String
  46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** {
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// use a function pointer to allow for "if (s)" without the
  48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// complications of an operator bool(). for more information, see:
  49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// http://www.artima.com/cppsource/safebool.html
  50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	typedef void (String::*StringIfHelperType)() const;
  51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	void StringIfHelper() const {}
  52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** public:
  54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// constructors
  55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// creates a copy of the initial value.
  56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// if the initial value is null or invalid, or if memory allocation
  57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// fails, the string will be marked as invalid (i.e. "if (s)" will
  58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// be false).
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String(const char *cstr = "");
  60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String(const String &str);
  61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String(const __FlashStringHelper *str);
  62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****        #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
  63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String(String &&rval);
  64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String(StringSumHelper &&rval);
  65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	#endif
  66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(char c);
  67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(unsigned char, unsigned char base=10);
  68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(int, unsigned char base=10);
  69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(unsigned int, unsigned char base=10);
  70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(long, unsigned char base=10);
  71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(unsigned long, unsigned char base=10);
  72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(float, unsigned char decimalPlaces=2);
  73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	explicit String(double, unsigned char decimalPlaces=2);
  74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	~String(void);
  75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// memory management
  77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// return true on success, false on failure (in which case, the string
  78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// is left unchanged).  reserve(0), if successful, will validate an
  79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// invalid string (i.e., "if (s)" will be true afterwards)
  80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char reserve(unsigned int size);
  81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	inline unsigned int length(void) const {return len;}
  82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// creates a copy of the assigned value.  if the value is null or
  84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// invalid, or if the memory allocation fails, the string will be
  85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// marked as invalid ("if (s)" will be false).
  86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator = (const String &rhs);
  87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator = (const char *cstr);
  88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator = (const __FlashStringHelper *str);
  89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h ****        #if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
  90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator = (String &&rval);
  91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator = (StringSumHelper &&rval);
  92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	#endif
  93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// concatenate (works w/ built-in types)
  95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
  96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// returns true on success, false on failure (in which case, the string
  97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// is left unchanged).  if the argument is null or invalid, the
  98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// concatenation is considered unsucessful.
  99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(const String &str);
 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(const char *cstr);
 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(char c);
 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(unsigned char c);
 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(int num);
 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(unsigned int num);
 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(long num);
 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(unsigned long num);
 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(float num);
 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(double num);
 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	unsigned char concat(const __FlashStringHelper * str);
 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 
 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// if there's not enough memory for the concatenated value, the string
 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	// will be left unchanged (but this isn't signalled in any way)
 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator += (const String &rhs)	{concat(rhs); return (*this);}
 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator += (const char *cstr)		{concat(cstr); return (*this);}
 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/WString.h **** 	String & operator += (char c)			{concat(c); return (*this);}
 1051               	.LM97:
 1052 040a 682F      		mov r22,r24
 1053 040c CE01      		movw r24,r28
 1054 040e 0E94 0000 		call _ZN6String6concatEc
 1055 0412 00C0      		rjmp .L78
 1056               	.L75:
 1057               	.LBE23:
 1058               	.LBE22:
 1060               	.Ltext2:
 237:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   {
 238:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     ret += (char)c;
 239:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedRead();
 240:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 241:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return ret;
 242:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 1062               	.LM98:
 1063 0414 CE01      		movw r24,r28
 1064               	/* epilogue start */
 1065 0416 DF91      		pop r29
 1066 0418 CF91      		pop r28
 1067 041a 1F91      		pop r17
 1068 041c 0F91      		pop r16
 1069 041e 0895      		ret
 1074               	.Lscope9:
 1076               		.stabd	78,0,0
 1080               	.global	_ZN6Stream15readStringUntilEc
 1082               	_ZN6Stream15readStringUntilEc:
 1083               		.stabd	46,0,0
 243:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 244:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** String Stream::readStringUntil(char terminator)
 245:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 1085               	.LM99:
 1086               	.LFBB10:
 1087 0420 EF92      		push r14
 1088 0422 FF92      		push r15
 1089 0424 0F93      		push r16
 1090 0426 1F93      		push r17
 1091 0428 CF93      		push r28
 1092 042a DF93      		push r29
 1093               	/* prologue: function */
 1094               	/* frame size = 0 */
 1095               	/* stack size = 6 */
 1096               	.L__stack_usage = 6
 1097 042c EC01      		movw r28,r24
 1098 042e 7B01      		movw r14,r22
 1099 0430 042F      		mov r16,r20
 246:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   String ret;
 1101               	.LM100:
 1102 0432 60E0      		ldi r22,lo8(.LC0)
 1103 0434 70E0      		ldi r23,hi8(.LC0)
 1104 0436 0E94 0000 		call _ZN6StringC1EPKc
 247:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   int c = timedRead();
 1106               	.LM101:
 1107 043a C701      		movw r24,r14
 1108 043c 0E94 0000 		call _ZN6Stream9timedReadEv
 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (c >= 0 && c != terminator)
 1110               	.LM102:
 1111 0440 10E0      		ldi r17,0
 1112               	.L81:
 1113 0442 97FD      		sbrc r25,7
 1114 0444 00C0      		rjmp .L79
 1116               	.LM103:
 1117 0446 8017      		cp r24,r16
 1118 0448 9107      		cpc r25,r17
 1119 044a 01F0      		breq .L79
 1120               	.LBB24:
 1121               	.LBB25:
 1123               	.Ltext3:
 1125               	.LM104:
 1126 044c 682F      		mov r22,r24
 1127 044e CE01      		movw r24,r28
 1128 0450 0E94 0000 		call _ZN6String6concatEc
 1129               	.LBE25:
 1130               	.LBE24:
 1132               	.Ltext4:
 249:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   {
 250:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     ret += (char)c;
 251:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     c = timedRead();
 1134               	.LM105:
 1135 0454 C701      		movw r24,r14
 1136 0456 0E94 0000 		call _ZN6Stream9timedReadEv
 248:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (c >= 0 && c != terminator)
 1138               	.LM106:
 1139 045a 00C0      		rjmp .L81
 1140               	.L79:
 252:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 253:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return ret;
 254:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 1142               	.LM107:
 1143 045c CE01      		movw r24,r28
 1144               	/* epilogue start */
 1145 045e DF91      		pop r29
 1146 0460 CF91      		pop r28
 1147 0462 1F91      		pop r17
 1148 0464 0F91      		pop r16
 1149 0466 FF90      		pop r15
 1150 0468 EF90      		pop r14
 1151 046a 0895      		ret
 1156               	.Lscope10:
 1158               		.stabd	78,0,0
 1163               	.global	_ZN6Stream9findMultiEPNS_11MultiTargetEi
 1165               	_ZN6Stream9findMultiEPNS_11MultiTargetEi:
 1166               		.stabd	46,0,0
 255:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 256:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** int Stream::findMulti( struct Stream::MultiTarget *targets, int tCount) {
 1168               	.LM108:
 1169               	.LFBB11:
 1170 046c 4F92      		push r4
 1171 046e 5F92      		push r5
 1172 0470 6F92      		push r6
 1173 0472 7F92      		push r7
 1174 0474 8F92      		push r8
 1175 0476 9F92      		push r9
 1176 0478 AF92      		push r10
 1177 047a BF92      		push r11
 1178 047c CF92      		push r12
 1179 047e DF92      		push r13
 1180 0480 EF92      		push r14
 1181 0482 FF92      		push r15
 1182 0484 0F93      		push r16
 1183 0486 1F93      		push r17
 1184 0488 CF93      		push r28
 1185 048a DF93      		push r29
 1186               	/* prologue: function */
 1187               	/* frame size = 0 */
 1188               	/* stack size = 16 */
 1189               	.L__stack_usage = 16
 1190 048c 8C01      		movw r16,r24
 1191 048e EB01      		movw r28,r22
 1192               	.LBB26:
 257:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   // any zero length target string automatically matches and would make
 258:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   // a mess of the rest of the algorithm.
 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   for (struct MultiTarget *t = targets; t < targets+tCount; ++t) {
 1194               	.LM109:
 1195 0490 86E0      		ldi r24,lo8(6)
 1196 0492 849F      		mul r24,r20
 1197 0494 4001      		movw r8,r0
 1198 0496 859F      		mul r24,r21
 1199 0498 900C      		add r9,r0
 1200 049a 1124      		clr __zero_reg__
 1201 049c 860E      		add r8,r22
 1202 049e 971E      		adc r9,r23
 1203 04a0 FB01      		movw r30,r22
 1204               	.L86:
 1206               	.LM110:
 1207 04a2 E815      		cp r30,r8
 1208 04a4 F905      		cpc r31,r9
 1209 04a6 00F4      		brsh .L102
 260:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (t->len <= 0)
 1211               	.LM111:
 1212 04a8 8281      		ldd r24,Z+2
 1213 04aa 9381      		ldd r25,Z+3
 1214 04ac 892B      		or r24,r25
 1215 04ae 01F0      		breq .L109
 259:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (t->len <= 0)
 1217               	.LM112:
 1218 04b0 3696      		adiw r30,6
 1219 04b2 00C0      		rjmp .L86
 1220               	.L110:
 1221               	.LBE26:
 1222               	.LBB27:
 1223               	.LBB28:
 1224               	.LBB29:
 261:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       return t - targets;
 262:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 263:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 264:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   while (1) {
 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     int c = timedRead();
 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c < 0)
 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       return -1;
 268:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     for (struct MultiTarget *t = targets; t < targets+tCount; ++t) {
 270:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // the simple case is if we match, deal with that first.
 271:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       if (c == t->str[t->index]) {
 1226               	.LM113:
 1227 04b4 6081      		ld r22,Z
 1228 04b6 7181      		ldd r23,Z+1
 1229 04b8 4481      		ldd r20,Z+4
 1230 04ba 5581      		ldd r21,Z+5
 1231 04bc DB01      		movw r26,r22
 1232 04be A40F      		add r26,r20
 1233 04c0 B51F      		adc r27,r21
 1234 04c2 2C91      		ld r18,X
 1235 04c4 30E0      		ldi r19,0
 1236 04c6 8217      		cp r24,r18
 1237 04c8 9307      		cpc r25,r19
 1238 04ca 01F4      		brne .L87
 272:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         if (++t->index == t->len)
 1240               	.LM114:
 1241 04cc 4F5F      		subi r20,-1
 1242 04ce 5F4F      		sbci r21,-1
 1243 04d0 5583      		std Z+5,r21
 1244 04d2 4483      		std Z+4,r20
 1245 04d4 2281      		ldd r18,Z+2
 1246 04d6 3381      		ldd r19,Z+3
 1247 04d8 4217      		cp r20,r18
 1248 04da 5307      		cpc r21,r19
 1249 04dc 01F0      		breq .L109
 1250               	.L89:
 1251               	.LBE29:
 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // the simple case is if we match, deal with that first.
 1253               	.LM115:
 1254 04de 3696      		adiw r30,6
 1255               	.L96:
 269:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // the simple case is if we match, deal with that first.
 1257               	.LM116:
 1258 04e0 E815      		cp r30,r8
 1259 04e2 F905      		cpc r31,r9
 1260 04e4 00F0      		brlo .L110
 1261               	.L102:
 1262               	.LBE28:
 265:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     if (c < 0)
 1264               	.LM117:
 1265 04e6 C801      		movw r24,r16
 1266 04e8 0E94 0000 		call _ZN6Stream9timedReadEv
 266:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       return -1;
 1268               	.LM118:
 1269 04ec 97FD      		sbrc r25,7
 1270 04ee 00C0      		rjmp .L97
 1271 04f0 FE01      		movw r30,r28
 1272 04f2 00C0      		rjmp .L96
 1273               	.L109:
 1274               	.LBB32:
 1275               	.LBB31:
 273:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           return t - targets;
 1277               	.LM119:
 1278 04f4 EC1B      		sub r30,r28
 1279 04f6 FD0B      		sbc r31,r29
 1280 04f8 F595      		asr r31
 1281 04fa E795      		ror r30
 1282 04fc 2BEA      		ldi r18,lo8(-85)
 1283 04fe 3AEA      		ldi r19,lo8(-86)
 1284 0500 E29F      		mul r30,r18
 1285 0502 C001      		movw r24,r0
 1286 0504 E39F      		mul r30,r19
 1287 0506 900D      		add r25,r0
 1288 0508 F29F      		mul r31,r18
 1289 050a 900D      		add r25,r0
 1290 050c 1124      		clr r1
 1291 050e 00C0      		rjmp .L85
 1292               	.L87:
 274:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         else
 275:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           continue;
 276:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       }
 277:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 278:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // if not we need to walk back and see if we could have matched further
 279:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // down the stream (ie '1112' doesn't match the first position in '11112'
 280:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // but it will match the second position so we can't just reset the current
 281:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       // index to 0 when we find a mismatch.
 282:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       if (t->index == 0)
 1294               	.LM120:
 1295 0510 4115      		cp r20,__zero_reg__
 1296 0512 5105      		cpc r21,__zero_reg__
 1297 0514 01F0      		breq .L89
 1298               	.L105:
 1299               	.LBB30:
 283:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         continue;
 284:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 285:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       int origIndex = t->index;
 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       do {
 287:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         --t->index;
 1301               	.LM121:
 1302 0516 C480      		ldd r12,Z+4
 1303 0518 D580      		ldd r13,Z+5
 1304 051a 9601      		movw r18,r12
 1305 051c 2150      		subi r18,1
 1306 051e 3109      		sbc r19,__zero_reg__
 1307 0520 3583      		std Z+5,r19
 1308 0522 2483      		std Z+4,r18
 288:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // first check if current char works against the new current index
 289:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         if (c != t->str[t->index])
 1310               	.LM122:
 1311 0524 DB01      		movw r26,r22
 1312 0526 A20F      		add r26,r18
 1313 0528 B31F      		adc r27,r19
 1314 052a AC91      		ld r26,X
 1315 052c B0E0      		ldi r27,0
 1316 052e 8A17      		cp r24,r26
 1317 0530 9B07      		cpc r25,r27
 1318 0532 01F4      		brne .L91
 290:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           continue;
 291:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 292:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // if it's the only char then we're good, nothing more to check
 293:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         if (t->index == 0) {
 1320               	.LM123:
 1321 0534 2115      		cp r18,__zero_reg__
 1322 0536 3105      		cpc r19,__zero_reg__
 1323 0538 01F0      		breq .L108
 1324 053a 5B01      		movw r10,r22
 1325 053c 7A01      		movw r14,r20
 1326 053e E21A      		sub r14,r18
 1327 0540 F30A      		sbc r15,r19
 1328 0542 E60E      		add r14,r22
 1329 0544 F71E      		adc r15,r23
 294:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           t->index++;
 295:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           break;
 296:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         }
 297:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 298:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // otherwise we need to check the rest of the found string
 299:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         int diff = origIndex - t->index;
 300:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         size_t i;
 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         for (i = 0; i < t->index; ++i) {
 1331               	.LM124:
 1332 0546 412C      		mov r4,__zero_reg__
 1333 0548 512C      		mov r5,__zero_reg__
 1334               	.L94:
 302:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           if (t->str[i] != t->str[i + diff])
 1336               	.LM125:
 1337 054a D501      		movw r26,r10
 1338 054c 6D90      		ld r6,X+
 1339 054e 5D01      		movw r10,r26
 1340 0550 D701      		movw r26,r14
 1341 0552 7D90      		ld r7,X+
 1342 0554 7D01      		movw r14,r26
 1343 0556 6710      		cpse r6,r7
 1344 0558 00C0      		rjmp .L93
 301:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           if (t->str[i] != t->str[i + diff])
 1346               	.LM126:
 1347 055a BFEF      		ldi r27,-1
 1348 055c 4B1A      		sub r4,r27
 1349 055e 5B0A      		sbc r5,r27
 1350 0560 4216      		cp r4,r18
 1351 0562 5306      		cpc r5,r19
 1352 0564 00F0      		brlo .L94
 1353               	.L93:
 303:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****             break;
 304:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         }
 305:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 306:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // if we successfully got through the previous loop then our current
 307:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // index is good.
 308:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         if (i == t->index) {
 1355               	.LM127:
 1356 0566 2415      		cp r18,r4
 1357 0568 3505      		cpc r19,r5
 1358 056a 01F4      		brne .L105
 1359               	.L108:
 309:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           t->index++;
 1361               	.LM128:
 1362 056c D582      		std Z+5,r13
 1363 056e C482      		std Z+4,r12
 310:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****           break;
 1365               	.LM129:
 1366 0570 00C0      		rjmp .L89
 1367               	.L91:
 1368               	.LBE30:
 286:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         --t->index;
 1370               	.LM130:
 1371 0572 232B      		or r18,r19
 1372 0574 01F4      		brne .L105
 1373 0576 00C0      		rjmp .L89
 1374               	.L97:
 1375               	.LBE31:
 1376               	.LBE32:
 267:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 1378               	.LM131:
 1379 0578 8FEF      		ldi r24,lo8(-1)
 1380 057a 9FEF      		ldi r25,lo8(-1)
 1381               	.L85:
 1382               	/* epilogue start */
 1383               	.LBE27:
 311:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         }
 312:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 313:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****         // otherwise we just try the next index
 314:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****       } while (t->index);
 315:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     }
 316:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 317:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   // unreachable
 318:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return -1;
 319:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 1385               	.LM132:
 1386 057c DF91      		pop r29
 1387 057e CF91      		pop r28
 1388 0580 1F91      		pop r17
 1389 0582 0F91      		pop r16
 1390 0584 FF90      		pop r15
 1391 0586 EF90      		pop r14
 1392 0588 DF90      		pop r13
 1393 058a CF90      		pop r12
 1394 058c BF90      		pop r11
 1395 058e AF90      		pop r10
 1396 0590 9F90      		pop r9
 1397 0592 8F90      		pop r8
 1398 0594 7F90      		pop r7
 1399 0596 6F90      		pop r6
 1400 0598 5F90      		pop r5
 1401 059a 4F90      		pop r4
 1402 059c 0895      		ret
 1410               	.Lscope11:
 1412               		.stabd	78,0,0
 1418               	_ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1:
 1419               		.stabd	46,0,0
 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** {
 1421               	.LM133:
 1422               	.LFBB12:
 1423 059e CF93      		push r28
 1424 05a0 DF93      		push r29
 1425 05a2 00D0      		rcall .
 1426 05a4 00D0      		rcall .
 1427 05a6 00D0      		rcall .
 1428 05a8 CDB7      		in r28,__SP_L__
 1429 05aa DEB7      		in r29,__SP_H__
 1430               	/* prologue: function */
 1431               	/* frame size = 6 */
 1432               	/* stack size = 8 */
 1433               	.L__stack_usage = 8
 1434               	.LBB33:
 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return findMulti(t, 1) == 0 ? true : false;
 1436               	.LM134:
 1437 05ac FE01      		movw r30,r28
 1438 05ae 3196      		adiw r30,1
 1439 05b0 26E0      		ldi r18,lo8(6)
 1440 05b2 DF01      		movw r26,r30
 1441               		0:
 1442 05b4 1D92      		st X+,__zero_reg__
 1443 05b6 2A95      		dec r18
 1444 05b8 01F4      		brne 0b
 1445 05ba 7A83      		std Y+2,r23
 1446 05bc 6983      		std Y+1,r22
 1447 05be 5C83      		std Y+4,r21
 1448 05c0 4B83      		std Y+3,r20
 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   } else {
 1450               	.LM135:
 1451 05c2 41E0      		ldi r20,lo8(1)
 1452 05c4 50E0      		ldi r21,0
 1453 05c6 BF01      		movw r22,r30
 1454 05c8 0E94 0000 		call _ZN6Stream9findMultiEPNS_11MultiTargetEi
 1455 05cc 21E0      		ldi r18,lo8(1)
 1456 05ce 892B      		or r24,r25
 1457 05d0 01F0      		breq .L112
 1458 05d2 20E0      		ldi r18,0
 1459               	.L112:
 1460               	.LBE33:
 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 1462               	.LM136:
 1463 05d4 822F      		mov r24,r18
 1464               	/* epilogue start */
 1465 05d6 2696      		adiw r28,6
 1466 05d8 0FB6      		in __tmp_reg__,__SREG__
 1467 05da F894      		cli
 1468 05dc DEBF      		out __SP_H__,r29
 1469 05de 0FBE      		out __SREG__,__tmp_reg__
 1470 05e0 CDBF      		out __SP_L__,r28
 1471 05e2 DF91      		pop r29
 1472 05e4 CF91      		pop r28
 1473 05e6 0895      		ret
 1478               	.Lscope12:
 1480               		.stabd	78,0,0
 1485               	.global	_ZN6Stream4findEPcj
 1487               	_ZN6Stream4findEPcj:
 1488               		.stabd	46,0,0
 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, length, NULL, 0);
 1490               	.LM137:
 1491               	.LFBB13:
 1492               	/* prologue: function */
 1493               	/* frame size = 0 */
 1494               	/* stack size = 0 */
 1495               	.L__stack_usage = 0
 1496               	.LBB34:
 1497               	.LBB35:
 1498 05e8 0C94 0000 		jmp _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1
 1499               	.LBE35:
 1500               	.LBE34:
 1502               	.Lscope13:
 1504               		.stabd	78,0,0
 1508               	.global	_ZN6Stream4findEPc
 1510               	_ZN6Stream4findEPc:
 1511               		.stabd	46,0,0
  94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, strlen(target), NULL, 0);
 1513               	.LM138:
 1514               	.LFBB14:
 1515               	/* prologue: function */
 1516               	/* frame size = 0 */
 1517               	/* stack size = 0 */
 1518               	.L__stack_usage = 0
  95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 1520               	.LM139:
 1521 05ec FB01      		movw r30,r22
 1522               		0:
 1523 05ee 0190      		ld __tmp_reg__,Z+
 1524 05f0 0020      		tst __tmp_reg__
 1525 05f2 01F4      		brne 0b
 1526 05f4 3197      		sbiw r30,1
 1527 05f6 AF01      		movw r20,r30
 1528 05f8 461B      		sub r20,r22
 1529 05fa 570B      		sbc r21,r23
 1530               	.LBB36:
 1531               	.LBB37:
 1532 05fc 0C94 0000 		jmp _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1
 1533               	.LBE37:
 1534               	.LBE36:
 1536               	.Lscope14:
 1538               		.stabd	78,0,0
 1545               	.global	_ZN6Stream9findUntilEPcjS0_j
 1547               	_ZN6Stream9findUntilEPcjS0_j:
 1548               		.stabd	46,0,0
 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   if (terminator == NULL) {
 1550               	.LM140:
 1551               	.LFBB15:
 1552 0600 FF92      		push r15
 1553 0602 0F93      		push r16
 1554 0604 1F93      		push r17
 1555 0606 CF93      		push r28
 1556 0608 DF93      		push r29
 1557 060a CDB7      		in r28,__SP_L__
 1558 060c DEB7      		in r29,__SP_H__
 1559 060e 2C97      		sbiw r28,12
 1560 0610 0FB6      		in __tmp_reg__,__SREG__
 1561 0612 F894      		cli
 1562 0614 DEBF      		out __SP_H__,r29
 1563 0616 0FBE      		out __SREG__,__tmp_reg__
 1564 0618 CDBF      		out __SP_L__,r28
 1565               	/* prologue: function */
 1566               	/* frame size = 12 */
 1567               	/* stack size = 17 */
 1568               	.L__stack_usage = 17
 1569               	.LBB38:
 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     MultiTarget t[1] = {{target, targetLen, 0}};
 1571               	.LM141:
 1572 061a 2115      		cp r18,__zero_reg__
 1573 061c 3105      		cpc r19,__zero_reg__
 1574 061e 01F4      		brne .L119
 1575               	.LBE38:
 1576 0620 0E94 0000 		call _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1
 1577 0624 282F      		mov r18,r24
 1578 0626 00C0      		rjmp .L120
 1579               	.L119:
 1580               	.LBB40:
 1581               	.LBB39:
 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****     return findMulti(t, 2) == 0 ? true : false;
 1583               	.LM142:
 1584 0628 FE01      		movw r30,r28
 1585 062a 3196      		adiw r30,1
 1586 062c ACE0      		ldi r26,lo8(12)
 1587 062e FA2E      		mov r15,r26
 1588 0630 DF01      		movw r26,r30
 1589               		0:
 1590 0632 1D92      		st X+,__zero_reg__
 1591 0634 FA94      		dec r15
 1592 0636 01F4      		brne 0b
 1593 0638 7A83      		std Y+2,r23
 1594 063a 6983      		std Y+1,r22
 1595 063c 5C83      		std Y+4,r21
 1596 063e 4B83      		std Y+3,r20
 1597 0640 3887      		std Y+8,r19
 1598 0642 2F83      		std Y+7,r18
 1599 0644 1A87      		std Y+10,r17
 1600 0646 0987      		std Y+9,r16
 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   }
 1602               	.LM143:
 1603 0648 42E0      		ldi r20,lo8(2)
 1604 064a 50E0      		ldi r21,0
 1605 064c BF01      		movw r22,r30
 1606 064e 0E94 0000 		call _ZN6Stream9findMultiEPNS_11MultiTargetEi
 1607 0652 21E0      		ldi r18,lo8(1)
 1608 0654 892B      		or r24,r25
 1609 0656 01F0      		breq .L120
 1610 0658 20E0      		ldi r18,0
 1611               	.L120:
 1612               	.LBE39:
 1613               	.LBE40:
 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 1615               	.LM144:
 1616 065a 822F      		mov r24,r18
 1617               	/* epilogue start */
 1618 065c 2C96      		adiw r28,12
 1619 065e 0FB6      		in __tmp_reg__,__SREG__
 1620 0660 F894      		cli
 1621 0662 DEBF      		out __SP_H__,r29
 1622 0664 0FBE      		out __SREG__,__tmp_reg__
 1623 0666 CDBF      		out __SP_L__,r28
 1624 0668 DF91      		pop r29
 1625 066a CF91      		pop r28
 1626 066c 1F91      		pop r17
 1627 066e 0F91      		pop r16
 1628 0670 FF90      		pop r15
 1629 0672 0895      		ret
 1634               	.Lscope15:
 1636               		.stabd	78,0,0
 1641               	.global	_ZN6Stream9findUntilEPcS0_
 1643               	_ZN6Stream9findUntilEPcS0_:
 1644               		.stabd	46,0,0
 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp ****   return findUntil(target, strlen(target), terminator, strlen(terminator));
 1646               	.LM145:
 1647               	.LFBB16:
 1648 0674 0F93      		push r16
 1649 0676 1F93      		push r17
 1650               	/* prologue: function */
 1651               	/* frame size = 0 */
 1652               	/* stack size = 2 */
 1653               	.L__stack_usage = 2
 1654 0678 9A01      		movw r18,r20
 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** }
 1656               	.LM146:
 1657 067a FA01      		movw r30,r20
 1658               		0:
 1659 067c 0190      		ld __tmp_reg__,Z+
 1660 067e 0020      		tst __tmp_reg__
 1661 0680 01F4      		brne 0b
 1662 0682 3197      		sbiw r30,1
 1663 0684 8F01      		movw r16,r30
 1664 0686 041B      		sub r16,r20
 1665 0688 150B      		sbc r17,r21
 1666 068a FB01      		movw r30,r22
 1667               		0:
 1668 068c 0190      		ld __tmp_reg__,Z+
 1669 068e 0020      		tst __tmp_reg__
 1670 0690 01F4      		brne 0b
 1671 0692 3197      		sbiw r30,1
 1672 0694 AF01      		movw r20,r30
 1673 0696 461B      		sub r20,r22
 1674 0698 570B      		sbc r21,r23
 1675 069a 0E94 0000 		call _ZN6Stream9findUntilEPcjS0_j
 1676               	/* epilogue start */
 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/Stream.cpp **** 
 1678               	.LM147:
 1679 069e 1F91      		pop r17
 1680 06a0 0F91      		pop r16
 1681 06a2 0895      		ret
 1683               	.Lscope16:
 1685               		.stabd	78,0,0
 1701               	.Letext0:
 1702               		.ident	"GCC: (GNU) 5.4.0"
 1703               	.global __do_copy_data
DEFINED SYMBOLS
                            *ABS*:0000000000000000 Stream.cpp
     /tmp/ccRQLXEs.s:2      *ABS*:000000000000003e __SP_H__
     /tmp/ccRQLXEs.s:3      *ABS*:000000000000003d __SP_L__
     /tmp/ccRQLXEs.s:4      *ABS*:000000000000003f __SREG__
     /tmp/ccRQLXEs.s:5      *ABS*:0000000000000000 __tmp_reg__
     /tmp/ccRQLXEs.s:6      *ABS*:0000000000000001 __zero_reg__
     /tmp/ccRQLXEs.s:135    .text:0000000000000000 _ZN6Stream9timedReadEv
     /tmp/ccRQLXEs.s:218    .text:0000000000000060 _ZN6Stream9timedPeekEv
     /tmp/ccRQLXEs.s:303    .text:00000000000000c0 _ZN6Stream13peekNextDigitE13LookaheadModeb
     /tmp/ccRQLXEs.s:417    .text:0000000000000138 _ZN6Stream10setTimeoutEm
     /tmp/ccRQLXEs.s:444    .text:0000000000000144 _ZN6Stream8parseIntE13LookaheadModec
     /tmp/ccRQLXEs.s:605    .text:0000000000000210 _ZN6Stream10parseFloatE13LookaheadModec
     /tmp/ccRQLXEs.s:832    .text:000000000000033a _ZN6Stream9readBytesEPcj
     /tmp/ccRQLXEs.s:912    .text:0000000000000384 _ZN6Stream14readBytesUntilEcPcj
     /tmp/ccRQLXEs.s:1017   .text:00000000000003ec _ZN6Stream10readStringEv
     /tmp/ccRQLXEs.s:1082   .text:0000000000000420 _ZN6Stream15readStringUntilEc
     /tmp/ccRQLXEs.s:1165   .text:000000000000046c _ZN6Stream9findMultiEPNS_11MultiTargetEi
     /tmp/ccRQLXEs.s:1418   .text:000000000000059e _ZN6Stream9findUntilEPcjS0_j.part.0.constprop.1
     /tmp/ccRQLXEs.s:1487   .text:00000000000005e8 _ZN6Stream4findEPcj
     /tmp/ccRQLXEs.s:1510   .text:00000000000005ec _ZN6Stream4findEPc
     /tmp/ccRQLXEs.s:1547   .text:0000000000000600 _ZN6Stream9findUntilEPcjS0_j
     /tmp/ccRQLXEs.s:1643   .text:0000000000000674 _ZN6Stream9findUntilEPcS0_

UNDEFINED SYMBOLS
millis
__muluhisi3
__mulsf3
__floatsisf
_ZN6StringC1EPKc
_ZN6String6concatEc
__do_copy_data
