upnp_ctrl.lst 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803
  1. GAS LISTING /tmp/cc00cB6E.s page 1
  2. 1 .file "upnp_ctrl.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.GetXmlNode,"ax",@progbits
  10. 9 .type GetXmlNode, @function
  11. 10 GetXmlNode:
  12. 11 0000 0F93 push r16
  13. 12 0002 1F93 push r17
  14. 13 0004 CF93 push r28
  15. 14 0006 DF93 push r29
  16. 15 /* prologue: function */
  17. 16 /* frame size = 0 */
  18. 17 /* stack size = 4 */
  19. 18 .L__stack_usage = 4
  20. 19 0008 EC01 movw r28,r24
  21. 20 000a 8B01 movw r16,r22
  22. 21 .L2:
  23. 22 000c 2097 sbiw r28,0
  24. 23 000e 01F0 breq .L3
  25. 24 0010 B801 movw r22,r16
  26. 25 0012 8E81 ldd r24,Y+6
  27. 26 0014 9F81 ldd r25,Y+7
  28. 27 0016 0E94 0000 call strcasecmp
  29. 28 001a 892B or r24,r25
  30. 29 001c 01F0 breq .L3
  31. 30 001e 0990 ld __tmp_reg__,Y+
  32. 31 0020 D881 ld r29,Y
  33. 32 0022 C02D mov r28,__tmp_reg__
  34. 33 0024 00C0 rjmp .L2
  35. 34 .L3:
  36. 35 0026 CE01 movw r24,r28
  37. 36 /* epilogue start */
  38. 37 0028 DF91 pop r29
  39. 38 002a CF91 pop r28
  40. 39 002c 1F91 pop r17
  41. 40 002e 0F91 pop r16
  42. 41 0030 0895 ret
  43. 42 .size GetXmlNode, .-GetXmlNode
  44. 43 .section .text.DuplicateXmlNodeContent,"ax",@progbits
  45. 44 .type DuplicateXmlNodeContent, @function
  46. 45 DuplicateXmlNodeContent:
  47. 46 /* prologue: function */
  48. 47 /* frame size = 0 */
  49. 48 /* stack size = 0 */
  50. 49 .L__stack_usage = 0
  51. 50 0000 0E94 0000 call GetXmlNode
  52. 51 0004 0097 sbiw r24,0
  53. 52 0006 01F0 breq .L10
  54. 53 0008 FC01 movw r30,r24
  55. 54 000a 8085 ldd r24,Z+8
  56. 55 000c 9185 ldd r25,Z+9
  57. 56 000e 0097 sbiw r24,0
  58. 57 0010 01F0 breq .L10
  59. GAS LISTING /tmp/cc00cB6E.s page 2
  60. 58 0012 0C94 0000 jmp strdup
  61. 59 .L10:
  62. 60 0016 80E0 ldi r24,0
  63. 61 0018 90E0 ldi r25,0
  64. 62 001a 0895 ret
  65. 63 .size DuplicateXmlNodeContent, .-DuplicateXmlNodeContent
  66. 64 .section .text.CallObservers,"ax",@progbits
  67. 65 .type CallObservers, @function
  68. 66 CallObservers:
  69. 67 0000 FF92 push r15
  70. 68 0002 0F93 push r16
  71. 69 0004 1F93 push r17
  72. 70 0006 CF93 push r28
  73. 71 0008 DF93 push r29
  74. 72 /* prologue: function */
  75. 73 /* frame size = 0 */
  76. 74 /* stack size = 5 */
  77. 75 .L__stack_usage = 5
  78. 76 000a 8C01 movw r16,r24
  79. 77 000c F62E mov r15,r22
  80. 78 000e C091 0000 lds r28,upnp_observer_root
  81. 79 0012 D091 0000 lds r29,upnp_observer_root+1
  82. 80 .L17:
  83. 81 0016 2097 sbiw r28,0
  84. 82 0018 01F0 breq .L23
  85. 83 001a 6A81 ldd r22,Y+2
  86. 84 001c 7B81 ldd r23,Y+3
  87. 85 001e F801 movw r30,r16
  88. 86 0020 8481 ldd r24,Z+4
  89. 87 0022 9581 ldd r25,Z+5
  90. 88 0024 0E94 0000 call strcmp
  91. 89 0028 892B or r24,r25
  92. 90 002a 01F4 brne .L22
  93. 91 002c 6C81 ldd r22,Y+4
  94. 92 002e 7D81 ldd r23,Y+5
  95. 93 0030 F801 movw r30,r16
  96. 94 0032 8681 ldd r24,Z+6
  97. 95 0034 9781 ldd r25,Z+7
  98. 96 0036 0E94 0000 call strcmp
  99. 97 003a 892B or r24,r25
  100. 98 003c 01F4 brne .L22
  101. 99 003e EE81 ldd r30,Y+6
  102. 100 0040 FF81 ldd r31,Y+7
  103. 101 0042 6F2D mov r22,r15
  104. 102 0044 C801 movw r24,r16
  105. 103 0046 1995 eicall
  106. 104 0048 00C0 rjmp .L18
  107. 105 .L22:
  108. 106 004a 80E0 ldi r24,0
  109. 107 004c 90E0 ldi r25,0
  110. 108 .L18:
  111. 109 004e 0990 ld __tmp_reg__,Y+
  112. 110 0050 D881 ld r29,Y
  113. 111 0052 C02D mov r28,__tmp_reg__
  114. 112 0054 0097 sbiw r24,0
  115. 113 0056 01F0 breq .L17
  116. 114 0058 00C0 rjmp .L19
  117. GAS LISTING /tmp/cc00cB6E.s page 3
  118. 115 .L23:
  119. 116 005a 80E0 ldi r24,0
  120. 117 005c 90E0 ldi r25,0
  121. 118 .L19:
  122. 119 /* epilogue start */
  123. 120 005e DF91 pop r29
  124. 121 0060 CF91 pop r28
  125. 122 0062 1F91 pop r17
  126. 123 0064 0F91 pop r16
  127. 124 0066 FF90 pop r15
  128. 125 0068 0895 ret
  129. 126 .size CallObservers, .-CallObservers
  130. 127 .section .rodata.str1.1,"aMS",@progbits,1
  131. 128 .LC0:
  132. 129 0000 6874 7470 .string "http://"
  133. 129 3A2F 2F00
  134. 130 .LC1:
  135. 131 0008 4745 5420 .string "GET "
  136. 131 00
  137. 132 .LC2:
  138. 133 000d 2F25 7320 .string "/%s HTTP/1.1\r\n"
  139. 133 4854 5450
  140. 133 2F31 2E31
  141. 133 0D0A 00
  142. 134 .LC3:
  143. 135 001c 486F 7374 .string "Host: %s\r\n"
  144. 135 3A20 2573
  145. 135 0D0A 00
  146. 136 .LC4:
  147. 137 0027 436F 6E6E .string "Connection: close\r\n\r\n"
  148. 137 6563 7469
  149. 137 6F6E 3A20
  150. 137 636C 6F73
  151. 137 650D 0A0D
  152. 138 .section .text.RequestXmlTree.constprop.3,"ax",@progbits
  153. 139 .type RequestXmlTree.constprop.3, @function
  154. 140 RequestXmlTree.constprop.3:
  155. 141 0000 CF92 push r12
  156. 142 0002 DF92 push r13
  157. 143 0004 EF92 push r14
  158. 144 0006 FF92 push r15
  159. 145 0008 0F93 push r16
  160. 146 000a 1F93 push r17
  161. 147 000c CF93 push r28
  162. 148 000e DF93 push r29
  163. 149 /* prologue: function */
  164. 150 /* frame size = 0 */
  165. 151 /* stack size = 8 */
  166. 152 .L__stack_usage = 8
  167. 153 0010 EC01 movw r28,r24
  168. 154 0012 47E0 ldi r20,lo8(7)
  169. 155 0014 50E0 ldi r21,0
  170. 156 0016 60E0 ldi r22,lo8(.LC0)
  171. 157 0018 70E0 ldi r23,hi8(.LC0)
  172. 158 001a 0E94 0000 call strncasecmp
  173. 159 001e 892B or r24,r25
  174. 160 0020 01F0 breq .L25
  175. GAS LISTING /tmp/cc00cB6E.s page 4
  176. 161 .L27:
  177. 162 0022 00E0 ldi r16,0
  178. 163 0024 10E0 ldi r17,0
  179. 164 0026 00C0 rjmp .L26
  180. 165 .L25:
  181. 166 0028 CE01 movw r24,r28
  182. 167 002a 0796 adiw r24,7
  183. 168 002c 0E94 0000 call UriSchemeSplit
  184. 169 0030 7C01 movw r14,r24
  185. 170 0032 892B or r24,r25
  186. 171 0034 01F0 breq .L27
  187. 172 0036 0E94 0000 call NutTcpCreateSocket
  188. 173 003a 6C01 movw r12,r24
  189. 174 003c 0097 sbiw r24,0
  190. 175 003e 01F4 brne .+2
  191. 176 0040 00C0 rjmp .L30
  192. 177 0042 F701 movw r30,r14
  193. 178 0044 4685 ldd r20,Z+14
  194. 179 0046 5785 ldd r21,Z+15
  195. 180 0048 6085 ldd r22,Z+8
  196. 181 004a 7185 ldd r23,Z+9
  197. 182 004c 00ED ldi r16,lo8(-48)
  198. 183 004e 17E0 ldi r17,lo8(7)
  199. 184 0050 20E0 ldi r18,0
  200. 185 0052 30E0 ldi r19,0
  201. 186 0054 0E94 0000 call TcpHostConnectStream
  202. 187 0058 EC01 movw r28,r24
  203. 188 005a 0097 sbiw r24,0
  204. 189 005c 01F0 breq .L31
  205. 190 005e BC01 movw r22,r24
  206. 191 0060 80E0 ldi r24,lo8(.LC1)
  207. 192 0062 90E0 ldi r25,hi8(.LC1)
  208. 193 0064 0E94 0000 call fputs
  209. 194 0068 F701 movw r30,r14
  210. 195 006a 8585 ldd r24,Z+13
  211. 196 006c 8F93 push r24
  212. 197 006e 8485 ldd r24,Z+12
  213. 198 0070 8F93 push r24
  214. 199 0072 80E0 ldi r24,lo8(.LC2)
  215. 200 0074 90E0 ldi r25,hi8(.LC2)
  216. 201 0076 9F93 push r25
  217. 202 0078 8F93 push r24
  218. 203 007a DF93 push r29
  219. 204 007c CF93 push r28
  220. 205 007e 0E94 0000 call fprintf
  221. 206 0082 F701 movw r30,r14
  222. 207 0084 8185 ldd r24,Z+9
  223. 208 0086 8F93 push r24
  224. 209 0088 8085 ldd r24,Z+8
  225. 210 008a 8F93 push r24
  226. 211 008c 80E0 ldi r24,lo8(.LC3)
  227. 212 008e 90E0 ldi r25,hi8(.LC3)
  228. 213 0090 9F93 push r25
  229. 214 0092 8F93 push r24
  230. 215 0094 DF93 push r29
  231. 216 0096 CF93 push r28
  232. 217 0098 0E94 0000 call fprintf
  233. GAS LISTING /tmp/cc00cB6E.s page 5
  234. 218 009c BE01 movw r22,r28
  235. 219 009e 80E0 ldi r24,lo8(.LC4)
  236. 220 00a0 90E0 ldi r25,hi8(.LC4)
  237. 221 00a2 0E94 0000 call fputs
  238. 222 00a6 CE01 movw r24,r28
  239. 223 00a8 0E94 0000 call fflush
  240. 224 00ac 40E0 ldi r20,0
  241. 225 00ae 50E0 ldi r21,0
  242. 226 00b0 60E0 ldi r22,0
  243. 227 00b2 70E0 ldi r23,0
  244. 228 00b4 CE01 movw r24,r28
  245. 229 00b6 0E94 0000 call UxmlParseStream
  246. 230 00ba 8C01 movw r16,r24
  247. 231 00bc CE01 movw r24,r28
  248. 232 00be 0E94 0000 call fclose
  249. 233 00c2 EDB7 in r30,__SP_L__
  250. 234 00c4 FEB7 in r31,__SP_H__
  251. 235 00c6 3C96 adiw r30,12
  252. 236 00c8 0FB6 in __tmp_reg__,__SREG__
  253. 237 00ca F894 cli
  254. 238 00cc FEBF out __SP_H__,r31
  255. 239 00ce 0FBE out __SREG__,__tmp_reg__
  256. 240 00d0 EDBF out __SP_L__,r30
  257. 241 00d2 00C0 rjmp .L29
  258. 242 .L31:
  259. 243 00d4 00E0 ldi r16,0
  260. 244 00d6 10E0 ldi r17,0
  261. 245 .L29:
  262. 246 00d8 C601 movw r24,r12
  263. 247 00da 0E94 0000 call NutTcpCloseSocket
  264. 248 00de 00C0 rjmp .L28
  265. 249 .L30:
  266. 250 00e0 00E0 ldi r16,0
  267. 251 00e2 10E0 ldi r17,0
  268. 252 .L28:
  269. 253 00e4 C701 movw r24,r14
  270. 254 00e6 0E94 0000 call UriSchemeRelease
  271. 255 .L26:
  272. 256 00ea C801 movw r24,r16
  273. 257 /* epilogue start */
  274. 258 00ec DF91 pop r29
  275. 259 00ee CF91 pop r28
  276. 260 00f0 1F91 pop r17
  277. 261 00f2 0F91 pop r16
  278. 262 00f4 FF90 pop r15
  279. 263 00f6 EF90 pop r14
  280. 264 00f8 DF90 pop r13
  281. 265 00fa CF90 pop r12
  282. 266 00fc 0895 ret
  283. 267 .size RequestXmlTree.constprop.3, .-RequestXmlTree.constprop.3
  284. 268 .section .rodata.str1.1
  285. 269 .LC5:
  286. 270 003d 726F 6F74 .string "root"
  287. 270 00
  288. 271 .LC6:
  289. 272 0042 6465 7669 .string "device"
  290. 272 6365 00
  291. GAS LISTING /tmp/cc00cB6E.s page 6
  292. 273 .LC7:
  293. 274 0049 6672 6965 .string "friendlyName"
  294. 274 6E64 6C79
  295. 274 4E61 6D65
  296. 274 00
  297. 275 .LC8:
  298. 276 0056 6465 7669 .string "deviceType"
  299. 276 6365 5479
  300. 276 7065 00
  301. 277 .LC9:
  302. 278 0061 7365 7276 .string "serviceList"
  303. 278 6963 654C
  304. 278 6973 7400
  305. 279 .LC10:
  306. 280 006d 7365 7276 .string "serviceType"
  307. 280 6963 6554
  308. 280 7970 6500
  309. 281 .LC11:
  310. 282 0079 5343 5044 .string "SCPDURL"
  311. 282 5552 4C00
  312. 283 .LC12:
  313. 284 0081 636F 6E74 .string "controlURL"
  314. 284 726F 6C55
  315. 284 524C 00
  316. 285 .LC13:
  317. 286 008c 6576 656E .string "eventSubURL"
  318. 286 7453 7562
  319. 286 5552 4C00
  320. 287 .LC14:
  321. 288 0098 7363 7064 .string "scpd"
  322. 288 00
  323. 289 .LC15:
  324. 290 009d 6163 7469 .string "actionList"
  325. 290 6F6E 4C69
  326. 290 7374 00
  327. 291 .LC16:
  328. 292 00a8 7365 7276 .string "serviceStateTable"
  329. 292 6963 6553
  330. 292 7461 7465
  331. 292 5461 626C
  332. 292 6500
  333. 293 .LC17:
  334. 294 00ba 6E61 6D65 .string "name"
  335. 294 00
  336. 295 .LC18:
  337. 296 00bf 6461 7461 .string "dataType"
  338. 296 5479 7065
  339. 296 00
  340. 297 .LC19:
  341. 298 00c8 6465 6661 .string "defaultValue"
  342. 298 756C 7456
  343. 298 616C 7565
  344. 298 00
  345. 299 .LC20:
  346. 300 00d5 6172 6775 .string "argumentList"
  347. 300 6D65 6E74
  348. 300 4C69 7374
  349. GAS LISTING /tmp/cc00cB6E.s page 7
  350. 300 00
  351. 301 .LC21:
  352. 302 00e2 6469 7265 .string "direction"
  353. 302 6374 696F
  354. 302 6E00
  355. 303 .LC22:
  356. 304 00ec 7265 6C61 .string "relatedStateVariable"
  357. 304 7465 6453
  358. 304 7461 7465
  359. 304 5661 7269
  360. 304 6162 6C65
  361. 305 .section .text.ServiceObserver,"ax",@progbits
  362. 306 .type ServiceObserver, @function
  363. 307 ServiceObserver:
  364. 308 0000 2F92 push r2
  365. 309 0002 3F92 push r3
  366. 310 0004 4F92 push r4
  367. 311 0006 5F92 push r5
  368. 312 0008 6F92 push r6
  369. 313 000a 7F92 push r7
  370. 314 000c 8F92 push r8
  371. 315 000e 9F92 push r9
  372. 316 0010 AF92 push r10
  373. 317 0012 BF92 push r11
  374. 318 0014 CF92 push r12
  375. 319 0016 DF92 push r13
  376. 320 0018 EF92 push r14
  377. 321 001a FF92 push r15
  378. 322 001c 0F93 push r16
  379. 323 001e 1F93 push r17
  380. 324 0020 CF93 push r28
  381. 325 0022 DF93 push r29
  382. 326 0024 CDB7 in r28,__SP_L__
  383. 327 0026 DEB7 in r29,__SP_H__
  384. 328 0028 6497 sbiw r28,20
  385. 329 002a 0FB6 in __tmp_reg__,__SREG__
  386. 330 002c F894 cli
  387. 331 002e DEBF out __SP_H__,r29
  388. 332 0030 0FBE out __SREG__,__tmp_reg__
  389. 333 0032 CDBF out __SP_L__,r28
  390. 334 /* prologue: function */
  391. 335 /* frame size = 20 */
  392. 336 /* stack size = 38 */
  393. 337 .L__stack_usage = 38
  394. 338 0034 7C01 movw r14,r24
  395. 339 0036 6623 tst r22
  396. 340 0038 01F4 brne .+2
  397. 341 003a 00C0 rjmp .L36
  398. 342 003c 61E0 ldi r22,lo8(1)
  399. 343 003e 0E94 0000 call CallObservers
  400. 344 0042 D701 movw r26,r14
  401. 345 0044 1896 adiw r26,8
  402. 346 0046 CD90 ld r12,X+
  403. 347 0048 DC90 ld r13,X
  404. 348 004a 1997 sbiw r26,8+1
  405. 349 004c C114 cp r12,__zero_reg__
  406. 350 004e D104 cpc r13,__zero_reg__
  407. GAS LISTING /tmp/cc00cB6E.s page 8
  408. 351 0050 01F4 brne .+2
  409. 352 0052 00C0 rjmp .L95
  410. 353 0054 F601 movw r30,r12
  411. 354 0056 0681 ldd r16,Z+6
  412. 355 0058 1781 ldd r17,Z+7
  413. 356 .L38:
  414. 357 005a 0115 cp r16,__zero_reg__
  415. 358 005c 1105 cpc r17,__zero_reg__
  416. 359 005e 01F4 brne .+2
  417. 360 0060 00C0 rjmp .L198
  418. 361 0062 D801 movw r26,r16
  419. 362 0064 AC90 ld r10,X
  420. 363 0066 1196 adiw r26,1
  421. 364 0068 BC90 ld r11,X
  422. 365 006a 1197 sbiw r26,1
  423. 366 006c 1496 adiw r26,4
  424. 367 006e ED90 ld r14,X+
  425. 368 0070 FC90 ld r15,X
  426. 369 0072 1597 sbiw r26,4+1
  427. 370 .L39:
  428. 371 0074 E114 cp r14,__zero_reg__
  429. 372 0076 F104 cpc r15,__zero_reg__
  430. 373 0078 01F0 breq .L199
  431. 374 007a F701 movw r30,r14
  432. 375 007c 8080 ld r8,Z
  433. 376 007e 9180 ldd r9,Z+1
  434. 377 0080 8281 ldd r24,Z+2
  435. 378 0082 9381 ldd r25,Z+3
  436. 379 0084 0E94 0000 call free
  437. 380 0088 D701 movw r26,r14
  438. 381 008a 1496 adiw r26,4
  439. 382 008c 8D91 ld r24,X+
  440. 383 008e 9C91 ld r25,X
  441. 384 0090 1597 sbiw r26,4+1
  442. 385 0092 0E94 0000 call free
  443. 386 0096 C701 movw r24,r14
  444. 387 0098 0E94 0000 call free
  445. 388 009c 7401 movw r14,r8
  446. 389 009e 00C0 rjmp .L39
  447. 390 .L199:
  448. 391 00a0 F801 movw r30,r16
  449. 392 00a2 E680 ldd r14,Z+6
  450. 393 00a4 F780 ldd r15,Z+7
  451. 394 .L41:
  452. 395 00a6 E114 cp r14,__zero_reg__
  453. 396 00a8 F104 cpc r15,__zero_reg__
  454. 397 00aa 01F0 breq .L200
  455. 398 00ac D701 movw r26,r14
  456. 399 00ae 8C90 ld r8,X
  457. 400 00b0 1196 adiw r26,1
  458. 401 00b2 9C90 ld r9,X
  459. 402 00b4 1197 sbiw r26,1
  460. 403 00b6 1296 adiw r26,2
  461. 404 00b8 8D91 ld r24,X+
  462. 405 00ba 9C91 ld r25,X
  463. 406 00bc 1397 sbiw r26,2+1
  464. 407 00be 0E94 0000 call free
  465. GAS LISTING /tmp/cc00cB6E.s page 9
  466. 408 00c2 F701 movw r30,r14
  467. 409 00c4 8481 ldd r24,Z+4
  468. 410 00c6 9581 ldd r25,Z+5
  469. 411 00c8 0E94 0000 call free
  470. 412 00cc C701 movw r24,r14
  471. 413 00ce 0E94 0000 call free
  472. 414 00d2 7401 movw r14,r8
  473. 415 00d4 00C0 rjmp .L41
  474. 416 .L200:
  475. 417 00d6 D801 movw r26,r16
  476. 418 00d8 1296 adiw r26,2
  477. 419 00da 8D91 ld r24,X+
  478. 420 00dc 9C91 ld r25,X
  479. 421 00de 1397 sbiw r26,2+1
  480. 422 00e0 0E94 0000 call free
  481. 423 00e4 C801 movw r24,r16
  482. 424 00e6 0E94 0000 call free
  483. 425 00ea 8501 movw r16,r10
  484. 426 00ec 00C0 rjmp .L38
  485. 427 .L198:
  486. 428 00ee F601 movw r30,r12
  487. 429 00f0 0085 ldd r16,Z+8
  488. 430 00f2 1185 ldd r17,Z+9
  489. 431 .L44:
  490. 432 00f4 0115 cp r16,__zero_reg__
  491. 433 00f6 1105 cpc r17,__zero_reg__
  492. 434 00f8 01F0 breq .L201
  493. 435 00fa D801 movw r26,r16
  494. 436 00fc 1896 adiw r26,8
  495. 437 00fe EC90 ld r14,X
  496. 438 0100 1897 sbiw r26,8
  497. 439 0102 1996 adiw r26,9
  498. 440 0104 FC90 ld r15,X
  499. 441 0106 1997 sbiw r26,9
  500. 442 0108 1296 adiw r26,2
  501. 443 010a 8D91 ld r24,X+
  502. 444 010c 9C91 ld r25,X
  503. 445 010e 1397 sbiw r26,2+1
  504. 446 0110 0E94 0000 call free
  505. 447 0114 F801 movw r30,r16
  506. 448 0116 8681 ldd r24,Z+6
  507. 449 0118 9781 ldd r25,Z+7
  508. 450 011a 0E94 0000 call free
  509. 451 011e C801 movw r24,r16
  510. 452 0120 0E94 0000 call free
  511. 453 0124 8701 movw r16,r14
  512. 454 0126 00C0 rjmp .L44
  513. 455 .L201:
  514. 456 0128 D601 movw r26,r12
  515. 457 012a 8D91 ld r24,X+
  516. 458 012c 9C91 ld r25,X
  517. 459 012e 0E94 0000 call free
  518. 460 0132 F601 movw r30,r12
  519. 461 0134 8281 ldd r24,Z+2
  520. 462 0136 9381 ldd r25,Z+3
  521. 463 0138 0E94 0000 call free
  522. 464 013c D601 movw r26,r12
  523. GAS LISTING /tmp/cc00cB6E.s page 10
  524. 465 013e 1496 adiw r26,4
  525. 466 0140 8D91 ld r24,X+
  526. 467 0142 9C91 ld r25,X
  527. 468 0144 1597 sbiw r26,4+1
  528. 469 0146 0E94 0000 call free
  529. 470 014a C601 movw r24,r12
  530. 471 014c 0E94 0000 call free
  531. 472 0150 00C0 rjmp .L95
  532. 473 .L36:
  533. 474 0152 DC01 movw r26,r24
  534. 475 0154 1296 adiw r26,2
  535. 476 0156 ED91 ld r30,X+
  536. 477 0158 FC91 ld r31,X
  537. 478 015a 1397 sbiw r26,2+1
  538. 479 015c 8089 ldd r24,Z+16
  539. 480 015e 9189 ldd r25,Z+17
  540. 481 0160 892B or r24,r25
  541. 482 0162 01F0 breq .L46
  542. 483 .L63:
  543. 484 0164 F701 movw r30,r14
  544. 485 0166 0085 ldd r16,Z+8
  545. 486 0168 1185 ldd r17,Z+9
  546. 487 016a 0280 ldd __tmp_reg__,Z+2
  547. 488 016c F381 ldd r31,Z+3
  548. 489 016e E02D mov r30,__tmp_reg__
  549. 490 0170 C084 ldd r12,Z+8
  550. 491 0172 D184 ldd r13,Z+9
  551. 492 0174 F601 movw r30,r12
  552. 493 0:
  553. 494 0176 0190 ld __tmp_reg__,Z+
  554. 495 0178 0020 tst __tmp_reg__
  555. 496 017a 01F4 brne 0b
  556. 497 017c 3197 sbiw r30,1
  557. 498 017e CF01 movw r24,r30
  558. 499 0180 8C19 sub r24,r12
  559. 500 0182 9D09 sbc r25,r13
  560. 501 0184 F801 movw r30,r16
  561. 502 0186 A081 ld r26,Z
  562. 503 0188 B181 ldd r27,Z+1
  563. 504 018a FD01 movw r30,r26
  564. 505 0:
  565. 506 018c 0190 ld __tmp_reg__,Z+
  566. 507 018e 0020 tst __tmp_reg__
  567. 508 0190 01F4 brne 0b
  568. 509 0192 3197 sbiw r30,1
  569. 510 0194 EA1B sub r30,r26
  570. 511 0196 FB0B sbc r31,r27
  571. 512 0198 8E0F add r24,r30
  572. 513 019a 9F1F adc r25,r31
  573. 514 019c 0E94 0000 call malloc
  574. 515 01a0 5C01 movw r10,r24
  575. 516 01a2 0097 sbiw r24,0
  576. 517 01a4 01F0 breq .+2
  577. 518 01a6 00C0 rjmp .L47
  578. 519 01a8 00C0 rjmp .L96
  579. 520 .L46:
  580. 521 01aa 8085 ldd r24,Z+8
  581. GAS LISTING /tmp/cc00cB6E.s page 11
  582. 522 01ac 9185 ldd r25,Z+9
  583. 523 01ae 0E94 0000 call RequestXmlTree.constprop.3
  584. 524 01b2 4C01 movw r8,r24
  585. 525 01b4 892B or r24,r25
  586. 526 01b6 01F4 brne .+2
  587. 527 01b8 00C0 rjmp .L96
  588. 528 01ba D701 movw r26,r14
  589. 529 01bc 1296 adiw r26,2
  590. 530 01be CD90 ld r12,X+
  591. 531 01c0 DC90 ld r13,X
  592. 532 01c2 1397 sbiw r26,2+1
  593. 533 01c4 68E0 ldi r22,lo8(8)
  594. 534 01c6 70E0 ldi r23,0
  595. 535 01c8 81E0 ldi r24,lo8(1)
  596. 536 01ca 90E0 ldi r25,0
  597. 537 01cc 0E94 0000 call calloc
  598. 538 01d0 5C01 movw r10,r24
  599. 539 01d2 60E0 ldi r22,lo8(.LC5)
  600. 540 01d4 70E0 ldi r23,hi8(.LC5)
  601. 541 01d6 C401 movw r24,r8
  602. 542 01d8 0E94 0000 call GetXmlNode
  603. 543 01dc 8C01 movw r16,r24
  604. 544 01de 0097 sbiw r24,0
  605. 545 01e0 01F0 breq .L50
  606. 546 01e2 60E0 ldi r22,lo8(.LC6)
  607. 547 01e4 70E0 ldi r23,hi8(.LC6)
  608. 548 01e6 FC01 movw r30,r24
  609. 549 01e8 8281 ldd r24,Z+2
  610. 550 01ea 9381 ldd r25,Z+3
  611. 551 01ec 0E94 0000 call GetXmlNode
  612. 552 01f0 8C01 movw r16,r24
  613. 553 01f2 0097 sbiw r24,0
  614. 554 01f4 01F0 breq .L50
  615. 555 01f6 DC01 movw r26,r24
  616. 556 01f8 1296 adiw r26,2
  617. 557 01fa 0D91 ld r16,X+
  618. 558 01fc 1C91 ld r17,X
  619. 559 01fe 1397 sbiw r26,2+1
  620. 560 .L50:
  621. 561 0200 A114 cp r10,__zero_reg__
  622. 562 0202 B104 cpc r11,__zero_reg__
  623. 563 0204 01F0 breq .L51
  624. 564 0206 F601 movw r30,r12
  625. 565 0208 B18A std Z+17,r11
  626. 566 020a A08A std Z+16,r10
  627. 567 020c 60E0 ldi r22,lo8(.LC7)
  628. 568 020e 70E0 ldi r23,hi8(.LC7)
  629. 569 0210 C801 movw r24,r16
  630. 570 0212 0E94 0000 call DuplicateXmlNodeContent
  631. 571 0216 D501 movw r26,r10
  632. 572 0218 8D93 st X+,r24
  633. 573 021a 9C93 st X,r25
  634. 574 .L51:
  635. 575 021c F601 movw r30,r12
  636. 576 021e 8285 ldd r24,Z+10
  637. 577 0220 9385 ldd r25,Z+11
  638. 578 0222 892B or r24,r25
  639. GAS LISTING /tmp/cc00cB6E.s page 12
  640. 579 0224 01F0 breq .L52
  641. 580 0226 8485 ldd r24,Z+12
  642. 581 0228 9585 ldd r25,Z+13
  643. 582 022a 892B or r24,r25
  644. 583 022c 01F4 brne .L53
  645. 584 .L52:
  646. 585 022e 60E0 ldi r22,lo8(.LC8)
  647. 586 0230 70E0 ldi r23,hi8(.LC8)
  648. 587 0232 C801 movw r24,r16
  649. 588 0234 0E94 0000 call DuplicateXmlNodeContent
  650. 589 0238 25E0 ldi r18,lo8(5)
  651. 590 023a 30E0 ldi r19,0
  652. 591 023c AE01 movw r20,r28
  653. 592 023e 4F5F subi r20,-1
  654. 593 0240 5F4F sbci r21,-1
  655. 594 0242 6AE3 ldi r22,lo8(58)
  656. 595 0244 0E94 0000 call SsdpSplitWords
  657. 596 0248 D601 movw r26,r12
  658. 597 024a 1A96 adiw r26,10
  659. 598 024c 8D91 ld r24,X+
  660. 599 024e 9C91 ld r25,X
  661. 600 0250 1B97 sbiw r26,10+1
  662. 601 0252 892B or r24,r25
  663. 602 0254 01F4 brne .L54
  664. 603 0256 8B81 ldd r24,Y+3
  665. 604 0258 9C81 ldd r25,Y+4
  666. 605 025a 0E94 0000 call strdup
  667. 606 025e F601 movw r30,r12
  668. 607 0260 9387 std Z+11,r25
  669. 608 0262 8287 std Z+10,r24
  670. 609 .L54:
  671. 610 0264 D601 movw r26,r12
  672. 611 0266 1C96 adiw r26,12
  673. 612 0268 8D91 ld r24,X+
  674. 613 026a 9C91 ld r25,X
  675. 614 026c 1D97 sbiw r26,12+1
  676. 615 026e 892B or r24,r25
  677. 616 0270 01F4 brne .L53
  678. 617 0272 8F81 ldd r24,Y+7
  679. 618 0274 9885 ldd r25,Y+8
  680. 619 0276 0E94 0000 call strdup
  681. 620 027a F601 movw r30,r12
  682. 621 027c 9587 std Z+13,r25
  683. 622 027e 8487 std Z+12,r24
  684. 623 .L53:
  685. 624 0280 60E0 ldi r22,lo8(.LC9)
  686. 625 0282 70E0 ldi r23,hi8(.LC9)
  687. 626 0284 C801 movw r24,r16
  688. 627 0286 0E94 0000 call GetXmlNode
  689. 628 028a 0097 sbiw r24,0
  690. 629 028c 01F4 brne .+2
  691. 630 028e 00C0 rjmp .L97
  692. 631 0290 DC01 movw r26,r24
  693. 632 0292 1296 adiw r26,2
  694. 633 0294 6D90 ld r6,X+
  695. 634 0296 7C90 ld r7,X
  696. 635 0298 1397 sbiw r26,2+1
  697. GAS LISTING /tmp/cc00cB6E.s page 13
  698. 636 029a 0FEF ldi r16,lo8(-1)
  699. 637 029c 1FEF ldi r17,lo8(-1)
  700. 638 .L57:
  701. 639 029e 6114 cp r6,__zero_reg__
  702. 640 02a0 7104 cpc r7,__zero_reg__
  703. 641 02a2 01F4 brne .+2
  704. 642 02a4 00C0 rjmp .L56
  705. 643 02a6 D301 movw r26,r6
  706. 644 02a8 1296 adiw r26,2
  707. 645 02aa CD90 ld r12,X+
  708. 646 02ac DC90 ld r13,X
  709. 647 02ae 1397 sbiw r26,2+1
  710. 648 02b0 C114 cp r12,__zero_reg__
  711. 649 02b2 D104 cpc r13,__zero_reg__
  712. 650 02b4 01F4 brne .+2
  713. 651 02b6 00C0 rjmp .L56
  714. 652 02b8 60E0 ldi r22,lo8(.LC10)
  715. 653 02ba 70E0 ldi r23,hi8(.LC10)
  716. 654 02bc C601 movw r24,r12
  717. 655 02be 0E94 0000 call GetXmlNode
  718. 656 02c2 FC01 movw r30,r24
  719. 657 02c4 8085 ldd r24,Z+8
  720. 658 02c6 9185 ldd r25,Z+9
  721. 659 02c8 0E94 0000 call strdup
  722. 660 02cc 25E0 ldi r18,lo8(5)
  723. 661 02ce 30E0 ldi r19,0
  724. 662 02d0 AE01 movw r20,r28
  725. 663 02d2 4F5F subi r20,-1
  726. 664 02d4 5F4F sbci r21,-1
  727. 665 02d6 6AE3 ldi r22,lo8(58)
  728. 666 02d8 0E94 0000 call SsdpSplitWords
  729. 667 02dc D701 movw r26,r14
  730. 668 02de 1496 adiw r26,4
  731. 669 02e0 6D91 ld r22,X+
  732. 670 02e2 7C91 ld r23,X
  733. 671 02e4 1597 sbiw r26,4+1
  734. 672 02e6 8B81 ldd r24,Y+3
  735. 673 02e8 9C81 ldd r25,Y+4
  736. 674 02ea 0E94 0000 call strcasecmp
  737. 675 02ee 892B or r24,r25
  738. 676 02f0 01F0 breq .+2
  739. 677 02f2 00C0 rjmp .L58
  740. 678 02f4 F701 movw r30,r14
  741. 679 02f6 6681 ldd r22,Z+6
  742. 680 02f8 7781 ldd r23,Z+7
  743. 681 02fa 8F81 ldd r24,Y+7
  744. 682 02fc 9885 ldd r25,Y+8
  745. 683 02fe 0E94 0000 call strcasecmp
  746. 684 0302 892B or r24,r25
  747. 685 0304 01F0 breq .+2
  748. 686 0306 00C0 rjmp .L58
  749. 687 0308 6AE0 ldi r22,lo8(10)
  750. 688 030a 70E0 ldi r23,0
  751. 689 030c 81E0 ldi r24,lo8(1)
  752. 690 030e 90E0 ldi r25,0
  753. 691 0310 0E94 0000 call calloc
  754. 692 0314 5C01 movw r10,r24
  755. GAS LISTING /tmp/cc00cB6E.s page 14
  756. 693 0316 892B or r24,r25
  757. 694 0318 01F4 brne .+2
  758. 695 031a 00C0 rjmp .L58
  759. 696 031c 60E0 ldi r22,lo8(.LC11)
  760. 697 031e 70E0 ldi r23,hi8(.LC11)
  761. 698 0320 C601 movw r24,r12
  762. 699 0322 0E94 0000 call GetXmlNode
  763. 700 0326 0097 sbiw r24,0
  764. 701 0328 01F0 breq .L59
  765. 702 032a DC01 movw r26,r24
  766. 703 032c 1896 adiw r26,8
  767. 704 032e 8D91 ld r24,X+
  768. 705 0330 9C91 ld r25,X
  769. 706 0332 1997 sbiw r26,8+1
  770. 707 0334 0097 sbiw r24,0
  771. 708 0336 01F0 breq .L59
  772. 709 0338 0E94 0000 call strdup
  773. 710 033c F501 movw r30,r10
  774. 711 033e 9183 std Z+1,r25
  775. 712 0340 8083 st Z,r24
  776. 713 .L59:
  777. 714 0342 60E0 ldi r22,lo8(.LC12)
  778. 715 0344 70E0 ldi r23,hi8(.LC12)
  779. 716 0346 C601 movw r24,r12
  780. 717 0348 0E94 0000 call GetXmlNode
  781. 718 034c 0097 sbiw r24,0
  782. 719 034e 01F0 breq .L60
  783. 720 0350 DC01 movw r26,r24
  784. 721 0352 1896 adiw r26,8
  785. 722 0354 8D91 ld r24,X+
  786. 723 0356 9C91 ld r25,X
  787. 724 0358 1997 sbiw r26,8+1
  788. 725 035a 0097 sbiw r24,0
  789. 726 035c 01F0 breq .L60
  790. 727 035e 0E94 0000 call strdup
  791. 728 0362 F501 movw r30,r10
  792. 729 0364 9383 std Z+3,r25
  793. 730 0366 8283 std Z+2,r24
  794. 731 .L60:
  795. 732 0368 60E0 ldi r22,lo8(.LC13)
  796. 733 036a 70E0 ldi r23,hi8(.LC13)
  797. 734 036c C601 movw r24,r12
  798. 735 036e 0E94 0000 call GetXmlNode
  799. 736 0372 0097 sbiw r24,0
  800. 737 0374 01F0 breq .L61
  801. 738 0376 DC01 movw r26,r24
  802. 739 0378 1896 adiw r26,8
  803. 740 037a 8D91 ld r24,X+
  804. 741 037c 9C91 ld r25,X
  805. 742 037e 1997 sbiw r26,8+1
  806. 743 0380 0097 sbiw r24,0
  807. 744 0382 01F0 breq .L61
  808. 745 0384 0E94 0000 call strdup
  809. 746 0388 F501 movw r30,r10
  810. 747 038a 9583 std Z+5,r25
  811. 748 038c 8483 std Z+4,r24
  812. 749 .L61:
  813. GAS LISTING /tmp/cc00cB6E.s page 15
  814. 750 038e D701 movw r26,r14
  815. 751 0390 1996 adiw r26,8+1
  816. 752 0392 BC92 st X,r11
  817. 753 0394 AE92 st -X,r10
  818. 754 0396 1897 sbiw r26,8
  819. 755 0398 00E0 ldi r16,0
  820. 756 039a 10E0 ldi r17,0
  821. 757 .L58:
  822. 758 039c F301 movw r30,r6
  823. 759 039e 6080 ld r6,Z
  824. 760 03a0 7180 ldd r7,Z+1
  825. 761 03a2 00C0 rjmp .L57
  826. 762 .L97:
  827. 763 03a4 0FEF ldi r16,lo8(-1)
  828. 764 03a6 1FEF ldi r17,lo8(-1)
  829. 765 .L56:
  830. 766 03a8 C401 movw r24,r8
  831. 767 03aa 0E94 0000 call UxmlTreeDestroy
  832. 768 03ae 0115 cp r16,__zero_reg__
  833. 769 03b0 1105 cpc r17,__zero_reg__
  834. 770 03b2 01F0 breq .+2
  835. 771 03b4 00C0 rjmp .L132
  836. 772 03b6 00C0 rjmp .L63
  837. 773 .L47:
  838. 774 03b8 B601 movw r22,r12
  839. 775 03ba 0E94 0000 call strcpy
  840. 776 03be 6FE2 ldi r22,lo8(47)
  841. 777 03c0 70E0 ldi r23,0
  842. 778 03c2 C501 movw r24,r10
  843. 779 03c4 0E94 0000 call strrchr
  844. 780 03c8 0097 sbiw r24,0
  845. 781 03ca 01F4 brne .+2
  846. 782 03cc 00C0 rjmp .L96
  847. 783 03ce F801 movw r30,r16
  848. 784 03d0 6081 ld r22,Z
  849. 785 03d2 7181 ldd r23,Z+1
  850. 786 03d4 DB01 movw r26,r22
  851. 787 03d6 2C91 ld r18,X
  852. 788 03d8 2F32 cpi r18,lo8(47)
  853. 789 03da 01F0 breq .L64
  854. 790 03dc 0196 adiw r24,1
  855. 791 .L64:
  856. 792 03de 0E94 0000 call strcpy
  857. 793 03e2 C501 movw r24,r10
  858. 794 03e4 0E94 0000 call RequestXmlTree.constprop.3
  859. 795 03e8 4C01 movw r8,r24
  860. 796 03ea 0097 sbiw r24,0
  861. 797 03ec 01F4 brne .+2
  862. 798 03ee 00C0 rjmp .L96
  863. 799 03f0 60E0 ldi r22,lo8(.LC14)
  864. 800 03f2 70E0 ldi r23,hi8(.LC14)
  865. 801 03f4 0E94 0000 call GetXmlNode
  866. 802 03f8 0097 sbiw r24,0
  867. 803 03fa 01F4 brne .+2
  868. 804 03fc 00C0 rjmp .L100
  869. 805 03fe FC01 movw r30,r24
  870. 806 0400 0281 ldd r16,Z+2
  871. GAS LISTING /tmp/cc00cB6E.s page 16
  872. 807 0402 1381 ldd r17,Z+3
  873. 808 0404 60E0 ldi r22,lo8(.LC15)
  874. 809 0406 70E0 ldi r23,hi8(.LC15)
  875. 810 0408 C801 movw r24,r16
  876. 811 040a 0E94 0000 call GetXmlNode
  877. 812 040e 2C01 movw r4,r24
  878. 813 0410 60E0 ldi r22,lo8(.LC16)
  879. 814 0412 70E0 ldi r23,hi8(.LC16)
  880. 815 0414 C801 movw r24,r16
  881. 816 0416 0E94 0000 call GetXmlNode
  882. 817 041a 4114 cp r4,__zero_reg__
  883. 818 041c 5104 cpc r5,__zero_reg__
  884. 819 041e 01F4 brne .+2
  885. 820 0420 00C0 rjmp .L100
  886. 821 0422 0097 sbiw r24,0
  887. 822 0424 01F4 brne .+2
  888. 823 0426 00C0 rjmp .L100
  889. 824 0428 DC01 movw r26,r24
  890. 825 042a 1296 adiw r26,2
  891. 826 042c 6D90 ld r6,X+
  892. 827 042e 7C90 ld r7,X
  893. 828 0430 1397 sbiw r26,2+1
  894. 829 .L66:
  895. 830 0432 6114 cp r6,__zero_reg__
  896. 831 0434 7104 cpc r7,__zero_reg__
  897. 832 0436 01F4 brne .+2
  898. 833 0438 00C0 rjmp .L73
  899. 834 043a F301 movw r30,r6
  900. 835 043c C280 ldd r12,Z+2
  901. 836 043e D380 ldd r13,Z+3
  902. 837 0440 C114 cp r12,__zero_reg__
  903. 838 0442 D104 cpc r13,__zero_reg__
  904. 839 0444 01F4 brne .+2
  905. 840 0446 00C0 rjmp .L73
  906. 841 0448 6AE0 ldi r22,lo8(10)
  907. 842 044a 70E0 ldi r23,0
  908. 843 044c 81E0 ldi r24,lo8(1)
  909. 844 044e 90E0 ldi r25,0
  910. 845 0450 0E94 0000 call calloc
  911. 846 0454 8C01 movw r16,r24
  912. 847 0456 892B or r24,r25
  913. 848 0458 01F4 brne .+2
  914. 849 045a 00C0 rjmp .L67
  915. 850 .L71:
  916. 851 045c F601 movw r30,r12
  917. 852 045e A084 ldd r10,Z+8
  918. 853 0460 B184 ldd r11,Z+9
  919. 854 0462 A114 cp r10,__zero_reg__
  920. 855 0464 B104 cpc r11,__zero_reg__
  921. 856 0466 01F0 breq .L68
  922. 857 0468 2680 ldd r2,Z+6
  923. 858 046a 3780 ldd r3,Z+7
  924. 859 046c 60E0 ldi r22,lo8(.LC17)
  925. 860 046e 70E0 ldi r23,hi8(.LC17)
  926. 861 0470 C101 movw r24,r2
  927. 862 0472 0E94 0000 call strcasecmp
  928. 863 0476 892B or r24,r25
  929. GAS LISTING /tmp/cc00cB6E.s page 17
  930. 864 0478 01F4 brne .L69
  931. 865 047a C501 movw r24,r10
  932. 866 047c 0E94 0000 call strdup
  933. 867 0480 D801 movw r26,r16
  934. 868 0482 1396 adiw r26,2+1
  935. 869 0484 9C93 st X,r25
  936. 870 0486 8E93 st -X,r24
  937. 871 0488 1297 sbiw r26,2
  938. 872 048a 00C0 rjmp .L68
  939. 873 .L69:
  940. 874 048c 60E0 ldi r22,lo8(.LC18)
  941. 875 048e 70E0 ldi r23,hi8(.LC18)
  942. 876 0490 C101 movw r24,r2
  943. 877 0492 0E94 0000 call strcasecmp
  944. 878 0496 892B or r24,r25
  945. 879 0498 01F4 brne .L70
  946. 880 049a C501 movw r24,r10
  947. 881 049c 0E94 0000 call UpnpVarTypeIndex
  948. 882 04a0 F801 movw r30,r16
  949. 883 04a2 9183 std Z+1,r25
  950. 884 04a4 8083 st Z,r24
  951. 885 04a6 00C0 rjmp .L68
  952. 886 .L70:
  953. 887 04a8 60E0 ldi r22,lo8(.LC19)
  954. 888 04aa 70E0 ldi r23,hi8(.LC19)
  955. 889 04ac C101 movw r24,r2
  956. 890 04ae 0E94 0000 call strcasecmp
  957. 891 04b2 892B or r24,r25
  958. 892 04b4 01F4 brne .L68
  959. 893 04b6 C501 movw r24,r10
  960. 894 04b8 0E94 0000 call strdup
  961. 895 04bc D801 movw r26,r16
  962. 896 04be 1796 adiw r26,6+1
  963. 897 04c0 9C93 st X,r25
  964. 898 04c2 8E93 st -X,r24
  965. 899 04c4 1697 sbiw r26,6
  966. 900 .L68:
  967. 901 04c6 F601 movw r30,r12
  968. 902 04c8 C080 ld r12,Z
  969. 903 04ca D180 ldd r13,Z+1
  970. 904 04cc C114 cp r12,__zero_reg__
  971. 905 04ce D104 cpc r13,__zero_reg__
  972. 906 04d0 01F4 brne .L71
  973. 907 04d2 D801 movw r26,r16
  974. 908 04d4 1296 adiw r26,2
  975. 909 04d6 8D91 ld r24,X+
  976. 910 04d8 9C91 ld r25,X
  977. 911 04da 1397 sbiw r26,2+1
  978. 912 04dc 0097 sbiw r24,0
  979. 913 04de 01F0 breq .L72
  980. 914 04e0 2D91 ld r18,X+
  981. 915 04e2 3C91 ld r19,X
  982. 916 04e4 232B or r18,r19
  983. 917 04e6 01F0 breq .L72
  984. 918 04e8 D701 movw r26,r14
  985. 919 04ea 1896 adiw r26,8
  986. 920 04ec ED91 ld r30,X+
  987. GAS LISTING /tmp/cc00cB6E.s page 18
  988. 921 04ee FC91 ld r31,X
  989. 922 04f0 1997 sbiw r26,8+1
  990. 923 04f2 8085 ldd r24,Z+8
  991. 924 04f4 9185 ldd r25,Z+9
  992. 925 04f6 D801 movw r26,r16
  993. 926 04f8 1996 adiw r26,8+1
  994. 927 04fa 9C93 st X,r25
  995. 928 04fc 8E93 st -X,r24
  996. 929 04fe 1897 sbiw r26,8
  997. 930 0500 1187 std Z+9,r17
  998. 931 0502 0087 std Z+8,r16
  999. 932 0504 00C0 rjmp .L67
  1000. 933 .L72:
  1001. 934 0506 0E94 0000 call free
  1002. 935 050a F801 movw r30,r16
  1003. 936 050c 8681 ldd r24,Z+6
  1004. 937 050e 9781 ldd r25,Z+7
  1005. 938 0510 0E94 0000 call free
  1006. 939 0514 C801 movw r24,r16
  1007. 940 0516 0E94 0000 call free
  1008. 941 .L67:
  1009. 942 051a D301 movw r26,r6
  1010. 943 051c 6D90 ld r6,X+
  1011. 944 051e 7C90 ld r7,X
  1012. 945 0520 00C0 rjmp .L66
  1013. 946 .L73:
  1014. 947 0522 D201 movw r26,r4
  1015. 948 0524 1296 adiw r26,2
  1016. 949 0526 0D90 ld __tmp_reg__,X+
  1017. 950 0528 BC91 ld r27,X
  1018. 951 052a A02D mov r26,__tmp_reg__
  1019. 952 052c BE87 std Y+14,r27
  1020. 953 052e AD87 std Y+13,r26
  1021. 954 0530 0FEF ldi r16,lo8(-1)
  1022. 955 0532 1FEF ldi r17,lo8(-1)
  1023. 956 .L75:
  1024. 957 0534 8D85 ldd r24,Y+13
  1025. 958 0536 9E85 ldd r25,Y+14
  1026. 959 0538 0097 sbiw r24,0
  1027. 960 053a 01F4 brne .+2
  1028. 961 053c 00C0 rjmp .L65
  1029. 962 053e DC01 movw r26,r24
  1030. 963 0540 1296 adiw r26,2
  1031. 964 0542 CD90 ld r12,X+
  1032. 965 0544 DC90 ld r13,X
  1033. 966 0546 1397 sbiw r26,2+1
  1034. 967 0548 C114 cp r12,__zero_reg__
  1035. 968 054a D104 cpc r13,__zero_reg__
  1036. 969 054c 01F4 brne .+2
  1037. 970 054e 00C0 rjmp .L65
  1038. 971 0550 68E0 ldi r22,lo8(8)
  1039. 972 0552 70E0 ldi r23,0
  1040. 973 0554 81E0 ldi r24,lo8(1)
  1041. 974 0556 90E0 ldi r25,0
  1042. 975 0558 0E94 0000 call calloc
  1043. 976 055c 5C01 movw r10,r24
  1044. 977 055e 892B or r24,r25
  1045. GAS LISTING /tmp/cc00cB6E.s page 19
  1046. 978 0560 01F4 brne .+2
  1047. 979 0562 00C0 rjmp .L76
  1048. 980 0564 60E0 ldi r22,lo8(.LC17)
  1049. 981 0566 70E0 ldi r23,hi8(.LC17)
  1050. 982 0568 C601 movw r24,r12
  1051. 983 056a 0E94 0000 call GetXmlNode
  1052. 984 056e 0097 sbiw r24,0
  1053. 985 0570 01F4 brne .+2
  1054. 986 0572 00C0 rjmp .L76
  1055. 987 0574 FC01 movw r30,r24
  1056. 988 0576 6084 ldd r6,Z+8
  1057. 989 0578 7184 ldd r7,Z+9
  1058. 990 057a 6114 cp r6,__zero_reg__
  1059. 991 057c 7104 cpc r7,__zero_reg__
  1060. 992 057e 01F4 brne .+2
  1061. 993 0580 00C0 rjmp .L76
  1062. 994 0582 60E0 ldi r22,lo8(.LC20)
  1063. 995 0584 70E0 ldi r23,hi8(.LC20)
  1064. 996 0586 C601 movw r24,r12
  1065. 997 0588 0E94 0000 call GetXmlNode
  1066. 998 058c 8C01 movw r16,r24
  1067. 999 058e C301 movw r24,r6
  1068. 1000 0590 0E94 0000 call strdup
  1069. 1001 0594 D501 movw r26,r10
  1070. 1002 0596 1396 adiw r26,2+1
  1071. 1003 0598 9C93 st X,r25
  1072. 1004 059a 8E93 st -X,r24
  1073. 1005 059c 1297 sbiw r26,2
  1074. 1006 059e 0115 cp r16,__zero_reg__
  1075. 1007 05a0 1105 cpc r17,__zero_reg__
  1076. 1008 05a2 01F4 brne .+2
  1077. 1009 05a4 00C0 rjmp .L76
  1078. 1010 05a6 F801 movw r30,r16
  1079. 1011 05a8 0280 ldd __tmp_reg__,Z+2
  1080. 1012 05aa F381 ldd r31,Z+3
  1081. 1013 05ac E02D mov r30,__tmp_reg__
  1082. 1014 05ae FC87 std Y+12,r31
  1083. 1015 05b0 EB87 std Y+11,r30
  1084. 1016 05b2 0FEF ldi r16,lo8(-1)
  1085. 1017 05b4 1FEF ldi r17,lo8(-1)
  1086. 1018 05b6 C501 movw r24,r10
  1087. 1019 05b8 0696 adiw r24,6
  1088. 1020 05ba 988B std Y+16,r25
  1089. 1021 05bc 8F87 std Y+15,r24
  1090. 1022 05be 1496 adiw r26,4
  1091. 1023 05c0 BA8B std Y+18,r27
  1092. 1024 05c2 A98B std Y+17,r26
  1093. 1025 .L78:
  1094. 1026 05c4 8B85 ldd r24,Y+11
  1095. 1027 05c6 9C85 ldd r25,Y+12
  1096. 1028 05c8 892B or r24,r25
  1097. 1029 05ca 01F4 brne .L89
  1098. 1030 .L93:
  1099. 1031 05cc 0115 cp r16,__zero_reg__
  1100. 1032 05ce 1105 cpc r17,__zero_reg__
  1101. 1033 05d0 01F0 breq .+2
  1102. 1034 05d2 00C0 rjmp .L91
  1103. GAS LISTING /tmp/cc00cB6E.s page 20
  1104. 1035 05d4 D701 movw r26,r14
  1105. 1036 05d6 1896 adiw r26,8
  1106. 1037 05d8 ED91 ld r30,X+
  1107. 1038 05da FC91 ld r31,X
  1108. 1039 05dc 1997 sbiw r26,8+1
  1109. 1040 05de 8681 ldd r24,Z+6
  1110. 1041 05e0 9781 ldd r25,Z+7
  1111. 1042 05e2 D501 movw r26,r10
  1112. 1043 05e4 8D93 st X+,r24
  1113. 1044 05e6 9C93 st X,r25
  1114. 1045 05e8 B782 std Z+7,r11
  1115. 1046 05ea A682 std Z+6,r10
  1116. 1047 05ec 00C0 rjmp .L91
  1117. 1048 .L89:
  1118. 1049 05ee AB85 ldd r26,Y+11
  1119. 1050 05f0 BC85 ldd r27,Y+12
  1120. 1051 05f2 1296 adiw r26,2
  1121. 1052 05f4 4D90 ld r4,X+
  1122. 1053 05f6 5C90 ld r5,X
  1123. 1054 05f8 1397 sbiw r26,2+1
  1124. 1055 05fa 4114 cp r4,__zero_reg__
  1125. 1056 05fc 5104 cpc r5,__zero_reg__
  1126. 1057 05fe 01F0 breq .L93
  1127. 1058 0600 68E0 ldi r22,lo8(8)
  1128. 1059 0602 70E0 ldi r23,0
  1129. 1060 0604 81E0 ldi r24,lo8(1)
  1130. 1061 0606 90E0 ldi r25,0
  1131. 1062 0608 0E94 0000 call calloc
  1132. 1063 060c 6C01 movw r12,r24
  1133. 1064 060e 892B or r24,r25
  1134. 1065 0610 01F4 brne .+2
  1135. 1066 0612 00C0 rjmp .L79
  1136. 1067 0614 212C mov r2,__zero_reg__
  1137. 1068 0616 312C mov r3,__zero_reg__
  1138. 1069 .L87:
  1139. 1070 0618 F201 movw r30,r4
  1140. 1071 061a 6084 ldd r6,Z+8
  1141. 1072 061c 7184 ldd r7,Z+9
  1142. 1073 061e 6114 cp r6,__zero_reg__
  1143. 1074 0620 7104 cpc r7,__zero_reg__
  1144. 1075 0622 01F4 brne .+2
  1145. 1076 0624 00C0 rjmp .L80
  1146. 1077 0626 2681 ldd r18,Z+6
  1147. 1078 0628 3781 ldd r19,Z+7
  1148. 1079 062a 60E0 ldi r22,lo8(.LC17)
  1149. 1080 062c 70E0 ldi r23,hi8(.LC17)
  1150. 1081 062e C901 movw r24,r18
  1151. 1082 0630 2B8B std Y+19,r18
  1152. 1083 0632 3C8B std Y+20,r19
  1153. 1084 0634 0E94 0000 call strcasecmp
  1154. 1085 0638 2B89 ldd r18,Y+19
  1155. 1086 063a 3C89 ldd r19,Y+20
  1156. 1087 063c 892B or r24,r25
  1157. 1088 063e 01F4 brne .L81
  1158. 1089 0640 C301 movw r24,r6
  1159. 1090 0642 0E94 0000 call strdup
  1160. 1091 0646 D601 movw r26,r12
  1161. GAS LISTING /tmp/cc00cB6E.s page 21
  1162. 1092 0648 1396 adiw r26,2+1
  1163. 1093 064a 9C93 st X,r25
  1164. 1094 064c 8E93 st -X,r24
  1165. 1095 064e 1297 sbiw r26,2
  1166. 1096 0650 00C0 rjmp .L80
  1167. 1097 .L81:
  1168. 1098 0652 60E0 ldi r22,lo8(.LC21)
  1169. 1099 0654 70E0 ldi r23,hi8(.LC21)
  1170. 1100 0656 C901 movw r24,r18
  1171. 1101 0658 2B8B std Y+19,r18
  1172. 1102 065a 3C8B std Y+20,r19
  1173. 1103 065c 0E94 0000 call strcasecmp
  1174. 1104 0660 2B89 ldd r18,Y+19
  1175. 1105 0662 3C89 ldd r19,Y+20
  1176. 1106 0664 892B or r24,r25
  1177. 1107 0666 01F4 brne .L82
  1178. 1108 0668 F301 movw r30,r6
  1179. 1109 066a 8081 ld r24,Z
  1180. 1110 066c 8936 cpi r24,lo8(105)
  1181. 1111 066e 01F4 brne .L83
  1182. 1112 0670 2988 ldd r2,Y+17
  1183. 1113 0672 3A88 ldd r3,Y+18
  1184. 1114 0674 00C0 rjmp .L80
  1185. 1115 .L83:
  1186. 1116 0676 8F36 cpi r24,lo8(111)
  1187. 1117 0678 01F4 brne .L80
  1188. 1118 067a 2F84 ldd r2,Y+15
  1189. 1119 067c 3888 ldd r3,Y+16
  1190. 1120 067e 00C0 rjmp .L80
  1191. 1121 .L82:
  1192. 1122 0680 60E0 ldi r22,lo8(.LC22)
  1193. 1123 0682 70E0 ldi r23,hi8(.LC22)
  1194. 1124 0684 C901 movw r24,r18
  1195. 1125 0686 0E94 0000 call strcasecmp
  1196. 1126 068a 892B or r24,r25
  1197. 1127 068c 01F4 brne .L80
  1198. 1128 068e D701 movw r26,r14
  1199. 1129 0690 1896 adiw r26,8
  1200. 1130 0692 ED91 ld r30,X+
  1201. 1131 0694 FC91 ld r31,X
  1202. 1132 0696 1997 sbiw r26,8+1
  1203. 1133 .L197:
  1204. 1134 0698 2085 ldd r18,Z+8
  1205. 1135 069a 3185 ldd r19,Z+9
  1206. 1136 069c 2115 cp r18,__zero_reg__
  1207. 1137 069e 3105 cpc r19,__zero_reg__
  1208. 1138 06a0 01F0 breq .L80
  1209. 1139 06a2 F901 movw r30,r18
  1210. 1140 06a4 6281 ldd r22,Z+2
  1211. 1141 06a6 7381 ldd r23,Z+3
  1212. 1142 06a8 C301 movw r24,r6
  1213. 1143 06aa 2B8B std Y+19,r18
  1214. 1144 06ac 3C8B std Y+20,r19
  1215. 1145 06ae 0E94 0000 call strcasecmp
  1216. 1146 06b2 2B89 ldd r18,Y+19
  1217. 1147 06b4 3C89 ldd r19,Y+20
  1218. 1148 06b6 892B or r24,r25
  1219. GAS LISTING /tmp/cc00cB6E.s page 22
  1220. 1149 06b8 01F4 brne .L85
  1221. 1150 06ba D601 movw r26,r12
  1222. 1151 06bc 1796 adiw r26,6+1
  1223. 1152 06be 3C93 st X,r19
  1224. 1153 06c0 2E93 st -X,r18
  1225. 1154 06c2 1697 sbiw r26,6
  1226. 1155 06c4 00C0 rjmp .L80
  1227. 1156 .L85:
  1228. 1157 06c6 F901 movw r30,r18
  1229. 1158 06c8 00C0 rjmp .L197
  1230. 1159 .L80:
  1231. 1160 06ca D201 movw r26,r4
  1232. 1161 06cc 4D90 ld r4,X+
  1233. 1162 06ce 5C90 ld r5,X
  1234. 1163 06d0 4114 cp r4,__zero_reg__
  1235. 1164 06d2 5104 cpc r5,__zero_reg__
  1236. 1165 06d4 01F0 breq .+2
  1237. 1166 06d6 00C0 rjmp .L87
  1238. 1167 06d8 F601 movw r30,r12
  1239. 1168 06da 8281 ldd r24,Z+2
  1240. 1169 06dc 9381 ldd r25,Z+3
  1241. 1170 06de 0097 sbiw r24,0
  1242. 1171 06e0 01F0 breq .L88
  1243. 1172 06e2 2114 cp r2,__zero_reg__
  1244. 1173 06e4 3104 cpc r3,__zero_reg__
  1245. 1174 06e6 01F0 breq .L88
  1246. 1175 06e8 2681 ldd r18,Z+6
  1247. 1176 06ea 3781 ldd r19,Z+7
  1248. 1177 06ec 232B or r18,r19
  1249. 1178 06ee 01F0 breq .L88
  1250. 1179 06f0 D101 movw r26,r2
  1251. 1180 06f2 8D91 ld r24,X+
  1252. 1181 06f4 9C91 ld r25,X
  1253. 1182 06f6 1197 sbiw r26,1
  1254. 1183 06f8 9183 std Z+1,r25
  1255. 1184 06fa 8083 st Z,r24
  1256. 1185 06fc CD92 st X+,r12
  1257. 1186 06fe DC92 st X,r13
  1258. 1187 0700 00E0 ldi r16,0
  1259. 1188 0702 10E0 ldi r17,0
  1260. 1189 0704 00C0 rjmp .L79
  1261. 1190 .L88:
  1262. 1191 0706 0E94 0000 call free
  1263. 1192 070a C601 movw r24,r12
  1264. 1193 070c 0E94 0000 call free
  1265. 1194 .L79:
  1266. 1195 0710 EB85 ldd r30,Y+11
  1267. 1196 0712 FC85 ldd r31,Y+12
  1268. 1197 0714 0190 ld __tmp_reg__,Z+
  1269. 1198 0716 F081 ld r31,Z
  1270. 1199 0718 E02D mov r30,__tmp_reg__
  1271. 1200 071a FC87 std Y+12,r31
  1272. 1201 071c EB87 std Y+11,r30
  1273. 1202 071e 00C0 rjmp .L78
  1274. 1203 .L76:
  1275. 1204 0720 0FEF ldi r16,lo8(-1)
  1276. 1205 0722 1FEF ldi r17,lo8(-1)
  1277. GAS LISTING /tmp/cc00cB6E.s page 23
  1278. 1206 .L91:
  1279. 1207 0724 ED85 ldd r30,Y+13
  1280. 1208 0726 FE85 ldd r31,Y+14
  1281. 1209 0728 0190 ld __tmp_reg__,Z+
  1282. 1210 072a F081 ld r31,Z
  1283. 1211 072c E02D mov r30,__tmp_reg__
  1284. 1212 072e FE87 std Y+14,r31
  1285. 1213 0730 ED87 std Y+13,r30
  1286. 1214 0732 00C0 rjmp .L75
  1287. 1215 .L100:
  1288. 1216 0734 0FEF ldi r16,lo8(-1)
  1289. 1217 0736 1FEF ldi r17,lo8(-1)
  1290. 1218 .L65:
  1291. 1219 0738 C401 movw r24,r8
  1292. 1220 073a 0E94 0000 call UxmlTreeDestroy
  1293. 1221 073e 0115 cp r16,__zero_reg__
  1294. 1222 0740 1105 cpc r17,__zero_reg__
  1295. 1223 0742 01F4 brne .L132
  1296. 1224 0744 60E0 ldi r22,0
  1297. 1225 0746 C701 movw r24,r14
  1298. 1226 0748 0E94 0000 call CallObservers
  1299. 1227 074c 8C01 movw r16,r24
  1300. 1228 074e 00C0 rjmp .L132
  1301. 1229 .L95:
  1302. 1230 0750 00E0 ldi r16,0
  1303. 1231 0752 10E0 ldi r17,0
  1304. 1232 0754 00C0 rjmp .L132
  1305. 1233 .L96:
  1306. 1234 0756 0FEF ldi r16,lo8(-1)
  1307. 1235 0758 1FEF ldi r17,lo8(-1)
  1308. 1236 .L132:
  1309. 1237 075a C801 movw r24,r16
  1310. 1238 /* epilogue start */
  1311. 1239 075c 6496 adiw r28,20
  1312. 1240 075e 0FB6 in __tmp_reg__,__SREG__
  1313. 1241 0760 F894 cli
  1314. 1242 0762 DEBF out __SP_H__,r29
  1315. 1243 0764 0FBE out __SREG__,__tmp_reg__
  1316. 1244 0766 CDBF out __SP_L__,r28
  1317. 1245 0768 DF91 pop r29
  1318. 1246 076a CF91 pop r28
  1319. 1247 076c 1F91 pop r17
  1320. 1248 076e 0F91 pop r16
  1321. 1249 0770 FF90 pop r15
  1322. 1250 0772 EF90 pop r14
  1323. 1251 0774 DF90 pop r13
  1324. 1252 0776 CF90 pop r12
  1325. 1253 0778 BF90 pop r11
  1326. 1254 077a AF90 pop r10
  1327. 1255 077c 9F90 pop r9
  1328. 1256 077e 8F90 pop r8
  1329. 1257 0780 7F90 pop r7
  1330. 1258 0782 6F90 pop r6
  1331. 1259 0784 5F90 pop r5
  1332. 1260 0786 4F90 pop r4
  1333. 1261 0788 3F90 pop r3
  1334. 1262 078a 2F90 pop r2
  1335. GAS LISTING /tmp/cc00cB6E.s page 24
  1336. 1263 078c 0895 ret
  1337. 1264 .size ServiceObserver, .-ServiceObserver
  1338. 1265 .section .text.UpnpRegisterServiceObserver,"ax",@progbits
  1339. 1266 .global UpnpRegisterServiceObserver
  1340. 1267 .type UpnpRegisterServiceObserver, @function
  1341. 1268 UpnpRegisterServiceObserver:
  1342. 1269 0000 8F92 push r8
  1343. 1270 0002 9F92 push r9
  1344. 1271 0004 AF92 push r10
  1345. 1272 0006 BF92 push r11
  1346. 1273 0008 CF92 push r12
  1347. 1274 000a DF92 push r13
  1348. 1275 000c EF92 push r14
  1349. 1276 000e FF92 push r15
  1350. 1277 0010 0F93 push r16
  1351. 1278 0012 1F93 push r17
  1352. 1279 0014 CF93 push r28
  1353. 1280 0016 DF93 push r29
  1354. 1281 0018 1F92 push __zero_reg__
  1355. 1282 001a CDB7 in r28,__SP_L__
  1356. 1283 001c DEB7 in r29,__SP_H__
  1357. 1284 /* prologue: function */
  1358. 1285 /* frame size = 1 */
  1359. 1286 /* stack size = 13 */
  1360. 1287 .L__stack_usage = 13
  1361. 1288 001e 5C01 movw r10,r24
  1362. 1289 0020 8B01 movw r16,r22
  1363. 1290 0022 7A01 movw r14,r20
  1364. 1291 0024 88E0 ldi r24,lo8(8)
  1365. 1292 0026 90E0 ldi r25,0
  1366. 1293 0028 2983 std Y+1,r18
  1367. 1294 002a 0E94 0000 call malloc
  1368. 1295 002e 4C01 movw r8,r24
  1369. 1296 0030 892B or r24,r25
  1370. 1297 0032 01F0 breq .L205
  1371. 1298 0034 C801 movw r24,r16
  1372. 1299 0036 0E94 0000 call strdup
  1373. 1300 003a 6C01 movw r12,r24
  1374. 1301 003c F401 movw r30,r8
  1375. 1302 003e 9383 std Z+3,r25
  1376. 1303 0040 8283 std Z+2,r24
  1377. 1304 0042 C701 movw r24,r14
  1378. 1305 0044 0E94 0000 call strdup
  1379. 1306 0048 F401 movw r30,r8
  1380. 1307 004a 9583 std Z+5,r25
  1381. 1308 004c 8483 std Z+4,r24
  1382. 1309 004e 2981 ldd r18,Y+1
  1383. 1310 0050 CD28 or r12,r13
  1384. 1311 0052 01F0 breq .L207
  1385. 1312 0054 892B or r24,r25
  1386. 1313 0056 01F0 breq .L207
  1387. 1314 0058 B782 std Z+7,r11
  1388. 1315 005a A682 std Z+6,r10
  1389. 1316 005c 8091 0000 lds r24,upnp_observer_root
  1390. 1317 0060 9091 0000 lds r25,upnp_observer_root+1
  1391. 1318 0064 9183 std Z+1,r25
  1392. 1319 0066 8083 st Z,r24
  1393. GAS LISTING /tmp/cc00cB6E.s page 25
  1394. 1320 0068 9092 0000 sts upnp_observer_root+1,r9
  1395. 1321 006c 8092 0000 sts upnp_observer_root,r8
  1396. 1322 0070 A701 movw r20,r14
  1397. 1323 0072 B801 movw r22,r16
  1398. 1324 0074 80E0 ldi r24,lo8(gs(ServiceObserver))
  1399. 1325 0076 90E0 ldi r25,hi8(gs(ServiceObserver))
  1400. 1326 0078 0E94 0000 call SsdpRegisterServiceObserver
  1401. 1327 007c 8C01 movw r16,r24
  1402. 1328 007e 892B or r24,r25
  1403. 1329 0080 01F0 breq .L203
  1404. 1330 0082 00C0 rjmp .L204
  1405. 1331 .L207:
  1406. 1332 0084 0FEF ldi r16,lo8(-1)
  1407. 1333 0086 1FEF ldi r17,lo8(-1)
  1408. 1334 .L204:
  1409. 1335 0088 F401 movw r30,r8
  1410. 1336 008a 8281 ldd r24,Z+2
  1411. 1337 008c 9381 ldd r25,Z+3
  1412. 1338 008e 0E94 0000 call free
  1413. 1339 0092 F401 movw r30,r8
  1414. 1340 0094 8481 ldd r24,Z+4
  1415. 1341 0096 9581 ldd r25,Z+5
  1416. 1342 0098 0E94 0000 call free
  1417. 1343 009c C401 movw r24,r8
  1418. 1344 009e 0E94 0000 call free
  1419. 1345 00a2 00C0 rjmp .L203
  1420. 1346 .L205:
  1421. 1347 00a4 0FEF ldi r16,lo8(-1)
  1422. 1348 00a6 1FEF ldi r17,lo8(-1)
  1423. 1349 .L203:
  1424. 1350 00a8 C801 movw r24,r16
  1425. 1351 /* epilogue start */
  1426. 1352 00aa 0F90 pop __tmp_reg__
  1427. 1353 00ac DF91 pop r29
  1428. 1354 00ae CF91 pop r28
  1429. 1355 00b0 1F91 pop r17
  1430. 1356 00b2 0F91 pop r16
  1431. 1357 00b4 FF90 pop r15
  1432. 1358 00b6 EF90 pop r14
  1433. 1359 00b8 DF90 pop r13
  1434. 1360 00ba CF90 pop r12
  1435. 1361 00bc BF90 pop r11
  1436. 1362 00be AF90 pop r10
  1437. 1363 00c0 9F90 pop r9
  1438. 1364 00c2 8F90 pop r8
  1439. 1365 00c4 0895 ret
  1440. 1366 .size UpnpRegisterServiceObserver, .-UpnpRegisterServiceObserver
  1441. 1367 .section .text.UpnpServiceProcByName,"ax",@progbits
  1442. 1368 .global UpnpServiceProcByName
  1443. 1369 .type UpnpServiceProcByName, @function
  1444. 1370 UpnpServiceProcByName:
  1445. 1371 /* prologue: function */
  1446. 1372 /* frame size = 0 */
  1447. 1373 /* stack size = 0 */
  1448. 1374 .L__stack_usage = 0
  1449. 1375 0000 DC01 movw r26,r24
  1450. 1376 0002 1896 adiw r26,8
  1451. GAS LISTING /tmp/cc00cB6E.s page 26
  1452. 1377 0004 ED91 ld r30,X+
  1453. 1378 0006 FC91 ld r31,X
  1454. 1379 0008 1997 sbiw r26,8+1
  1455. 1380 000a 8681 ldd r24,Z+6
  1456. 1381 000c 9781 ldd r25,Z+7
  1457. 1382 000e 0C94 0000 jmp SoapProcByName
  1458. 1383 .size UpnpServiceProcByName, .-UpnpServiceProcByName
  1459. 1384 .section .rodata.str1.1
  1460. 1385 .LC23:
  1461. 1386 0101 2573 3A73 .string "%s:service:%s:1"
  1462. 1386 6572 7669
  1463. 1386 6365 3A25
  1464. 1386 733A 3100
  1465. 1387 .section .text.UpnpServiceProcCall,"ax",@progbits
  1466. 1388 .global UpnpServiceProcCall
  1467. 1389 .type UpnpServiceProcCall, @function
  1468. 1390 UpnpServiceProcCall:
  1469. 1391 0000 4F92 push r4
  1470. 1392 0002 5F92 push r5
  1471. 1393 0004 6F92 push r6
  1472. 1394 0006 7F92 push r7
  1473. 1395 0008 8F92 push r8
  1474. 1396 000a 9F92 push r9
  1475. 1397 000c AF92 push r10
  1476. 1398 000e BF92 push r11
  1477. 1399 0010 CF92 push r12
  1478. 1400 0012 DF92 push r13
  1479. 1401 0014 EF92 push r14
  1480. 1402 0016 FF92 push r15
  1481. 1403 0018 0F93 push r16
  1482. 1404 001a 1F93 push r17
  1483. 1405 001c CF93 push r28
  1484. 1406 001e DF93 push r29
  1485. 1407 0020 00D0 rcall .
  1486. 1408 0022 1F92 push __zero_reg__
  1487. 1409 0024 CDB7 in r28,__SP_L__
  1488. 1410 0026 DEB7 in r29,__SP_H__
  1489. 1411 /* prologue: function */
  1490. 1412 /* frame size = 4 */
  1491. 1413 /* stack size = 20 */
  1492. 1414 .L__stack_usage = 20
  1493. 1415 0028 2C01 movw r4,r24
  1494. 1416 002a 4B01 movw r8,r22
  1495. 1417 002c DC01 movw r26,r24
  1496. 1418 002e 1896 adiw r26,8
  1497. 1419 0030 0D91 ld r16,X+
  1498. 1420 0032 1C91 ld r17,X
  1499. 1421 0034 1997 sbiw r26,8+1
  1500. 1422 0036 1496 adiw r26,4
  1501. 1423 0038 6C90 ld r6,X
  1502. 1424 003a 1497 sbiw r26,4
  1503. 1425 003c 1596 adiw r26,5
  1504. 1426 003e 7C90 ld r7,X
  1505. 1427 0040 D301 movw r26,r6
  1506. 1428 0042 FD01 movw r30,r26
  1507. 1429 0:
  1508. 1430 0044 0190 ld __tmp_reg__,Z+
  1509. GAS LISTING /tmp/cc00cB6E.s page 27
  1510. 1431 0046 0020 tst __tmp_reg__
  1511. 1432 0048 01F4 brne 0b
  1512. 1433 004a 3197 sbiw r30,1
  1513. 1434 004c BF01 movw r22,r30
  1514. 1435 004e 6A1B sub r22,r26
  1515. 1436 0050 7B0B sbc r23,r27
  1516. 1437 0052 FC01 movw r30,r24
  1517. 1438 0054 F680 ldd r15,Z+6
  1518. 1439 0056 E780 ldd r14,Z+7
  1519. 1440 0058 AF2D mov r26,r15
  1520. 1441 005a BE2D mov r27,r14
  1521. 1442 005c FD01 movw r30,r26
  1522. 1443 0:
  1523. 1444 005e 0190 ld __tmp_reg__,Z+
  1524. 1445 0060 0020 tst __tmp_reg__
  1525. 1446 0062 01F4 brne 0b
  1526. 1447 0064 3197 sbiw r30,1
  1527. 1448 0066 CF01 movw r24,r30
  1528. 1449 0068 8A1B sub r24,r26
  1529. 1450 006a 9B0B sbc r25,r27
  1530. 1451 006c 860F add r24,r22
  1531. 1452 006e 971F adc r25,r23
  1532. 1453 0070 0C96 adiw r24,12
  1533. 1454 0072 2983 std Y+1,r18
  1534. 1455 0074 3A83 std Y+2,r19
  1535. 1456 0076 4B83 std Y+3,r20
  1536. 1457 0078 5C83 std Y+4,r21
  1537. 1458 007a 0E94 0000 call malloc
  1538. 1459 007e 5C01 movw r10,r24
  1539. 1460 0080 D201 movw r26,r4
  1540. 1461 0082 1296 adiw r26,2
  1541. 1462 0084 ED91 ld r30,X+
  1542. 1463 0086 FC91 ld r31,X
  1543. 1464 0088 1397 sbiw r26,2+1
  1544. 1465 008a 0084 ldd __tmp_reg__,Z+8
  1545. 1466 008c F185 ldd r31,Z+9
  1546. 1467 008e E02D mov r30,__tmp_reg__
  1547. 1468 0090 DF01 movw r26,r30
  1548. 1469 0:
  1549. 1470 0092 0D90 ld __tmp_reg__,X+
  1550. 1471 0094 0020 tst __tmp_reg__
  1551. 1472 0096 01F4 brne 0b
  1552. 1473 0098 1197 sbiw r26,1
  1553. 1474 009a BD01 movw r22,r26
  1554. 1475 009c 6E1B sub r22,r30
  1555. 1476 009e 7F0B sbc r23,r31
  1556. 1477 00a0 F801 movw r30,r16
  1557. 1478 00a2 A281 ldd r26,Z+2
  1558. 1479 00a4 B381 ldd r27,Z+3
  1559. 1480 00a6 FD01 movw r30,r26
  1560. 1481 0:
  1561. 1482 00a8 0190 ld __tmp_reg__,Z+
  1562. 1483 00aa 0020 tst __tmp_reg__
  1563. 1484 00ac 01F4 brne 0b
  1564. 1485 00ae 3197 sbiw r30,1
  1565. 1486 00b0 CF01 movw r24,r30
  1566. 1487 00b2 8A1B sub r24,r26
  1567. GAS LISTING /tmp/cc00cB6E.s page 28
  1568. 1488 00b4 9B0B sbc r25,r27
  1569. 1489 00b6 860F add r24,r22
  1570. 1490 00b8 971F adc r25,r23
  1571. 1491 00ba 0E94 0000 call malloc
  1572. 1492 00be 6C01 movw r12,r24
  1573. 1493 00c0 2981 ldd r18,Y+1
  1574. 1494 00c2 3A81 ldd r19,Y+2
  1575. 1495 00c4 4B81 ldd r20,Y+3
  1576. 1496 00c6 5C81 ldd r21,Y+4
  1577. 1497 00c8 A114 cp r10,__zero_reg__
  1578. 1498 00ca B104 cpc r11,__zero_reg__
  1579. 1499 00cc 01F4 brne .L213
  1580. 1500 .L215:
  1581. 1501 00ce 0FEF ldi r16,lo8(-1)
  1582. 1502 00d0 1FEF ldi r17,lo8(-1)
  1583. 1503 00d2 00C0 rjmp .L214
  1584. 1504 .L213:
  1585. 1505 00d4 892B or r24,r25
  1586. 1506 00d6 01F0 breq .L215
  1587. 1507 00d8 EF92 push r14
  1588. 1508 00da FF92 push r15
  1589. 1509 00dc 7F92 push r7
  1590. 1510 00de 6F92 push r6
  1591. 1511 00e0 80E0 ldi r24,lo8(.LC23)
  1592. 1512 00e2 90E0 ldi r25,hi8(.LC23)
  1593. 1513 00e4 9F93 push r25
  1594. 1514 00e6 8F93 push r24
  1595. 1515 00e8 BF92 push r11
  1596. 1516 00ea AF92 push r10
  1597. 1517 00ec 2983 std Y+1,r18
  1598. 1518 00ee 3A83 std Y+2,r19
  1599. 1519 00f0 4B83 std Y+3,r20
  1600. 1520 00f2 5C83 std Y+4,r21
  1601. 1521 00f4 0E94 0000 call sprintf
  1602. 1522 00f8 D201 movw r26,r4
  1603. 1523 00fa 1296 adiw r26,2
  1604. 1524 00fc ED91 ld r30,X+
  1605. 1525 00fe FC91 ld r31,X
  1606. 1526 0100 1397 sbiw r26,2+1
  1607. 1527 0102 6085 ldd r22,Z+8
  1608. 1528 0104 7185 ldd r23,Z+9
  1609. 1529 0106 C601 movw r24,r12
  1610. 1530 0108 0E94 0000 call strcpy
  1611. 1531 010c 6FE2 ldi r22,lo8(47)
  1612. 1532 010e 70E0 ldi r23,0
  1613. 1533 0110 C601 movw r24,r12
  1614. 1534 0112 0E94 0000 call strrchr
  1615. 1535 0116 3C01 movw r6,r24
  1616. 1536 0118 0FB6 in __tmp_reg__,__SREG__
  1617. 1537 011a F894 cli
  1618. 1538 011c DEBF out __SP_H__,r29
  1619. 1539 011e 0FBE out __SREG__,__tmp_reg__
  1620. 1540 0120 CDBF out __SP_L__,r28
  1621. 1541 0122 2981 ldd r18,Y+1
  1622. 1542 0124 3A81 ldd r19,Y+2
  1623. 1543 0126 4B81 ldd r20,Y+3
  1624. 1544 0128 5C81 ldd r21,Y+4
  1625. GAS LISTING /tmp/cc00cB6E.s page 29
  1626. 1545 012a 892B or r24,r25
  1627. 1546 012c 01F0 breq .L215
  1628. 1547 012e D801 movw r26,r16
  1629. 1548 0130 1296 adiw r26,2
  1630. 1549 0132 6D91 ld r22,X+
  1631. 1550 0134 7C91 ld r23,X
  1632. 1551 0136 1397 sbiw r26,2+1
  1633. 1552 0138 FB01 movw r30,r22
  1634. 1553 013a 8081 ld r24,Z
  1635. 1554 013c 8F32 cpi r24,lo8(47)
  1636. 1555 013e 01F0 breq .L216
  1637. 1556 0140 FFEF ldi r31,-1
  1638. 1557 0142 6F1A sub r6,r31
  1639. 1558 0144 7F0A sbc r7,r31
  1640. 1559 .L216:
  1641. 1560 0146 C301 movw r24,r6
  1642. 1561 0148 2983 std Y+1,r18
  1643. 1562 014a 3A83 std Y+2,r19
  1644. 1563 014c 4B83 std Y+3,r20
  1645. 1564 014e 5C83 std Y+4,r21
  1646. 1565 0150 0E94 0000 call strcpy
  1647. 1566 0154 2981 ldd r18,Y+1
  1648. 1567 0156 3A81 ldd r19,Y+2
  1649. 1568 0158 4B81 ldd r20,Y+3
  1650. 1569 015a 5C81 ldd r21,Y+4
  1651. 1570 015c 7901 movw r14,r18
  1652. 1571 015e 8A01 movw r16,r20
  1653. 1572 0160 9501 movw r18,r10
  1654. 1573 0162 A301 movw r20,r6
  1655. 1574 0164 B601 movw r22,r12
  1656. 1575 0166 C401 movw r24,r8
  1657. 1576 0168 0E94 0000 call SoapProcCallResource
  1658. 1577 016c 8C01 movw r16,r24
  1659. 1578 .L214:
  1660. 1579 016e C501 movw r24,r10
  1661. 1580 0170 0E94 0000 call free
  1662. 1581 0174 C601 movw r24,r12
  1663. 1582 0176 0E94 0000 call free
  1664. 1583 017a C801 movw r24,r16
  1665. 1584 /* epilogue start */
  1666. 1585 017c 0F90 pop __tmp_reg__
  1667. 1586 017e 0F90 pop __tmp_reg__
  1668. 1587 0180 0F90 pop __tmp_reg__
  1669. 1588 0182 0F90 pop __tmp_reg__
  1670. 1589 0184 DF91 pop r29
  1671. 1590 0186 CF91 pop r28
  1672. 1591 0188 1F91 pop r17
  1673. 1592 018a 0F91 pop r16
  1674. 1593 018c FF90 pop r15
  1675. 1594 018e EF90 pop r14
  1676. 1595 0190 DF90 pop r13
  1677. 1596 0192 CF90 pop r12
  1678. 1597 0194 BF90 pop r11
  1679. 1598 0196 AF90 pop r10
  1680. 1599 0198 9F90 pop r9
  1681. 1600 019a 8F90 pop r8
  1682. 1601 019c 7F90 pop r7
  1683. GAS LISTING /tmp/cc00cB6E.s page 30
  1684. 1602 019e 6F90 pop r6
  1685. 1603 01a0 5F90 pop r5
  1686. 1604 01a2 4F90 pop r4
  1687. 1605 01a4 0895 ret
  1688. 1606 .size UpnpServiceProcCall, .-UpnpServiceProcCall
  1689. 1607 .local upnp_observer_root
  1690. 1608 .comm upnp_observer_root,2,1
  1691. 1609 .ident "GCC: (GNU) 5.3.0"
  1692. 1610 .global __do_copy_data
  1693. 1611 .global __do_clear_bss
  1694. GAS LISTING /tmp/cc00cB6E.s page 31
  1695. DEFINED SYMBOLS
  1696. *ABS*:0000000000000000 upnp_ctrl.c
  1697. /tmp/cc00cB6E.s:2 *ABS*:000000000000003e __SP_H__
  1698. /tmp/cc00cB6E.s:3 *ABS*:000000000000003d __SP_L__
  1699. /tmp/cc00cB6E.s:4 *ABS*:000000000000003f __SREG__
  1700. /tmp/cc00cB6E.s:5 *ABS*:000000000000003b __RAMPZ__
  1701. /tmp/cc00cB6E.s:6 *ABS*:0000000000000000 __tmp_reg__
  1702. /tmp/cc00cB6E.s:7 *ABS*:0000000000000001 __zero_reg__
  1703. /tmp/cc00cB6E.s:10 .text.GetXmlNode:0000000000000000 GetXmlNode
  1704. /tmp/cc00cB6E.s:45 .text.DuplicateXmlNodeContent:0000000000000000 DuplicateXmlNodeContent
  1705. /tmp/cc00cB6E.s:66 .text.CallObservers:0000000000000000 CallObservers
  1706. .bss:0000000000000000 upnp_observer_root
  1707. /tmp/cc00cB6E.s:140 .text.RequestXmlTree.constprop.3:0000000000000000 RequestXmlTree.constprop.3
  1708. /tmp/cc00cB6E.s:307 .text.ServiceObserver:0000000000000000 ServiceObserver
  1709. /tmp/cc00cB6E.s:1268 .text.UpnpRegisterServiceObserver:0000000000000000 UpnpRegisterServiceObserver
  1710. /tmp/cc00cB6E.s:1370 .text.UpnpServiceProcByName:0000000000000000 UpnpServiceProcByName
  1711. /tmp/cc00cB6E.s:1390 .text.UpnpServiceProcCall:0000000000000000 UpnpServiceProcCall
  1712. UNDEFINED SYMBOLS
  1713. strcasecmp
  1714. strdup
  1715. strcmp
  1716. strncasecmp
  1717. UriSchemeSplit
  1718. NutTcpCreateSocket
  1719. TcpHostConnectStream
  1720. fputs
  1721. fprintf
  1722. fflush
  1723. UxmlParseStream
  1724. fclose
  1725. NutTcpCloseSocket
  1726. UriSchemeRelease
  1727. free
  1728. malloc
  1729. calloc
  1730. SsdpSplitWords
  1731. UxmlTreeDestroy
  1732. strcpy
  1733. strrchr
  1734. UpnpVarTypeIndex
  1735. SsdpRegisterServiceObserver
  1736. SoapProcByName
  1737. sprintf
  1738. SoapProcCallResource
  1739. __do_copy_data
  1740. __do_clear_bss