GAS LISTING /tmp/ccMjQ4SG.s page 1 1 .file "uhttpd.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.HttpAuthValidateAll,"ax",@progbits 9 .type HttpAuthValidateAll, @function 10 HttpAuthValidateAll: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 80E0 ldi r24,0 16 0002 90E0 ldi r25,0 17 0004 0895 ret 18 .size HttpAuthValidateAll, .-HttpAuthValidateAll 19 .section .text.HttpLocationRedirNone,"ax",@progbits 20 .type HttpLocationRedirNone, @function 21 HttpLocationRedirNone: 22 /* prologue: function */ 23 /* frame size = 0 */ 24 /* stack size = 0 */ 25 .L__stack_usage = 0 26 0000 8FEF ldi r24,lo8(-1) 27 0002 9FEF ldi r25,lo8(-1) 28 0004 0895 ret 29 .size HttpLocationRedirNone, .-HttpLocationRedirNone 30 .section .text.HttpArgParseNext,"ax",@progbits 31 .global HttpArgParseNext 32 .type HttpArgParseNext, @function 33 HttpArgParseNext: 34 0000 AF92 push r10 35 0002 BF92 push r11 36 0004 CF92 push r12 37 0006 DF92 push r13 38 0008 EF92 push r14 39 000a FF92 push r15 40 000c 0F93 push r16 41 000e 1F93 push r17 42 0010 CF93 push r28 43 0012 DF93 push r29 44 /* prologue: function */ 45 /* frame size = 0 */ 46 /* stack size = 10 */ 47 .L__stack_usage = 10 48 0014 8C01 movw r16,r24 49 0016 FC01 movw r30,r24 50 0018 C084 ldd r12,Z+8 51 001a D184 ldd r13,Z+9 52 001c C114 cp r12,__zero_reg__ 53 001e D104 cpc r13,__zero_reg__ 54 0020 01F4 brne .+2 55 0022 00C0 rjmp .L9 56 0024 66E2 ldi r22,lo8(38) 57 0026 70E0 ldi r23,0 GAS LISTING /tmp/ccMjQ4SG.s page 2 58 0028 C601 movw r24,r12 59 002a 0E94 0000 call strchr 60 002e 7C01 movw r14,r24 61 0030 0097 sbiw r24,0 62 0032 01F0 breq .L5 63 0034 5C01 movw r10,r24 64 0036 AC18 sub r10,r12 65 0038 BD08 sbc r11,r13 66 003a FFEF ldi r31,-1 67 003c EF1A sub r14,r31 68 003e FF0A sbc r15,r31 69 0040 C501 movw r24,r10 70 0042 0196 adiw r24,1 71 0044 0E94 0000 call malloc 72 0048 EC01 movw r28,r24 73 004a 0097 sbiw r24,0 74 004c 01F0 breq .L6 75 004e A501 movw r20,r10 76 0050 B601 movw r22,r12 77 0052 0E94 0000 call memcpy 78 0056 FE01 movw r30,r28 79 0058 EA0D add r30,r10 80 005a FB1D adc r31,r11 81 005c 1082 st Z,__zero_reg__ 82 005e 00C0 rjmp .L6 83 .L5: 84 0060 C601 movw r24,r12 85 0062 0E94 0000 call strdup 86 0066 EC01 movw r28,r24 87 .L6: 88 0068 F801 movw r30,r16 89 006a F186 std Z+9,r15 90 006c E086 std Z+8,r14 91 006e 2097 sbiw r28,0 92 0070 01F0 breq .L7 93 0072 6DE3 ldi r22,lo8(61) 94 0074 70E0 ldi r23,0 95 0076 CE01 movw r24,r28 96 0078 0E94 0000 call strchr 97 007c 0097 sbiw r24,0 98 007e 01F0 breq .L8 99 0080 7C01 movw r14,r24 100 0082 FFEF ldi r31,-1 101 0084 EF1A sub r14,r31 102 0086 FF0A sbc r15,r31 103 0088 FC01 movw r30,r24 104 008a 1082 st Z,__zero_reg__ 105 008c C701 movw r24,r14 106 008e 0E94 0000 call HttpUrlUnescape 107 0092 C701 movw r24,r14 108 .L8: 109 0094 F801 movw r30,r16 110 0096 9587 std Z+13,r25 111 0098 8487 std Z+12,r24 112 .L7: 113 009a F801 movw r30,r16 114 009c 8285 ldd r24,Z+10 GAS LISTING /tmp/ccMjQ4SG.s page 3 115 009e 9385 ldd r25,Z+11 116 00a0 0E94 0000 call free 117 00a4 F801 movw r30,r16 118 00a6 D387 std Z+11,r29 119 00a8 C287 std Z+10,r28 120 00aa CE01 movw r24,r28 121 00ac 0E94 0000 call HttpUrlUnescape 122 00b0 00C0 rjmp .L4 123 .L9: 124 00b2 C0E0 ldi r28,0 125 00b4 D0E0 ldi r29,0 126 .L4: 127 00b6 CE01 movw r24,r28 128 /* epilogue start */ 129 00b8 DF91 pop r29 130 00ba CF91 pop r28 131 00bc 1F91 pop r17 132 00be 0F91 pop r16 133 00c0 FF90 pop r15 134 00c2 EF90 pop r14 135 00c4 DF90 pop r13 136 00c6 CF90 pop r12 137 00c8 BF90 pop r11 138 00ca AF90 pop r10 139 00cc 0895 ret 140 .size HttpArgParseNext, .-HttpArgParseNext 141 .section .text.HttpArgParseFirst,"ax",@progbits 142 .global HttpArgParseFirst 143 .type HttpArgParseFirst, @function 144 HttpArgParseFirst: 145 /* prologue: function */ 146 /* frame size = 0 */ 147 /* stack size = 0 */ 148 .L__stack_usage = 0 149 0000 FC01 movw r30,r24 150 0002 2681 ldd r18,Z+6 151 0004 3781 ldd r19,Z+7 152 0006 3187 std Z+9,r19 153 0008 2087 std Z+8,r18 154 000a 0C94 0000 jmp HttpArgParseNext 155 .size HttpArgParseFirst, .-HttpArgParseFirst 156 .section .rodata.str1.1,"aMS",@progbits,1 157 .LC0: 158 0000 2600 .string "&" 159 .section .text.HttpArgReadNext,"ax",@progbits 160 .global HttpArgReadNext 161 .type HttpArgReadNext, @function 162 HttpArgReadNext: 163 0000 8F92 push r8 164 0002 9F92 push r9 165 0004 AF92 push r10 166 0006 BF92 push r11 167 0008 CF92 push r12 168 000a DF92 push r13 169 000c EF92 push r14 170 000e FF92 push r15 171 0010 0F93 push r16 GAS LISTING /tmp/ccMjQ4SG.s page 4 172 0012 1F93 push r17 173 0014 CF93 push r28 174 0016 DF93 push r29 175 /* prologue: function */ 176 /* frame size = 0 */ 177 /* stack size = 12 */ 178 .L__stack_usage = 12 179 0018 7C01 movw r14,r24 180 001a 6B01 movw r12,r22 181 001c FB01 movw r30,r22 182 001e 8080 ld r8,Z 183 0020 9180 ldd r9,Z+1 184 0022 A280 ldd r10,Z+2 185 0024 B380 ldd r11,Z+3 186 0026 8114 cp r8,__zero_reg__ 187 0028 9104 cpc r9,__zero_reg__ 188 002a A104 cpc r10,__zero_reg__ 189 002c B104 cpc r11,__zero_reg__ 190 002e 01F4 brne .L22 191 .L25: 192 0030 C12C mov r12,__zero_reg__ 193 0032 D12C mov r13,__zero_reg__ 194 0034 00C0 rjmp .L23 195 .L22: 196 0036 F1E8 ldi r31,-127 197 0038 8F16 cp r8,r31 198 003a 9104 cpc r9,__zero_reg__ 199 003c A104 cpc r10,__zero_reg__ 200 003e B104 cpc r11,__zero_reg__ 201 0040 04F0 brlt .L24 202 0042 80E8 ldi r24,lo8(-128) 203 0044 882E mov r8,r24 204 0046 912C mov r9,__zero_reg__ 205 0048 A12C mov r10,__zero_reg__ 206 004a B12C mov r11,__zero_reg__ 207 .L24: 208 004c C401 movw r24,r8 209 004e 0196 adiw r24,1 210 0050 0E94 0000 call malloc 211 0054 EC01 movw r28,r24 212 0056 0097 sbiw r24,0 213 0058 01F0 breq .L25 214 005a 8401 movw r16,r8 215 005c 9C01 movw r18,r24 216 005e 40E0 ldi r20,0 217 0060 50E0 ldi r21,0 218 0062 60E0 ldi r22,lo8(.LC0) 219 0064 70E0 ldi r23,hi8(.LC0) 220 0066 F701 movw r30,r14 221 0068 8081 ld r24,Z 222 006a 9181 ldd r25,Z+1 223 006c 0E94 0000 call StreamReadUntilChars 224 0070 1816 cp __zero_reg__,r24 225 0072 1906 cpc __zero_reg__,r25 226 0074 04F4 brge .L28 227 0076 092E mov __tmp_reg__,r25 228 0078 000C lsl r0 GAS LISTING /tmp/ccMjQ4SG.s page 5 229 007a AA0B sbc r26,r26 230 007c BB0B sbc r27,r27 231 007e F601 movw r30,r12 232 0080 4081 ld r20,Z 233 0082 5181 ldd r21,Z+1 234 0084 6281 ldd r22,Z+2 235 0086 7381 ldd r23,Z+3 236 0088 8A01 movw r16,r20 237 008a 9B01 movw r18,r22 238 008c 081B sub r16,r24 239 008e 190B sbc r17,r25 240 0090 2A0B sbc r18,r26 241 0092 3B0B sbc r19,r27 242 0094 0083 st Z,r16 243 0096 1183 std Z+1,r17 244 0098 2283 std Z+2,r18 245 009a 3383 std Z+3,r19 246 009c CE01 movw r24,r28 247 009e 0E94 0000 call strdup 248 00a2 6C01 movw r12,r24 249 00a4 F701 movw r30,r14 250 00a6 8485 ldd r24,Z+12 251 00a8 9585 ldd r25,Z+13 252 00aa 0E94 0000 call free 253 00ae F701 movw r30,r14 254 00b0 D586 std Z+13,r13 255 00b2 C486 std Z+12,r12 256 00b4 6DE3 ldi r22,lo8(61) 257 00b6 70E0 ldi r23,0 258 00b8 C601 movw r24,r12 259 00ba 0E94 0000 call strchr 260 00be 0097 sbiw r24,0 261 00c0 01F0 breq .L27 262 00c2 5C01 movw r10,r24 263 00c4 FFEF ldi r31,-1 264 00c6 AF1A sub r10,r31 265 00c8 BF0A sbc r11,r31 266 00ca FC01 movw r30,r24 267 00cc 1082 st Z,__zero_reg__ 268 00ce C501 movw r24,r10 269 00d0 0E94 0000 call HttpUrlUnescape 270 00d4 F701 movw r30,r14 271 00d6 B786 std Z+15,r11 272 00d8 A686 std Z+14,r10 273 .L27: 274 00da C601 movw r24,r12 275 00dc 0E94 0000 call HttpUrlUnescape 276 00e0 00C0 rjmp .L26 277 .L28: 278 00e2 C12C mov r12,__zero_reg__ 279 00e4 D12C mov r13,__zero_reg__ 280 .L26: 281 00e6 CE01 movw r24,r28 282 00e8 0E94 0000 call free 283 .L23: 284 00ec C601 movw r24,r12 285 /* epilogue start */ GAS LISTING /tmp/ccMjQ4SG.s page 6 286 00ee DF91 pop r29 287 00f0 CF91 pop r28 288 00f2 1F91 pop r17 289 00f4 0F91 pop r16 290 00f6 FF90 pop r15 291 00f8 EF90 pop r14 292 00fa DF90 pop r13 293 00fc CF90 pop r12 294 00fe BF90 pop r11 295 0100 AF90 pop r10 296 0102 9F90 pop r9 297 0104 8F90 pop r8 298 0106 0895 ret 299 .size HttpArgReadNext, .-HttpArgReadNext 300 .section .text.HttpArgValue,"ax",@progbits 301 .global HttpArgValue 302 .type HttpArgValue, @function 303 HttpArgValue: 304 /* prologue: function */ 305 /* frame size = 0 */ 306 /* stack size = 0 */ 307 .L__stack_usage = 0 308 0000 FC01 movw r30,r24 309 0002 8485 ldd r24,Z+12 310 0004 9585 ldd r25,Z+13 311 0006 0895 ret 312 .size HttpArgValue, .-HttpArgValue 313 .section .rodata.str1.1 314 .LC1: 315 0002 3D22 3B00 .string "=\";" 316 .LC2: 317 0006 223B 00 .string "\";" 318 .section .text.HttpArgValueSub,"ax",@progbits 319 .global HttpArgValueSub 320 .type HttpArgValueSub, @function 321 HttpArgValueSub: 322 0000 8F92 push r8 323 0002 9F92 push r9 324 0004 AF92 push r10 325 0006 BF92 push r11 326 0008 CF92 push r12 327 000a DF92 push r13 328 000c EF92 push r14 329 000e FF92 push r15 330 0010 0F93 push r16 331 0012 1F93 push r17 332 0014 CF93 push r28 333 0016 DF93 push r29 334 /* prologue: function */ 335 /* frame size = 0 */ 336 /* stack size = 12 */ 337 .L__stack_usage = 12 338 0018 4C01 movw r8,r24 339 001a 6B01 movw r12,r22 340 001c 7A01 movw r14,r20 341 001e FB01 movw r30,r22 342 0: GAS LISTING /tmp/ccMjQ4SG.s page 7 343 0020 0190 ld __tmp_reg__,Z+ 344 0022 0020 tst __tmp_reg__ 345 0024 01F4 brne 0b 346 0026 3197 sbiw r30,1 347 0028 8F01 movw r16,r30 348 002a 061B sub r16,r22 349 002c 170B sbc r17,r23 350 002e FA01 movw r30,r20 351 0030 1182 std Z+1,__zero_reg__ 352 0032 1082 st Z,__zero_reg__ 353 .L40: 354 0034 6BE3 ldi r22,lo8(59) 355 0036 70E0 ldi r23,0 356 0038 C401 movw r24,r8 357 003a 0E94 0000 call strchr 358 003e EC01 movw r28,r24 359 0040 892B or r24,r25 360 0042 01F4 brne .+2 361 0044 00C0 rjmp .L38 362 0046 2196 adiw r28,1 363 .L39: 364 0048 4E01 movw r8,r28 365 004a 2196 adiw r28,1 366 004c F401 movw r30,r8 367 004e 8081 ld r24,Z 368 0050 8032 cpi r24,lo8(32) 369 0052 01F0 breq .L39 370 0054 A801 movw r20,r16 371 0056 B601 movw r22,r12 372 0058 C401 movw r24,r8 373 005a 0E94 0000 call strncasecmp 374 005e 892B or r24,r25 375 0060 01F4 brne .L40 376 0062 5401 movw r10,r8 377 0064 A00E add r10,r16 378 0066 B11E adc r11,r17 379 .L42: 380 0068 4501 movw r8,r10 381 006a F501 movw r30,r10 382 006c C191 ld r28,Z+ 383 006e 5F01 movw r10,r30 384 0070 CC23 tst r28 385 0072 01F0 breq .L40 386 0074 6C2F mov r22,r28 387 0076 0C2E mov __tmp_reg__,r28 388 0078 000C lsl r0 389 007a 770B sbc r23,r23 390 007c 80E0 ldi r24,lo8(.LC1) 391 007e 90E0 ldi r25,hi8(.LC1) 392 0080 0E94 0000 call strchr 393 0084 892B or r24,r25 394 0086 01F0 breq .L42 395 0088 CD33 cpi r28,lo8(61) 396 008a 01F4 brne .L40 397 008c C501 movw r24,r10 398 .L43: 399 008e FC01 movw r30,r24 GAS LISTING /tmp/ccMjQ4SG.s page 8 400 0090 2081 ld r18,Z 401 0092 0196 adiw r24,1 402 0094 2032 cpi r18,lo8(32) 403 0096 01F0 breq .L43 404 0098 C1E0 ldi r28,lo8(1) 405 009a D0E0 ldi r29,0 406 009c 2232 cpi r18,lo8(34) 407 009e 01F0 breq .L44 408 00a0 C0E0 ldi r28,0 409 00a2 D0E0 ldi r29,0 410 .L44: 411 00a4 CE0F add r28,r30 412 00a6 DF1F adc r29,r31 413 .L45: 414 00a8 F701 movw r30,r14 415 00aa 0081 ld r16,Z 416 00ac 1181 ldd r17,Z+1 417 00ae FE01 movw r30,r28 418 00b0 E00F add r30,r16 419 00b2 F11F adc r31,r17 420 00b4 6081 ld r22,Z 421 00b6 6623 tst r22 422 00b8 01F0 breq .L38 423 00ba 062E mov __tmp_reg__,r22 424 00bc 000C lsl r0 425 00be 770B sbc r23,r23 426 00c0 80E0 ldi r24,lo8(.LC2) 427 00c2 90E0 ldi r25,hi8(.LC2) 428 00c4 0E94 0000 call strchr 429 00c8 892B or r24,r25 430 00ca 01F4 brne .L38 431 00cc 0F5F subi r16,-1 432 00ce 1F4F sbci r17,-1 433 00d0 F701 movw r30,r14 434 00d2 1183 std Z+1,r17 435 00d4 0083 st Z,r16 436 00d6 00C0 rjmp .L45 437 .L38: 438 00d8 CE01 movw r24,r28 439 /* epilogue start */ 440 00da DF91 pop r29 441 00dc CF91 pop r28 442 00de 1F91 pop r17 443 00e0 0F91 pop r16 444 00e2 FF90 pop r15 445 00e4 EF90 pop r14 446 00e6 DF90 pop r13 447 00e8 CF90 pop r12 448 00ea BF90 pop r11 449 00ec AF90 pop r10 450 00ee 9F90 pop r9 451 00f0 8F90 pop r8 452 00f2 0895 ret 453 .size HttpArgValueSub, .-HttpArgValueSub 454 .section .rodata.str1.1 455 .LC3: 456 0009 0D00 .string "\r" GAS LISTING /tmp/ccMjQ4SG.s page 9 457 .LC4: 458 000b 0A00 .string "\n" 459 .LC5: 460 000d 2D2D 00 .string "--" 461 .LC6: 462 0010 3A0A 00 .string ":\n" 463 .section .text.HttpParseMultipartHeader,"ax",@progbits 464 .global HttpParseMultipartHeader 465 .type HttpParseMultipartHeader, @function 466 HttpParseMultipartHeader: 467 0000 2F92 push r2 468 0002 3F92 push r3 469 0004 4F92 push r4 470 0006 5F92 push r5 471 0008 6F92 push r6 472 000a 7F92 push r7 473 000c 8F92 push r8 474 000e 9F92 push r9 475 0010 AF92 push r10 476 0012 BF92 push r11 477 0014 CF92 push r12 478 0016 DF92 push r13 479 0018 EF92 push r14 480 001a FF92 push r15 481 001c 0F93 push r16 482 001e 1F93 push r17 483 0020 CF93 push r28 484 0022 DF93 push r29 485 /* prologue: function */ 486 /* frame size = 0 */ 487 /* stack size = 18 */ 488 .L__stack_usage = 18 489 0024 6C01 movw r12,r24 490 0026 4B01 movw r8,r22 491 0028 7A01 movw r14,r20 492 002a FB01 movw r30,r22 493 0: 494 002c 0190 ld __tmp_reg__,Z+ 495 002e 0020 tst __tmp_reg__ 496 0030 01F4 brne 0b 497 0032 3197 sbiw r30,1 498 0034 5F01 movw r10,r30 499 0036 A61A sub r10,r22 500 0038 B70A sbc r11,r23 501 003a FA01 movw r30,r20 502 003c 8081 ld r24,Z 503 003e 9181 ldd r25,Z+1 504 0040 A281 ldd r26,Z+2 505 0042 B381 ldd r27,Z+3 506 0044 8130 cpi r24,1 507 0046 F1E0 ldi r31,1 508 0048 9F07 cpc r25,r31 509 004a A105 cpc r26,__zero_reg__ 510 004c B105 cpc r27,__zero_reg__ 511 004e 04F0 brlt .L67 512 0050 80E0 ldi r24,0 513 0052 91E0 ldi r25,lo8(1) GAS LISTING /tmp/ccMjQ4SG.s page 10 514 0054 A0E0 ldi r26,0 515 0056 B0E0 ldi r27,0 516 .L67: 517 0058 0196 adiw r24,1 518 005a 0E94 0000 call malloc 519 005e EC01 movw r28,r24 520 0060 892B or r24,r25 521 0062 01F4 brne .+2 522 0064 00C0 rjmp .L85 523 0066 F601 movw r30,r12 524 0068 84A5 ldd r24,Z+44 525 006a 95A5 ldd r25,Z+45 526 006c 0E94 0000 call free 527 0070 F601 movw r30,r12 528 0072 15A6 std Z+45,__zero_reg__ 529 0074 14A6 std Z+44,__zero_reg__ 530 0076 82A5 ldd r24,Z+42 531 0078 93A5 ldd r25,Z+43 532 007a 0E94 0000 call free 533 007e F601 movw r30,r12 534 0080 13A6 std Z+43,__zero_reg__ 535 0082 12A6 std Z+42,__zero_reg__ 536 0084 612C mov r6,__zero_reg__ 537 0086 712C mov r7,__zero_reg__ 538 .L69: 539 0088 F701 movw r30,r14 540 008a 0081 ld r16,Z 541 008c 1181 ldd r17,Z+1 542 008e 2281 ldd r18,Z+2 543 0090 3381 ldd r19,Z+3 544 0092 0115 cp r16,__zero_reg__ 545 0094 1105 cpc r17,__zero_reg__ 546 0096 2105 cpc r18,__zero_reg__ 547 0098 3105 cpc r19,__zero_reg__ 548 009a 01F0 breq .L71 549 009c 0130 cpi r16,1 550 009e F1E0 ldi r31,1 551 00a0 1F07 cpc r17,r31 552 00a2 2105 cpc r18,__zero_reg__ 553 00a4 3105 cpc r19,__zero_reg__ 554 00a6 04F0 brlt .L70 555 00a8 00E0 ldi r16,0 556 00aa 11E0 ldi r17,lo8(1) 557 00ac 20E0 ldi r18,0 558 00ae 30E0 ldi r19,0 559 .L70: 560 00b0 9E01 movw r18,r28 561 00b2 40E0 ldi r20,lo8(.LC3) 562 00b4 50E0 ldi r21,hi8(.LC3) 563 00b6 60E0 ldi r22,lo8(.LC4) 564 00b8 70E0 ldi r23,hi8(.LC4) 565 00ba F601 movw r30,r12 566 00bc 8081 ld r24,Z 567 00be 9181 ldd r25,Z+1 568 00c0 0E94 0000 call StreamReadUntilChars 569 00c4 3C01 movw r6,r24 570 00c6 1816 cp __zero_reg__,r24 GAS LISTING /tmp/ccMjQ4SG.s page 11 571 00c8 1906 cpc __zero_reg__,r25 572 00ca 04F4 brge .L71 573 00cc F701 movw r30,r14 574 00ce 8081 ld r24,Z 575 00d0 9181 ldd r25,Z+1 576 00d2 A281 ldd r26,Z+2 577 00d4 B381 ldd r27,Z+3 578 00d6 A301 movw r20,r6 579 00d8 072C mov __tmp_reg__,r7 580 00da 000C lsl r0 581 00dc 660B sbc r22,r22 582 00de 770B sbc r23,r23 583 00e0 841B sub r24,r20 584 00e2 950B sbc r25,r21 585 00e4 A60B sbc r26,r22 586 00e6 B70B sbc r27,r23 587 00e8 8083 st Z,r24 588 00ea 9183 std Z+1,r25 589 00ec A283 std Z+2,r26 590 00ee B383 std Z+3,r27 591 00f0 A614 cp r10,r6 592 00f2 B704 cpc r11,r7 593 00f4 04F4 brge .L69 594 00f6 A501 movw r20,r10 595 00f8 B401 movw r22,r8 596 00fa CE01 movw r24,r28 597 00fc 0E94 0000 call strncmp 598 0100 892B or r24,r25 599 0102 01F4 brne .L69 600 .L71: 601 0104 C501 movw r24,r10 602 0106 0196 adiw r24,1 603 0108 8615 cp r24,r6 604 010a 9705 cpc r25,r7 605 010c 04F4 brge .L74 606 010e 42E0 ldi r20,lo8(2) 607 0110 50E0 ldi r21,0 608 0112 60E0 ldi r22,lo8(.LC5) 609 0114 70E0 ldi r23,hi8(.LC5) 610 0116 CE01 movw r24,r28 611 0118 8A0D add r24,r10 612 011a 9B1D adc r25,r11 613 011c 0E94 0000 call strncmp 614 0120 892B or r24,r25 615 0122 01F4 brne .L74 616 .L77: 617 0124 0FEF ldi r16,lo8(-1) 618 0126 1FEF ldi r17,lo8(-1) 619 0128 00C0 rjmp .L75 620 .L74: 621 012a 3601 movw r6,r12 622 012c FCE2 ldi r31,44 623 012e 6F0E add r6,r31 624 0130 711C adc r7,__zero_reg__ 625 0132 4601 movw r8,r12 626 0134 0AE2 ldi r16,42 627 0136 800E add r8,r16 GAS LISTING /tmp/ccMjQ4SG.s page 12 628 0138 911C adc r9,__zero_reg__ 629 .L83: 630 013a F701 movw r30,r14 631 013c 0081 ld r16,Z 632 013e 1181 ldd r17,Z+1 633 0140 2281 ldd r18,Z+2 634 0142 3381 ldd r19,Z+3 635 0144 0115 cp r16,__zero_reg__ 636 0146 1105 cpc r17,__zero_reg__ 637 0148 2105 cpc r18,__zero_reg__ 638 014a 3105 cpc r19,__zero_reg__ 639 014c 01F0 breq .L77 640 014e 0130 cpi r16,1 641 0150 F1E0 ldi r31,1 642 0152 1F07 cpc r17,r31 643 0154 2105 cpc r18,__zero_reg__ 644 0156 3105 cpc r19,__zero_reg__ 645 0158 04F0 brlt .L76 646 015a 00E0 ldi r16,0 647 015c 11E0 ldi r17,lo8(1) 648 015e 20E0 ldi r18,0 649 0160 30E0 ldi r19,0 650 .L76: 651 0162 9E01 movw r18,r28 652 0164 40E0 ldi r20,lo8(.LC3) 653 0166 50E0 ldi r21,hi8(.LC3) 654 0168 60E0 ldi r22,lo8(.LC6) 655 016a 70E0 ldi r23,hi8(.LC6) 656 016c F601 movw r30,r12 657 016e 8081 ld r24,Z 658 0170 9181 ldd r25,Z+1 659 0172 0E94 0000 call StreamReadUntilChars 660 0176 1816 cp __zero_reg__,r24 661 0178 1906 cpc __zero_reg__,r25 662 017a 04F4 brge .L77 663 017c 092E mov __tmp_reg__,r25 664 017e 000C lsl r0 665 0180 AA0B sbc r26,r26 666 0182 BB0B sbc r27,r27 667 0184 F701 movw r30,r14 668 0186 4081 ld r20,Z 669 0188 5181 ldd r21,Z+1 670 018a 6281 ldd r22,Z+2 671 018c 7381 ldd r23,Z+3 672 018e 1A01 movw r2,r20 673 0190 2B01 movw r4,r22 674 0192 281A sub r2,r24 675 0194 390A sbc r3,r25 676 0196 4A0A sbc r4,r26 677 0198 5B0A sbc r5,r27 678 019a 2082 st Z,r2 679 019c 3182 std Z+1,r3 680 019e 4282 std Z+2,r4 681 01a0 5382 std Z+3,r5 682 01a2 8881 ld r24,Y 683 01a4 8823 tst r24 684 01a6 01F4 brne .+2 GAS LISTING /tmp/ccMjQ4SG.s page 13 685 01a8 00C0 rjmp .L86 686 01aa 60E0 ldi r22,lo8(ct_Content_Disposition) 687 01ac 70E0 ldi r23,hi8(ct_Content_Disposition) 688 01ae CE01 movw r24,r28 689 01b0 0E94 0000 call strcasecmp 690 01b4 892B or r24,r25 691 01b6 01F4 brne .L78 692 01b8 5401 movw r10,r8 693 01ba 00C0 rjmp .L79 694 .L78: 695 01bc 60E0 ldi r22,lo8(ct_Content_Type) 696 01be 70E0 ldi r23,hi8(ct_Content_Type) 697 01c0 CE01 movw r24,r28 698 01c2 0E94 0000 call strcasecmp 699 01c6 892B or r24,r25 700 01c8 01F4 brne .L80 701 01ca 5301 movw r10,r6 702 01cc 00C0 rjmp .L79 703 .L80: 704 01ce 8101 movw r16,r2 705 01d0 20E0 ldi r18,0 706 01d2 30E0 ldi r19,0 707 01d4 40E0 ldi r20,0 708 01d6 50E0 ldi r21,0 709 01d8 60E0 ldi r22,lo8(.LC4) 710 01da 70E0 ldi r23,hi8(.LC4) 711 01dc F601 movw r30,r12 712 01de 8081 ld r24,Z 713 01e0 9181 ldd r25,Z+1 714 01e2 0E94 0000 call StreamReadUntilChars 715 01e6 1816 cp __zero_reg__,r24 716 01e8 1906 cpc __zero_reg__,r25 717 01ea 04F0 brlt .+2 718 01ec 00C0 rjmp .L77 719 01ee 092E mov __tmp_reg__,r25 720 01f0 000C lsl r0 721 01f2 AA0B sbc r26,r26 722 01f4 BB0B sbc r27,r27 723 01f6 F701 movw r30,r14 724 01f8 4081 ld r20,Z 725 01fa 5181 ldd r21,Z+1 726 01fc 6281 ldd r22,Z+2 727 01fe 7381 ldd r23,Z+3 728 0200 8A01 movw r16,r20 729 0202 9B01 movw r18,r22 730 0204 081B sub r16,r24 731 0206 190B sbc r17,r25 732 0208 2A0B sbc r18,r26 733 020a 3B0B sbc r19,r27 734 020c 0083 st Z,r16 735 020e 1183 std Z+1,r17 736 0210 2283 std Z+2,r18 737 0212 3383 std Z+3,r19 738 0214 00C0 rjmp .L83 739 .L79: 740 0216 A114 cp r10,__zero_reg__ 741 0218 B104 cpc r11,__zero_reg__ GAS LISTING /tmp/ccMjQ4SG.s page 14 742 021a 01F4 brne .+2 743 021c 00C0 rjmp .L83 744 021e 9201 movw r18,r4 745 0220 8101 movw r16,r2 746 0222 F1E0 ldi r31,1 747 0224 2F16 cp r2,r31 748 0226 3F06 cpc r3,r31 749 0228 4104 cpc r4,__zero_reg__ 750 022a 5104 cpc r5,__zero_reg__ 751 022c 04F0 brlt .L82 752 022e 00E0 ldi r16,0 753 0230 11E0 ldi r17,lo8(1) 754 0232 20E0 ldi r18,0 755 0234 30E0 ldi r19,0 756 .L82: 757 0236 9E01 movw r18,r28 758 0238 40E0 ldi r20,lo8(.LC3) 759 023a 50E0 ldi r21,hi8(.LC3) 760 023c 60E0 ldi r22,lo8(.LC4) 761 023e 70E0 ldi r23,hi8(.LC4) 762 0240 F601 movw r30,r12 763 0242 8081 ld r24,Z 764 0244 9181 ldd r25,Z+1 765 0246 0E94 0000 call StreamReadUntilChars 766 024a 1816 cp __zero_reg__,r24 767 024c 1906 cpc __zero_reg__,r25 768 024e 04F0 brlt .+2 769 0250 00C0 rjmp .L77 770 0252 092E mov __tmp_reg__,r25 771 0254 000C lsl r0 772 0256 AA0B sbc r26,r26 773 0258 BB0B sbc r27,r27 774 025a F701 movw r30,r14 775 025c 4081 ld r20,Z 776 025e 5181 ldd r21,Z+1 777 0260 6281 ldd r22,Z+2 778 0262 7381 ldd r23,Z+3 779 0264 8A01 movw r16,r20 780 0266 9B01 movw r18,r22 781 0268 081B sub r16,r24 782 026a 190B sbc r17,r25 783 026c 2A0B sbc r18,r26 784 026e 3B0B sbc r19,r27 785 0270 0083 st Z,r16 786 0272 1183 std Z+1,r17 787 0274 2283 std Z+2,r18 788 0276 3383 std Z+3,r19 789 0278 CE01 movw r24,r28 790 027a 0E94 0000 call strdup 791 027e F501 movw r30,r10 792 0280 9183 std Z+1,r25 793 0282 8083 st Z,r24 794 0284 00C0 rjmp .L83 795 .L86: 796 0286 00E0 ldi r16,0 797 0288 10E0 ldi r17,0 798 .L75: GAS LISTING /tmp/ccMjQ4SG.s page 15 799 028a CE01 movw r24,r28 800 028c 0E94 0000 call free 801 0290 C801 movw r24,r16 802 0292 00C0 rjmp .L68 803 .L85: 804 0294 8FEF ldi r24,lo8(-1) 805 0296 9FEF ldi r25,lo8(-1) 806 .L68: 807 /* epilogue start */ 808 0298 DF91 pop r29 809 029a CF91 pop r28 810 029c 1F91 pop r17 811 029e 0F91 pop r16 812 02a0 FF90 pop r15 813 02a2 EF90 pop r14 814 02a4 DF90 pop r13 815 02a6 CF90 pop r12 816 02a8 BF90 pop r11 817 02aa AF90 pop r10 818 02ac 9F90 pop r9 819 02ae 8F90 pop r8 820 02b0 7F90 pop r7 821 02b2 6F90 pop r6 822 02b4 5F90 pop r5 823 02b6 4F90 pop r4 824 02b8 3F90 pop r3 825 02ba 2F90 pop r2 826 02bc 0895 ret 827 .size HttpParseMultipartHeader, .-HttpParseMultipartHeader 828 .section .rodata.str1.1 829 .LC7: 830 0013 200A 00 .string " \n" 831 .LC8: 832 0016 200D 00 .string " \r" 833 .LC9: 834 0019 4854 5450 .string "HTTP/" 834 2F00 835 .section .text.HttpParseHeader,"ax",@progbits 836 .global HttpParseHeader 837 .type HttpParseHeader, @function 838 HttpParseHeader: 839 0000 2F92 push r2 840 0002 3F92 push r3 841 0004 4F92 push r4 842 0006 5F92 push r5 843 0008 6F92 push r6 844 000a 7F92 push r7 845 000c 8F92 push r8 846 000e 9F92 push r9 847 0010 AF92 push r10 848 0012 BF92 push r11 849 0014 CF92 push r12 850 0016 DF92 push r13 851 0018 EF92 push r14 852 001a FF92 push r15 853 001c 0F93 push r16 854 001e 1F93 push r17 GAS LISTING /tmp/ccMjQ4SG.s page 16 855 0020 CF93 push r28 856 0022 DF93 push r29 857 0024 CDB7 in r28,__SP_L__ 858 0026 DEB7 in r29,__SP_H__ 859 0028 2897 sbiw r28,8 860 002a 0FB6 in __tmp_reg__,__SREG__ 861 002c F894 cli 862 002e DEBF out __SP_H__,r29 863 0030 0FBE out __SREG__,__tmp_reg__ 864 0032 CDBF out __SP_L__,r28 865 /* prologue: function */ 866 /* frame size = 8 */ 867 /* stack size = 26 */ 868 .L__stack_usage = 26 869 0034 7C01 movw r14,r24 870 0036 81E0 ldi r24,lo8(1) 871 0038 91E0 ldi r25,lo8(1) 872 003a 0E94 0000 call malloc 873 003e 9887 std Y+8,r25 874 0040 8F83 std Y+7,r24 875 0042 892B or r24,r25 876 0044 01F4 brne .+2 877 0046 00C0 rjmp .L117 878 0048 8CE2 ldi r24,lo8(44) 879 004a F701 movw r30,r14 880 004c 3296 adiw r30,2 881 004e DF01 movw r26,r30 882 0: 883 0050 1D92 st X+,__zero_reg__ 884 0052 8A95 dec r24 885 0054 01F4 brne 0b 886 0056 00E0 ldi r16,0 887 0058 11E0 ldi r17,lo8(1) 888 005a 2F81 ldd r18,Y+7 889 005c 3885 ldd r19,Y+8 890 005e 40E0 ldi r20,lo8(.LC3) 891 0060 50E0 ldi r21,hi8(.LC3) 892 0062 60E0 ldi r22,lo8(.LC7) 893 0064 70E0 ldi r23,hi8(.LC7) 894 0066 F701 movw r30,r14 895 0068 8081 ld r24,Z 896 006a 9181 ldd r25,Z+1 897 006c 0E94 0000 call StreamReadUntilChars 898 0070 1816 cp __zero_reg__,r24 899 0072 1906 cpc __zero_reg__,r25 900 0074 04F4 brge .L129 901 0076 60E0 ldi r22,lo8(ct_GET) 902 0078 70E0 ldi r23,hi8(ct_GET) 903 007a 8F81 ldd r24,Y+7 904 007c 9885 ldd r25,Y+8 905 007e 0E94 0000 call strcasecmp 906 0082 892B or r24,r25 907 0084 01F4 brne .L96 908 0086 81E0 ldi r24,lo8(1) 909 0088 90E0 ldi r25,0 910 008a 00C0 rjmp .L128 911 .L96: GAS LISTING /tmp/ccMjQ4SG.s page 17 912 008c 60E0 ldi r22,lo8(ct_HEAD) 913 008e 70E0 ldi r23,hi8(ct_HEAD) 914 0090 8F81 ldd r24,Y+7 915 0092 9885 ldd r25,Y+8 916 0094 0E94 0000 call strcasecmp 917 0098 892B or r24,r25 918 009a 01F4 brne .L98 919 009c 83E0 ldi r24,lo8(3) 920 009e 90E0 ldi r25,0 921 00a0 F701 movw r30,r14 922 00a2 9383 std Z+3,r25 923 00a4 8283 std Z+2,r24 924 00a6 00C0 rjmp .L97 925 .L98: 926 00a8 60E0 ldi r22,lo8(ct_POST) 927 00aa 70E0 ldi r23,hi8(ct_POST) 928 00ac 8F81 ldd r24,Y+7 929 00ae 9885 ldd r25,Y+8 930 00b0 0E94 0000 call strcasecmp 931 00b4 892B or r24,r25 932 00b6 01F4 brne .L99 933 00b8 82E0 ldi r24,lo8(2) 934 00ba 90E0 ldi r25,0 935 .L128: 936 00bc D701 movw r26,r14 937 00be 1396 adiw r26,2+1 938 00c0 9C93 st X,r25 939 00c2 8E93 st -X,r24 940 00c4 1297 sbiw r26,2 941 00c6 00C0 rjmp .L97 942 .L99: 943 00c8 65EF ldi r22,lo8(-11) 944 00ca 71E0 ldi r23,lo8(1) 945 00cc C701 movw r24,r14 946 00ce 0E94 0000 call HttpSendError 947 .L129: 948 00d2 8F81 ldd r24,Y+7 949 00d4 9885 ldd r25,Y+8 950 00d6 0E94 0000 call free 951 00da 00C0 rjmp .L117 952 .L97: 953 00dc 00E0 ldi r16,0 954 00de 11E0 ldi r17,lo8(1) 955 00e0 2F81 ldd r18,Y+7 956 00e2 3885 ldd r19,Y+8 957 00e4 40E0 ldi r20,lo8(.LC3) 958 00e6 50E0 ldi r21,hi8(.LC3) 959 00e8 60E0 ldi r22,lo8(.LC7) 960 00ea 70E0 ldi r23,hi8(.LC7) 961 00ec F701 movw r30,r14 962 00ee 8081 ld r24,Z 963 00f0 9181 ldd r25,Z+1 964 00f2 0E94 0000 call StreamReadUntilChars 965 00f6 6FE3 ldi r22,lo8(63) 966 00f8 70E0 ldi r23,0 967 00fa 8F81 ldd r24,Y+7 968 00fc 9885 ldd r25,Y+8 GAS LISTING /tmp/ccMjQ4SG.s page 18 969 00fe 0E94 0000 call strchr 970 0102 0097 sbiw r24,0 971 0104 01F0 breq .L100 972 0106 DC01 movw r26,r24 973 0108 1D92 st X+,__zero_reg__ 974 010a CD01 movw r24,r26 975 010c 0E94 0000 call strdup 976 0110 F701 movw r30,r14 977 0112 9187 std Z+9,r25 978 0114 8087 std Z+8,r24 979 .L100: 980 0116 8F81 ldd r24,Y+7 981 0118 9885 ldd r25,Y+8 982 011a 0E94 0000 call strdup 983 011e 0E94 0000 call UriUnescape 984 0122 D701 movw r26,r14 985 0124 1596 adiw r26,4+1 986 0126 9C93 st X,r25 987 0128 8E93 st -X,r24 988 012a 1497 sbiw r26,4 989 012c 00E0 ldi r16,0 990 012e 11E0 ldi r17,lo8(1) 991 0130 2F81 ldd r18,Y+7 992 0132 3885 ldd r19,Y+8 993 0134 40E0 ldi r20,lo8(.LC8) 994 0136 50E0 ldi r21,hi8(.LC8) 995 0138 60E0 ldi r22,lo8(.LC4) 996 013a 70E0 ldi r23,hi8(.LC4) 997 013c 8D91 ld r24,X+ 998 013e 9C91 ld r25,X 999 0140 0E94 0000 call StreamReadUntilChars 1000 0144 45E0 ldi r20,lo8(5) 1001 0146 50E0 ldi r21,0 1002 0148 60E0 ldi r22,lo8(.LC9) 1003 014a 70E0 ldi r23,hi8(.LC9) 1004 014c 8F81 ldd r24,Y+7 1005 014e 9885 ldd r25,Y+8 1006 0150 0E94 0000 call strncasecmp 1007 0154 892B or r24,r25 1008 0156 01F0 breq .L101 1009 0158 89E0 ldi r24,lo8(9) 1010 015a 90E0 ldi r25,0 1011 015c F701 movw r30,r14 1012 015e 9783 std Z+7,r25 1013 0160 8683 std Z+6,r24 1014 .L103: 1015 0162 C701 movw r24,r14 1016 0164 4E96 adiw r24,30 1017 0166 9A83 std Y+2,r25 1018 0168 8983 std Y+1,r24 1019 016a D701 movw r26,r14 1020 016c 9496 adiw r26,36 1021 016e BC83 std Y+4,r27 1022 0170 AB83 std Y+3,r26 1023 0172 F701 movw r30,r14 1024 0174 B696 adiw r30,38 1025 0176 FE83 std Y+6,r31 GAS LISTING /tmp/ccMjQ4SG.s page 19 1026 0178 ED83 std Y+5,r30 1027 017a 1701 movw r2,r14 1028 017c FAE1 ldi r31,26 1029 017e 2F0E add r2,r31 1030 0180 311C adc r3,__zero_reg__ 1031 0182 2701 movw r4,r14 1032 0184 88E1 ldi r24,24 1033 0186 480E add r4,r24 1034 0188 511C adc r5,__zero_reg__ 1035 018a 3701 movw r6,r14 1036 018c 9CE1 ldi r25,28 1037 018e 690E add r6,r25 1038 0190 711C adc r7,__zero_reg__ 1039 0192 4701 movw r8,r14 1040 0194 A8E2 ldi r26,40 1041 0196 8A0E add r8,r26 1042 0198 911C adc r9,__zero_reg__ 1043 019a 00C0 rjmp .L116 1044 .L101: 1045 019c EF81 ldd r30,Y+7 1046 019e F885 ldd r31,Y+8 1047 01a0 8581 ldd r24,Z+5 1048 01a2 082E mov __tmp_reg__,r24 1049 01a4 000C lsl r0 1050 01a6 990B sbc r25,r25 1051 01a8 C097 sbiw r24,48 1052 01aa 9C01 movw r18,r24 1053 01ac 84E0 ldi r24,4 1054 1: 1055 01ae 220F lsl r18 1056 01b0 331F rol r19 1057 01b2 8A95 dec r24 1058 01b4 01F4 brne 1b 1059 01b6 8681 ldd r24,Z+6 1060 01b8 082E mov __tmp_reg__,r24 1061 01ba 000C lsl r0 1062 01bc 990B sbc r25,r25 1063 01be C097 sbiw r24,48 1064 01c0 820F add r24,r18 1065 01c2 931F adc r25,r19 1066 01c4 D701 movw r26,r14 1067 01c6 1796 adiw r26,6+1 1068 01c8 9C93 st X,r25 1069 01ca 8E93 st -X,r24 1070 01cc 1697 sbiw r26,6 1071 01ce 00C0 rjmp .L103 1072 .L107: 1073 01d0 60E0 ldi r22,lo8(ct_Content_Length) 1074 01d2 70E0 ldi r23,hi8(ct_Content_Length) 1075 01d4 8F81 ldd r24,Y+7 1076 01d6 9885 ldd r25,Y+8 1077 01d8 0E94 0000 call strcasecmp 1078 01dc 892B or r24,r25 1079 01de 01F0 breq .+2 1080 01e0 00C0 rjmp .L108 1081 01e2 00E0 ldi r16,0 1082 01e4 11E0 ldi r17,lo8(1) GAS LISTING /tmp/ccMjQ4SG.s page 20 1083 01e6 2F81 ldd r18,Y+7 1084 01e8 3885 ldd r19,Y+8 1085 01ea 40E0 ldi r20,lo8(.LC3) 1086 01ec 50E0 ldi r21,hi8(.LC3) 1087 01ee 60E0 ldi r22,lo8(.LC4) 1088 01f0 70E0 ldi r23,hi8(.LC4) 1089 01f2 C501 movw r24,r10 1090 01f4 0E94 0000 call StreamReadUntilChars 1091 01f8 8F81 ldd r24,Y+7 1092 01fa 9885 ldd r25,Y+8 1093 01fc 0E94 0000 call atol 1094 0200 D701 movw r26,r14 1095 0202 5296 adiw r26,18 1096 0204 6D93 st X+,r22 1097 0206 7D93 st X+,r23 1098 0208 8D93 st X+,r24 1099 020a 9C93 st X,r25 1100 020c 5597 sbiw r26,18+3 1101 .L116: 1102 020e 00E0 ldi r16,0 1103 0210 11E0 ldi r17,lo8(1) 1104 0212 2F81 ldd r18,Y+7 1105 0214 3885 ldd r19,Y+8 1106 0216 40E0 ldi r20,lo8(.LC3) 1107 0218 50E0 ldi r21,hi8(.LC3) 1108 021a 60E0 ldi r22,lo8(.LC6) 1109 021c 70E0 ldi r23,hi8(.LC6) 1110 021e F701 movw r30,r14 1111 0220 8081 ld r24,Z 1112 0222 9181 ldd r25,Z+1 1113 0224 0E94 0000 call StreamReadUntilChars 1114 0228 1816 cp __zero_reg__,r24 1115 022a 1906 cpc __zero_reg__,r25 1116 022c 04F0 brlt .+2 1117 022e 00C0 rjmp .L104 1118 0230 AF81 ldd r26,Y+7 1119 0232 B885 ldd r27,Y+8 1120 0234 8C91 ld r24,X 1121 0236 8823 tst r24 1122 0238 01F4 brne .+2 1123 023a 00C0 rjmp .L104 1124 023c 60E0 ldi r22,lo8(ct_Accept_Encoding) 1125 023e 70E0 ldi r23,hi8(ct_Accept_Encoding) 1126 0240 CD01 movw r24,r26 1127 0242 0E94 0000 call strcasecmp 1128 0246 F701 movw r30,r14 1129 0248 A080 ld r10,Z 1130 024a B180 ldd r11,Z+1 1131 024c 892B or r24,r25 1132 024e 01F4 brne .L105 1133 0250 6401 movw r12,r8 1134 0252 00C0 rjmp .L106 1135 .L105: 1136 0254 60E0 ldi r22,lo8(ct_Authorization) 1137 0256 70E0 ldi r23,hi8(ct_Authorization) 1138 0258 8F81 ldd r24,Y+7 1139 025a 9885 ldd r25,Y+8 GAS LISTING /tmp/ccMjQ4SG.s page 21 1140 025c 0E94 0000 call strcasecmp 1141 0260 892B or r24,r25 1142 0262 01F0 breq .+2 1143 0264 00C0 rjmp .L107 1144 0266 6301 movw r12,r6 1145 0268 00C0 rjmp .L106 1146 .L108: 1147 026a 60E0 ldi r22,lo8(ct_Content_Type) 1148 026c 70E0 ldi r23,hi8(ct_Content_Type) 1149 026e 8F81 ldd r24,Y+7 1150 0270 9885 ldd r25,Y+8 1151 0272 0E94 0000 call strcasecmp 1152 0276 892B or r24,r25 1153 0278 01F4 brne .L110 1154 027a 6201 movw r12,r4 1155 027c 00C0 rjmp .L106 1156 .L110: 1157 027e 60E0 ldi r22,lo8(ct_Cookie) 1158 0280 70E0 ldi r23,hi8(ct_Cookie) 1159 0282 8F81 ldd r24,Y+7 1160 0284 9885 ldd r25,Y+8 1161 0286 0E94 0000 call strcasecmp 1162 028a 892B or r24,r25 1163 028c 01F4 brne .L111 1164 028e 6101 movw r12,r2 1165 0290 00C0 rjmp .L106 1166 .L111: 1167 0292 60E0 ldi r22,lo8(ct_Host) 1168 0294 70E0 ldi r23,hi8(ct_Host) 1169 0296 8F81 ldd r24,Y+7 1170 0298 9885 ldd r25,Y+8 1171 029a 0E94 0000 call strcasecmp 1172 029e 892B or r24,r25 1173 02a0 01F4 brne .L112 1174 02a2 CD80 ldd r12,Y+5 1175 02a4 DE80 ldd r13,Y+6 1176 02a6 00C0 rjmp .L106 1177 .L112: 1178 02a8 60E0 ldi r22,lo8(ct_If_Modified_Since) 1179 02aa 70E0 ldi r23,hi8(ct_If_Modified_Since) 1180 02ac 8F81 ldd r24,Y+7 1181 02ae 9885 ldd r25,Y+8 1182 02b0 0E94 0000 call strcasecmp 1183 02b4 892B or r24,r25 1184 02b6 01F4 brne .L113 1185 02b8 00E0 ldi r16,0 1186 02ba 11E0 ldi r17,lo8(1) 1187 02bc 2F81 ldd r18,Y+7 1188 02be 3885 ldd r19,Y+8 1189 02c0 40E0 ldi r20,lo8(.LC3) 1190 02c2 50E0 ldi r21,hi8(.LC3) 1191 02c4 60E0 ldi r22,lo8(.LC4) 1192 02c6 70E0 ldi r23,hi8(.LC4) 1193 02c8 C501 movw r24,r10 1194 02ca 0E94 0000 call StreamReadUntilChars 1195 02ce 8F81 ldd r24,Y+7 1196 02d0 9885 ldd r25,Y+8 GAS LISTING /tmp/ccMjQ4SG.s page 22 1197 02d2 0E94 0000 call RfcTimeParse 1198 02d6 F701 movw r30,r14 1199 02d8 60A3 std Z+32,r22 1200 02da 71A3 std Z+33,r23 1201 02dc 82A3 std Z+34,r24 1202 02de 93A3 std Z+35,r25 1203 02e0 00C0 rjmp .L116 1204 .L113: 1205 02e2 60E0 ldi r22,lo8(ct_Referer) 1206 02e4 70E0 ldi r23,hi8(ct_Referer) 1207 02e6 8F81 ldd r24,Y+7 1208 02e8 9885 ldd r25,Y+8 1209 02ea 0E94 0000 call strcasecmp 1210 02ee 892B or r24,r25 1211 02f0 01F4 brne .L114 1212 02f2 CB80 ldd r12,Y+3 1213 02f4 DC80 ldd r13,Y+4 1214 02f6 00C0 rjmp .L106 1215 .L114: 1216 02f8 60E0 ldi r22,lo8(ct_User_Agent) 1217 02fa 70E0 ldi r23,hi8(ct_User_Agent) 1218 02fc 8F81 ldd r24,Y+7 1219 02fe 9885 ldd r25,Y+8 1220 0300 0E94 0000 call strcasecmp 1221 0304 892B or r24,r25 1222 0306 01F4 brne .L115 1223 0308 C980 ldd r12,Y+1 1224 030a DA80 ldd r13,Y+2 1225 030c 00C0 rjmp .L106 1226 .L115: 1227 030e 0FE0 ldi r16,lo8(15) 1228 0310 17E2 ldi r17,lo8(39) 1229 0312 20E0 ldi r18,0 1230 0314 30E0 ldi r19,0 1231 0316 40E0 ldi r20,0 1232 0318 50E0 ldi r21,0 1233 031a 60E0 ldi r22,lo8(.LC4) 1234 031c 70E0 ldi r23,hi8(.LC4) 1235 031e C501 movw r24,r10 1236 0320 0E94 0000 call StreamReadUntilChars 1237 0324 00C0 rjmp .L116 1238 .L106: 1239 0326 C114 cp r12,__zero_reg__ 1240 0328 D104 cpc r13,__zero_reg__ 1241 032a 01F4 brne .+2 1242 032c 00C0 rjmp .L116 1243 032e 00E0 ldi r16,0 1244 0330 11E0 ldi r17,lo8(1) 1245 0332 2F81 ldd r18,Y+7 1246 0334 3885 ldd r19,Y+8 1247 0336 40E0 ldi r20,lo8(.LC3) 1248 0338 50E0 ldi r21,hi8(.LC3) 1249 033a 60E0 ldi r22,lo8(.LC4) 1250 033c 70E0 ldi r23,hi8(.LC4) 1251 033e C501 movw r24,r10 1252 0340 0E94 0000 call StreamReadUntilChars 1253 0344 8F81 ldd r24,Y+7 GAS LISTING /tmp/ccMjQ4SG.s page 23 1254 0346 9885 ldd r25,Y+8 1255 0348 0E94 0000 call strdup 1256 034c D601 movw r26,r12 1257 034e 8D93 st X+,r24 1258 0350 9C93 st X,r25 1259 0352 00C0 rjmp .L116 1260 .L104: 1261 0354 8F81 ldd r24,Y+7 1262 0356 9885 ldd r25,Y+8 1263 0358 0E94 0000 call free 1264 035c 80E0 ldi r24,0 1265 035e 90E0 ldi r25,0 1266 0360 00C0 rjmp .L127 1267 .L117: 1268 0362 8FEF ldi r24,lo8(-1) 1269 0364 9FEF ldi r25,lo8(-1) 1270 .L127: 1271 /* epilogue start */ 1272 0366 2896 adiw r28,8 1273 0368 0FB6 in __tmp_reg__,__SREG__ 1274 036a F894 cli 1275 036c DEBF out __SP_H__,r29 1276 036e 0FBE out __SREG__,__tmp_reg__ 1277 0370 CDBF out __SP_L__,r28 1278 0372 DF91 pop r29 1279 0374 CF91 pop r28 1280 0376 1F91 pop r17 1281 0378 0F91 pop r16 1282 037a FF90 pop r15 1283 037c EF90 pop r14 1284 037e DF90 pop r13 1285 0380 CF90 pop r12 1286 0382 BF90 pop r11 1287 0384 AF90 pop r10 1288 0386 9F90 pop r9 1289 0388 8F90 pop r8 1290 038a 7F90 pop r7 1291 038c 6F90 pop r6 1292 038e 5F90 pop r5 1293 0390 4F90 pop r4 1294 0392 3F90 pop r3 1295 0394 2F90 pop r2 1296 0396 0895 ret 1297 .size HttpParseHeader, .-HttpParseHeader 1298 .section .text.HttpRegisterRootPath,"ax",@progbits 1299 .global HttpRegisterRootPath 1300 .type HttpRegisterRootPath, @function 1301 HttpRegisterRootPath: 1302 0000 CF93 push r28 1303 0002 DF93 push r29 1304 /* prologue: function */ 1305 /* frame size = 0 */ 1306 /* stack size = 2 */ 1307 .L__stack_usage = 2 1308 0004 EC01 movw r28,r24 1309 0006 8091 0000 lds r24,http_root_path 1310 000a 9091 0000 lds r25,http_root_path+1 GAS LISTING /tmp/ccMjQ4SG.s page 24 1311 000e 0097 sbiw r24,0 1312 0010 01F0 breq .L131 1313 0012 0E94 0000 call free 1314 .L131: 1315 0016 2097 sbiw r28,0 1316 0018 01F0 breq .L132 1317 001a CE01 movw r24,r28 1318 001c 0E94 0000 call strdup 1319 0020 9093 0000 sts http_root_path+1,r25 1320 0024 8093 0000 sts http_root_path,r24 1321 0028 21E0 ldi r18,lo8(1) 1322 002a 30E0 ldi r19,0 1323 002c 892B or r24,r25 1324 002e 01F0 breq .L133 1325 0030 20E0 ldi r18,0 1326 0032 30E0 ldi r19,0 1327 .L133: 1328 0034 8827 clr r24 1329 0036 9927 clr r25 1330 0038 821B sub r24,r18 1331 003a 930B sbc r25,r19 1332 003c 00C0 rjmp .L134 1333 .L132: 1334 003e 1092 0000 sts http_root_path+1,__zero_reg__ 1335 0042 1092 0000 sts http_root_path,__zero_reg__ 1336 0046 80E0 ldi r24,0 1337 0048 90E0 ldi r25,0 1338 .L134: 1339 /* epilogue start */ 1340 004a DF91 pop r29 1341 004c CF91 pop r28 1342 004e 0895 ret 1343 .size HttpRegisterRootPath, .-HttpRegisterRootPath 1344 .section .rodata.str1.1 1345 .LC10: 1346 001f 5552 4F4D .string "UROM:" 1346 3A00 1347 .section .text.HttpdClientHandler,"ax",@progbits 1348 .global HttpdClientHandler 1349 .type HttpdClientHandler, @function 1350 HttpdClientHandler: 1351 0000 CF92 push r12 1352 0002 DF92 push r13 1353 0004 EF92 push r14 1354 0006 FF92 push r15 1355 0008 0F93 push r16 1356 000a 1F93 push r17 1357 000c CF93 push r28 1358 000e DF93 push r29 1359 /* prologue: function */ 1360 /* frame size = 0 */ 1361 /* stack size = 8 */ 1362 .L__stack_usage = 8 1363 0010 6C01 movw r12,r24 1364 0012 8EE2 ldi r24,lo8(46) 1365 0014 90E0 ldi r25,0 1366 0016 0E94 0000 call malloc GAS LISTING /tmp/ccMjQ4SG.s page 25 1367 001a EC01 movw r28,r24 1368 001c 892B or r24,r25 1369 001e 01F4 brne .+2 1370 0020 00C0 rjmp .L141 1371 0022 00E0 ldi r16,0 1372 0024 10E0 ldi r17,0 1373 .L149: 1374 0026 D982 std Y+1,r13 1375 0028 C882 st Y,r12 1376 002a CE01 movw r24,r28 1377 002c 0E94 0000 call HttpParseHeader 1378 0030 892B or r24,r25 1379 0032 01F0 breq .L143 1380 .L150: 1381 0034 CE01 movw r24,r28 1382 /* epilogue start */ 1383 0036 DF91 pop r29 1384 0038 CF91 pop r28 1385 003a 1F91 pop r17 1386 003c 0F91 pop r16 1387 003e FF90 pop r15 1388 0040 EF90 pop r14 1389 0042 DF90 pop r13 1390 0044 CF90 pop r12 1391 0046 0C94 0000 jmp free 1392 .L143: 1393 004a E091 0000 lds r30,httpd_auth_validator 1394 004e F091 0000 lds r31,httpd_auth_validator+1 1395 0052 CE01 movw r24,r28 1396 0054 1995 eicall 1397 0056 892B or r24,r25 1398 0058 01F0 breq .+2 1399 005a 00C0 rjmp .L152 1400 005c E091 0000 lds r30,httpd_loc_redirector 1401 0060 F091 0000 lds r31,httpd_loc_redirector+1 1402 0064 CE01 movw r24,r28 1403 0066 1995 eicall 1404 0068 892B or r24,r25 1405 006a 01F0 breq .L145 1406 006c 2C81 ldd r18,Y+4 1407 006e 3D81 ldd r19,Y+5 1408 0070 8091 0000 lds r24,http_root_path 1409 0074 9091 0000 lds r25,http_root_path+1 1410 0078 0097 sbiw r24,0 1411 007a 01F4 brne .L146 1412 007c 80E0 ldi r24,lo8(.LC10) 1413 007e 90E0 ldi r25,hi8(.LC10) 1414 .L146: 1415 0080 1F92 push __zero_reg__ 1416 0082 1F92 push __zero_reg__ 1417 0084 3F93 push r19 1418 0086 2F93 push r18 1419 0088 9F93 push r25 1420 008a 8F93 push r24 1421 008c 0E94 0000 call AllocConcatStrings 1422 0090 7C01 movw r14,r24 1423 0092 0F90 pop __tmp_reg__ GAS LISTING /tmp/ccMjQ4SG.s page 26 1424 0094 0F90 pop __tmp_reg__ 1425 0096 0F90 pop __tmp_reg__ 1426 0098 0F90 pop __tmp_reg__ 1427 009a 0F90 pop __tmp_reg__ 1428 009c 0F90 pop __tmp_reg__ 1429 009e 0097 sbiw r24,0 1430 00a0 01F4 brne .+2 1431 00a2 00C0 rjmp .L154 1432 00a4 0E94 0000 call GetMediaTypeEntry 1433 00a8 0097 sbiw r24,0 1434 00aa 01F0 breq .L155 1435 00ac DC01 movw r26,r24 1436 00ae 1A96 adiw r26,10 1437 00b0 ED91 ld r30,X+ 1438 00b2 FC91 ld r31,X 1439 00b4 1B97 sbiw r26,10+1 1440 00b6 A701 movw r20,r14 1441 00b8 BC01 movw r22,r24 1442 00ba CE01 movw r24,r28 1443 00bc 1995 eicall 1444 00be 00C0 rjmp .L147 1445 .L155: 1446 00c0 04E9 ldi r16,lo8(-108) 1447 00c2 11E0 ldi r17,lo8(1) 1448 .L147: 1449 00c4 C701 movw r24,r14 1450 00c6 0E94 0000 call free 1451 .L145: 1452 00ca 0115 cp r16,__zero_reg__ 1453 00cc 1105 cpc r17,__zero_reg__ 1454 00ce 01F0 breq .L148 1455 .L151: 1456 00d0 B801 movw r22,r16 1457 00d2 CE01 movw r24,r28 1458 00d4 0E94 0000 call HttpSendError 1459 .L148: 1460 00d8 8C81 ldd r24,Y+4 1461 00da 9D81 ldd r25,Y+5 1462 00dc 0E94 0000 call free 1463 00e0 8885 ldd r24,Y+8 1464 00e2 9985 ldd r25,Y+9 1465 00e4 0E94 0000 call free 1466 00e8 8A85 ldd r24,Y+10 1467 00ea 9B85 ldd r25,Y+11 1468 00ec 0E94 0000 call free 1469 00f0 8C85 ldd r24,Y+12 1470 00f2 9D85 ldd r25,Y+13 1471 00f4 0E94 0000 call free 1472 00f8 8E89 ldd r24,Y+22 1473 00fa 9F89 ldd r25,Y+23 1474 00fc 0E94 0000 call free 1475 0100 888D ldd r24,Y+24 1476 0102 998D ldd r25,Y+25 1477 0104 0E94 0000 call free 1478 0108 8A8D ldd r24,Y+26 1479 010a 9B8D ldd r25,Y+27 1480 010c 0E94 0000 call free GAS LISTING /tmp/ccMjQ4SG.s page 27 1481 0110 8C8D ldd r24,Y+28 1482 0112 9D8D ldd r25,Y+29 1483 0114 0E94 0000 call free 1484 0118 8E8D ldd r24,Y+30 1485 011a 9F8D ldd r25,Y+31 1486 011c 0E94 0000 call free 1487 0120 8CA1 ldd r24,Y+36 1488 0122 9DA1 ldd r25,Y+37 1489 0124 0E94 0000 call free 1490 0128 8EA1 ldd r24,Y+38 1491 012a 9FA1 ldd r25,Y+39 1492 012c 0E94 0000 call free 1493 0130 88A5 ldd r24,Y+40 1494 0132 99A5 ldd r25,Y+41 1495 0134 0E94 0000 call free 1496 0138 8AA5 ldd r24,Y+42 1497 013a 9BA5 ldd r25,Y+43 1498 013c 0E94 0000 call free 1499 0140 8CA5 ldd r24,Y+44 1500 0142 9DA5 ldd r25,Y+45 1501 0144 0E94 0000 call free 1502 0148 8889 ldd r24,Y+16 1503 014a 9989 ldd r25,Y+17 1504 014c 0297 sbiw r24,2 1505 014e 01F4 brne .+2 1506 0150 00C0 rjmp .L149 1507 0152 00C0 rjmp .L150 1508 .L152: 1509 0154 01E9 ldi r16,lo8(-111) 1510 0156 11E0 ldi r17,lo8(1) 1511 0158 00C0 rjmp .L151 1512 .L154: 1513 015a 04E9 ldi r16,lo8(-108) 1514 015c 11E0 ldi r17,lo8(1) 1515 015e 00C0 rjmp .L151 1516 .L141: 1517 /* epilogue start */ 1518 0160 DF91 pop r29 1519 0162 CF91 pop r28 1520 0164 1F91 pop r17 1521 0166 0F91 pop r16 1522 0168 FF90 pop r15 1523 016a EF90 pop r14 1524 016c DF90 pop r13 1525 016e CF90 pop r12 1526 0170 0895 ret 1527 .size HttpdClientHandler, .-HttpdClientHandler 1528 .global httpd_loc_redirector 1529 .data 1530 .type httpd_loc_redirector, @object 1531 .size httpd_loc_redirector, 2 1532 httpd_loc_redirector: 1533 0000 0000 .word gs(HttpLocationRedirNone) 1534 .global httpd_auth_validator 1535 .type httpd_auth_validator, @object 1536 .size httpd_auth_validator, 2 1537 httpd_auth_validator: GAS LISTING /tmp/ccMjQ4SG.s page 28 1538 0002 0000 .word gs(HttpAuthValidateAll) 1539 .comm http_root_path,2,1 1540 .global ct_Location 1541 .section .rodata 1542 .type ct_Location, @object 1543 .size ct_Location, 9 1544 ct_Location: 1545 0000 4C6F 6361 .string "Location" 1545 7469 6F6E 1545 00 1546 .global ct_Content_Encoding 1547 .type ct_Content_Encoding, @object 1548 .size ct_Content_Encoding, 17 1549 ct_Content_Encoding: 1550 0009 436F 6E74 .string "Content-Encoding" 1550 656E 742D 1550 456E 636F 1550 6469 6E67 1550 00 1551 .global ct_Date 1552 .type ct_Date, @object 1553 .size ct_Date, 5 1554 ct_Date: 1555 001a 4461 7465 .string "Date" 1555 00 1556 .global ct_Expires 1557 .type ct_Expires, @object 1558 .size ct_Expires, 8 1559 ct_Expires: 1560 001f 4578 7069 .string "Expires" 1560 7265 7300 1561 .global ct_Last_Modified 1562 .type ct_Last_Modified, @object 1563 .size ct_Last_Modified, 14 1564 ct_Last_Modified: 1565 0027 4C61 7374 .string "Last-Modified" 1565 2D4D 6F64 1565 6966 6965 1565 6400 1566 .global ct_User_Agent 1567 .type ct_User_Agent, @object 1568 .size ct_User_Agent, 11 1569 ct_User_Agent: 1570 0035 5573 6572 .string "User-Agent" 1570 2D41 6765 1570 6E74 00 1571 .global ct_Referer 1572 .type ct_Referer, @object 1573 .size ct_Referer, 8 1574 ct_Referer: 1575 0040 5265 6665 .string "Referer" 1575 7265 7200 1576 .global ct_If_Modified_Since 1577 .type ct_If_Modified_Since, @object 1578 .size ct_If_Modified_Since, 18 1579 ct_If_Modified_Since: 1580 0048 4966 2D4D .string "If-Modified-Since" GAS LISTING /tmp/ccMjQ4SG.s page 29 1580 6F64 6966 1580 6965 642D 1580 5369 6E63 1580 6500 1581 .global ct_Host 1582 .type ct_Host, @object 1583 .size ct_Host, 5 1584 ct_Host: 1585 005a 486F 7374 .string "Host" 1585 00 1586 .global ct_Cookie 1587 .type ct_Cookie, @object 1588 .size ct_Cookie, 7 1589 ct_Cookie: 1590 005f 436F 6F6B .string "Cookie" 1590 6965 00 1591 .global ct_Content_Length 1592 .type ct_Content_Length, @object 1593 .size ct_Content_Length, 15 1594 ct_Content_Length: 1595 0066 436F 6E74 .string "Content-Length" 1595 656E 742D 1595 4C65 6E67 1595 7468 00 1596 .global ct_Keep_Alive 1597 .type ct_Keep_Alive, @object 1598 .size ct_Keep_Alive, 11 1599 ct_Keep_Alive: 1600 0075 6B65 6570 .string "keep-alive" 1600 2D61 6C69 1600 7665 00 1601 .global ct_close 1602 .type ct_close, @object 1603 .size ct_close, 6 1604 ct_close: 1605 0080 636C 6F73 .string "close" 1605 6500 1606 .global ct_Connection 1607 .type ct_Connection, @object 1608 .size ct_Connection, 11 1609 ct_Connection: 1610 0086 436F 6E6E .string "Connection" 1610 6563 7469 1610 6F6E 00 1611 .global ct_Authorization 1612 .type ct_Authorization, @object 1613 .size ct_Authorization, 14 1614 ct_Authorization: 1615 0091 4175 7468 .string "Authorization" 1615 6F72 697A 1615 6174 696F 1615 6E00 1616 .global ct_Accept_Encoding 1617 .type ct_Accept_Encoding, @object 1618 .size ct_Accept_Encoding, 16 1619 ct_Accept_Encoding: 1620 009f 4163 6365 .string "Accept-Encoding" GAS LISTING /tmp/ccMjQ4SG.s page 30 1620 7074 2D45 1620 6E63 6F64 1620 696E 6700 1621 .global ct_Content_Type 1622 .type ct_Content_Type, @object 1623 .size ct_Content_Type, 13 1624 ct_Content_Type: 1625 00af 436F 6E74 .string "Content-Type" 1625 656E 742D 1625 5479 7065 1625 00 1626 .global ct_Content_Disposition 1627 .type ct_Content_Disposition, @object 1628 .size ct_Content_Disposition, 20 1629 ct_Content_Disposition: 1630 00bc 436F 6E74 .string "Content-Disposition" 1630 656E 742D 1630 4469 7370 1630 6F73 6974 1630 696F 6E00 1631 .global ct_POST 1632 .type ct_POST, @object 1633 .size ct_POST, 5 1634 ct_POST: 1635 00d0 504F 5354 .string "POST" 1635 00 1636 .global ct_HEAD 1637 .type ct_HEAD, @object 1638 .size ct_HEAD, 5 1639 ct_HEAD: 1640 00d5 4845 4144 .string "HEAD" 1640 00 1641 .global ct_GET 1642 .type ct_GET, @object 1643 .size ct_GET, 4 1644 ct_GET: 1645 00da 4745 5400 .string "GET" 1646 .ident "GCC: (GNU) 5.3.0" 1647 .global __do_copy_data 1648 .global __do_clear_bss GAS LISTING /tmp/ccMjQ4SG.s page 31 DEFINED SYMBOLS *ABS*:0000000000000000 uhttpd.c /tmp/ccMjQ4SG.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccMjQ4SG.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccMjQ4SG.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccMjQ4SG.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccMjQ4SG.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccMjQ4SG.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccMjQ4SG.s:10 .text.HttpAuthValidateAll:0000000000000000 HttpAuthValidateAll /tmp/ccMjQ4SG.s:21 .text.HttpLocationRedirNone:0000000000000000 HttpLocationRedirNone /tmp/ccMjQ4SG.s:33 .text.HttpArgParseNext:0000000000000000 HttpArgParseNext /tmp/ccMjQ4SG.s:144 .text.HttpArgParseFirst:0000000000000000 HttpArgParseFirst /tmp/ccMjQ4SG.s:162 .text.HttpArgReadNext:0000000000000000 HttpArgReadNext /tmp/ccMjQ4SG.s:303 .text.HttpArgValue:0000000000000000 HttpArgValue /tmp/ccMjQ4SG.s:321 .text.HttpArgValueSub:0000000000000000 HttpArgValueSub /tmp/ccMjQ4SG.s:466 .text.HttpParseMultipartHeader:0000000000000000 HttpParseMultipartHeader /tmp/ccMjQ4SG.s:1629 .rodata:00000000000000bc ct_Content_Disposition /tmp/ccMjQ4SG.s:1624 .rodata:00000000000000af ct_Content_Type /tmp/ccMjQ4SG.s:838 .text.HttpParseHeader:0000000000000000 HttpParseHeader /tmp/ccMjQ4SG.s:1644 .rodata:00000000000000da ct_GET /tmp/ccMjQ4SG.s:1639 .rodata:00000000000000d5 ct_HEAD /tmp/ccMjQ4SG.s:1634 .rodata:00000000000000d0 ct_POST /tmp/ccMjQ4SG.s:1594 .rodata:0000000000000066 ct_Content_Length /tmp/ccMjQ4SG.s:1619 .rodata:000000000000009f ct_Accept_Encoding /tmp/ccMjQ4SG.s:1614 .rodata:0000000000000091 ct_Authorization /tmp/ccMjQ4SG.s:1589 .rodata:000000000000005f ct_Cookie /tmp/ccMjQ4SG.s:1584 .rodata:000000000000005a ct_Host /tmp/ccMjQ4SG.s:1579 .rodata:0000000000000048 ct_If_Modified_Since /tmp/ccMjQ4SG.s:1574 .rodata:0000000000000040 ct_Referer /tmp/ccMjQ4SG.s:1569 .rodata:0000000000000035 ct_User_Agent /tmp/ccMjQ4SG.s:1301 .text.HttpRegisterRootPath:0000000000000000 HttpRegisterRootPath *COM*:0000000000000002 http_root_path /tmp/ccMjQ4SG.s:1350 .text.HttpdClientHandler:0000000000000000 HttpdClientHandler /tmp/ccMjQ4SG.s:1537 .data:0000000000000002 httpd_auth_validator /tmp/ccMjQ4SG.s:1532 .data:0000000000000000 httpd_loc_redirector /tmp/ccMjQ4SG.s:1544 .rodata:0000000000000000 ct_Location /tmp/ccMjQ4SG.s:1549 .rodata:0000000000000009 ct_Content_Encoding /tmp/ccMjQ4SG.s:1554 .rodata:000000000000001a ct_Date /tmp/ccMjQ4SG.s:1559 .rodata:000000000000001f ct_Expires /tmp/ccMjQ4SG.s:1564 .rodata:0000000000000027 ct_Last_Modified /tmp/ccMjQ4SG.s:1599 .rodata:0000000000000075 ct_Keep_Alive /tmp/ccMjQ4SG.s:1604 .rodata:0000000000000080 ct_close /tmp/ccMjQ4SG.s:1609 .rodata:0000000000000086 ct_Connection UNDEFINED SYMBOLS strchr malloc memcpy strdup HttpUrlUnescape free StreamReadUntilChars strncasecmp strncmp strcasecmp HttpSendError UriUnescape GAS LISTING /tmp/ccMjQ4SG.s page 32 atol RfcTimeParse AllocConcatStrings GetMediaTypeEntry __do_copy_data __do_clear_bss