| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852 |
- 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
|