GAS LISTING /tmp/cc1dmPbT.s page 1 1 .file "httpd.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 .text.NextWord,"ax",@progbits 9 .type NextWord, @function 10 NextWord: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 FC01 movw r30,r24 16 .L4: 17 0002 CF01 movw r24,r30 18 0004 2191 ld r18,Z+ 19 0006 2223 tst r18 20 0008 01F0 breq .L11 21 000a 2032 cpi r18,lo8(32) 22 000c 01F0 breq .L3 23 000e 2930 cpi r18,lo8(9) 24 0010 01F4 brne .L4 25 .L3: 26 0012 FC01 movw r30,r24 27 0014 1192 st Z+,__zero_reg__ 28 .L6: 29 0016 CF01 movw r24,r30 30 0018 2191 ld r18,Z+ 31 001a 2032 cpi r18,lo8(32) 32 001c 01F0 breq .L6 33 001e 2930 cpi r18,lo8(9) 34 0020 01F0 breq .L6 35 0022 0895 ret 36 .L11: 37 0024 0895 ret 38 .size NextWord, .-NextWord 39 .section .text.GetMimeEntry,"ax",@progbits 40 .type GetMimeEntry, @function 41 GetMimeEntry: 42 0000 EF92 push r14 43 0002 FF92 push r15 44 0004 0F93 push r16 45 0006 1F93 push r17 46 0008 CF93 push r28 47 000a DF93 push r29 48 /* prologue: function */ 49 /* frame size = 0 */ 50 /* stack size = 6 */ 51 .L__stack_usage = 6 52 000c 7C01 movw r14,r24 53 000e 0097 sbiw r24,0 54 0010 01F0 breq .L27 55 0012 FC01 movw r30,r24 56 0: 57 0014 0190 ld __tmp_reg__,Z+ GAS LISTING /tmp/cc1dmPbT.s page 2 58 0016 0020 tst __tmp_reg__ 59 0018 01F4 brne 0b 60 001a 3197 sbiw r30,1 61 001c 8F01 movw r16,r30 62 001e 081B sub r16,r24 63 0020 190B sbc r17,r25 64 0022 01F0 breq .L27 65 0024 C0E0 ldi r28,lo8(mimeTypes) 66 0026 D0E0 ldi r29,hi8(mimeTypes) 67 .L24: 68 0028 6881 ld r22,Y 69 002a 7981 ldd r23,Y+1 70 002c 6115 cp r22,__zero_reg__ 71 002e 7105 cpc r23,__zero_reg__ 72 0030 01F0 breq .L29 73 0032 FB01 movw r30,r22 74 0: 75 0034 0190 ld __tmp_reg__,Z+ 76 0036 0020 tst __tmp_reg__ 77 0038 01F4 brne 0b 78 003a 3197 sbiw r30,1 79 003c E61B sub r30,r22 80 003e F70B sbc r31,r23 81 0040 C801 movw r24,r16 82 0042 8E1B sub r24,r30 83 0044 9F0B sbc r25,r31 84 0046 8E0D add r24,r14 85 0048 9F1D adc r25,r15 86 004a 0E94 0000 call strcasecmp 87 004e 892B or r24,r25 88 0050 01F0 breq .L28 89 0052 2696 adiw r28,6 90 0054 00C0 rjmp .L24 91 .L29: 92 0056 80E0 ldi r24,lo8(mimeTypes) 93 0058 90E0 ldi r25,hi8(mimeTypes) 94 005a 00C0 rjmp .L23 95 .L27: 96 005c 80E0 ldi r24,lo8(mimeTypes+6) 97 005e 90E0 ldi r25,hi8(mimeTypes+6) 98 0060 00C0 rjmp .L23 99 .L28: 100 0062 CE01 movw r24,r28 101 .L23: 102 /* epilogue start */ 103 0064 DF91 pop r29 104 0066 CF91 pop r28 105 0068 1F91 pop r17 106 006a 0F91 pop r16 107 006c FF90 pop r15 108 006e EF90 pop r14 109 0070 0895 ret 110 .size GetMimeEntry, .-GetMimeEntry 111 .section .text.NutHttpSendHeaderBottomEx.isra.0.constprop.2,"ax",@progbits 112 .type NutHttpSendHeaderBottomEx.isra.0.constprop.2, @function 113 NutHttpSendHeaderBottomEx.isra.0.constprop.2: 114 0000 0F93 push r16 GAS LISTING /tmp/cc1dmPbT.s page 3 115 0002 1F93 push r17 116 0004 CF93 push r28 117 0006 DF93 push r29 118 0008 00D0 rcall . 119 000a 1F92 push __zero_reg__ 120 000c CDB7 in r28,__SP_L__ 121 000e DEB7 in r29,__SP_H__ 122 /* prologue: function */ 123 /* frame size = 4 */ 124 /* stack size = 8 */ 125 .L__stack_usage = 8 126 0010 182F mov r17,r24 127 0012 092F mov r16,r25 128 0014 6115 cp r22,__zero_reg__ 129 0016 7105 cpc r23,__zero_reg__ 130 0018 01F0 breq .L31 131 001a 7F93 push r23 132 001c 6F93 push r22 133 001e 80E0 ldi r24,lo8(typ_fmt_P.2727) 134 0020 90E0 ldi r25,hi8(typ_fmt_P.2727) 135 0022 9F93 push r25 136 0024 8F93 push r24 137 0026 0F93 push r16 138 0028 1F93 push r17 139 002a 2983 std Y+1,r18 140 002c 3A83 std Y+2,r19 141 002e 4B83 std Y+3,r20 142 0030 5C83 std Y+4,r21 143 0032 0E94 0000 call fprintf_P 144 0036 0F90 pop __tmp_reg__ 145 0038 0F90 pop __tmp_reg__ 146 003a 0F90 pop __tmp_reg__ 147 003c 0F90 pop __tmp_reg__ 148 003e 0F90 pop __tmp_reg__ 149 0040 0F90 pop __tmp_reg__ 150 0042 5C81 ldd r21,Y+4 151 0044 4B81 ldd r20,Y+3 152 0046 3A81 ldd r19,Y+2 153 0048 2981 ldd r18,Y+1 154 .L31: 155 004a 57FD sbrc r21,7 156 004c 00C0 rjmp .L32 157 004e 5F93 push r21 158 0050 4F93 push r20 159 0052 3F93 push r19 160 0054 2F93 push r18 161 0056 80E0 ldi r24,lo8(len_fmt_P.2728) 162 0058 90E0 ldi r25,hi8(len_fmt_P.2728) 163 005a 9F93 push r25 164 005c 8F93 push r24 165 005e 0F93 push r16 166 0060 1F93 push r17 167 0062 0E94 0000 call fprintf_P 168 0066 0FB6 in __tmp_reg__,__SREG__ 169 0068 F894 cli 170 006a DEBF out __SP_H__,r29 171 006c 0FBE out __SREG__,__tmp_reg__ GAS LISTING /tmp/cc1dmPbT.s page 4 172 006e CDBF out __SP_L__,r28 173 .L32: 174 0070 612F mov r22,r17 175 0072 702F mov r23,r16 176 0074 80E0 ldi r24,lo8(con_str_P.2730) 177 0076 90E0 ldi r25,hi8(con_str_P.2730) 178 0078 0E94 0000 call fputs_P 179 007c 612F mov r22,r17 180 007e 702F mov r23,r16 181 0080 80E0 ldi r24,lo8(ccl_str_P.2731) 182 0082 90E0 ldi r25,hi8(ccl_str_P.2731) 183 /* epilogue start */ 184 0084 0F90 pop __tmp_reg__ 185 0086 0F90 pop __tmp_reg__ 186 0088 0F90 pop __tmp_reg__ 187 008a 0F90 pop __tmp_reg__ 188 008c DF91 pop r29 189 008e CF91 pop r28 190 0090 1F91 pop r17 191 0092 0F91 pop r16 192 0094 0C94 0000 jmp fputs_P 193 .size NutHttpSendHeaderBottomEx.isra.0.constprop.2, .-NutHttpSendHeaderBottomEx.isra.0.constprop.2 194 .section .rodata.str1.1,"aMS",@progbits,1 195 .LC0: 196 0000 4461 7465 .string "Date: %s GMT\r\n" 196 3A20 2573 196 2047 4D54 196 0D0A 00 197 .section .text.NutHttpSendHeaderTop,"ax",@progbits 198 .global NutHttpSendHeaderTop 199 .type NutHttpSendHeaderTop, @function 200 NutHttpSendHeaderTop: 201 0000 0F93 push r16 202 0002 1F93 push r17 203 0004 CF93 push r28 204 0006 DF93 push r29 205 0008 CDB7 in r28,__SP_L__ 206 000a DEB7 in r29,__SP_H__ 207 000c 2897 sbiw r28,8 208 000e 0FB6 in __tmp_reg__,__SREG__ 209 0010 F894 cli 210 0012 DEBF out __SP_H__,r29 211 0014 0FBE out __SREG__,__tmp_reg__ 212 0016 CDBF out __SP_L__,r28 213 /* prologue: function */ 214 /* frame size = 8 */ 215 /* stack size = 12 */ 216 .L__stack_usage = 12 217 0018 182F mov r17,r24 218 001a 092F mov r16,r25 219 001c 2F83 std Y+7,r18 220 001e 3887 std Y+8,r19 221 0020 4D83 std Y+5,r20 222 0022 5E83 std Y+6,r21 223 0024 0E94 0000 call NutVersionString 224 0028 9F93 push r25 225 002a 8F93 push r24 GAS LISTING /tmp/cc1dmPbT.s page 5 226 002c 3885 ldd r19,Y+8 227 002e 3F93 push r19 228 0030 2F81 ldd r18,Y+7 229 0032 2F93 push r18 230 0034 5E81 ldd r21,Y+6 231 0036 5F93 push r21 232 0038 4D81 ldd r20,Y+5 233 003a 4F93 push r20 234 003c 1F92 push __zero_reg__ 235 003e 81E0 ldi r24,lo8(1) 236 0040 8F93 push r24 237 0042 1F92 push __zero_reg__ 238 0044 8F93 push r24 239 0046 80E0 ldi r24,lo8(fmt_P.2713) 240 0048 90E0 ldi r25,hi8(fmt_P.2713) 241 004a 9F93 push r25 242 004c 8F93 push r24 243 004e 0F93 push r16 244 0050 1F93 push r17 245 0052 0E94 0000 call fprintf_P 246 0056 8091 0000 lds r24,http_optflags 247 005a 0FB6 in __tmp_reg__,__SREG__ 248 005c F894 cli 249 005e DEBF out __SP_H__,r29 250 0060 0FBE out __SREG__,__tmp_reg__ 251 0062 CDBF out __SP_L__,r28 252 0064 80FF sbrs r24,0 253 0066 00C0 rjmp .L36 254 0068 80E0 ldi r24,0 255 006a 90E0 ldi r25,0 256 006c 0E94 0000 call time 257 0070 6983 std Y+1,r22 258 0072 7A83 std Y+2,r23 259 0074 8B83 std Y+3,r24 260 0076 9C83 std Y+4,r25 261 0078 CE01 movw r24,r28 262 007a 0196 adiw r24,1 263 007c 0E94 0000 call gmtime 264 0080 0E94 0000 call Rfc1123TimeString 265 0084 9F93 push r25 266 0086 8F93 push r24 267 0088 80E0 ldi r24,lo8(.LC0) 268 008a 90E0 ldi r25,hi8(.LC0) 269 008c 9F93 push r25 270 008e 8F93 push r24 271 0090 0F93 push r16 272 0092 1F93 push r17 273 0094 0E94 0000 call fprintf 274 0098 0F90 pop __tmp_reg__ 275 009a 0F90 pop __tmp_reg__ 276 009c 0F90 pop __tmp_reg__ 277 009e 0F90 pop __tmp_reg__ 278 00a0 0F90 pop __tmp_reg__ 279 00a2 0F90 pop __tmp_reg__ 280 .L36: 281 /* epilogue start */ 282 00a4 2896 adiw r28,8 GAS LISTING /tmp/cc1dmPbT.s page 6 283 00a6 0FB6 in __tmp_reg__,__SREG__ 284 00a8 F894 cli 285 00aa DEBF out __SP_H__,r29 286 00ac 0FBE out __SREG__,__tmp_reg__ 287 00ae CDBF out __SP_L__,r28 288 00b0 DF91 pop r29 289 00b2 CF91 pop r28 290 00b4 1F91 pop r17 291 00b6 0F91 pop r16 292 00b8 0895 ret 293 .size NutHttpSendHeaderTop, .-NutHttpSendHeaderTop 294 .section .text.NutHttpSendHeaderBot,"ax",@progbits 295 .global NutHttpSendHeaderBot 296 .type NutHttpSendHeaderBot, @function 297 NutHttpSendHeaderBot: 298 /* prologue: function */ 299 /* frame size = 0 */ 300 /* stack size = 0 */ 301 .L__stack_usage = 0 302 0000 0C94 0000 jmp NutHttpSendHeaderBottomEx.isra.0.constprop.2 303 .size NutHttpSendHeaderBot, .-NutHttpSendHeaderBot 304 .section .text.NutHttpSendHeaderBottom,"ax",@progbits 305 .global NutHttpSendHeaderBottom 306 .type NutHttpSendHeaderBottom, @function 307 NutHttpSendHeaderBottom: 308 0000 0F93 push r16 309 0002 1F93 push r17 310 /* prologue: function */ 311 /* frame size = 0 */ 312 /* stack size = 2 */ 313 .L__stack_usage = 2 314 0004 BA01 movw r22,r20 315 0006 A901 movw r20,r18 316 0008 9801 movw r18,r16 317 /* epilogue start */ 318 000a 1F91 pop r17 319 000c 0F91 pop r16 320 000e 0C94 0000 jmp NutHttpSendHeaderBottomEx.isra.0.constprop.2 321 .size NutHttpSendHeaderBottom, .-NutHttpSendHeaderBottom 322 .section .rodata.str1.1 323 .LC1: 324 000f 4E6F 7420 .string "Not Modified" 324 4D6F 6469 324 6669 6564 324 00 325 .LC2: 326 001c 4261 6420 .string "Bad Request" 326 5265 7175 326 6573 7400 327 .LC3: 328 0028 556E 6175 .string "Unauthorized" 328 7468 6F72 328 697A 6564 328 00 329 .LC4: 330 0035 4E6F 7420 .string "Not Found" 330 466F 756E GAS LISTING /tmp/cc1dmPbT.s page 7 330 6400 331 .LC5: 332 003f 496E 7465 .string "Internal Error" 332 726E 616C 332 2045 7272 332 6F72 00 333 .LC6: 334 004e 4E6F 7420 .string "Not Implemented" 334 496D 706C 334 656D 656E 334 7465 6400 335 .LC7: 336 005e 4572 726F .string "Error" 336 7200 337 .LC8: 338 0064 2E00 .string "." 339 .LC9: 340 0066 7465 7874 .string "text/html" 340 2F68 746D 340 6C00 341 .section .text.NutHttpSendError,"ax",@progbits 342 .global NutHttpSendError 343 .type NutHttpSendError, @function 344 NutHttpSendError: 345 0000 AF92 push r10 346 0002 BF92 push r11 347 0004 CF92 push r12 348 0006 DF92 push r13 349 0008 EF92 push r14 350 000a FF92 push r15 351 000c 0F93 push r16 352 000e 1F93 push r17 353 0010 CF93 push r28 354 0012 DF93 push r29 355 /* prologue: function */ 356 /* frame size = 0 */ 357 /* stack size = 10 */ 358 .L__stack_usage = 10 359 0014 F82E mov r15,r24 360 0016 E92E mov r14,r25 361 0018 6B01 movw r12,r22 362 001a EA01 movw r28,r20 363 001c 4139 cpi r20,-111 364 001e 81E0 ldi r24,1 365 0020 5807 cpc r21,r24 366 0022 01F0 breq .L45 367 0024 04F4 brge .L46 368 0026 4033 cpi r20,48 369 0028 E1E0 ldi r30,1 370 002a 5E07 cpc r21,r30 371 002c 01F0 breq .L56 372 002e 4039 cpi r20,-112 373 0030 5140 sbci r21,1 374 0032 01F4 brne .L44 375 0034 00E0 ldi r16,lo8(.LC2) 376 0036 10E0 ldi r17,hi8(.LC2) 377 0038 00C0 rjmp .L47 GAS LISTING /tmp/cc1dmPbT.s page 8 378 .L46: 379 003a 443F cpi r20,-12 380 003c 81E0 ldi r24,1 381 003e 5807 cpc r21,r24 382 0040 01F0 breq .L49 383 0042 453F cpi r20,-11 384 0044 91E0 ldi r25,1 385 0046 5907 cpc r21,r25 386 0048 01F0 breq .L50 387 004a 4439 cpi r20,-108 388 004c 5140 sbci r21,1 389 004e 01F4 brne .L44 390 0050 00E0 ldi r16,lo8(.LC4) 391 0052 10E0 ldi r17,hi8(.LC4) 392 0054 00C0 rjmp .L47 393 .L45: 394 0056 00E0 ldi r16,lo8(.LC3) 395 0058 10E0 ldi r17,hi8(.LC3) 396 005a 00C0 rjmp .L47 397 .L49: 398 005c 00E0 ldi r16,lo8(.LC5) 399 005e 10E0 ldi r17,hi8(.LC5) 400 0060 00C0 rjmp .L47 401 .L50: 402 0062 00E0 ldi r16,lo8(.LC6) 403 0064 10E0 ldi r17,hi8(.LC6) 404 0066 00C0 rjmp .L47 405 .L44: 406 0068 00E0 ldi r16,lo8(.LC7) 407 006a 10E0 ldi r17,hi8(.LC7) 408 006c 00C0 rjmp .L47 409 .L56: 410 006e 00E0 ldi r16,lo8(.LC1) 411 0070 10E0 ldi r17,hi8(.LC1) 412 .L47: 413 0072 9801 movw r18,r16 414 0074 AE01 movw r20,r28 415 0076 B601 movw r22,r12 416 0078 8F2D mov r24,r15 417 007a 9E2D mov r25,r14 418 007c 0E94 0000 call NutHttpSendHeaderTop 419 0080 C139 cpi r28,-111 420 0082 F1E0 ldi r31,1 421 0084 DF07 cpc r29,r31 422 0086 01F4 brne .L53 423 0088 F601 movw r30,r12 424 008a A084 ldd r10,Z+8 425 008c B184 ldd r11,Z+9 426 008e 6FE2 ldi r22,lo8(47) 427 0090 70E0 ldi r23,0 428 0092 C501 movw r24,r10 429 0094 0E94 0000 call strrchr 430 0098 6C01 movw r12,r24 431 009a 0097 sbiw r24,0 432 009c 01F0 breq .L57 433 009e FC01 movw r30,r24 434 00a0 1082 st Z,__zero_reg__ GAS LISTING /tmp/cc1dmPbT.s page 9 435 00a2 00C0 rjmp .L54 436 .L57: 437 00a4 80E0 ldi r24,lo8(.LC8) 438 00a6 A82E mov r10,r24 439 00a8 80E0 ldi r24,hi8(.LC8) 440 00aa B82E mov r11,r24 441 .L54: 442 00ac BF92 push r11 443 00ae AF92 push r10 444 00b0 80E0 ldi r24,lo8(auth_fmt_P.2744) 445 00b2 90E0 ldi r25,hi8(auth_fmt_P.2744) 446 00b4 9F93 push r25 447 00b6 8F93 push r24 448 00b8 EF92 push r14 449 00ba FF92 push r15 450 00bc 0E94 0000 call fprintf_P 451 00c0 0F90 pop __tmp_reg__ 452 00c2 0F90 pop __tmp_reg__ 453 00c4 0F90 pop __tmp_reg__ 454 00c6 0F90 pop __tmp_reg__ 455 00c8 0F90 pop __tmp_reg__ 456 00ca 0F90 pop __tmp_reg__ 457 00cc C114 cp r12,__zero_reg__ 458 00ce D104 cpc r13,__zero_reg__ 459 00d0 01F0 breq .L53 460 00d2 8FE2 ldi r24,lo8(47) 461 00d4 F601 movw r30,r12 462 00d6 8083 st Z,r24 463 .L53: 464 00d8 2FEF ldi r18,lo8(-1) 465 00da 3FEF ldi r19,lo8(-1) 466 00dc A901 movw r20,r18 467 00de 60E0 ldi r22,lo8(.LC9) 468 00e0 70E0 ldi r23,hi8(.LC9) 469 00e2 8F2D mov r24,r15 470 00e4 9E2D mov r25,r14 471 00e6 0E94 0000 call NutHttpSendHeaderBottomEx.isra.0.constprop.2 472 00ea 1F93 push r17 473 00ec 0F93 push r16 474 00ee DF93 push r29 475 00f0 CF93 push r28 476 00f2 1F93 push r17 477 00f4 0F93 push r16 478 00f6 DF93 push r29 479 00f8 CF93 push r28 480 00fa 80E0 ldi r24,lo8(err_fmt_P.2743) 481 00fc 90E0 ldi r25,hi8(err_fmt_P.2743) 482 00fe 9F93 push r25 483 0100 8F93 push r24 484 0102 EF92 push r14 485 0104 FF92 push r15 486 0106 0E94 0000 call fprintf_P 487 010a EDB7 in r30,__SP_L__ 488 010c FEB7 in r31,__SP_H__ 489 010e 3C96 adiw r30,12 490 0110 0FB6 in __tmp_reg__,__SREG__ 491 0112 F894 cli GAS LISTING /tmp/cc1dmPbT.s page 10 492 0114 FEBF out __SP_H__,r31 493 0116 0FBE out __SREG__,__tmp_reg__ 494 0118 EDBF out __SP_L__,r30 495 /* epilogue start */ 496 011a DF91 pop r29 497 011c CF91 pop r28 498 011e 1F91 pop r17 499 0120 0F91 pop r16 500 0122 FF90 pop r15 501 0124 EF90 pop r14 502 0126 DF90 pop r13 503 0128 CF90 pop r12 504 012a BF90 pop r11 505 012c AF90 pop r10 506 012e 0895 ret 507 .size NutHttpSendError, .-NutHttpSendError 508 .section .text.NutGetMimeType,"ax",@progbits 509 .global NutGetMimeType 510 .type NutGetMimeType, @function 511 NutGetMimeType: 512 /* prologue: function */ 513 /* frame size = 0 */ 514 /* stack size = 0 */ 515 .L__stack_usage = 0 516 0000 0E94 0000 call GetMimeEntry 517 0004 FC01 movw r30,r24 518 0006 8281 ldd r24,Z+2 519 0008 9381 ldd r25,Z+3 520 000a 0895 ret 521 .size NutGetMimeType, .-NutGetMimeType 522 .section .text.NutGetMimeHandler,"ax",@progbits 523 .global NutGetMimeHandler 524 .type NutGetMimeHandler, @function 525 NutGetMimeHandler: 526 /* prologue: function */ 527 /* frame size = 0 */ 528 /* stack size = 0 */ 529 .L__stack_usage = 0 530 0000 0E94 0000 call GetMimeEntry 531 0004 FC01 movw r30,r24 532 0006 8481 ldd r24,Z+4 533 0008 9581 ldd r25,Z+5 534 000a 0895 ret 535 .size NutGetMimeHandler, .-NutGetMimeHandler 536 .section .text.NutHttpURLDecode,"ax",@progbits 537 .global NutHttpURLDecode 538 .type NutHttpURLDecode, @function 539 NutHttpURLDecode: 540 0000 DF92 push r13 541 0002 EF92 push r14 542 0004 FF92 push r15 543 0006 0F93 push r16 544 0008 1F93 push r17 545 000a CF93 push r28 546 000c DF93 push r29 547 000e 00D0 rcall . 548 0010 CDB7 in r28,__SP_L__ GAS LISTING /tmp/cc1dmPbT.s page 11 549 0012 DEB7 in r29,__SP_H__ 550 /* prologue: function */ 551 /* frame size = 3 */ 552 /* stack size = 10 */ 553 .L__stack_usage = 10 554 0014 8C01 movw r16,r24 555 0016 1B82 std Y+3,__zero_reg__ 556 0018 7C01 movw r14,r24 557 001a 80E2 ldi r24,lo8(32) 558 001c D82E mov r13,r24 559 .L64: 560 001e F801 movw r30,r16 561 0020 8081 ld r24,Z 562 0022 8823 tst r24 563 0024 01F0 breq .L69 564 0026 8B32 cpi r24,lo8(43) 565 0028 01F4 brne .L65 566 002a F701 movw r30,r14 567 002c D082 st Z,r13 568 002e 00C0 rjmp .L66 569 .L65: 570 0030 8532 cpi r24,lo8(37) 571 0032 01F4 brne .L67 572 0034 F801 movw r30,r16 573 0036 8181 ldd r24,Z+1 574 0038 8983 std Y+1,r24 575 003a 8281 ldd r24,Z+2 576 003c 8A83 std Y+2,r24 577 003e 40E1 ldi r20,lo8(16) 578 0040 50E0 ldi r21,0 579 0042 60E0 ldi r22,0 580 0044 70E0 ldi r23,0 581 0046 CE01 movw r24,r28 582 0048 0196 adiw r24,1 583 004a 0E94 0000 call strtol 584 004e F701 movw r30,r14 585 0050 6083 st Z,r22 586 0052 0E5F subi r16,-2 587 0054 1F4F sbci r17,-1 588 0056 00C0 rjmp .L66 589 .L67: 590 0058 F701 movw r30,r14 591 005a 8083 st Z,r24 592 .L66: 593 005c 0F5F subi r16,-1 594 005e 1F4F sbci r17,-1 595 0060 FFEF ldi r31,-1 596 0062 EF1A sub r14,r31 597 0064 FF0A sbc r15,r31 598 0066 00C0 rjmp .L64 599 .L69: 600 0068 F701 movw r30,r14 601 006a 1082 st Z,__zero_reg__ 602 /* epilogue start */ 603 006c 0F90 pop __tmp_reg__ 604 006e 0F90 pop __tmp_reg__ 605 0070 0F90 pop __tmp_reg__ GAS LISTING /tmp/cc1dmPbT.s page 12 606 0072 DF91 pop r29 607 0074 CF91 pop r28 608 0076 1F91 pop r17 609 0078 0F91 pop r16 610 007a FF90 pop r15 611 007c EF90 pop r14 612 007e DF90 pop r13 613 0080 0895 ret 614 .size NutHttpURLDecode, .-NutHttpURLDecode 615 .section .text.NutHttpProcessQueryString,"ax",@progbits 616 .global NutHttpProcessQueryString 617 .type NutHttpProcessQueryString, @function 618 NutHttpProcessQueryString: 619 0000 EF92 push r14 620 0002 FF92 push r15 621 0004 0F93 push r16 622 0006 1F93 push r17 623 0008 CF93 push r28 624 000a DF93 push r29 625 /* prologue: function */ 626 /* frame size = 0 */ 627 /* stack size = 6 */ 628 .L__stack_usage = 6 629 000c EC01 movw r28,r24 630 000e EA84 ldd r14,Y+10 631 0010 FB84 ldd r15,Y+11 632 0012 E114 cp r14,__zero_reg__ 633 0014 F104 cpc r15,__zero_reg__ 634 0016 01F4 brne .+2 635 0018 00C0 rjmp .L70 636 001a 81E0 ldi r24,lo8(1) 637 001c 90E0 ldi r25,0 638 001e 9F8B std Y+23,r25 639 0020 8E8B std Y+22,r24 640 0022 8701 movw r16,r14 641 0024 F701 movw r30,r14 642 .L73: 643 0026 8191 ld r24,Z+ 644 0028 8823 tst r24 645 002a 01F0 breq .L87 646 002c 8632 cpi r24,lo8(38) 647 002e 01F4 brne .L73 648 0030 8E89 ldd r24,Y+22 649 0032 9F89 ldd r25,Y+23 650 0034 0196 adiw r24,1 651 0036 9F8B std Y+23,r25 652 0038 8E8B std Y+22,r24 653 003a 00C0 rjmp .L73 654 .L87: 655 003c 8E89 ldd r24,Y+22 656 003e 9F89 ldd r25,Y+23 657 0040 880F lsl r24 658 0042 991F rol r25 659 0044 880F lsl r24 660 0046 991F rol r25 661 0048 0E94 0000 call malloc 662 004c 9D8B std Y+21,r25 GAS LISTING /tmp/cc1dmPbT.s page 13 663 004e 8C8B std Y+20,r24 664 0050 0097 sbiw r24,0 665 0052 01F4 brne .L76 666 0054 1F8A std Y+23,__zero_reg__ 667 0056 1E8A std Y+22,__zero_reg__ 668 0058 00C0 rjmp .L70 669 .L76: 670 005a FC01 movw r30,r24 671 005c F182 std Z+1,r15 672 005e E082 st Z,r14 673 0060 1382 std Z+3,__zero_reg__ 674 0062 1282 std Z+2,__zero_reg__ 675 0064 22E0 ldi r18,lo8(2) 676 0066 30E0 ldi r19,0 677 .L77: 678 0068 F801 movw r30,r16 679 006a 8191 ld r24,Z+ 680 006c 8F01 movw r16,r30 681 006e 8823 tst r24 682 0070 01F0 breq .L88 683 0072 8632 cpi r24,lo8(38) 684 0074 01F4 brne .L77 685 0076 C901 movw r24,r18 686 0078 880F lsl r24 687 007a 991F rol r25 688 007c EC89 ldd r30,Y+20 689 007e FD89 ldd r31,Y+21 690 0080 E80F add r30,r24 691 0082 F91F adc r31,r25 692 0084 1183 std Z+1,r17 693 0086 0083 st Z,r16 694 0088 4C89 ldd r20,Y+20 695 008a 5D89 ldd r21,Y+21 696 008c FA01 movw r30,r20 697 008e E80F add r30,r24 698 0090 F91F adc r31,r25 699 0092 1382 std Z+3,__zero_reg__ 700 0094 1282 std Z+2,__zero_reg__ 701 0096 F801 movw r30,r16 702 0098 3197 sbiw r30,1 703 009a 1082 st Z,__zero_reg__ 704 009c 2E5F subi r18,-2 705 009e 3F4F sbci r19,-1 706 00a0 00C0 rjmp .L77 707 .L88: 708 00a2 00E0 ldi r16,0 709 00a4 10E0 ldi r17,0 710 00a6 E12C mov r14,__zero_reg__ 711 00a8 F12C mov r15,__zero_reg__ 712 .L80: 713 00aa 8E89 ldd r24,Y+22 714 00ac 9F89 ldd r25,Y+23 715 00ae E816 cp r14,r24 716 00b0 F906 cpc r15,r25 717 00b2 04F4 brge .L70 718 00b4 8C89 ldd r24,Y+20 719 00b6 9D89 ldd r25,Y+21 GAS LISTING /tmp/cc1dmPbT.s page 14 720 00b8 FC01 movw r30,r24 721 00ba E00F add r30,r16 722 00bc F11F adc r31,r17 723 00be 0190 ld __tmp_reg__,Z+ 724 00c0 F081 ld r31,Z 725 00c2 E02D mov r30,__tmp_reg__ 726 .L81: 727 00c4 DF01 movw r26,r30 728 00c6 2191 ld r18,Z+ 729 00c8 2223 tst r18 730 00ca 01F0 breq .L82 731 00cc 2D33 cpi r18,lo8(61) 732 00ce 01F4 brne .L81 733 00d0 9801 movw r18,r16 734 00d2 2E5F subi r18,-2 735 00d4 3F4F sbci r19,-1 736 00d6 FC01 movw r30,r24 737 00d8 E20F add r30,r18 738 00da F31F adc r31,r19 739 00dc AD01 movw r20,r26 740 00de 4F5F subi r20,-1 741 00e0 5F4F sbci r21,-1 742 00e2 5183 std Z+1,r21 743 00e4 4083 st Z,r20 744 00e6 1C92 st X,__zero_reg__ 745 00e8 8C89 ldd r24,Y+20 746 00ea 9D89 ldd r25,Y+21 747 00ec FC01 movw r30,r24 748 00ee E20F add r30,r18 749 00f0 F31F adc r31,r19 750 00f2 8081 ld r24,Z 751 00f4 9181 ldd r25,Z+1 752 00f6 0E94 0000 call NutHttpURLDecode 753 .L82: 754 00fa EC89 ldd r30,Y+20 755 00fc FD89 ldd r31,Y+21 756 00fe E00F add r30,r16 757 0100 F11F adc r31,r17 758 0102 8081 ld r24,Z 759 0104 9181 ldd r25,Z+1 760 0106 0E94 0000 call NutHttpURLDecode 761 010a FFEF ldi r31,-1 762 010c EF1A sub r14,r31 763 010e FF0A sbc r15,r31 764 0110 0C5F subi r16,-4 765 0112 1F4F sbci r17,-1 766 0114 00C0 rjmp .L80 767 .L70: 768 /* epilogue start */ 769 0116 DF91 pop r29 770 0118 CF91 pop r28 771 011a 1F91 pop r17 772 011c 0F91 pop r16 773 011e FF90 pop r15 774 0120 EF90 pop r14 775 0122 0895 ret 776 .size NutHttpProcessQueryString, .-NutHttpProcessQueryString GAS LISTING /tmp/cc1dmPbT.s page 15 777 .section .text.NutRegisterHttpRoot,"ax",@progbits 778 .global NutRegisterHttpRoot 779 .type NutRegisterHttpRoot, @function 780 NutRegisterHttpRoot: 781 0000 CF93 push r28 782 0002 DF93 push r29 783 /* prologue: function */ 784 /* frame size = 0 */ 785 /* stack size = 2 */ 786 .L__stack_usage = 2 787 0004 EC01 movw r28,r24 788 0006 8091 0000 lds r24,http_root 789 000a 9091 0000 lds r25,http_root+1 790 000e 0097 sbiw r24,0 791 0010 01F0 breq .L90 792 0012 0E94 0000 call free 793 .L90: 794 0016 2097 sbiw r28,0 795 0018 01F0 breq .L91 796 001a FE01 movw r30,r28 797 0: 798 001c 0190 ld __tmp_reg__,Z+ 799 001e 0020 tst __tmp_reg__ 800 0020 01F4 brne 0b 801 0022 3197 sbiw r30,1 802 0024 CF01 movw r24,r30 803 0026 8C1B sub r24,r28 804 0028 9D0B sbc r25,r29 805 002a 01F0 breq .L91 806 002c 0196 adiw r24,1 807 002e 0E94 0000 call malloc 808 0032 9093 0000 sts http_root+1,r25 809 0036 8093 0000 sts http_root,r24 810 003a 0097 sbiw r24,0 811 003c 01F0 breq .L93 812 003e BE01 movw r22,r28 813 0040 0E94 0000 call strcpy 814 0044 00C0 rjmp .L103 815 .L91: 816 0046 1092 0000 sts http_root+1,__zero_reg__ 817 004a 1092 0000 sts http_root,__zero_reg__ 818 .L103: 819 004e 80E0 ldi r24,0 820 0050 90E0 ldi r25,0 821 0052 00C0 rjmp .L92 822 .L93: 823 0054 8FEF ldi r24,lo8(-1) 824 0056 9FEF ldi r25,lo8(-1) 825 .L92: 826 /* epilogue start */ 827 0058 DF91 pop r29 828 005a CF91 pop r28 829 005c 0895 ret 830 .size NutRegisterHttpRoot, .-NutRegisterHttpRoot 831 .section .text.NutHttpSetOptionFlags,"ax",@progbits 832 .global NutHttpSetOptionFlags 833 .type NutHttpSetOptionFlags, @function GAS LISTING /tmp/cc1dmPbT.s page 16 834 NutHttpSetOptionFlags: 835 /* prologue: function */ 836 /* frame size = 0 */ 837 /* stack size = 0 */ 838 .L__stack_usage = 0 839 0000 6093 0000 sts http_optflags,r22 840 0004 7093 0000 sts http_optflags+1,r23 841 0008 8093 0000 sts http_optflags+2,r24 842 000c 9093 0000 sts http_optflags+3,r25 843 0010 0895 ret 844 .size NutHttpSetOptionFlags, .-NutHttpSetOptionFlags 845 .section .text.NutHttpGetOptionFlags,"ax",@progbits 846 .global NutHttpGetOptionFlags 847 .type NutHttpGetOptionFlags, @function 848 NutHttpGetOptionFlags: 849 /* prologue: function */ 850 /* frame size = 0 */ 851 /* stack size = 0 */ 852 .L__stack_usage = 0 853 0000 6091 0000 lds r22,http_optflags 854 0004 7091 0000 lds r23,http_optflags+1 855 0008 8091 0000 lds r24,http_optflags+2 856 000c 9091 0000 lds r25,http_optflags+3 857 0010 0895 ret 858 .size NutHttpGetOptionFlags, .-NutHttpGetOptionFlags 859 .section .rodata.str1.1 860 .LC10: 861 0070 4745 5400 .string "GET" 862 .LC11: 863 0074 4845 4144 .string "HEAD" 863 00 864 .LC12: 865 0079 504F 5354 .string "POST" 865 00 866 .LC13: 867 007e 4854 5450 .string "HTTP/1.0" 867 2F31 2E30 867 00 868 .LC14: 869 0087 4672 6920 .string "Fri Feb 6 2016 23:13:48" 869 4665 6220 869 2036 2032 869 3031 3620 869 3233 3A31 870 .LC15: 871 00a0 4F6B 00 .string "Ok" 872 .LC16: 873 00a3 4C61 7374 .string "Last-Modified: %s GMT\r\n" 873 2D4D 6F64 873 6966 6965 873 643A 2025 873 7320 474D 874 .section .text.NutHttpProcessRequest,"ax",@progbits 875 .global NutHttpProcessRequest 876 .type NutHttpProcessRequest, @function 877 NutHttpProcessRequest: 878 0000 2F92 push r2 GAS LISTING /tmp/cc1dmPbT.s page 17 879 0002 3F92 push r3 880 0004 4F92 push r4 881 0006 5F92 push r5 882 0008 6F92 push r6 883 000a 7F92 push r7 884 000c 8F92 push r8 885 000e 9F92 push r9 886 0010 AF92 push r10 887 0012 BF92 push r11 888 0014 CF92 push r12 889 0016 DF92 push r13 890 0018 EF92 push r14 891 001a FF92 push r15 892 001c 0F93 push r16 893 001e 1F93 push r17 894 0020 CF93 push r28 895 0022 DF93 push r29 896 0024 CDB7 in r28,__SP_L__ 897 0026 DEB7 in r29,__SP_H__ 898 0028 6F97 sbiw r28,31 899 002a 0FB6 in __tmp_reg__,__SREG__ 900 002c F894 cli 901 002e DEBF out __SP_H__,r29 902 0030 0FBE out __SREG__,__tmp_reg__ 903 0032 CDBF out __SP_L__,r28 904 /* prologue: function */ 905 /* frame size = 31 */ 906 /* stack size = 49 */ 907 .L__stack_usage = 49 908 0034 4C01 movw r8,r24 909 0036 1B8A std Y+19,__zero_reg__ 910 0038 1A8A std Y+18,__zero_reg__ 911 003a 212C mov r2,__zero_reg__ 912 003c 312C mov r3,__zero_reg__ 913 .L177: 914 003e C101 movw r24,r2 915 0040 0E94 0000 call DestroyRequestInfo 916 0044 64E2 ldi r22,lo8(36) 917 0046 70E0 ldi r23,0 918 0048 81E0 ldi r24,lo8(1) 919 004a 90E0 ldi r25,0 920 004c 0E94 0000 call calloc 921 0050 1C01 movw r2,r24 922 0052 0097 sbiw r24,0 923 0054 01F4 brne .+2 924 0056 00C0 rjmp .L107 925 0058 EBE0 ldi r30,lo8(11) 926 005a F0E0 ldi r31,0 927 005c DC01 movw r26,r24 928 005e 1396 adiw r26,2+1 929 0060 FC93 st X,r31 930 0062 EE93 st -X,r30 931 0064 1297 sbiw r26,2 932 0066 2A89 ldd r18,Y+18 933 0068 3B89 ldd r19,Y+19 934 006a 2115 cp r18,__zero_reg__ 935 006c 3105 cpc r19,__zero_reg__ GAS LISTING /tmp/cc1dmPbT.s page 18 936 006e 01F0 breq .L108 937 0070 C901 movw r24,r18 938 0072 0E94 0000 call free 939 .L108: 940 0076 80E0 ldi r24,0 941 0078 91E0 ldi r25,lo8(1) 942 007a 0E94 0000 call malloc 943 007e 9B8B std Y+19,r25 944 0080 8A8B std Y+18,r24 945 0082 0097 sbiw r24,0 946 0084 01F4 brne .+2 947 0086 00C0 rjmp .L107 948 0088 A401 movw r20,r8 949 008a 60E0 ldi r22,0 950 008c 71E0 ldi r23,lo8(1) 951 008e 0E94 0000 call fgets 952 0092 892B or r24,r25 953 0094 01F4 brne .+2 954 0096 00C0 rjmp .L107 955 0098 6DE0 ldi r22,lo8(13) 956 009a 70E0 ldi r23,0 957 009c 8A89 ldd r24,Y+18 958 009e 9B89 ldd r25,Y+19 959 00a0 0E94 0000 call strchr 960 00a4 0097 sbiw r24,0 961 00a6 01F0 breq .L109 962 00a8 DC01 movw r26,r24 963 00aa 1C92 st X,__zero_reg__ 964 .L109: 965 00ac 6AE0 ldi r22,lo8(10) 966 00ae 70E0 ldi r23,0 967 00b0 8A89 ldd r24,Y+18 968 00b2 9B89 ldd r25,Y+19 969 00b4 0E94 0000 call strchr 970 00b8 0097 sbiw r24,0 971 00ba 01F0 breq .L110 972 00bc FC01 movw r30,r24 973 00be 1082 st Z,__zero_reg__ 974 .L110: 975 00c0 80E0 ldi r24,0 976 00c2 91E0 ldi r25,lo8(1) 977 00c4 0E94 0000 call malloc 978 00c8 7C01 movw r14,r24 979 00ca 892B or r24,r25 980 00cc 01F4 brne .+2 981 00ce 00C0 rjmp .L107 982 00d0 9101 movw r18,r2 983 00d2 2E5E subi r18,-18 984 00d4 3F4F sbci r19,-1 985 00d6 3D8B std Y+21,r19 986 00d8 2C8B std Y+20,r18 987 00da 265F subi r18,-10 988 00dc 3F4F sbci r19,-1 989 00de 3F8B std Y+23,r19 990 00e0 2E8B std Y+22,r18 991 00e2 2E5F subi r18,-2 992 00e4 3F4F sbci r19,-1 GAS LISTING /tmp/cc1dmPbT.s page 19 993 00e6 398F std Y+25,r19 994 00e8 288F std Y+24,r18 995 00ea 2051 subi r18,16 996 00ec 3109 sbc r19,__zero_reg__ 997 00ee 3B8F std Y+27,r19 998 00f0 2A8F std Y+26,r18 999 00f2 2250 subi r18,2 1000 00f4 3109 sbc r19,__zero_reg__ 1001 00f6 3D8F std Y+29,r19 1002 00f8 2C8F std Y+28,r18 1003 00fa 2C5F subi r18,-4 1004 00fc 3F4F sbci r19,-1 1005 00fe 3F8F std Y+31,r19 1006 0100 2E8F std Y+30,r18 1007 0102 3101 movw r6,r2 1008 0104 32E2 ldi r19,34 1009 0106 630E add r6,r19 1010 0108 711C adc r7,__zero_reg__ 1011 .L113: 1012 010a C401 movw r24,r8 1013 010c 0E94 0000 call fgetc 1014 0110 8C01 movw r16,r24 1015 0112 8D30 cpi r24,13 1016 0114 9105 cpc r25,__zero_reg__ 1017 0116 01F0 breq .L113 1018 0118 0A97 sbiw r24,10 1019 011a 01F4 brne .L114 1020 .L130: 1021 011c C701 movw r24,r14 1022 011e 0E94 0000 call free 1023 0122 8A89 ldd r24,Y+18 1024 0124 9B89 ldd r25,Y+19 1025 0126 0E94 0000 call NextWord 1026 012a 8C01 movw r16,r24 1027 012c 0E94 0000 call NextWord 1028 0130 7C01 movw r14,r24 1029 0132 0E94 0000 call NextWord 1030 0136 60E0 ldi r22,lo8(.LC10) 1031 0138 70E0 ldi r23,hi8(.LC10) 1032 013a 8A89 ldd r24,Y+18 1033 013c 9B89 ldd r25,Y+19 1034 013e 0E94 0000 call strcasecmp 1035 0142 892B or r24,r25 1036 0144 01F0 breq .+2 1037 0146 00C0 rjmp .L272 1038 0148 81E0 ldi r24,lo8(1) 1039 014a 90E0 ldi r25,0 1040 014c F101 movw r30,r2 1041 014e 9183 std Z+1,r25 1042 0150 8083 st Z,r24 1043 0152 00C0 rjmp .L148 1044 .L114: 1045 0154 A12C mov r10,__zero_reg__ 1046 0156 B12C mov r11,__zero_reg__ 1047 0158 512C mov r5,__zero_reg__ 1048 .L128: 1049 015a 4A2C mov r4,r10 GAS LISTING /tmp/cc1dmPbT.s page 20 1050 015c 0F3F cpi r16,-1 1051 015e 8FEF ldi r24,-1 1052 0160 1807 cpc r17,r24 1053 0162 01F4 brne .L117 1054 .L129: 1055 0164 C701 movw r24,r14 1056 0166 0E94 0000 call free 1057 016a 00C0 rjmp .L107 1058 .L117: 1059 016c 0A30 cpi r16,10 1060 016e 1105 cpc r17,__zero_reg__ 1061 0170 01F4 brne .+2 1062 0172 00C0 rjmp .L119 1063 0174 0A33 cpi r16,58 1064 0176 1105 cpc r17,__zero_reg__ 1065 0178 01F4 brne .L125 1066 017a 852D mov r24,r5 1067 017c 90E0 ldi r25,0 1068 017e FC01 movw r30,r24 1069 0180 EE0F lsl r30 1070 0182 FF1F rol r31 1071 0184 8E0F add r24,r30 1072 0186 9F1F adc r25,r31 1073 0188 FC01 movw r30,r24 1074 018a E050 subi r30,lo8(-(req_lookup)) 1075 018c F040 sbci r31,hi8(-(req_lookup)) 1076 018e 8081 ld r24,Z 1077 0190 8A11 cpse r24,r10 1078 0192 00C0 rjmp .L119 1079 0194 00C0 rjmp .L121 1080 .L273: 1081 0196 C801 movw r24,r16 1082 0198 0E94 0000 call tolower 1083 019c D601 movw r26,r12 1084 019e 1196 adiw r26,1 1085 01a0 ED91 ld r30,X+ 1086 01a2 FC91 ld r31,X 1087 01a4 1297 sbiw r26,1+1 1088 01a6 EA0D add r30,r10 1089 01a8 FB1D adc r31,r11 1090 01aa 2081 ld r18,Z 1091 01ac 022E mov __tmp_reg__,r18 1092 01ae 000C lsl r0 1093 01b0 330B sbc r19,r19 1094 01b2 2817 cp r18,r24 1095 01b4 3907 cpc r19,r25 1096 01b6 01F0 breq .L126 1097 .L123: 1098 01b8 5394 inc r5 1099 01ba BAE0 ldi r27,lo8(10) 1100 01bc 5B16 cp r5,r27 1101 01be 01F0 breq .L126 1102 .L125: 1103 01c0 C52C mov r12,r5 1104 01c2 D12C mov r13,__zero_reg__ 1105 01c4 C601 movw r24,r12 1106 01c6 880F lsl r24 GAS LISTING /tmp/cc1dmPbT.s page 21 1107 01c8 991F rol r25 1108 01ca 8C0D add r24,r12 1109 01cc 9D1D adc r25,r13 1110 01ce DC01 movw r26,r24 1111 01d0 A050 subi r26,lo8(-(req_lookup)) 1112 01d2 B040 sbci r27,hi8(-(req_lookup)) 1113 01d4 6D01 movw r12,r26 1114 01d6 8C91 ld r24,X 1115 01d8 4816 cp r4,r24 1116 01da 00F4 brsh .L123 1117 01dc 00C0 rjmp .L273 1118 .L126: 1119 01de C401 movw r24,r8 1120 01e0 0E94 0000 call fgetc 1121 01e4 8C01 movw r16,r24 1122 01e6 0D97 sbiw r24,13 1123 01e8 01F0 breq .L126 1124 01ea E0E1 ldi r30,16 1125 01ec AE16 cp r10,r30 1126 01ee B104 cpc r11,__zero_reg__ 1127 01f0 01F0 breq .L127 1128 01f2 FFEF ldi r31,-1 1129 01f4 AF1A sub r10,r31 1130 01f6 BF0A sbc r11,r31 1131 01f8 2AE0 ldi r18,lo8(10) 1132 01fa 5212 cpse r5,r18 1133 01fc 00C0 rjmp .L128 1134 .L127: 1135 01fe 0F3F cpi r16,-1 1136 0200 3FEF ldi r19,-1 1137 0202 1307 cpc r17,r19 1138 0204 01F4 brne .+2 1139 0206 00C0 rjmp .L129 1140 0208 0115 cp r16,__zero_reg__ 1141 020a 1105 cpc r17,__zero_reg__ 1142 020c 01F4 brne .+2 1143 020e 00C0 rjmp .L130 1144 0210 0A33 cpi r16,58 1145 0212 1105 cpc r17,__zero_reg__ 1146 0214 01F4 brne .L119 1147 0216 8AE0 ldi r24,lo8(10) 1148 0218 5812 cpse r5,r24 1149 021a 00C0 rjmp .L121 1150 .L119: 1151 021c C401 movw r24,r8 1152 021e 0E94 0000 call fgetc 1153 0222 8F3F cpi r24,-1 1154 0224 AFEF ldi r26,-1 1155 0226 9A07 cpc r25,r26 1156 0228 01F4 brne .+2 1157 022a 00C0 rjmp .L113 1158 022c 0A97 sbiw r24,10 1159 022e 01F4 brne .L119 1160 0230 00C0 rjmp .L113 1161 .L121: 1162 0232 A401 movw r20,r8 1163 0234 60E0 ldi r22,0 GAS LISTING /tmp/cc1dmPbT.s page 22 1164 0236 71E0 ldi r23,lo8(1) 1165 0238 C701 movw r24,r14 1166 023a 0E94 0000 call fgets 1167 023e 892B or r24,r25 1168 0240 01F4 brne .+2 1169 0242 00C0 rjmp .L129 1170 0244 6AE0 ldi r22,lo8(10) 1171 0246 70E0 ldi r23,0 1172 0248 C701 movw r24,r14 1173 024a 0E94 0000 call strchr 1174 024e 0097 sbiw r24,0 1175 0250 01F4 brne .L132 1176 .L133: 1177 0252 C401 movw r24,r8 1178 0254 0E94 0000 call fgetc 1179 0258 8F3F cpi r24,-1 1180 025a BFEF ldi r27,-1 1181 025c 9B07 cpc r25,r27 1182 025e 01F4 brne .+2 1183 0260 00C0 rjmp .L113 1184 0262 0A97 sbiw r24,10 1185 0264 01F4 brne .L133 1186 0266 00C0 rjmp .L113 1187 .L132: 1188 0268 FC01 movw r30,r24 1189 026a 1082 st Z,__zero_reg__ 1190 026c E816 cp r14,r24 1191 026e F906 cpc r15,r25 1192 0270 00F4 brsh .L134 1193 0272 8291 ld r24,-Z 1194 0274 8D30 cpi r24,lo8(13) 1195 0276 01F4 brne .L134 1196 0278 1082 st Z,__zero_reg__ 1197 .L134: 1198 027a 852D mov r24,r5 1199 027c 90E0 ldi r25,0 1200 027e 8A30 cpi r24,10 1201 0280 9105 cpc r25,__zero_reg__ 1202 0282 00F0 brlo .+2 1203 0284 00C0 rjmp .L113 1204 0286 FC01 movw r30,r24 1205 0288 8827 clr r24 1206 028a E050 subi r30,pm_lo8(-(.L137)) 1207 028c F040 sbci r31,pm_hi8(-(.L137)) 1208 028e 8040 sbci r24,pm_hh8(-(.L137)) 1209 0290 0C94 0000 jmp __tablejump2__ 1210 .section .progmem.gcc_sw_table.NutHttpProcessRequest,"a",@progbits 1211 .p2align 1 1212 .L137: 1213 0000 0000 .word gs(.L136) 1214 0002 0000 .word gs(.L138) 1215 0004 0000 .word gs(.L113) 1216 0006 0000 .word gs(.L139) 1217 0008 0000 .word gs(.L140) 1218 000a 0000 .word gs(.L141) 1219 000c 0000 .word gs(.L142) 1220 000e 0000 .word gs(.L143) GAS LISTING /tmp/cc1dmPbT.s page 23 1221 0010 0000 .word gs(.L144) 1222 0012 0000 .word gs(.L145) 1223 .section .text.NutHttpProcessRequest 1224 .L136: 1225 0294 8301 movw r16,r6 1226 0296 00C0 rjmp .L146 1227 .L138: 1228 0298 0E8D ldd r16,Y+30 1229 029a 1F8D ldd r17,Y+31 1230 029c 00C0 rjmp .L146 1231 .L139: 1232 029e C701 movw r24,r14 1233 02a0 0E94 0000 call atol 1234 02a4 D101 movw r26,r2 1235 02a6 1496 adiw r26,4 1236 02a8 6D93 st X+,r22 1237 02aa 7D93 st X+,r23 1238 02ac 8D93 st X+,r24 1239 02ae 9C93 st X,r25 1240 02b0 1797 sbiw r26,4+3 1241 02b2 00C0 rjmp .L113 1242 .L140: 1243 02b4 0C8D ldd r16,Y+28 1244 02b6 1D8D ldd r17,Y+29 1245 02b8 00C0 rjmp .L146 1246 .L141: 1247 02ba 0A8D ldd r16,Y+26 1248 02bc 1B8D ldd r17,Y+27 1249 02be 00C0 rjmp .L146 1250 .L142: 1251 02c0 088D ldd r16,Y+24 1252 02c2 198D ldd r17,Y+25 1253 02c4 00C0 rjmp .L146 1254 .L143: 1255 02c6 C701 movw r24,r14 1256 02c8 0E94 0000 call RfcTimeParse 1257 02cc F101 movw r30,r2 1258 02ce 608F std Z+24,r22 1259 02d0 718F std Z+25,r23 1260 02d2 828F std Z+26,r24 1261 02d4 938F std Z+27,r25 1262 02d6 00C0 rjmp .L113 1263 .L144: 1264 02d8 0E89 ldd r16,Y+22 1265 02da 1F89 ldd r17,Y+23 1266 02dc 00C0 rjmp .L146 1267 .L145: 1268 02de 0C89 ldd r16,Y+20 1269 02e0 1D89 ldd r17,Y+21 1270 02e2 00C0 rjmp .L146 1271 .L272: 1272 02e4 60E0 ldi r22,lo8(.LC11) 1273 02e6 70E0 ldi r23,hi8(.LC11) 1274 02e8 8A89 ldd r24,Y+18 1275 02ea 9B89 ldd r25,Y+19 1276 02ec 0E94 0000 call strcasecmp 1277 02f0 892B or r24,r25 GAS LISTING /tmp/cc1dmPbT.s page 24 1278 02f2 01F4 brne .L149 1279 02f4 E3E0 ldi r30,lo8(3) 1280 02f6 F0E0 ldi r31,0 1281 02f8 00C0 rjmp .L269 1282 .L149: 1283 02fa 60E0 ldi r22,lo8(.LC12) 1284 02fc 70E0 ldi r23,hi8(.LC12) 1285 02fe 8A89 ldd r24,Y+18 1286 0300 9B89 ldd r25,Y+19 1287 0302 0E94 0000 call strcasecmp 1288 0306 892B or r24,r25 1289 0308 01F4 brne .L150 1290 030a E2E0 ldi r30,lo8(2) 1291 030c F0E0 ldi r31,0 1292 .L269: 1293 030e D101 movw r26,r2 1294 0310 ED93 st X+,r30 1295 0312 FC93 st X,r31 1296 0314 00C0 rjmp .L148 1297 .L150: 1298 0316 45EF ldi r20,lo8(-11) 1299 0318 51E0 ldi r21,lo8(1) 1300 031a 00C0 rjmp .L271 1301 .L148: 1302 031c D801 movw r26,r16 1303 031e 8C91 ld r24,X 1304 0320 8111 cpse r24,__zero_reg__ 1305 0322 00C0 rjmp .L151 1306 .L152: 1307 0324 40E9 ldi r20,lo8(-112) 1308 0326 51E0 ldi r21,lo8(1) 1309 .L271: 1310 0328 B101 movw r22,r2 1311 032a C401 movw r24,r8 1312 032c 0E94 0000 call NutHttpSendError 1313 0330 00C0 rjmp .L107 1314 .L151: 1315 0332 F701 movw r30,r14 1316 0334 8081 ld r24,Z 1317 0336 8823 tst r24 1318 0338 01F0 breq .L152 1319 033a 60E0 ldi r22,lo8(.LC13) 1320 033c 70E0 ldi r23,hi8(.LC13) 1321 033e C701 movw r24,r14 1322 0340 0E94 0000 call strcasecmp 1323 0344 892B or r24,r25 1324 0346 01F4 brne .L153 1325 0348 8AE0 ldi r24,lo8(10) 1326 034a 90E0 ldi r25,0 1327 034c D101 movw r26,r2 1328 034e 1396 adiw r26,2+1 1329 0350 9C93 st X,r25 1330 0352 8E93 st -X,r24 1331 0354 1297 sbiw r26,2 1332 .L153: 1333 0356 81E0 ldi r24,lo8(1) 1334 0358 90E0 ldi r25,0 GAS LISTING /tmp/cc1dmPbT.s page 25 1335 035a F101 movw r30,r2 1336 035c 91A3 std Z+33,r25 1337 035e 80A3 std Z+32,r24 1338 0360 6FE3 ldi r22,lo8(63) 1339 0362 70E0 ldi r23,0 1340 0364 C801 movw r24,r16 1341 0366 0E94 0000 call strchr 1342 036a 0097 sbiw r24,0 1343 036c 01F0 breq .L154 1344 036e DC01 movw r26,r24 1345 0370 1D92 st X+,__zero_reg__ 1346 0372 CD01 movw r24,r26 1347 0374 0E94 0000 call strdup 1348 0378 F101 movw r30,r2 1349 037a 9387 std Z+11,r25 1350 037c 8287 std Z+10,r24 1351 037e 892B or r24,r25 1352 0380 01F4 brne .+2 1353 0382 00C0 rjmp .L107 1354 0384 C101 movw r24,r2 1355 0386 0E94 0000 call NutHttpProcessQueryString 1356 .L154: 1357 038a C801 movw r24,r16 1358 038c 0E94 0000 call strdup 1359 0390 D101 movw r26,r2 1360 0392 1996 adiw r26,8+1 1361 0394 9C93 st X,r25 1362 0396 8E93 st -X,r24 1363 0398 1897 sbiw r26,8 1364 039a 0097 sbiw r24,0 1365 039c 01F4 brne .+2 1366 039e 00C0 rjmp .L107 1367 03a0 0E94 0000 call NutDecodePath 1368 03a4 892B or r24,r25 1369 03a6 01F4 brne .L155 1370 03a8 40E9 ldi r20,lo8(-112) 1371 03aa 51E0 ldi r21,lo8(1) 1372 03ac 00C0 rjmp .L270 1373 .L155: 1374 03ae C101 movw r24,r2 1375 03b0 0E94 0000 call NutHttpAuthValidate 1376 03b4 892B or r24,r25 1377 03b6 01F0 breq .L157 1378 03b8 41E9 ldi r20,lo8(-111) 1379 03ba 51E0 ldi r21,lo8(1) 1380 03bc 00C0 rjmp .L270 1381 .L157: 1382 03be B101 movw r22,r2 1383 03c0 C401 movw r24,r8 1384 03c2 0E94 0000 call NutCgiCheckRequest 1385 03c6 892B or r24,r25 1386 03c8 01F0 breq .+2 1387 03ca 00C0 rjmp .L156 1388 03cc 00E0 ldi r16,lo8(default_files) 1389 03ce 10E0 ldi r17,hi8(default_files) 1390 03d0 A12C mov r10,__zero_reg__ 1391 03d2 B12C mov r11,__zero_reg__ GAS LISTING /tmp/cc1dmPbT.s page 26 1392 03d4 EE24 clr r14 1393 03d6 EA94 dec r14 1394 03d8 FE2C mov r15,r14 1395 .L158: 1396 03da D801 movw r26,r16 1397 03dc 6D91 ld r22,X+ 1398 03de 7D91 ld r23,X+ 1399 03e0 8D01 movw r16,r26 1400 03e2 6115 cp r22,__zero_reg__ 1401 03e4 7105 cpc r23,__zero_reg__ 1402 03e6 01F0 breq .L274 1403 03e8 F101 movw r30,r2 1404 03ea 8085 ldd r24,Z+8 1405 03ec 9185 ldd r25,Z+9 1406 03ee 0E94 0000 call CreateFilePath 1407 03f2 5C01 movw r10,r24 1408 03f4 0097 sbiw r24,0 1409 03f6 01F4 brne .L159 1410 03f8 44EF ldi r20,lo8(-12) 1411 03fa 51E0 ldi r21,lo8(1) 1412 03fc 00C0 rjmp .L270 1413 .L159: 1414 03fe 60E0 ldi r22,0 1415 0400 70E8 ldi r23,lo8(-128) 1416 0402 0E94 0000 call _open 1417 0406 7C01 movw r14,r24 1418 0408 8F3F cpi r24,-1 1419 040a FFEF ldi r31,-1 1420 040c 9F07 cpc r25,r31 1421 040e 01F0 breq .L160 1422 0410 0E94 0000 call _filelength 1423 0414 672B or r22,r23 1424 0416 682B or r22,r24 1425 0418 692B or r22,r25 1426 041a 01F4 brne .L161 1427 041c C701 movw r24,r14 1428 041e 0E94 0000 call _close 1429 .L160: 1430 0422 C501 movw r24,r10 1431 0424 0E94 0000 call free 1432 0428 00C0 rjmp .L158 1433 .L274: 1434 042a BFEF ldi r27,-1 1435 042c EB16 cp r14,r27 1436 042e FB06 cpc r15,r27 1437 0430 01F4 brne .L161 1438 0432 44E9 ldi r20,lo8(-108) 1439 0434 51E0 ldi r21,lo8(1) 1440 .L270: 1441 0436 B101 movw r22,r2 1442 0438 C401 movw r24,r8 1443 043a 0E94 0000 call NutHttpSendError 1444 043e 00C0 rjmp .L156 1445 .L161: 1446 0440 C501 movw r24,r10 1447 0442 0E94 0000 call NutGetMimeType 1448 0446 8C01 movw r16,r24 GAS LISTING /tmp/cc1dmPbT.s page 27 1449 0448 C501 movw r24,r10 1450 044a 0E94 0000 call NutGetMimeHandler 1451 044e 6C01 movw r12,r24 1452 0450 892B or r24,r25 1453 0452 01F0 breq .+2 1454 0454 00C0 rjmp .L183 1455 0456 8091 0000 lds r24,http_optflags 1456 045a 81FF sbrs r24,1 1457 045c 00C0 rjmp .L183 1458 045e BE01 movw r22,r28 1459 0460 6F5F subi r22,-1 1460 0462 7F4F sbci r23,-1 1461 0464 C501 movw r24,r10 1462 0466 0E94 0000 call stat 1463 046a 892B or r24,r25 1464 046c 01F4 brne .L164 1465 046e 8A85 ldd r24,Y+10 1466 0470 9B85 ldd r25,Y+11 1467 0472 AC85 ldd r26,Y+12 1468 0474 BD85 ldd r27,Y+13 1469 0476 8E87 std Y+14,r24 1470 0478 9F87 std Y+15,r25 1471 047a A88B std Y+16,r26 1472 047c B98B std Y+17,r27 1473 047e 00C0 rjmp .L165 1474 .L164: 1475 0480 80E0 ldi r24,lo8(.LC14) 1476 0482 90E0 ldi r25,hi8(.LC14) 1477 0484 0E94 0000 call RfcTimeParse 1478 0488 6E87 std Y+14,r22 1479 048a 7F87 std Y+15,r23 1480 048c 888B std Y+16,r24 1481 048e 998B std Y+17,r25 1482 .L165: 1483 0490 F101 movw r30,r2 1484 0492 808D ldd r24,Z+24 1485 0494 918D ldd r25,Z+25 1486 0496 A28D ldd r26,Z+26 1487 0498 B38D ldd r27,Z+27 1488 049a 0097 sbiw r24,0 1489 049c A105 cpc r26,__zero_reg__ 1490 049e B105 cpc r27,__zero_reg__ 1491 04a0 01F0 breq .L166 1492 04a2 4A85 ldd r20,Y+10 1493 04a4 5B85 ldd r21,Y+11 1494 04a6 6C85 ldd r22,Y+12 1495 04a8 7D85 ldd r23,Y+13 1496 04aa 8417 cp r24,r20 1497 04ac 9507 cpc r25,r21 1498 04ae A607 cpc r26,r22 1499 04b0 B707 cpc r27,r23 1500 04b2 04F0 brlt .L166 1501 04b4 C701 movw r24,r14 1502 04b6 0E94 0000 call _close 1503 04ba 40E3 ldi r20,lo8(48) 1504 04bc 51E0 ldi r21,lo8(1) 1505 04be B101 movw r22,r2 GAS LISTING /tmp/cc1dmPbT.s page 28 1506 04c0 C401 movw r24,r8 1507 04c2 0E94 0000 call NutHttpSendError 1508 04c6 C501 movw r24,r10 1509 04c8 0E94 0000 call free 1510 04cc 00C0 rjmp .L156 1511 .L166: 1512 04ce CE01 movw r24,r28 1513 04d0 0E96 adiw r24,14 1514 04d2 0E94 0000 call gmtime 1515 04d6 0E94 0000 call Rfc1123TimeString 1516 04da 0E94 0000 call strdup 1517 04de 3C01 movw r6,r24 1518 04e0 00C0 rjmp .L163 1519 .L183: 1520 04e2 612C mov r6,__zero_reg__ 1521 04e4 712C mov r7,__zero_reg__ 1522 .L163: 1523 04e6 C501 movw r24,r10 1524 04e8 0E94 0000 call free 1525 04ec 20E0 ldi r18,lo8(.LC15) 1526 04ee 30E0 ldi r19,hi8(.LC15) 1527 04f0 48EC ldi r20,lo8(-56) 1528 04f2 50E0 ldi r21,0 1529 04f4 B101 movw r22,r2 1530 04f6 C401 movw r24,r8 1531 04f8 0E94 0000 call NutHttpSendHeaderTop 1532 04fc 6114 cp r6,__zero_reg__ 1533 04fe 7104 cpc r7,__zero_reg__ 1534 0500 01F0 breq .L167 1535 0502 7F92 push r7 1536 0504 6F92 push r6 1537 0506 A0E0 ldi r26,lo8(.LC16) 1538 0508 B0E0 ldi r27,hi8(.LC16) 1539 050a BF93 push r27 1540 050c AF93 push r26 1541 050e 9F92 push r9 1542 0510 8F92 push r8 1543 0512 0E94 0000 call fprintf 1544 0516 C301 movw r24,r6 1545 0518 0E94 0000 call free 1546 051c 0F90 pop __tmp_reg__ 1547 051e 0F90 pop __tmp_reg__ 1548 0520 0F90 pop __tmp_reg__ 1549 0522 0F90 pop __tmp_reg__ 1550 0524 0F90 pop __tmp_reg__ 1551 0526 0F90 pop __tmp_reg__ 1552 .L167: 1553 0528 C701 movw r24,r14 1554 052a 0E94 0000 call _filelength 1555 052e 2B01 movw r4,r22 1556 0530 3C01 movw r6,r24 1557 0532 C114 cp r12,__zero_reg__ 1558 0534 D104 cpc r13,__zero_reg__ 1559 0536 01F0 breq .L168 1560 0538 2FEF ldi r18,lo8(-1) 1561 053a 3FEF ldi r19,lo8(-1) 1562 053c A901 movw r20,r18 GAS LISTING /tmp/cc1dmPbT.s page 29 1563 053e B801 movw r22,r16 1564 0540 C401 movw r24,r8 1565 0542 0E94 0000 call NutHttpSendHeaderBottomEx.isra.0.constprop.2 1566 0546 2091 0000 lds r18,http_root 1567 054a 3091 0000 lds r19,http_root+1 1568 054e 8101 movw r16,r2 1569 0550 A201 movw r20,r4 1570 0552 B701 movw r22,r14 1571 0554 C401 movw r24,r8 1572 0556 F601 movw r30,r12 1573 0558 1995 eicall 1574 055a 00C0 rjmp .L169 1575 .L168: 1576 055c 9B01 movw r18,r22 1577 055e AC01 movw r20,r24 1578 0560 B801 movw r22,r16 1579 0562 C401 movw r24,r8 1580 0564 0E94 0000 call NutHttpSendHeaderBottomEx.isra.0.constprop.2 1581 0568 D101 movw r26,r2 1582 056a 8D91 ld r24,X+ 1583 056c 9C91 ld r25,X 1584 056e 0397 sbiw r24,3 1585 0570 01F0 breq .L169 1586 0572 80E0 ldi r24,0 1587 0574 92E0 ldi r25,lo8(2) 1588 0576 0E94 0000 call malloc 1589 057a 6C01 movw r12,r24 1590 057c 892B or r24,r25 1591 057e 01F0 breq .L169 1592 0580 A12C mov r10,__zero_reg__ 1593 0582 82E0 ldi r24,lo8(2) 1594 0584 B82E mov r11,r24 1595 .L172: 1596 0586 4114 cp r4,__zero_reg__ 1597 0588 5104 cpc r5,__zero_reg__ 1598 058a 6104 cpc r6,__zero_reg__ 1599 058c 7104 cpc r7,__zero_reg__ 1600 058e 01F0 breq .L175 1601 0590 4114 cp r4,__zero_reg__ 1602 0592 B2E0 ldi r27,2 1603 0594 5B06 cpc r5,r27 1604 0596 6104 cpc r6,__zero_reg__ 1605 0598 7104 cpc r7,__zero_reg__ 1606 059a 04F4 brge .L173 1607 059c 5201 movw r10,r4 1608 .L173: 1609 059e A501 movw r20,r10 1610 05a0 B601 movw r22,r12 1611 05a2 C701 movw r24,r14 1612 05a4 0E94 0000 call _read 1613 05a8 8C01 movw r16,r24 1614 05aa 1816 cp __zero_reg__,r24 1615 05ac 1906 cpc __zero_reg__,r25 1616 05ae 04F0 brlt .L174 1617 .L175: 1618 05b0 C601 movw r24,r12 1619 05b2 0E94 0000 call free GAS LISTING /tmp/cc1dmPbT.s page 30 1620 05b6 00C0 rjmp .L169 1621 .L174: 1622 05b8 9401 movw r18,r8 1623 05ba AC01 movw r20,r24 1624 05bc 61E0 ldi r22,lo8(1) 1625 05be 70E0 ldi r23,0 1626 05c0 C601 movw r24,r12 1627 05c2 0E94 0000 call fwrite 1628 05c6 892B or r24,r25 1629 05c8 01F0 breq .L175 1630 05ca 012E mov __tmp_reg__,r17 1631 05cc 000C lsl r0 1632 05ce 220B sbc r18,r18 1633 05d0 330B sbc r19,r19 1634 05d2 401A sub r4,r16 1635 05d4 510A sbc r5,r17 1636 05d6 620A sbc r6,r18 1637 05d8 730A sbc r7,r19 1638 05da 00C0 rjmp .L172 1639 .L169: 1640 05dc C701 movw r24,r14 1641 05de 0E94 0000 call _close 1642 .L156: 1643 05e2 C401 movw r24,r8 1644 05e4 0E94 0000 call fflush 1645 05e8 F101 movw r30,r2 1646 05ea 80A1 ldd r24,Z+32 1647 05ec 91A1 ldd r25,Z+33 1648 05ee 0197 sbiw r24,1 1649 05f0 01F0 breq .+2 1650 05f2 00C0 rjmp .L177 1651 .L107: 1652 05f4 C101 movw r24,r2 1653 05f6 0E94 0000 call DestroyRequestInfo 1654 05fa 2A89 ldd r18,Y+18 1655 05fc 3B89 ldd r19,Y+19 1656 05fe 2115 cp r18,__zero_reg__ 1657 0600 3105 cpc r19,__zero_reg__ 1658 0602 01F0 breq .L106 1659 0604 C901 movw r24,r18 1660 /* epilogue start */ 1661 0606 6F96 adiw r28,31 1662 0608 0FB6 in __tmp_reg__,__SREG__ 1663 060a F894 cli 1664 060c DEBF out __SP_H__,r29 1665 060e 0FBE out __SREG__,__tmp_reg__ 1666 0610 CDBF out __SP_L__,r28 1667 0612 DF91 pop r29 1668 0614 CF91 pop r28 1669 0616 1F91 pop r17 1670 0618 0F91 pop r16 1671 061a FF90 pop r15 1672 061c EF90 pop r14 1673 061e DF90 pop r13 1674 0620 CF90 pop r12 1675 0622 BF90 pop r11 1676 0624 AF90 pop r10 GAS LISTING /tmp/cc1dmPbT.s page 31 1677 0626 9F90 pop r9 1678 0628 8F90 pop r8 1679 062a 7F90 pop r7 1680 062c 6F90 pop r6 1681 062e 5F90 pop r5 1682 0630 4F90 pop r4 1683 0632 3F90 pop r3 1684 0634 2F90 pop r2 1685 0636 0C94 0000 jmp free 1686 .L146: 1687 063a D801 movw r26,r16 1688 063c 8D91 ld r24,X+ 1689 063e 9C91 ld r25,X 1690 0640 892B or r24,r25 1691 0642 01F0 breq .+2 1692 0644 00C0 rjmp .L113 1693 0646 F701 movw r30,r14 1694 .L181: 1695 0648 CF01 movw r24,r30 1696 064a 2191 ld r18,Z+ 1697 064c 2032 cpi r18,lo8(32) 1698 064e 01F0 breq .L181 1699 0650 2930 cpi r18,lo8(9) 1700 0652 01F0 breq .L181 1701 0654 0E94 0000 call strdup 1702 0658 D801 movw r26,r16 1703 065a 8D93 st X+,r24 1704 065c 9C93 st X,r25 1705 065e 892B or r24,r25 1706 0660 01F0 breq .+2 1707 0662 00C0 rjmp .L113 1708 0664 00C0 rjmp .L129 1709 .L106: 1710 /* epilogue start */ 1711 0666 6F96 adiw r28,31 1712 0668 0FB6 in __tmp_reg__,__SREG__ 1713 066a F894 cli 1714 066c DEBF out __SP_H__,r29 1715 066e 0FBE out __SREG__,__tmp_reg__ 1716 0670 CDBF out __SP_L__,r28 1717 0672 DF91 pop r29 1718 0674 CF91 pop r28 1719 0676 1F91 pop r17 1720 0678 0F91 pop r16 1721 067a FF90 pop r15 1722 067c EF90 pop r14 1723 067e DF90 pop r13 1724 0680 CF90 pop r12 1725 0682 BF90 pop r11 1726 0684 AF90 pop r10 1727 0686 9F90 pop r9 1728 0688 8F90 pop r8 1729 068a 7F90 pop r7 1730 068c 6F90 pop r6 1731 068e 5F90 pop r5 1732 0690 4F90 pop r4 1733 0692 3F90 pop r3 GAS LISTING /tmp/cc1dmPbT.s page 32 1734 0694 2F90 pop r2 1735 0696 0895 ret 1736 .size NutHttpProcessRequest, .-NutHttpProcessRequest 1737 .section .progmem.data,"a",@progbits 1738 .type err_fmt_P.2743, @object 1739 .size err_fmt_P.2743, 67 1740 err_fmt_P.2743: 1741 0000 3C48 544D .string "%d %s%d %s\r\n" 1741 4C3E 3C48 1741 4541 443E 1741 3C54 4954 1741 4C45 3E25 1742 .type auth_fmt_P.2744, @object 1743 .size auth_fmt_P.2744, 37 1744 auth_fmt_P.2744: 1745 0043 5757 572D .string "WWW-Authenticate: Basic realm=\"%s\"\r\n" 1745 4175 7468 1745 656E 7469 1745 6361 7465 1745 3A20 4261 1746 .type ccl_str_P.2731, @object 1747 .size ccl_str_P.2731, 10 1748 ccl_str_P.2731: 1749 0068 636C 6F73 .string "close\r\n\r\n" 1749 650D 0A0D 1749 0A00 1750 .type con_str_P.2730, @object 1751 .size con_str_P.2730, 13 1752 con_str_P.2730: 1753 0072 436F 6E6E .string "Connection: " 1753 6563 7469 1753 6F6E 3A20 1753 00 1754 .type len_fmt_P.2728, @object 1755 .size len_fmt_P.2728, 22 1756 len_fmt_P.2728: 1757 007f 436F 6E74 .string "Content-Length: %ld\r\n" 1757 656E 742D 1757 4C65 6E67 1757 7468 3A20 1757 256C 640D 1758 .type typ_fmt_P.2727, @object 1759 .size typ_fmt_P.2727, 19 1760 typ_fmt_P.2727: 1761 0095 436F 6E74 .string "Content-Type: %s\r\n" 1761 656E 742D 1761 5479 7065 1761 3A20 2573 1761 0D0A 00 1762 .type fmt_P.2713, @object 1763 .size fmt_P.2713, 40 1764 fmt_P.2713: 1765 00a8 4854 5450 .string "HTTP/%d.%d %d %s\r\nServer: Ethernut %s\r\n" 1765 2F25 642E 1765 2564 2025 1765 6420 2573 1765 0D0A 5365 GAS LISTING /tmp/cc1dmPbT.s page 33 1766 .local http_optflags 1767 .comm http_optflags,4,1 1768 .global mimeTypes 1769 .section .rodata.str1.1 1770 .LC17: 1771 00bb 2E74 7874 .string ".txt" 1771 00 1772 .LC18: 1773 00c0 7465 7874 .string "text/plain" 1773 2F70 6C61 1773 696E 00 1774 .LC19: 1775 00cb 2E68 746D .string ".html" 1775 6C00 1776 .LC20: 1777 00d1 2E73 6874 .string ".shtml" 1777 6D6C 00 1778 .LC21: 1779 00d8 2E61 7370 .string ".asp" 1779 00 1780 .LC22: 1781 00dd 2E68 746D .string ".htm" 1781 00 1782 .LC23: 1783 00e2 2E67 6966 .string ".gif" 1783 00 1784 .LC24: 1785 00e7 696D 6167 .string "image/gif" 1785 652F 6769 1785 6600 1786 .LC25: 1787 00f1 2E6A 7067 .string ".jpg" 1787 00 1788 .LC26: 1789 00f6 696D 6167 .string "image/jpeg" 1789 652F 6A70 1789 6567 00 1790 .LC27: 1791 0101 2E70 6E67 .string ".png" 1791 00 1792 .LC28: 1793 0106 696D 6167 .string "image/png" 1793 652F 706E 1793 6700 1794 .LC29: 1795 0110 2E62 6D70 .string ".bmp" 1795 00 1796 .LC30: 1797 0115 696D 6167 .string "image/bmp" 1797 652F 626D 1797 7000 1798 .LC31: 1799 011f 2E70 6466 .string ".pdf" 1799 00 1800 .LC32: 1801 0124 6170 706C .string "application/pdf" 1801 6963 6174 GAS LISTING /tmp/cc1dmPbT.s page 34 1801 696F 6E2F 1801 7064 6600 1802 .LC33: 1803 0134 2E6A 7300 .string ".js" 1804 .LC34: 1805 0138 6170 706C .string "application/x-javascript" 1805 6963 6174 1805 696F 6E2F 1805 782D 6A61 1805 7661 7363 1806 .LC35: 1807 0151 2E6A 6172 .string ".jar" 1807 00 1808 .LC36: 1809 0156 6170 706C .string "application/x-java-archive" 1809 6963 6174 1809 696F 6E2F 1809 782D 6A61 1809 7661 2D61 1810 .LC37: 1811 0171 2E63 7373 .string ".css" 1811 00 1812 .LC38: 1813 0176 7465 7874 .string "text/css" 1813 2F63 7373 1813 00 1814 .LC39: 1815 017f 2E78 6D6C .string ".xml" 1815 00 1816 .LC40: 1817 0184 7465 7874 .string "text/xml" 1817 2F78 6D6C 1817 00 1818 .LC41: 1819 018d 2E73 7667 .string ".svg" 1819 00 1820 .LC42: 1821 0192 696D 6167 .string "image/svg+xml" 1821 652F 7376 1821 672B 786D 1821 6C00 1822 .data 1823 .type mimeTypes, @object 1824 .size mimeTypes, 96 1825 mimeTypes: 1826 0000 0000 .word .LC17 1827 0002 0000 .word .LC18 1828 0004 0000 .word 0 1829 0006 0000 .word .LC19 1830 0008 0000 .word .LC9 1831 000a 0000 .word 0 1832 000c 0000 .word .LC20 1833 000e 0000 .word .LC9 1834 0010 0000 .word 0 1835 0012 0000 .word .LC21 1836 0014 0000 .word .LC9 1837 0016 0000 .word 0 GAS LISTING /tmp/cc1dmPbT.s page 35 1838 0018 0000 .word .LC22 1839 001a 0000 .word .LC9 1840 001c 0000 .word 0 1841 001e 0000 .word .LC23 1842 0020 0000 .word .LC24 1843 0022 0000 .word 0 1844 0024 0000 .word .LC25 1845 0026 0000 .word .LC26 1846 0028 0000 .word 0 1847 002a 0000 .word .LC27 1848 002c 0000 .word .LC28 1849 002e 0000 .word 0 1850 0030 0000 .word .LC29 1851 0032 0000 .word .LC30 1852 0034 0000 .word 0 1853 0036 0000 .word .LC31 1854 0038 0000 .word .LC32 1855 003a 0000 .word 0 1856 003c 0000 .word .LC33 1857 003e 0000 .word .LC34 1858 0040 0000 .word 0 1859 0042 0000 .word .LC35 1860 0044 0000 .word .LC36 1861 0046 0000 .word 0 1862 0048 0000 .word .LC37 1863 004a 0000 .word .LC38 1864 004c 0000 .word 0 1865 004e 0000 .word .LC39 1866 0050 0000 .word .LC40 1867 0052 0000 .word 0 1868 0054 0000 .word .LC41 1869 0056 0000 .word .LC42 1870 0058 0000 .word 0 1871 005a 0000 .word 0 1872 005c 0000 .word 0 1873 005e 0000 .word 0 1874 .section .rodata.str1.1 1875 .LC43: 1876 01a0 6163 6365 .string "accept-encoding" 1876 7074 2D65 1876 6E63 6F64 1876 696E 6700 1877 .LC44: 1878 01b0 6175 7468 .string "authorization" 1878 6F72 697A 1878 6174 696F 1878 6E00 1879 .LC45: 1880 01be 636F 6E74 .string "content-length" 1880 656E 742D 1880 6C65 6E67 1880 7468 00 1881 .LC46: 1882 01cd 636F 6E74 .string "content-type" 1882 656E 742D 1882 7479 7065 1882 00 GAS LISTING /tmp/cc1dmPbT.s page 36 1883 .LC47: 1884 01da 636F 6F6B .string "cookie" 1884 6965 00 1885 .LC48: 1886 01e1 686F 7374 .string "host" 1886 00 1887 .LC49: 1888 01e6 6966 2D6D .string "if-modified-since" 1888 6F64 6966 1888 6965 642D 1888 7369 6E63 1888 6500 1889 .LC50: 1890 01f8 7265 6665 .string "referer" 1890 7265 7200 1891 .LC51: 1892 0200 7573 6572 .string "user-agent" 1892 2D61 6765 1892 6E74 00 1893 .section .rodata 1894 .type req_lookup, @object 1895 .size req_lookup, 30 1896 req_lookup: 1897 0000 0F .byte 15 1898 0001 0000 .word .LC43 1899 0003 0D .byte 13 1900 0004 0000 .word .LC44 1901 0006 00 .byte 0 1902 0007 0000 .word 0 1903 0009 0E .byte 14 1904 000a 0000 .word .LC45 1905 000c 0C .byte 12 1906 000d 0000 .word .LC46 1907 000f 06 .byte 6 1908 0010 0000 .word .LC47 1909 0012 04 .byte 4 1910 0013 0000 .word .LC48 1911 0015 11 .byte 17 1912 0016 0000 .word .LC49 1913 0018 07 .byte 7 1914 0019 0000 .word .LC50 1915 001b 0A .byte 10 1916 001c 0000 .word .LC51 1917 .ident "GCC: (GNU) 5.3.0" 1918 .global __do_copy_data 1919 .global __do_clear_bss GAS LISTING /tmp/cc1dmPbT.s page 37 DEFINED SYMBOLS *ABS*:0000000000000000 httpd.c /tmp/cc1dmPbT.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc1dmPbT.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc1dmPbT.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc1dmPbT.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc1dmPbT.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc1dmPbT.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc1dmPbT.s:10 .text.NextWord:0000000000000000 NextWord /tmp/cc1dmPbT.s:41 .text.GetMimeEntry:0000000000000000 GetMimeEntry /tmp/cc1dmPbT.s:1825 .data:0000000000000000 mimeTypes /tmp/cc1dmPbT.s:113 .text.NutHttpSendHeaderBottomEx.isra.0.constprop.2:0000000000000000 NutHttpSendHeaderBottomEx.isra.0.constprop.2 /tmp/cc1dmPbT.s:1760 .progmem.data:0000000000000095 typ_fmt_P.2727 /tmp/cc1dmPbT.s:1756 .progmem.data:000000000000007f len_fmt_P.2728 /tmp/cc1dmPbT.s:1752 .progmem.data:0000000000000072 con_str_P.2730 /tmp/cc1dmPbT.s:1748 .progmem.data:0000000000000068 ccl_str_P.2731 /tmp/cc1dmPbT.s:200 .text.NutHttpSendHeaderTop:0000000000000000 NutHttpSendHeaderTop /tmp/cc1dmPbT.s:1764 .progmem.data:00000000000000a8 fmt_P.2713 .bss:0000000000000000 http_optflags /tmp/cc1dmPbT.s:297 .text.NutHttpSendHeaderBot:0000000000000000 NutHttpSendHeaderBot /tmp/cc1dmPbT.s:307 .text.NutHttpSendHeaderBottom:0000000000000000 NutHttpSendHeaderBottom /tmp/cc1dmPbT.s:344 .text.NutHttpSendError:0000000000000000 NutHttpSendError /tmp/cc1dmPbT.s:1744 .progmem.data:0000000000000043 auth_fmt_P.2744 /tmp/cc1dmPbT.s:1740 .progmem.data:0000000000000000 err_fmt_P.2743 /tmp/cc1dmPbT.s:511 .text.NutGetMimeType:0000000000000000 NutGetMimeType /tmp/cc1dmPbT.s:525 .text.NutGetMimeHandler:0000000000000000 NutGetMimeHandler /tmp/cc1dmPbT.s:539 .text.NutHttpURLDecode:0000000000000000 NutHttpURLDecode /tmp/cc1dmPbT.s:618 .text.NutHttpProcessQueryString:0000000000000000 NutHttpProcessQueryString /tmp/cc1dmPbT.s:780 .text.NutRegisterHttpRoot:0000000000000000 NutRegisterHttpRoot /tmp/cc1dmPbT.s:834 .text.NutHttpSetOptionFlags:0000000000000000 NutHttpSetOptionFlags /tmp/cc1dmPbT.s:848 .text.NutHttpGetOptionFlags:0000000000000000 NutHttpGetOptionFlags /tmp/cc1dmPbT.s:877 .text.NutHttpProcessRequest:0000000000000000 NutHttpProcessRequest /tmp/cc1dmPbT.s:1896 .rodata:0000000000000000 req_lookup UNDEFINED SYMBOLS strcasecmp fprintf_P fputs_P NutVersionString time gmtime Rfc1123TimeString fprintf strrchr strtol malloc http_root free strcpy DestroyRequestInfo calloc fgets strchr fgetc tolower __tablejump2__ atol GAS LISTING /tmp/cc1dmPbT.s page 38 RfcTimeParse strdup NutDecodePath NutHttpAuthValidate NutCgiCheckRequest default_files CreateFilePath _open _filelength _close stat _read fwrite fflush __do_copy_data __do_clear_bss