uhttpd.lst 64 KB

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