httpd.lst 75 KB

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