GAS LISTING /tmp/ccJvOYjv.s page 1 1 .file "smtpc.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .rodata.str1.1,"aMS",@progbits,1 9 .LC0: 10 0000 546F 3A20 .string "To: " 10 00 11 .LC1: 12 0005 4343 3A20 .string "CC: " 12 00 13 .LC2: 14 000a 2C0D 0A20 .string ",\r\n " 14 2020 2000 15 .LC3: 16 0012 0D0A 00 .string "\r\n" 17 .section .text.SendMailHeaderRecipient,"ax",@progbits 18 .type SendMailHeaderRecipient, @function 19 SendMailHeaderRecipient: 20 0000 6F92 push r6 21 0002 7F92 push r7 22 0004 8F92 push r8 23 0006 9F92 push r9 24 0008 AF92 push r10 25 000a BF92 push r11 26 000c CF92 push r12 27 000e DF92 push r13 28 0010 EF92 push r14 29 0012 FF92 push r15 30 0014 0F93 push r16 31 0016 1F93 push r17 32 0018 CF93 push r28 33 001a DF93 push r29 34 /* prologue: function */ 35 /* frame size = 0 */ 36 /* stack size = 14 */ 37 .L__stack_usage = 14 38 001c EC01 movw r28,r24 39 001e 4130 cpi r20,lo8(1) 40 0020 01F4 brne .L2 41 0022 90E0 ldi r25,lo8(.LC0) 42 0024 892E mov r8,r25 43 0026 90E0 ldi r25,hi8(.LC0) 44 0028 992E mov r9,r25 45 002a 00C0 rjmp .L3 46 .L2: 47 002c 80E0 ldi r24,lo8(.LC1) 48 002e 882E mov r8,r24 49 0030 80E0 ldi r24,hi8(.LC1) 50 0032 982E mov r9,r24 51 .L3: 52 0034 6B01 movw r12,r22 53 0036 8CE1 ldi r24,28 54 0038 C80E add r12,r24 GAS LISTING /tmp/ccJvOYjv.s page 2 55 003a D11C adc r13,__zero_reg__ 56 003c 5B01 movw r10,r22 57 003e E4E1 ldi r30,20 58 0040 AE0E add r10,r30 59 0042 B11C adc r11,__zero_reg__ 60 0044 3B01 movw r6,r22 61 0046 F0E2 ldi r31,32 62 0048 6F0E add r6,r31 63 004a 711C adc r7,__zero_reg__ 64 004c 00E0 ldi r16,0 65 004e 10E0 ldi r17,0 66 0050 E42E mov r14,r20 67 0052 F12C mov r15,__zero_reg__ 68 .L7: 69 0054 F601 movw r30,r12 70 0056 8191 ld r24,Z+ 71 0058 6F01 movw r12,r30 72 005a 8370 andi r24,lo8(3) 73 005c 90E0 ldi r25,0 74 005e 8E15 cp r24,r14 75 0060 9F05 cpc r25,r15 76 0062 01F4 brne .L4 77 0064 BE01 movw r22,r28 78 0066 0115 cp r16,__zero_reg__ 79 0068 1105 cpc r17,__zero_reg__ 80 006a 01F0 breq .L5 81 006c 80E0 ldi r24,lo8(.LC2) 82 006e 90E0 ldi r25,hi8(.LC2) 83 0070 00C0 rjmp .L13 84 .L5: 85 0072 C401 movw r24,r8 86 .L13: 87 0074 0E94 0000 call fputs 88 0078 BE01 movw r22,r28 89 007a F501 movw r30,r10 90 007c 8081 ld r24,Z 91 007e 9181 ldd r25,Z+1 92 0080 0E94 0000 call fputs 93 0084 0F5F subi r16,-1 94 0086 1F4F sbci r17,-1 95 .L4: 96 0088 F2E0 ldi r31,2 97 008a AF0E add r10,r31 98 008c B11C adc r11,__zero_reg__ 99 008e C614 cp r12,r6 100 0090 D704 cpc r13,r7 101 0092 01F4 brne .L7 102 0094 012B or r16,r17 103 0096 01F0 breq .L8 104 0098 BE01 movw r22,r28 105 009a 80E0 ldi r24,lo8(.LC3) 106 009c 90E0 ldi r25,hi8(.LC3) 107 009e 0E94 0000 call fputs 108 .L8: 109 00a2 80E0 ldi r24,0 110 00a4 90E0 ldi r25,0 111 /* epilogue start */ GAS LISTING /tmp/ccJvOYjv.s page 3 112 00a6 DF91 pop r29 113 00a8 CF91 pop r28 114 00aa 1F91 pop r17 115 00ac 0F91 pop r16 116 00ae FF90 pop r15 117 00b0 EF90 pop r14 118 00b2 DF90 pop r13 119 00b4 CF90 pop r12 120 00b6 BF90 pop r11 121 00b8 AF90 pop r10 122 00ba 9F90 pop r9 123 00bc 8F90 pop r8 124 00be 7F90 pop r7 125 00c0 6F90 pop r6 126 00c2 0895 ret 127 .size SendMailHeaderRecipient, .-SendMailHeaderRecipient 128 .section .text.NutSmtpReceiveResponse,"ax",@progbits 129 .global NutSmtpReceiveResponse 130 .type NutSmtpReceiveResponse, @function 131 NutSmtpReceiveResponse: 132 0000 CF93 push r28 133 0002 DF93 push r29 134 /* prologue: function */ 135 /* frame size = 0 */ 136 /* stack size = 2 */ 137 .L__stack_usage = 2 138 0004 EC01 movw r28,r24 139 0006 2896 adiw r28,8 140 0008 FC01 movw r30,r24 141 000a 4281 ldd r20,Z+2 142 000c 5381 ldd r21,Z+3 143 000e 60E0 ldi r22,0 144 0010 71E0 ldi r23,lo8(1) 145 0012 CE01 movw r24,r28 146 0014 0E94 0000 call fgets 147 0018 892B or r24,r25 148 001a 01F0 breq .L19 149 001c 6DE0 ldi r22,lo8(13) 150 001e 70E0 ldi r23,0 151 0020 CE01 movw r24,r28 152 0022 0E94 0000 call strchr 153 0026 0097 sbiw r24,0 154 0028 01F4 brne .L17 155 002a 6AE0 ldi r22,lo8(10) 156 002c 70E0 ldi r23,0 157 002e CE01 movw r24,r28 158 0030 0E94 0000 call strchr 159 0034 0097 sbiw r24,0 160 0036 01F0 breq .L19 161 .L17: 162 0038 FC01 movw r30,r24 163 003a 1082 st Z,__zero_reg__ 164 003c CE01 movw r24,r28 165 003e 00C0 rjmp .L16 166 .L19: 167 0040 80E0 ldi r24,0 168 0042 90E0 ldi r25,0 GAS LISTING /tmp/ccJvOYjv.s page 4 169 .L16: 170 /* epilogue start */ 171 0044 DF91 pop r29 172 0046 CF91 pop r28 173 0048 0895 ret 174 .size NutSmtpReceiveResponse, .-NutSmtpReceiveResponse 175 .section .text.NutSmtpSendCommand,"ax",@progbits 176 .global NutSmtpSendCommand 177 .type NutSmtpSendCommand, @function 178 NutSmtpSendCommand: 179 0000 0F93 push r16 180 0002 1F93 push r17 181 0004 CF93 push r28 182 0006 DF93 push r29 183 0008 CDB7 in r28,__SP_L__ 184 000a DEB7 in r29,__SP_H__ 185 /* prologue: function */ 186 /* frame size = 0 */ 187 /* stack size = 4 */ 188 .L__stack_usage = 4 189 000c 0885 ldd r16,Y+8 190 000e 1985 ldd r17,Y+9 191 0010 AE01 movw r20,r28 192 0012 445F subi r20,-12 193 0014 5F4F sbci r21,-1 194 0016 6A85 ldd r22,Y+10 195 0018 7B85 ldd r23,Y+11 196 001a F801 movw r30,r16 197 001c 8281 ldd r24,Z+2 198 001e 9381 ldd r25,Z+3 199 0020 0E94 0000 call vfprintf 200 0024 F801 movw r30,r16 201 0026 6281 ldd r22,Z+2 202 0028 7381 ldd r23,Z+3 203 002a 80E0 ldi r24,lo8(.LC3) 204 002c 90E0 ldi r25,hi8(.LC3) 205 002e 0E94 0000 call fputs 206 0032 F801 movw r30,r16 207 0034 8281 ldd r24,Z+2 208 0036 9381 ldd r25,Z+3 209 0038 0E94 0000 call fflush 210 003c C801 movw r24,r16 211 003e 0E94 0000 call NutSmtpReceiveResponse 212 /* epilogue start */ 213 0042 DF91 pop r29 214 0044 CF91 pop r28 215 0046 1F91 pop r17 216 0048 0F91 pop r16 217 004a 0895 ret 218 .size NutSmtpSendCommand, .-NutSmtpSendCommand 219 .section .rodata.str1.1 220 .LC4: 221 0015 2573 2025 .string "%s %s" 221 7300 222 .LC5: 223 001b 2573 205B .string "%s [%s]" 223 2573 5D00 GAS LISTING /tmp/ccJvOYjv.s page 5 224 .section .text.SayHello,"ax",@progbits 225 .type SayHello, @function 226 SayHello: 227 0000 0F93 push r16 228 0002 1F93 push r17 229 0004 CF93 push r28 230 0006 DF93 push r29 231 /* prologue: function */ 232 /* frame size = 0 */ 233 /* stack size = 4 */ 234 .L__stack_usage = 4 235 0008 EC01 movw r28,r24 236 000a 162F mov r17,r22 237 000c 072F mov r16,r23 238 000e 4115 cp r20,__zero_reg__ 239 0010 5105 cpc r21,__zero_reg__ 240 0012 01F0 breq .L22 241 0014 5F93 push r21 242 0016 4F93 push r20 243 0018 7F93 push r23 244 001a 6F93 push r22 245 001c 80E0 ldi r24,lo8(.LC4) 246 001e 90E0 ldi r25,hi8(.LC4) 247 0020 9F93 push r25 248 0022 8F93 push r24 249 0024 DF93 push r29 250 0026 CF93 push r28 251 0028 0E94 0000 call NutSmtpSendCommand 252 002c 2DB7 in r18,__SP_L__ 253 002e 3EB7 in r19,__SP_H__ 254 0030 285F subi r18,-8 255 0032 3F4F sbci r19,-1 256 0034 0FB6 in __tmp_reg__,__SREG__ 257 0036 F894 cli 258 0038 3EBF out __SP_H__,r19 259 003a 0FBE out __SREG__,__tmp_reg__ 260 003c 2DBF out __SP_L__,r18 261 003e 00C0 rjmp .L23 262 .L22: 263 0040 6091 0000 lds r22,confnet+16 264 0044 7091 0000 lds r23,confnet+16+1 265 0048 8091 0000 lds r24,confnet+16+2 266 004c 9091 0000 lds r25,confnet+16+3 267 0050 0E94 0000 call inet_ntoa 268 0054 9F93 push r25 269 0056 8F93 push r24 270 0058 0F93 push r16 271 005a 1F93 push r17 272 005c 80E0 ldi r24,lo8(.LC5) 273 005e 90E0 ldi r25,hi8(.LC5) 274 0060 9F93 push r25 275 0062 8F93 push r24 276 0064 DF93 push r29 277 0066 CF93 push r28 278 0068 0E94 0000 call NutSmtpSendCommand 279 006c 2DB7 in r18,__SP_L__ 280 006e 3EB7 in r19,__SP_H__ GAS LISTING /tmp/ccJvOYjv.s page 6 281 0070 285F subi r18,-8 282 0072 3F4F sbci r19,-1 283 0074 0FB6 in __tmp_reg__,__SREG__ 284 0076 F894 cli 285 0078 3EBF out __SP_H__,r19 286 007a 0FBE out __SREG__,__tmp_reg__ 287 007c 2DBF out __SP_L__,r18 288 .L23: 289 /* epilogue start */ 290 007e DF91 pop r29 291 0080 CF91 pop r28 292 0082 1F91 pop r17 293 0084 0F91 pop r16 294 0086 0895 ret 295 .size SayHello, .-SayHello 296 .section .rodata.str1.1 297 .LC6: 298 0023 5155 4954 .string "QUIT" 298 00 299 .section .text.NutSmtpDisconnect,"ax",@progbits 300 .global NutSmtpDisconnect 301 .type NutSmtpDisconnect, @function 302 NutSmtpDisconnect: 303 0000 CF93 push r28 304 0002 DF93 push r29 305 /* prologue: function */ 306 /* frame size = 0 */ 307 /* stack size = 2 */ 308 .L__stack_usage = 2 309 0004 EC01 movw r28,r24 310 0006 8881 ld r24,Y 311 0008 9981 ldd r25,Y+1 312 000a 892B or r24,r25 313 000c 01F0 breq .L25 314 000e 8A81 ldd r24,Y+2 315 0010 9B81 ldd r25,Y+3 316 0012 892B or r24,r25 317 0014 01F0 breq .L26 318 0016 80E0 ldi r24,lo8(.LC6) 319 0018 90E0 ldi r25,hi8(.LC6) 320 001a 9F93 push r25 321 001c 8F93 push r24 322 001e DF93 push r29 323 0020 CF93 push r28 324 0022 0E94 0000 call NutSmtpSendCommand 325 0026 8A81 ldd r24,Y+2 326 0028 9B81 ldd r25,Y+3 327 002a 0E94 0000 call fclose 328 002e 0F90 pop __tmp_reg__ 329 0030 0F90 pop __tmp_reg__ 330 0032 0F90 pop __tmp_reg__ 331 0034 0F90 pop __tmp_reg__ 332 .L26: 333 0036 8881 ld r24,Y 334 0038 9981 ldd r25,Y+1 335 003a 0E94 0000 call NutTcpCloseSocket 336 .L25: GAS LISTING /tmp/ccJvOYjv.s page 7 337 003e CE01 movw r24,r28 338 /* epilogue start */ 339 0040 DF91 pop r29 340 0042 CF91 pop r28 341 0044 0C94 0000 jmp free 342 .size NutSmtpDisconnect, .-NutSmtpDisconnect 343 .section .rodata.str1.1 344 .LC7: 345 0028 722B 6200 .string "r+b" 346 .section .text.NutSmtpConnect,"ax",@progbits 347 .global NutSmtpConnect 348 .type NutSmtpConnect, @function 349 NutSmtpConnect: 350 0000 AF92 push r10 351 0002 BF92 push r11 352 0004 CF92 push r12 353 0006 DF92 push r13 354 0008 EF92 push r14 355 000a FF92 push r15 356 000c 0F93 push r16 357 000e 1F93 push r17 358 0010 CF93 push r28 359 0012 DF93 push r29 360 0014 00D0 rcall . 361 0016 1F92 push __zero_reg__ 362 0018 CDB7 in r28,__SP_L__ 363 001a DEB7 in r29,__SP_H__ 364 /* prologue: function */ 365 /* frame size = 4 */ 366 /* stack size = 14 */ 367 .L__stack_usage = 14 368 001c 6B01 movw r12,r22 369 001e 7C01 movw r14,r24 370 0020 5A01 movw r10,r20 371 0022 68E0 ldi r22,lo8(8) 372 0024 71E0 ldi r23,lo8(1) 373 0026 81E0 ldi r24,lo8(1) 374 0028 90E0 ldi r25,0 375 002a 0E94 0000 call calloc 376 002e 8C01 movw r16,r24 377 0030 892B or r24,r25 378 0032 01F0 breq .L40 379 0034 0E94 0000 call NutTcpCreateSocket 380 0038 F801 movw r30,r16 381 003a 9183 std Z+1,r25 382 003c 8083 st Z,r24 383 003e 0097 sbiw r24,0 384 0040 01F0 breq .L36 385 0042 9501 movw r18,r10 386 0044 B701 movw r22,r14 387 0046 A601 movw r20,r12 388 0048 0E94 0000 call NutTcpConnect 389 004c 892B or r24,r25 390 004e 01F4 brne .L36 391 0050 80EC ldi r24,lo8(-64) 392 0052 97E2 ldi r25,lo8(39) 393 0054 A9E0 ldi r26,lo8(9) GAS LISTING /tmp/ccJvOYjv.s page 8 394 0056 B0E0 ldi r27,0 395 0058 8983 std Y+1,r24 396 005a 9A83 std Y+2,r25 397 005c AB83 std Y+3,r26 398 005e BC83 std Y+4,r27 399 0060 24E0 ldi r18,lo8(4) 400 0062 30E0 ldi r19,0 401 0064 AE01 movw r20,r28 402 0066 4F5F subi r20,-1 403 0068 5F4F sbci r21,-1 404 006a 66E0 ldi r22,lo8(6) 405 006c 70E1 ldi r23,lo8(16) 406 006e F801 movw r30,r16 407 0070 8081 ld r24,Z 408 0072 9181 ldd r25,Z+1 409 0074 0E94 0000 call NutTcpSetSockOpt 410 0078 60E0 ldi r22,lo8(.LC7) 411 007a 70E0 ldi r23,hi8(.LC7) 412 007c F801 movw r30,r16 413 007e 8081 ld r24,Z 414 0080 9181 ldd r25,Z+1 415 0082 0E94 0000 call _fdopen 416 0086 F801 movw r30,r16 417 0088 9383 std Z+3,r25 418 008a 8283 std Z+2,r24 419 008c 892B or r24,r25 420 008e 01F0 breq .L36 421 .L44: 422 0090 C801 movw r24,r16 423 0092 0E94 0000 call NutSmtpReceiveResponse 424 0096 FC01 movw r30,r24 425 0098 2081 ld r18,Z 426 009a 2233 cpi r18,lo8(50) 427 009c 01F4 brne .L36 428 009e 8381 ldd r24,Z+3 429 00a0 8D32 cpi r24,lo8(45) 430 00a2 01F0 breq .L44 431 00a4 C801 movw r24,r16 432 00a6 00C0 rjmp .L34 433 .L36: 434 00a8 C801 movw r24,r16 435 00aa 0E94 0000 call NutSmtpDisconnect 436 .L40: 437 00ae 80E0 ldi r24,0 438 00b0 90E0 ldi r25,0 439 .L34: 440 /* epilogue start */ 441 00b2 0F90 pop __tmp_reg__ 442 00b4 0F90 pop __tmp_reg__ 443 00b6 0F90 pop __tmp_reg__ 444 00b8 0F90 pop __tmp_reg__ 445 00ba DF91 pop r29 446 00bc CF91 pop r28 447 00be 1F91 pop r17 448 00c0 0F91 pop r16 449 00c2 FF90 pop r15 450 00c4 EF90 pop r14 GAS LISTING /tmp/ccJvOYjv.s page 9 451 00c6 DF90 pop r13 452 00c8 CF90 pop r12 453 00ca BF90 pop r11 454 00cc AF90 pop r10 455 00ce 0895 ret 456 .size NutSmtpConnect, .-NutSmtpConnect 457 .section .rodata.str1.1 458 .LC8: 459 002c 4548 4C4F .string "EHLO" 459 00 460 .LC9: 461 0031 4845 4C4F .string "HELO" 461 00 462 .LC10: 463 0036 4155 5448 .string "AUTH " 463 2000 464 .LC11: 465 003c 4C4F 4749 .string "LOGIN" 465 4E00 466 .LC12: 467 0042 504C 4149 .string "PLAIN" 467 4E00 468 .LC13: 469 0048 4155 5448 .string "AUTH PLAIN %s" 469 2050 4C41 469 494E 2025 469 7300 470 .section .text.NutSmtpLogin,"ax",@progbits 471 .global NutSmtpLogin 472 .type NutSmtpLogin, @function 473 NutSmtpLogin: 474 0000 4F92 push r4 475 0002 5F92 push r5 476 0004 6F92 push r6 477 0006 7F92 push r7 478 0008 8F92 push r8 479 000a 9F92 push r9 480 000c AF92 push r10 481 000e BF92 push r11 482 0010 CF92 push r12 483 0012 DF92 push r13 484 0014 EF92 push r14 485 0016 FF92 push r15 486 0018 0F93 push r16 487 001a 1F93 push r17 488 001c CF93 push r28 489 001e DF93 push r29 490 /* prologue: function */ 491 /* frame size = 0 */ 492 /* stack size = 16 */ 493 .L__stack_usage = 16 494 0020 EC01 movw r28,r24 495 0022 7B01 movw r14,r22 496 0024 6A01 movw r12,r20 497 0026 5901 movw r10,r18 498 0028 AB01 movw r20,r22 499 002a 60E0 ldi r22,lo8(.LC8) GAS LISTING /tmp/ccJvOYjv.s page 10 500 002c 70E0 ldi r23,hi8(.LC8) 501 002e 0E94 0000 call SayHello 502 0032 8C01 movw r16,r24 503 0034 0097 sbiw r24,0 504 0036 01F4 brne .L48 505 .L51: 506 0038 8FEF ldi r24,lo8(-1) 507 003a 9FEF ldi r25,lo8(-1) 508 003c 00C0 rjmp .L49 509 .L48: 510 003e DC01 movw r26,r24 511 0040 8C91 ld r24,X 512 0042 8533 cpi r24,lo8(53) 513 0044 01F4 brne .L50 514 0046 8C81 ldd r24,Y+4 515 0048 9D81 ldd r25,Y+5 516 004a AE81 ldd r26,Y+6 517 004c BF81 ldd r27,Y+7 518 004e 8160 ori r24,1 519 0050 8C83 std Y+4,r24 520 0052 9D83 std Y+5,r25 521 0054 AE83 std Y+6,r26 522 0056 BF83 std Y+7,r27 523 0058 A701 movw r20,r14 524 005a 60E0 ldi r22,lo8(.LC9) 525 005c 70E0 ldi r23,hi8(.LC9) 526 005e CE01 movw r24,r28 527 0060 0E94 0000 call SayHello 528 0064 8C01 movw r16,r24 529 0066 892B or r24,r25 530 0068 01F0 breq .L51 531 .L50: 532 006a F801 movw r30,r16 533 006c 8081 ld r24,Z 534 006e 8233 cpi r24,lo8(50) 535 0070 01F4 brne .L51 536 0072 8C81 ldd r24,Y+4 537 0074 80FF sbrs r24,0 538 0076 00C0 rjmp .L59 539 .L58: 540 0078 C114 cp r12,__zero_reg__ 541 007a D104 cpc r13,__zero_reg__ 542 007c 01F4 brne .L92 543 007e 00C0 rjmp .L93 544 .L94: 545 0080 7801 movw r14,r16 546 0082 F9E0 ldi r31,9 547 0084 EF0E add r14,r31 548 0086 F11C adc r15,__zero_reg__ 549 0088 60E0 ldi r22,lo8(.LC11) 550 008a 70E0 ldi r23,hi8(.LC11) 551 008c C701 movw r24,r14 552 008e 0E94 0000 call strstr 553 0092 892B or r24,r25 554 0094 01F0 breq .L56 555 0096 8C81 ldd r24,Y+4 556 0098 9D81 ldd r25,Y+5 GAS LISTING /tmp/ccJvOYjv.s page 11 557 009a AE81 ldd r26,Y+6 558 009c BF81 ldd r27,Y+7 559 009e 8260 ori r24,2 560 00a0 8C83 std Y+4,r24 561 00a2 9D83 std Y+5,r25 562 00a4 AE83 std Y+6,r26 563 00a6 BF83 std Y+7,r27 564 .L56: 565 00a8 60E0 ldi r22,lo8(.LC12) 566 00aa 70E0 ldi r23,hi8(.LC12) 567 00ac C701 movw r24,r14 568 00ae 0E94 0000 call strstr 569 00b2 892B or r24,r25 570 00b4 01F0 breq .L55 571 00b6 8C81 ldd r24,Y+4 572 00b8 9D81 ldd r25,Y+5 573 00ba AE81 ldd r26,Y+6 574 00bc BF81 ldd r27,Y+7 575 00be 8460 ori r24,4 576 00c0 8C83 std Y+4,r24 577 00c2 9D83 std Y+5,r25 578 00c4 AE83 std Y+6,r26 579 00c6 BF83 std Y+7,r27 580 .L55: 581 00c8 D801 movw r26,r16 582 00ca 1396 adiw r26,3 583 00cc 8C91 ld r24,X 584 00ce 8D32 cpi r24,lo8(45) 585 00d0 01F4 brne .L58 586 00d2 CE01 movw r24,r28 587 00d4 0E94 0000 call NutSmtpReceiveResponse 588 00d8 8C01 movw r16,r24 589 00da 892B or r24,r25 590 00dc 01F0 breq .L58 591 .L59: 592 00de 45E0 ldi r20,lo8(5) 593 00e0 50E0 ldi r21,0 594 00e2 60E0 ldi r22,lo8(.LC10) 595 00e4 70E0 ldi r23,hi8(.LC10) 596 00e6 C801 movw r24,r16 597 00e8 0496 adiw r24,4 598 00ea 0E94 0000 call strncmp 599 00ee 892B or r24,r25 600 00f0 01F4 brne .L55 601 00f2 00C0 rjmp .L94 602 .L92: 603 00f4 8C81 ldd r24,Y+4 604 00f6 82FF sbrs r24,2 605 00f8 00C0 rjmp .L51 606 00fa F601 movw r30,r12 607 0: 608 00fc 0190 ld __tmp_reg__,Z+ 609 00fe 0020 tst __tmp_reg__ 610 0100 01F4 brne 0b 611 0102 3197 sbiw r30,1 612 0104 7F01 movw r14,r30 613 0106 EC18 sub r14,r12 GAS LISTING /tmp/ccJvOYjv.s page 12 614 0108 FD08 sbc r15,r13 615 010a F501 movw r30,r10 616 0: 617 010c 0190 ld __tmp_reg__,Z+ 618 010e 0020 tst __tmp_reg__ 619 0110 01F4 brne 0b 620 0112 3197 sbiw r30,1 621 0114 3F01 movw r6,r30 622 0116 6A18 sub r6,r10 623 0118 7B08 sbc r7,r11 624 011a 4301 movw r8,r6 625 011c 8E0C add r8,r14 626 011e 9F1C adc r9,r15 627 0120 C401 movw r24,r8 628 0122 0396 adiw r24,3 629 0124 0E94 0000 call malloc 630 0128 8C01 movw r16,r24 631 012a FC01 movw r30,r24 632 012c 1192 st Z+,__zero_reg__ 633 012e CF01 movw r24,r30 634 0130 A701 movw r20,r14 635 0132 4F5F subi r20,-1 636 0134 5F4F sbci r21,-1 637 0136 B601 movw r22,r12 638 0138 0E94 0000 call memcpy 639 013c C701 movw r24,r14 640 013e 0296 adiw r24,2 641 0140 A301 movw r20,r6 642 0142 B501 movw r22,r10 643 0144 800F add r24,r16 644 0146 911F adc r25,r17 645 0148 0E94 0000 call memcpy 646 014c AE01 movw r20,r28 647 014e 485F subi r20,-8 648 0150 5F4F sbci r21,-1 649 0152 9401 movw r18,r8 650 0154 2E5F subi r18,-2 651 0156 3F4F sbci r19,-1 652 0158 4A01 movw r8,r20 653 015a 60E0 ldi r22,0 654 015c F3E0 ldi r31,lo8(3) 655 015e BF2E mov r11,r31 656 0160 7DE3 ldi r23,lo8(61) 657 .L60: 658 0162 2115 cp r18,__zero_reg__ 659 0164 3105 cpc r19,__zero_reg__ 660 0166 01F4 brne .+2 661 0168 00C0 rjmp .L95 662 016a D801 movw r26,r16 663 016c 8C91 ld r24,X 664 016e 90E0 ldi r25,0 665 0170 A0E0 ldi r26,0 666 0172 B0E0 ldi r27,0 667 0174 DC01 movw r26,r24 668 0176 9927 clr r25 669 0178 8827 clr r24 670 017a 2230 cpi r18,2 GAS LISTING /tmp/ccJvOYjv.s page 13 671 017c 3105 cpc r19,__zero_reg__ 672 017e 00F4 brsh .L61 673 0180 0F5F subi r16,-1 674 0182 1F4F sbci r17,-1 675 0184 62E0 ldi r22,lo8(2) 676 0186 00C0 rjmp .L62 677 .L61: 678 0188 F801 movw r30,r16 679 018a F180 ldd r15,Z+1 680 018c 9F29 or r25,r15 681 018e 2230 cpi r18,2 682 0190 3105 cpc r19,__zero_reg__ 683 0192 01F4 brne .L63 684 0194 0E5F subi r16,-2 685 0196 1F4F sbci r17,-1 686 0198 61E0 ldi r22,lo8(1) 687 019a 00C0 rjmp .L62 688 .L63: 689 019c F801 movw r30,r16 690 019e F280 ldd r15,Z+2 691 01a0 8F29 or r24,r15 692 01a2 0D5F subi r16,-3 693 01a4 1F4F sbci r17,-1 694 .L62: 695 01a6 6401 movw r12,r8 696 01a8 A62E mov r10,r22 697 .L64: 698 01aa 2C01 movw r4,r24 699 01ac 3D01 movw r6,r26 700 01ae E2E1 ldi r30,18 701 1: 702 01b0 7694 lsr r7 703 01b2 6794 ror r6 704 01b4 5794 ror r5 705 01b6 4794 ror r4 706 01b8 EA95 dec r30 707 01ba 01F4 brne 1b 708 01bc FFE3 ldi r31,63 709 01be 4F22 and r4,r31 710 01c0 5524 clr r5 711 01c2 6624 clr r6 712 01c4 7724 clr r7 713 01c6 F201 movw r30,r4 714 01c8 E050 subi r30,lo8(-(base64set.2931)) 715 01ca F040 sbci r31,hi8(-(base64set.2931)) 716 01cc F080 ld r15,Z 717 01ce F601 movw r30,r12 718 01d0 F192 st Z+,r15 719 01d2 6F01 movw r12,r30 720 01d4 F6E0 ldi r31,6 721 1: 722 01d6 880F lsl r24 723 01d8 991F rol r25 724 01da AA1F rol r26 725 01dc BB1F rol r27 726 01de FA95 dec r31 727 01e0 01F4 brne 1b GAS LISTING /tmp/ccJvOYjv.s page 14 728 01e2 A394 inc r10 729 01e4 F4E0 ldi r31,lo8(4) 730 01e6 AF12 cpse r10,r31 731 01e8 00C0 rjmp .L64 732 01ea 8B2D mov r24,r11 733 01ec 861B sub r24,r22 734 01ee 90E0 ldi r25,0 735 01f0 0196 adiw r24,1 736 01f2 F401 movw r30,r8 737 01f4 E80F add r30,r24 738 01f6 F91F adc r31,r25 739 01f8 6623 tst r22 740 01fa 01F0 breq .L65 741 01fc 7083 st Z,r23 742 01fe 6230 cpi r22,lo8(2) 743 0200 01F4 brne .L65 744 0202 7183 std Z+1,r23 745 .L65: 746 0204 862F mov r24,r22 747 0206 90E0 ldi r25,0 748 0208 4F01 movw r8,r30 749 020a 880E add r8,r24 750 020c 991E adc r9,r25 751 020e 0397 sbiw r24,3 752 0210 280F add r18,r24 753 0212 391F adc r19,r25 754 0214 00C0 rjmp .L60 755 .L95: 756 0216 D401 movw r26,r8 757 0218 1C92 st X,__zero_reg__ 758 021a 5F93 push r21 759 021c 4F93 push r20 760 021e 80E0 ldi r24,lo8(.LC13) 761 0220 90E0 ldi r25,hi8(.LC13) 762 0222 9F93 push r25 763 0224 8F93 push r24 764 0226 DF93 push r29 765 0228 CF93 push r28 766 022a 0E94 0000 call NutSmtpSendCommand 767 022e 0F90 pop __tmp_reg__ 768 0230 0F90 pop __tmp_reg__ 769 0232 0F90 pop __tmp_reg__ 770 0234 0F90 pop __tmp_reg__ 771 0236 0F90 pop __tmp_reg__ 772 0238 0F90 pop __tmp_reg__ 773 023a 0097 sbiw r24,0 774 023c 01F4 brne .+2 775 023e 00C0 rjmp .L51 776 0240 21E0 ldi r18,lo8(1) 777 0242 30E0 ldi r19,0 778 0244 DC01 movw r26,r24 779 0246 8C91 ld r24,X 780 0248 8233 cpi r24,lo8(50) 781 024a 01F4 brne .L67 782 024c 20E0 ldi r18,0 783 024e 30E0 ldi r19,0 784 .L67: GAS LISTING /tmp/ccJvOYjv.s page 15 785 0250 8827 clr r24 786 0252 9927 clr r25 787 0254 821B sub r24,r18 788 0256 930B sbc r25,r19 789 0258 00C0 rjmp .L49 790 .L93: 791 025a 80E0 ldi r24,0 792 025c 90E0 ldi r25,0 793 .L49: 794 /* epilogue start */ 795 025e DF91 pop r29 796 0260 CF91 pop r28 797 0262 1F91 pop r17 798 0264 0F91 pop r16 799 0266 FF90 pop r15 800 0268 EF90 pop r14 801 026a DF90 pop r13 802 026c CF90 pop r12 803 026e BF90 pop r11 804 0270 AF90 pop r10 805 0272 9F90 pop r9 806 0274 8F90 pop r8 807 0276 7F90 pop r7 808 0278 6F90 pop r6 809 027a 5F90 pop r5 810 027c 4F90 pop r4 811 027e 0895 ret 812 .size NutSmtpLogin, .-NutSmtpLogin 813 .section .rodata.str1.1 814 .LC14: 815 0056 4D41 494C .string "MAIL FROM:%s" 815 2046 524F 815 4D3A 2573 815 00 816 .LC15: 817 0063 5243 5054 .string "RCPT TO:%s" 817 2054 4F3A 817 2573 00 818 .section .text.NutSmtpSendMailRequest,"ax",@progbits 819 .global NutSmtpSendMailRequest 820 .type NutSmtpSendMailRequest, @function 821 NutSmtpSendMailRequest: 822 0000 8F92 push r8 823 0002 9F92 push r9 824 0004 AF92 push r10 825 0006 BF92 push r11 826 0008 CF92 push r12 827 000a DF92 push r13 828 000c EF92 push r14 829 000e FF92 push r15 830 0010 0F93 push r16 831 0012 1F93 push r17 832 0014 CF93 push r28 833 0016 DF93 push r29 834 /* prologue: function */ 835 /* frame size = 0 */ 836 /* stack size = 12 */ GAS LISTING /tmp/ccJvOYjv.s page 16 837 .L__stack_usage = 12 838 0018 982E mov r9,r24 839 001a 892E mov r8,r25 840 001c 8B01 movw r16,r22 841 001e FB01 movw r30,r22 842 0020 8581 ldd r24,Z+5 843 0022 8F93 push r24 844 0024 8481 ldd r24,Z+4 845 0026 8F93 push r24 846 0028 80E0 ldi r24,lo8(.LC14) 847 002a 90E0 ldi r25,hi8(.LC14) 848 002c 9F93 push r25 849 002e 8F93 push r24 850 0030 8F92 push r8 851 0032 9F92 push r9 852 0034 0E94 0000 call NutSmtpSendCommand 853 0038 0F90 pop __tmp_reg__ 854 003a 0F90 pop __tmp_reg__ 855 003c 0F90 pop __tmp_reg__ 856 003e 0F90 pop __tmp_reg__ 857 0040 0F90 pop __tmp_reg__ 858 0042 0F90 pop __tmp_reg__ 859 0044 0097 sbiw r24,0 860 0046 01F4 brne .+2 861 0048 00C0 rjmp .L102 862 004a FC01 movw r30,r24 863 004c 8081 ld r24,Z 864 004e 8233 cpi r24,lo8(50) 865 0050 01F0 breq .+2 866 0052 00C0 rjmp .L102 867 0054 7801 movw r14,r16 868 0056 FCE0 ldi r31,12 869 0058 EF0E add r14,r31 870 005a F11C adc r15,__zero_reg__ 871 005c E801 movw r28,r16 872 005e 6C96 adiw r28,28 873 0060 005E subi r16,-32 874 0062 1F4F sbci r17,-1 875 0064 A12C mov r10,__zero_reg__ 876 0066 B12C mov r11,__zero_reg__ 877 0068 80E0 ldi r24,lo8(.LC15) 878 006a C82E mov r12,r24 879 006c 80E0 ldi r24,hi8(.LC15) 880 006e D82E mov r13,r24 881 .L100: 882 0070 F701 movw r30,r14 883 0072 8191 ld r24,Z+ 884 0074 9191 ld r25,Z+ 885 0076 7F01 movw r14,r30 886 0078 0097 sbiw r24,0 887 007a 01F0 breq .L98 888 007c 2881 ld r18,Y 889 007e 207C andi r18,lo8(-64) 890 0080 01F4 brne .L98 891 0082 9F93 push r25 892 0084 8F93 push r24 893 0086 DF92 push r13 GAS LISTING /tmp/ccJvOYjv.s page 17 894 0088 CF92 push r12 895 008a 8F92 push r8 896 008c 9F92 push r9 897 008e 0E94 0000 call NutSmtpSendCommand 898 0092 FC01 movw r30,r24 899 0094 0F90 pop __tmp_reg__ 900 0096 0F90 pop __tmp_reg__ 901 0098 0F90 pop __tmp_reg__ 902 009a 0F90 pop __tmp_reg__ 903 009c 0F90 pop __tmp_reg__ 904 009e 0F90 pop __tmp_reg__ 905 00a0 892B or r24,r25 906 00a2 01F0 breq .L98 907 00a4 8081 ld r24,Z 908 00a6 9881 ld r25,Y 909 00a8 8233 cpi r24,lo8(50) 910 00aa 01F4 brne .L99 911 00ac 9062 ori r25,lo8(32) 912 00ae 9883 st Y,r25 913 00b0 FFEF ldi r31,-1 914 00b2 AF1A sub r10,r31 915 00b4 BF0A sbc r11,r31 916 00b6 00C0 rjmp .L98 917 .L99: 918 00b8 9F7D andi r25,lo8(-33) 919 00ba 9883 st Y,r25 920 00bc 8081 ld r24,Z 921 00be 8533 cpi r24,lo8(53) 922 00c0 01F4 brne .L98 923 00c2 9068 ori r25,lo8(-128) 924 00c4 9883 st Y,r25 925 .L98: 926 00c6 2196 adiw r28,1 927 00c8 C017 cp r28,r16 928 00ca D107 cpc r29,r17 929 00cc 01F4 brne .L100 930 00ce 00C0 rjmp .L97 931 .L102: 932 00d0 A12C mov r10,__zero_reg__ 933 00d2 B12C mov r11,__zero_reg__ 934 .L97: 935 00d4 C501 movw r24,r10 936 /* epilogue start */ 937 00d6 DF91 pop r29 938 00d8 CF91 pop r28 939 00da 1F91 pop r17 940 00dc 0F91 pop r16 941 00de FF90 pop r15 942 00e0 EF90 pop r14 943 00e2 DF90 pop r13 944 00e4 CF90 pop r12 945 00e6 BF90 pop r11 946 00e8 AF90 pop r10 947 00ea 9F90 pop r9 948 00ec 8F90 pop r8 949 00ee 0895 ret 950 .size NutSmtpSendMailRequest, .-NutSmtpSendMailRequest GAS LISTING /tmp/ccJvOYjv.s page 18 951 .section .rodata.str1.1 952 .LC16: 953 006e 4461 7465 .string "Date: %s\r\n" 953 3A20 2573 953 0D0A 00 954 .LC17: 955 0079 4672 6F6D .string "From: %s\r\n" 955 3A20 2573 955 0D0A 00 956 .LC18: 957 0084 5375 626A .string "Subject: %s\r\n" 957 6563 743A 957 2025 730D 957 0A00 958 .section .text.NutSmtpSendMailHeader,"ax",@progbits 959 .global NutSmtpSendMailHeader 960 .type NutSmtpSendMailHeader, @function 961 NutSmtpSendMailHeader: 962 0000 0F93 push r16 963 0002 1F93 push r17 964 0004 CF93 push r28 965 0006 DF93 push r29 966 /* prologue: function */ 967 /* frame size = 0 */ 968 /* stack size = 4 */ 969 .L__stack_usage = 4 970 0008 EC01 movw r28,r24 971 000a 8B01 movw r16,r22 972 000c FB01 movw r30,r22 973 000e 8081 ld r24,Z 974 0010 9181 ldd r25,Z+1 975 0012 A281 ldd r26,Z+2 976 0014 B381 ldd r27,Z+3 977 0016 892B or r24,r25 978 0018 8A2B or r24,r26 979 001a 8B2B or r24,r27 980 001c 01F0 breq .L111 981 001e CB01 movw r24,r22 982 0020 0E94 0000 call gmtime 983 0024 0E94 0000 call Rfc1123TimeString 984 0028 9F93 push r25 985 002a 8F93 push r24 986 002c 80E0 ldi r24,lo8(.LC16) 987 002e 90E0 ldi r25,hi8(.LC16) 988 0030 9F93 push r25 989 0032 8F93 push r24 990 0034 8B81 ldd r24,Y+3 991 0036 8F93 push r24 992 0038 8A81 ldd r24,Y+2 993 003a 8F93 push r24 994 003c 0E94 0000 call fprintf 995 0040 0F90 pop __tmp_reg__ 996 0042 0F90 pop __tmp_reg__ 997 0044 0F90 pop __tmp_reg__ 998 0046 0F90 pop __tmp_reg__ 999 0048 0F90 pop __tmp_reg__ 1000 004a 0F90 pop __tmp_reg__ GAS LISTING /tmp/ccJvOYjv.s page 19 1001 .L111: 1002 004c F801 movw r30,r16 1003 004e 8781 ldd r24,Z+7 1004 0050 8F93 push r24 1005 0052 8681 ldd r24,Z+6 1006 0054 8F93 push r24 1007 0056 80E0 ldi r24,lo8(.LC17) 1008 0058 90E0 ldi r25,hi8(.LC17) 1009 005a 9F93 push r25 1010 005c 8F93 push r24 1011 005e 8B81 ldd r24,Y+3 1012 0060 8F93 push r24 1013 0062 8A81 ldd r24,Y+2 1014 0064 8F93 push r24 1015 0066 0E94 0000 call fprintf 1016 006a F801 movw r30,r16 1017 006c 8185 ldd r24,Z+9 1018 006e 8F93 push r24 1019 0070 8085 ldd r24,Z+8 1020 0072 8F93 push r24 1021 0074 80E0 ldi r24,lo8(.LC18) 1022 0076 90E0 ldi r25,hi8(.LC18) 1023 0078 9F93 push r25 1024 007a 8F93 push r24 1025 007c 8B81 ldd r24,Y+3 1026 007e 8F93 push r24 1027 0080 8A81 ldd r24,Y+2 1028 0082 8F93 push r24 1029 0084 0E94 0000 call fprintf 1030 0088 41E0 ldi r20,lo8(1) 1031 008a B801 movw r22,r16 1032 008c 8A81 ldd r24,Y+2 1033 008e 9B81 ldd r25,Y+3 1034 0090 0E94 0000 call SendMailHeaderRecipient 1035 0094 42E0 ldi r20,lo8(2) 1036 0096 B801 movw r22,r16 1037 0098 8A81 ldd r24,Y+2 1038 009a 9B81 ldd r25,Y+3 1039 009c 0E94 0000 call SendMailHeaderRecipient 1040 00a0 8DB7 in r24,__SP_L__ 1041 00a2 9EB7 in r25,__SP_H__ 1042 00a4 0C96 adiw r24,12 1043 00a6 0FB6 in __tmp_reg__,__SREG__ 1044 00a8 F894 cli 1045 00aa 9EBF out __SP_H__,r25 1046 00ac 0FBE out __SREG__,__tmp_reg__ 1047 00ae 8DBF out __SP_L__,r24 1048 00b0 80E0 ldi r24,0 1049 00b2 90E0 ldi r25,0 1050 /* epilogue start */ 1051 00b4 DF91 pop r29 1052 00b6 CF91 pop r28 1053 00b8 1F91 pop r17 1054 00ba 0F91 pop r16 1055 00bc 0895 ret 1056 .size NutSmtpSendMailHeader, .-NutSmtpSendMailHeader 1057 .section .text.NutSmtpSendEncodedLines,"ax",@progbits GAS LISTING /tmp/ccJvOYjv.s page 20 1058 .global NutSmtpSendEncodedLines 1059 .type NutSmtpSendEncodedLines, @function 1060 NutSmtpSendEncodedLines: 1061 0000 EF92 push r14 1062 0002 FF92 push r15 1063 0004 0F93 push r16 1064 0006 1F93 push r17 1065 0008 CF93 push r28 1066 000a DF93 push r29 1067 /* prologue: function */ 1068 /* frame size = 0 */ 1069 /* stack size = 6 */ 1070 .L__stack_usage = 6 1071 000c 8C01 movw r16,r24 1072 000e EB01 movw r28,r22 1073 0010 7C01 movw r14,r24 1074 0012 28E0 ldi r18,8 1075 0014 E20E add r14,r18 1076 0016 F11C adc r15,__zero_reg__ 1077 .L116: 1078 0018 8881 ld r24,Y 1079 001a 8823 tst r24 1080 001c 01F0 breq .L137 1081 001e AE01 movw r20,r28 1082 0020 F701 movw r30,r14 1083 0022 80E0 ldi r24,0 1084 0024 90E0 ldi r25,0 1085 .L117: 1086 0026 EA01 movw r28,r20 1087 0028 2881 ld r18,Y 1088 002a 4F5F subi r20,-1 1089 002c 5F4F sbci r21,-1 1090 002e 2223 tst r18 1091 0030 01F0 breq .L121 1092 0032 8F3F cpi r24,-1 1093 0034 9105 cpc r25,__zero_reg__ 1094 0036 01F0 breq .+2 1095 0038 04F4 brge .L127 1096 003a 2D30 cpi r18,lo8(13) 1097 003c 01F0 breq .L117 1098 003e 2A30 cpi r18,lo8(10) 1099 0040 01F4 brne .L119 1100 0042 EA01 movw r28,r20 1101 0044 00C0 rjmp .L127 1102 .L119: 1103 0046 2083 st Z,r18 1104 0048 0196 adiw r24,1 1105 004a 3196 adiw r30,1 1106 004c 00C0 rjmp .L117 1107 .L121: 1108 004e 892B or r24,r25 1109 0050 01F0 breq .L116 1110 .L127: 1111 0052 1082 st Z,__zero_reg__ 1112 0054 F801 movw r30,r16 1113 0056 8085 ldd r24,Z+8 1114 0058 8E32 cpi r24,lo8(46) GAS LISTING /tmp/ccJvOYjv.s page 21 1115 005a 01F4 brne .L124 1116 005c 6281 ldd r22,Z+2 1117 005e 7381 ldd r23,Z+3 1118 0060 8EE2 ldi r24,lo8(46) 1119 0062 90E0 ldi r25,0 1120 0064 0E94 0000 call fputc 1121 .L124: 1122 0068 F801 movw r30,r16 1123 006a 6281 ldd r22,Z+2 1124 006c 7381 ldd r23,Z+3 1125 006e C701 movw r24,r14 1126 0070 0E94 0000 call fputs 1127 0074 F801 movw r30,r16 1128 0076 6281 ldd r22,Z+2 1129 0078 7381 ldd r23,Z+3 1130 007a 80E0 ldi r24,lo8(.LC3) 1131 007c 90E0 ldi r25,hi8(.LC3) 1132 007e 0E94 0000 call fputs 1133 0082 8F3F cpi r24,-1 1134 0084 FFEF ldi r31,-1 1135 0086 9F07 cpc r25,r31 1136 0088 01F4 brne .L116 1137 008a 00C0 rjmp .L125 1138 .L137: 1139 008c 80E0 ldi r24,0 1140 008e 90E0 ldi r25,0 1141 .L125: 1142 /* epilogue start */ 1143 0090 DF91 pop r29 1144 0092 CF91 pop r28 1145 0094 1F91 pop r17 1146 0096 0F91 pop r16 1147 0098 FF90 pop r15 1148 009a EF90 pop r14 1149 009c 0895 ret 1150 .size NutSmtpSendEncodedLines, .-NutSmtpSendEncodedLines 1151 .section .rodata.str1.1 1152 .LC19: 1153 0092 4441 5441 .string "DATA" 1153 00 1154 .LC20: 1155 0097 2E0D 0A00 .string ".\r\n" 1156 .section .text.NutSmtpSendMail,"ax",@progbits 1157 .global NutSmtpSendMail 1158 .type NutSmtpSendMail, @function 1159 NutSmtpSendMail: 1160 0000 0F93 push r16 1161 0002 1F93 push r17 1162 0004 CF93 push r28 1163 0006 DF93 push r29 1164 /* prologue: function */ 1165 /* frame size = 0 */ 1166 /* stack size = 4 */ 1167 .L__stack_usage = 4 1168 0008 EC01 movw r28,r24 1169 000a 8B01 movw r16,r22 1170 000c 0E94 0000 call NutSmtpSendMailRequest GAS LISTING /tmp/ccJvOYjv.s page 22 1171 0010 1816 cp __zero_reg__,r24 1172 0012 1906 cpc __zero_reg__,r25 1173 0014 04F0 brlt .L139 1174 .L141: 1175 0016 80E0 ldi r24,0 1176 0018 90E0 ldi r25,0 1177 001a 00C0 rjmp .L140 1178 .L139: 1179 001c 80E0 ldi r24,lo8(.LC19) 1180 001e 90E0 ldi r25,hi8(.LC19) 1181 0020 9F93 push r25 1182 0022 8F93 push r24 1183 0024 DF93 push r29 1184 0026 CF93 push r28 1185 0028 0E94 0000 call NutSmtpSendCommand 1186 002c 0F90 pop __tmp_reg__ 1187 002e 0F90 pop __tmp_reg__ 1188 0030 0F90 pop __tmp_reg__ 1189 0032 0F90 pop __tmp_reg__ 1190 0034 0097 sbiw r24,0 1191 0036 01F0 breq .L141 1192 0038 FC01 movw r30,r24 1193 003a 2081 ld r18,Z 1194 003c 2333 cpi r18,lo8(51) 1195 003e 01F4 brne .L140 1196 0040 B801 movw r22,r16 1197 0042 CE01 movw r24,r28 1198 0044 0E94 0000 call NutSmtpSendMailHeader 1199 0048 6A81 ldd r22,Y+2 1200 004a 7B81 ldd r23,Y+3 1201 004c 80E0 ldi r24,lo8(.LC3) 1202 004e 90E0 ldi r25,hi8(.LC3) 1203 0050 0E94 0000 call fputs 1204 0054 F801 movw r30,r16 1205 0056 6285 ldd r22,Z+10 1206 0058 7385 ldd r23,Z+11 1207 005a 6115 cp r22,__zero_reg__ 1208 005c 7105 cpc r23,__zero_reg__ 1209 005e 01F0 breq .L142 1210 0060 CE01 movw r24,r28 1211 0062 0E94 0000 call NutSmtpSendEncodedLines 1212 .L142: 1213 0066 6A81 ldd r22,Y+2 1214 0068 7B81 ldd r23,Y+3 1215 006a 80E0 ldi r24,lo8(.LC20) 1216 006c 90E0 ldi r25,hi8(.LC20) 1217 006e 0E94 0000 call fputs 1218 0072 8A81 ldd r24,Y+2 1219 0074 9B81 ldd r25,Y+3 1220 0076 0E94 0000 call fflush 1221 007a CE01 movw r24,r28 1222 007c 0E94 0000 call NutSmtpReceiveResponse 1223 0080 0097 sbiw r24,0 1224 0082 01F0 breq .L141 1225 0084 FC01 movw r30,r24 1226 0086 2081 ld r18,Z 1227 0088 2233 cpi r18,lo8(50) GAS LISTING /tmp/ccJvOYjv.s page 23 1228 008a 01F4 brne .L140 1229 008c D801 movw r26,r16 1230 008e 1C96 adiw r26,12 1231 0090 F801 movw r30,r16 1232 0092 7C96 adiw r30,28 1233 0094 005E subi r16,-32 1234 0096 1F4F sbci r17,-1 1235 .L144: 1236 0098 2D91 ld r18,X+ 1237 009a 3D91 ld r19,X+ 1238 009c 232B or r18,r19 1239 009e 01F0 breq .L143 1240 00a0 2081 ld r18,Z 1241 00a2 25FF sbrs r18,5 1242 00a4 00C0 rjmp .L143 1243 00a6 2064 ori r18,lo8(64) 1244 00a8 2083 st Z,r18 1245 .L143: 1246 00aa 3196 adiw r30,1 1247 00ac E017 cp r30,r16 1248 00ae F107 cpc r31,r17 1249 00b0 01F4 brne .L144 1250 .L140: 1251 /* epilogue start */ 1252 00b2 DF91 pop r29 1253 00b4 CF91 pop r28 1254 00b6 1F91 pop r17 1255 00b8 0F91 pop r16 1256 00ba 0895 ret 1257 .size NutSmtpSendMail, .-NutSmtpSendMail 1258 .section .rodata 1259 .type base64set.2931, @object 1260 .size base64set.2931, 65 1261 base64set.2931: 1262 0000 4142 4344 .string "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 1262 4546 4748 1262 494A 4B4C 1262 4D4E 4F50 1262 5152 5354 1263 .ident "GCC: (GNU) 5.3.0" 1264 .global __do_copy_data GAS LISTING /tmp/ccJvOYjv.s page 24 DEFINED SYMBOLS *ABS*:0000000000000000 smtpc.c /tmp/ccJvOYjv.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccJvOYjv.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccJvOYjv.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccJvOYjv.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccJvOYjv.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccJvOYjv.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccJvOYjv.s:19 .text.SendMailHeaderRecipient:0000000000000000 SendMailHeaderRecipient /tmp/ccJvOYjv.s:131 .text.NutSmtpReceiveResponse:0000000000000000 NutSmtpReceiveResponse /tmp/ccJvOYjv.s:178 .text.NutSmtpSendCommand:0000000000000000 NutSmtpSendCommand /tmp/ccJvOYjv.s:226 .text.SayHello:0000000000000000 SayHello /tmp/ccJvOYjv.s:302 .text.NutSmtpDisconnect:0000000000000000 NutSmtpDisconnect /tmp/ccJvOYjv.s:349 .text.NutSmtpConnect:0000000000000000 NutSmtpConnect /tmp/ccJvOYjv.s:473 .text.NutSmtpLogin:0000000000000000 NutSmtpLogin /tmp/ccJvOYjv.s:1261 .rodata:0000000000000000 base64set.2931 /tmp/ccJvOYjv.s:821 .text.NutSmtpSendMailRequest:0000000000000000 NutSmtpSendMailRequest /tmp/ccJvOYjv.s:961 .text.NutSmtpSendMailHeader:0000000000000000 NutSmtpSendMailHeader /tmp/ccJvOYjv.s:1060 .text.NutSmtpSendEncodedLines:0000000000000000 NutSmtpSendEncodedLines /tmp/ccJvOYjv.s:1159 .text.NutSmtpSendMail:0000000000000000 NutSmtpSendMail UNDEFINED SYMBOLS fputs fgets strchr vfprintf fflush confnet inet_ntoa fclose NutTcpCloseSocket free calloc NutTcpCreateSocket NutTcpConnect NutTcpSetSockOpt _fdopen strstr strncmp malloc memcpy gmtime Rfc1123TimeString fprintf fputc __do_copy_data