GAS LISTING /tmp/ccEHcQCQ.s page 1 1 .file "upnp_dev.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .rodata.str1.1,"aMS",@progbits,1 9 .LC0: 10 0000 3C73 7065 .string "\r\n" 10 6356 6572 10 7369 6F6E 10 3E0D 0A00 11 .LC1: 12 0010 3C6D 616A .string "1\r\n" 12 6F72 3E31 12 3C2F 6D61 12 6A6F 723E 12 0D0A 00 13 .LC2: 14 0023 3C6D 696E .string "0\r\n" 14 6F72 3E30 14 3C2F 6D69 14 6E6F 723E 14 0D0A 00 15 .LC3: 16 0036 3C2F 7370 .string "\r\n" 16 6563 5665 16 7273 696F 16 6E3E 0D0A 16 00 17 .section .text.SpecVersion,"ax",@progbits 18 .type SpecVersion, @function 19 SpecVersion: 20 0000 CF93 push r28 21 0002 DF93 push r29 22 /* prologue: function */ 23 /* frame size = 0 */ 24 /* stack size = 2 */ 25 .L__stack_usage = 2 26 0004 EC01 movw r28,r24 27 0006 BC01 movw r22,r24 28 0008 80E0 ldi r24,lo8(.LC0) 29 000a 90E0 ldi r25,hi8(.LC0) 30 000c 0E94 0000 call fputs 31 0010 BE01 movw r22,r28 32 0012 80E0 ldi r24,lo8(.LC1) 33 0014 90E0 ldi r25,hi8(.LC1) 34 0016 0E94 0000 call fputs 35 001a BE01 movw r22,r28 36 001c 80E0 ldi r24,lo8(.LC2) 37 001e 90E0 ldi r25,hi8(.LC2) 38 0020 0E94 0000 call fputs 39 0024 BE01 movw r22,r28 40 0026 80E0 ldi r24,lo8(.LC3) 41 0028 90E0 ldi r25,hi8(.LC3) 42 /* epilogue start */ GAS LISTING /tmp/ccEHcQCQ.s page 2 43 002a DF91 pop r29 44 002c CF91 pop r28 45 002e 0C94 0000 jmp fputs 46 .size SpecVersion, .-SpecVersion 47 .section .rodata.str1.1 48 .LC4: 49 0047 3C25 733E .string "<%s>" 49 00 50 .LC5: 51 004c 2573 3C2F .string "%s\r\n" 51 2573 3E0D 51 0A00 52 .section .text.WritePrepTag,"ax",@progbits 53 .type WritePrepTag, @function 54 WritePrepTag: 55 0000 CF92 push r12 56 0002 DF92 push r13 57 0004 EF92 push r14 58 0006 FF92 push r15 59 0008 0F93 push r16 60 000a 1F93 push r17 61 000c CF93 push r28 62 000e DF93 push r29 63 /* prologue: function */ 64 /* frame size = 0 */ 65 /* stack size = 8 */ 66 .L__stack_usage = 8 67 0010 182F mov r17,r24 68 0012 092F mov r16,r25 69 0014 F62E mov r15,r22 70 0016 E72E mov r14,r23 71 0018 EA01 movw r28,r20 72 001a 6901 movw r12,r18 73 001c 2097 sbiw r28,0 74 001e 01F0 breq .L2 75 0020 7F93 push r23 76 0022 6F93 push r22 77 0024 80E0 ldi r24,lo8(.LC4) 78 0026 90E0 ldi r25,hi8(.LC4) 79 0028 9F93 push r25 80 002a 8F93 push r24 81 002c 0F93 push r16 82 002e 1F93 push r17 83 0030 0E94 0000 call fprintf 84 0034 0F90 pop __tmp_reg__ 85 0036 0F90 pop __tmp_reg__ 86 0038 0F90 pop __tmp_reg__ 87 003a 0F90 pop __tmp_reg__ 88 003c 0F90 pop __tmp_reg__ 89 003e 0F90 pop __tmp_reg__ 90 0040 C114 cp r12,__zero_reg__ 91 0042 D104 cpc r13,__zero_reg__ 92 0044 01F0 breq .L4 93 0046 8881 ld r24,Y 94 0048 8B32 cpi r24,lo8(43) 95 004a 01F4 brne .L4 96 004c 2196 adiw r28,1 GAS LISTING /tmp/ccEHcQCQ.s page 3 97 004e 612F mov r22,r17 98 0050 702F mov r23,r16 99 0052 C601 movw r24,r12 100 0054 0E94 0000 call fputs 101 .L4: 102 0058 EF92 push r14 103 005a FF92 push r15 104 005c DF93 push r29 105 005e CF93 push r28 106 0060 80E0 ldi r24,lo8(.LC5) 107 0062 90E0 ldi r25,hi8(.LC5) 108 0064 9F93 push r25 109 0066 8F93 push r24 110 0068 0F93 push r16 111 006a 1F93 push r17 112 006c 0E94 0000 call fprintf 113 0070 8DB7 in r24,__SP_L__ 114 0072 9EB7 in r25,__SP_H__ 115 0074 0896 adiw r24,8 116 0076 0FB6 in __tmp_reg__,__SREG__ 117 0078 F894 cli 118 007a 9EBF out __SP_H__,r25 119 007c 0FBE out __SREG__,__tmp_reg__ 120 007e 8DBF out __SP_L__,r24 121 .L2: 122 /* epilogue start */ 123 0080 DF91 pop r29 124 0082 CF91 pop r28 125 0084 1F91 pop r17 126 0086 0F91 pop r16 127 0088 FF90 pop r15 128 008a EF90 pop r14 129 008c DF90 pop r13 130 008e CF90 pop r12 131 0090 0895 ret 132 .size WritePrepTag, .-WritePrepTag 133 .section .text.WriteTag,"ax",@progbits 134 .type WriteTag, @function 135 WriteTag: 136 /* prologue: function */ 137 /* frame size = 0 */ 138 /* stack size = 0 */ 139 .L__stack_usage = 0 140 0000 20E0 ldi r18,0 141 0002 30E0 ldi r19,0 142 0004 0C94 0000 jmp WritePrepTag 143 .size WriteTag, .-WriteTag 144 .section .rodata.str1.1 145 .LC6: 146 0056 5345 5256 .string "SERVER: NutOS/5.0 UPnP/1.0 TestUPnP/1.0\r\n" 146 4552 3A20 146 4E75 744F 146 532F 352E 146 3020 5550 147 .LC7: 148 0080 786D 6C00 .string "xml" 149 .LC8: GAS LISTING /tmp/ccEHcQCQ.s page 4 150 0084 7465 7874 .string "text" 150 00 151 .LC9: 152 0089 3C3F 786D .string "\r\n" 152 6C20 7665 152 7273 696F 152 6E3D 2231 152 2E30 223F 153 .section .text.XmlHead,"ax",@progbits 154 .type XmlHead, @function 155 XmlHead: 156 0000 EF92 push r14 157 0002 FF92 push r15 158 0004 0F93 push r16 159 0006 1F93 push r17 160 0008 CF93 push r28 161 000a DF93 push r29 162 /* prologue: function */ 163 /* frame size = 0 */ 164 /* stack size = 6 */ 165 .L__stack_usage = 6 166 000c EC01 movw r28,r24 167 000e 68EC ldi r22,lo8(-56) 168 0010 70E0 ldi r23,0 169 0012 0E94 0000 call HttpSendStreamHeaderTop 170 0016 BE01 movw r22,r28 171 0018 80E0 ldi r24,lo8(.LC6) 172 001a 90E0 ldi r25,hi8(.LC6) 173 001c 0E94 0000 call fputs 174 0020 EE24 clr r14 175 0022 EA94 dec r14 176 0024 FE2C mov r15,r14 177 0026 8701 movw r16,r14 178 0028 21E0 ldi r18,lo8(1) 179 002a 30E0 ldi r19,0 180 002c 40E0 ldi r20,lo8(.LC7) 181 002e 50E0 ldi r21,hi8(.LC7) 182 0030 60E0 ldi r22,lo8(.LC8) 183 0032 70E0 ldi r23,hi8(.LC8) 184 0034 CE01 movw r24,r28 185 0036 0E94 0000 call HttpSendStreamHeaderBottom 186 003a BE01 movw r22,r28 187 003c 80E0 ldi r24,lo8(.LC9) 188 003e 90E0 ldi r25,hi8(.LC9) 189 /* epilogue start */ 190 0040 DF91 pop r29 191 0042 CF91 pop r28 192 0044 1F91 pop r17 193 0046 0F91 pop r16 194 0048 FF90 pop r15 195 004a EF90 pop r14 196 004c 0C94 0000 jmp fputs 197 .size XmlHead, .-XmlHead 198 .section .rodata.str1.1 199 .LC10: 200 00a1 7965 7300 .string "yes" 201 .LC11: GAS LISTING /tmp/ccEHcQCQ.s page 5 202 00a5 6E6F 00 .string "no" 203 .LC12: 204 00a8 3C61 6374 .string "\r\n" 204 696F 6E4C 204 6973 743E 204 0D0A 00 205 .LC13: 206 00b7 3C61 6374 .string "\r\n" 206 696F 6E3E 206 0D0A 00 207 .LC14: 208 00c2 6E61 6D65 .string "name" 208 00 209 .LC15: 210 00c7 3C61 7267 .string "\r\n" 210 756D 656E 210 744C 6973 210 743E 0D0A 210 00 211 .LC16: 212 00d8 3C61 7267 .string "\r\n" 212 756D 656E 212 743E 0D0A 212 00 213 .LC17: 214 00e5 7265 6C61 .string "relatedStateVariable" 214 7465 6453 214 7461 7465 214 5661 7269 214 6162 6C65 215 .LC18: 216 00fa 696E 00 .string "in" 217 .LC19: 218 00fd 6469 7265 .string "direction" 218 6374 696F 218 6E00 219 .LC20: 220 0107 3C2F 6172 .string "\r\n" 220 6775 6D65 220 6E74 3E0D 220 0A00 221 .LC21: 222 0115 6F75 7400 .string "out" 223 .LC22: 224 0119 3C2F 6172 .string "\r\n" 224 6775 6D65 224 6E74 4C69 224 7374 3E0D 224 0A00 225 .LC23: 226 012b 3C2F 6163 .string "\r\n" 226 7469 6F6E 226 3E0D 0A00 227 .LC24: 228 0137 3C2F 6163 .string "\r\n" 228 7469 6F6E 228 4C69 7374 GAS LISTING /tmp/ccEHcQCQ.s page 6 228 3E0D 0A00 229 .LC25: 230 0147 3C73 6572 .string "\r\n" 230 7669 6365 230 5374 6174 230 6554 6162 230 6C65 3E0D 231 .LC26: 232 015d 3C73 7461 .string "\r\n" 232 7465 5661 232 7269 6162 232 6C65 2073 232 656E 6445 233 .LC27: 234 017f 6461 7461 .string "dataType" 234 5479 7065 234 00 235 .LC28: 236 0188 6465 6661 .string "defaultValue" 236 756C 7456 236 616C 7565 236 00 237 .LC29: 238 0195 3C2F 7374 .string "\r\n" 238 6174 6556 238 6172 6961 238 626C 653E 238 0D0A 00 239 .LC30: 240 01a8 3C2F 7365 .string "\r\n" 240 7276 6963 240 6553 7461 240 7465 5461 240 626C 653E 241 .LC31: 242 01bf 3C2F 7363 .string "\r\n" 242 7064 3E0D 242 0A00 243 .LC32: 244 01c9 3C73 6370 .string "\r\n" 244 6420 786D 244 6C6E 733D 244 2275 726E 244 3A73 6368 245 .section .text.UpnpCgiServiceDescription,"ax",@progbits 246 .type UpnpCgiServiceDescription, @function 247 UpnpCgiServiceDescription: 248 0000 AF92 push r10 249 0002 BF92 push r11 250 0004 CF92 push r12 251 0006 DF92 push r13 252 0008 EF92 push r14 253 000a FF92 push r15 254 000c 0F93 push r16 255 000e 1F93 push r17 256 0010 CF93 push r28 257 0012 DF93 push r29 GAS LISTING /tmp/ccEHcQCQ.s page 7 258 /* prologue: function */ 259 /* frame size = 0 */ 260 /* stack size = 10 */ 261 .L__stack_usage = 10 262 0014 7C01 movw r14,r24 263 0016 DC01 movw r26,r24 264 0018 CC91 ld r28,X 265 001a 1196 adiw r26,1 266 001c DC91 ld r29,X 267 001e 8C01 movw r16,r24 268 0020 0E5F subi r16,-2 269 0022 1F4F sbci r17,-1 270 0024 C801 movw r24,r16 271 0026 0E94 0000 call HttpArgParseFirst 272 002a 5C01 movw r10,r24 273 002c 892B or r24,r25 274 002e 01F4 brne .+2 275 0030 00C0 rjmp .L32 276 0032 C801 movw r24,r16 277 0034 0E94 0000 call HttpArgValue 278 0038 6C01 movw r12,r24 279 003a 0091 0000 lds r16,device_registration 280 003e 1091 0000 lds r17,device_registration+1 281 .L16: 282 0042 0115 cp r16,__zero_reg__ 283 0044 1105 cpc r17,__zero_reg__ 284 0046 01F4 brne .+2 285 0048 00C0 rjmp .L32 286 004a B501 movw r22,r10 287 004c F801 movw r30,r16 288 004e 8485 ldd r24,Z+12 289 0050 9585 ldd r25,Z+13 290 0052 0E94 0000 call strcmp 291 0056 892B or r24,r25 292 0058 01F4 brne .L17 293 005a D801 movw r26,r16 294 005c 1496 adiw r26,4 295 005e 0D91 ld r16,X+ 296 0060 1C91 ld r17,X 297 0062 1597 sbiw r26,4+1 298 .L18: 299 0064 0115 cp r16,__zero_reg__ 300 0066 1105 cpc r17,__zero_reg__ 301 0068 01F4 brne .+2 302 006a 00C0 rjmp .L32 303 006c B601 movw r22,r12 304 006e F801 movw r30,r16 305 0070 8681 ldd r24,Z+6 306 0072 9781 ldd r25,Z+7 307 0074 0E94 0000 call strcmp 308 0078 892B or r24,r25 309 007a 01F0 breq .L19 310 007c D801 movw r26,r16 311 007e 0D91 ld r16,X+ 312 0080 1C91 ld r17,X 313 0082 00C0 rjmp .L18 314 .L17: GAS LISTING /tmp/ccEHcQCQ.s page 8 315 0084 F801 movw r30,r16 316 0086 0081 ld r16,Z 317 0088 1181 ldd r17,Z+1 318 008a 00C0 rjmp .L16 319 .L19: 320 008c F801 movw r30,r16 321 008e C084 ldd r12,Z+8 322 0090 D184 ldd r13,Z+9 323 0092 D701 movw r26,r14 324 0094 8D91 ld r24,X+ 325 0096 9C91 ld r25,X 326 0098 0E94 0000 call XmlHead 327 009c BE01 movw r22,r28 328 009e 80E0 ldi r24,lo8(.LC32) 329 00a0 90E0 ldi r25,hi8(.LC32) 330 00a2 0E94 0000 call fputs 331 00a6 CE01 movw r24,r28 332 00a8 0E94 0000 call SpecVersion 333 00ac F601 movw r30,r12 334 00ae 0681 ldd r16,Z+6 335 00b0 1781 ldd r17,Z+7 336 00b2 0115 cp r16,__zero_reg__ 337 00b4 1105 cpc r17,__zero_reg__ 338 00b6 01F4 brne .+2 339 00b8 00C0 rjmp .L34 340 00ba BE01 movw r22,r28 341 00bc 80E0 ldi r24,lo8(.LC12) 342 00be 90E0 ldi r25,hi8(.LC12) 343 00c0 0E94 0000 call fputs 344 .L28: 345 00c4 BE01 movw r22,r28 346 00c6 80E0 ldi r24,lo8(.LC13) 347 00c8 90E0 ldi r25,hi8(.LC13) 348 00ca 0E94 0000 call fputs 349 00ce D801 movw r26,r16 350 00d0 1296 adiw r26,2 351 00d2 4D91 ld r20,X+ 352 00d4 5C91 ld r21,X 353 00d6 1397 sbiw r26,2+1 354 00d8 60E0 ldi r22,lo8(.LC14) 355 00da 70E0 ldi r23,hi8(.LC14) 356 00dc CE01 movw r24,r28 357 00de 0E94 0000 call WriteTag 358 00e2 F801 movw r30,r16 359 00e4 8481 ldd r24,Z+4 360 00e6 9581 ldd r25,Z+5 361 00e8 892B or r24,r25 362 00ea 01F4 brne .L22 363 00ec 8681 ldd r24,Z+6 364 00ee 9781 ldd r25,Z+7 365 00f0 892B or r24,r25 366 00f2 01F4 brne .+2 367 00f4 00C0 rjmp .L23 368 .L22: 369 00f6 BE01 movw r22,r28 370 00f8 80E0 ldi r24,lo8(.LC15) 371 00fa 90E0 ldi r25,hi8(.LC15) GAS LISTING /tmp/ccEHcQCQ.s page 9 372 00fc 0E94 0000 call fputs 373 0100 D801 movw r26,r16 374 0102 1496 adiw r26,4 375 0104 ED90 ld r14,X+ 376 0106 FC90 ld r15,X 377 0108 1597 sbiw r26,4+1 378 .L24: 379 010a E114 cp r14,__zero_reg__ 380 010c F104 cpc r15,__zero_reg__ 381 010e 01F0 breq .L48 382 0110 BE01 movw r22,r28 383 0112 80E0 ldi r24,lo8(.LC16) 384 0114 90E0 ldi r25,hi8(.LC16) 385 0116 0E94 0000 call fputs 386 011a F701 movw r30,r14 387 011c 4281 ldd r20,Z+2 388 011e 5381 ldd r21,Z+3 389 0120 60E0 ldi r22,lo8(.LC14) 390 0122 70E0 ldi r23,hi8(.LC14) 391 0124 CE01 movw r24,r28 392 0126 0E94 0000 call WriteTag 393 012a D701 movw r26,r14 394 012c 1696 adiw r26,6 395 012e ED91 ld r30,X+ 396 0130 FC91 ld r31,X 397 0132 1797 sbiw r26,6+1 398 0134 4281 ldd r20,Z+2 399 0136 5381 ldd r21,Z+3 400 0138 60E0 ldi r22,lo8(.LC17) 401 013a 70E0 ldi r23,hi8(.LC17) 402 013c CE01 movw r24,r28 403 013e 0E94 0000 call WriteTag 404 0142 40E0 ldi r20,lo8(.LC18) 405 0144 50E0 ldi r21,hi8(.LC18) 406 0146 60E0 ldi r22,lo8(.LC19) 407 0148 70E0 ldi r23,hi8(.LC19) 408 014a CE01 movw r24,r28 409 014c 0E94 0000 call WriteTag 410 0150 BE01 movw r22,r28 411 0152 80E0 ldi r24,lo8(.LC20) 412 0154 90E0 ldi r25,hi8(.LC20) 413 0156 0E94 0000 call fputs 414 015a F701 movw r30,r14 415 015c E080 ld r14,Z 416 015e F180 ldd r15,Z+1 417 0160 00C0 rjmp .L24 418 .L48: 419 0162 D801 movw r26,r16 420 0164 1696 adiw r26,6 421 0166 ED90 ld r14,X+ 422 0168 FC90 ld r15,X 423 016a 1797 sbiw r26,6+1 424 .L26: 425 016c BE01 movw r22,r28 426 016e E114 cp r14,__zero_reg__ 427 0170 F104 cpc r15,__zero_reg__ 428 0172 01F0 breq .L49 GAS LISTING /tmp/ccEHcQCQ.s page 10 429 0174 80E0 ldi r24,lo8(.LC16) 430 0176 90E0 ldi r25,hi8(.LC16) 431 0178 0E94 0000 call fputs 432 017c F701 movw r30,r14 433 017e 4281 ldd r20,Z+2 434 0180 5381 ldd r21,Z+3 435 0182 60E0 ldi r22,lo8(.LC14) 436 0184 70E0 ldi r23,hi8(.LC14) 437 0186 CE01 movw r24,r28 438 0188 0E94 0000 call WriteTag 439 018c D701 movw r26,r14 440 018e 1696 adiw r26,6 441 0190 ED91 ld r30,X+ 442 0192 FC91 ld r31,X 443 0194 1797 sbiw r26,6+1 444 0196 4281 ldd r20,Z+2 445 0198 5381 ldd r21,Z+3 446 019a 60E0 ldi r22,lo8(.LC17) 447 019c 70E0 ldi r23,hi8(.LC17) 448 019e CE01 movw r24,r28 449 01a0 0E94 0000 call WriteTag 450 01a4 40E0 ldi r20,lo8(.LC21) 451 01a6 50E0 ldi r21,hi8(.LC21) 452 01a8 60E0 ldi r22,lo8(.LC19) 453 01aa 70E0 ldi r23,hi8(.LC19) 454 01ac CE01 movw r24,r28 455 01ae 0E94 0000 call WriteTag 456 01b2 BE01 movw r22,r28 457 01b4 80E0 ldi r24,lo8(.LC20) 458 01b6 90E0 ldi r25,hi8(.LC20) 459 01b8 0E94 0000 call fputs 460 01bc F701 movw r30,r14 461 01be E080 ld r14,Z 462 01c0 F180 ldd r15,Z+1 463 01c2 00C0 rjmp .L26 464 .L49: 465 01c4 80E0 ldi r24,lo8(.LC22) 466 01c6 90E0 ldi r25,hi8(.LC22) 467 01c8 0E94 0000 call fputs 468 .L23: 469 01cc BE01 movw r22,r28 470 01ce 80E0 ldi r24,lo8(.LC23) 471 01d0 90E0 ldi r25,hi8(.LC23) 472 01d2 0E94 0000 call fputs 473 01d6 D801 movw r26,r16 474 01d8 0D91 ld r16,X+ 475 01da 1C91 ld r17,X 476 01dc 0115 cp r16,__zero_reg__ 477 01de 1105 cpc r17,__zero_reg__ 478 01e0 01F0 breq .+2 479 01e2 00C0 rjmp .L28 480 01e4 BE01 movw r22,r28 481 01e6 80E0 ldi r24,lo8(.LC24) 482 01e8 90E0 ldi r25,hi8(.LC24) 483 01ea 0E94 0000 call fputs 484 .L34: 485 01ee F601 movw r30,r12 GAS LISTING /tmp/ccEHcQCQ.s page 11 486 01f0 0085 ldd r16,Z+8 487 01f2 1185 ldd r17,Z+9 488 01f4 0115 cp r16,__zero_reg__ 489 01f6 1105 cpc r17,__zero_reg__ 490 01f8 01F4 brne .+2 491 01fa 00C0 rjmp .L29 492 01fc BE01 movw r22,r28 493 01fe 80E0 ldi r24,lo8(.LC25) 494 0200 90E0 ldi r25,hi8(.LC25) 495 0202 0E94 0000 call fputs 496 0206 80E0 ldi r24,lo8(.LC26) 497 0208 E82E mov r14,r24 498 020a 80E0 ldi r24,hi8(.LC26) 499 020c F82E mov r15,r24 500 .L31: 501 020e D801 movw r26,r16 502 0210 1496 adiw r26,4 503 0212 8D91 ld r24,X+ 504 0214 9C91 ld r25,X 505 0216 1597 sbiw r26,4+1 506 0218 892B or r24,r25 507 021a 01F4 brne .L35 508 021c 80E0 ldi r24,lo8(.LC11) 509 021e 90E0 ldi r25,hi8(.LC11) 510 0220 00C0 rjmp .L30 511 .L35: 512 0222 80E0 ldi r24,lo8(.LC10) 513 0224 90E0 ldi r25,hi8(.LC10) 514 .L30: 515 0226 9F93 push r25 516 0228 8F93 push r24 517 022a FF92 push r15 518 022c EF92 push r14 519 022e DF93 push r29 520 0230 CF93 push r28 521 0232 0E94 0000 call fprintf 522 0236 F801 movw r30,r16 523 0238 4281 ldd r20,Z+2 524 023a 5381 ldd r21,Z+3 525 023c 60E0 ldi r22,lo8(.LC14) 526 023e 70E0 ldi r23,hi8(.LC14) 527 0240 CE01 movw r24,r28 528 0242 0E94 0000 call WriteTag 529 0246 D801 movw r26,r16 530 0248 8D91 ld r24,X+ 531 024a 9C91 ld r25,X 532 024c 0E94 0000 call UpnpVarTypeString 533 0250 AC01 movw r20,r24 534 0252 60E0 ldi r22,lo8(.LC27) 535 0254 70E0 ldi r23,hi8(.LC27) 536 0256 CE01 movw r24,r28 537 0258 0E94 0000 call WriteTag 538 025c F801 movw r30,r16 539 025e 4681 ldd r20,Z+6 540 0260 5781 ldd r21,Z+7 541 0262 60E0 ldi r22,lo8(.LC28) 542 0264 70E0 ldi r23,hi8(.LC28) GAS LISTING /tmp/ccEHcQCQ.s page 12 543 0266 CE01 movw r24,r28 544 0268 0E94 0000 call WriteTag 545 026c BE01 movw r22,r28 546 026e 80E0 ldi r24,lo8(.LC29) 547 0270 90E0 ldi r25,hi8(.LC29) 548 0272 0E94 0000 call fputs 549 0276 D801 movw r26,r16 550 0278 1896 adiw r26,8 551 027a 0D91 ld r16,X+ 552 027c 1C91 ld r17,X 553 027e 1997 sbiw r26,8+1 554 0280 0F90 pop __tmp_reg__ 555 0282 0F90 pop __tmp_reg__ 556 0284 0F90 pop __tmp_reg__ 557 0286 0F90 pop __tmp_reg__ 558 0288 0F90 pop __tmp_reg__ 559 028a 0F90 pop __tmp_reg__ 560 028c 0115 cp r16,__zero_reg__ 561 028e 1105 cpc r17,__zero_reg__ 562 0290 01F0 breq .+2 563 0292 00C0 rjmp .L31 564 0294 BE01 movw r22,r28 565 0296 80E0 ldi r24,lo8(.LC30) 566 0298 90E0 ldi r25,hi8(.LC30) 567 029a 0E94 0000 call fputs 568 .L29: 569 029e BE01 movw r22,r28 570 02a0 80E0 ldi r24,lo8(.LC31) 571 02a2 90E0 ldi r25,hi8(.LC31) 572 02a4 0E94 0000 call fputs 573 .L32: 574 02a8 CE01 movw r24,r28 575 02aa 0E94 0000 call fflush 576 02ae 80E0 ldi r24,0 577 02b0 90E0 ldi r25,0 578 /* epilogue start */ 579 02b2 DF91 pop r29 580 02b4 CF91 pop r28 581 02b6 1F91 pop r17 582 02b8 0F91 pop r16 583 02ba FF90 pop r15 584 02bc EF90 pop r14 585 02be DF90 pop r13 586 02c0 CF90 pop r12 587 02c2 BF90 pop r11 588 02c4 AF90 pop r10 589 02c6 0895 ret 590 .size UpnpCgiServiceDescription, .-UpnpCgiServiceDescription 591 .section .rodata.str1.1 592 .LC33: 593 01fb 3C73 6572 .string "\r\n" 593 7669 6365 593 4C69 7374 593 3E0D 0A00 594 .LC34: 595 020b 3C73 6572 .string "\r\n" 595 7669 6365 GAS LISTING /tmp/ccEHcQCQ.s page 13 595 3E0D 0A00 596 .LC35: 597 0217 3C73 6572 .string "urn:schemas-upnp-org:service:%s:1\r\n" 597 7669 6365 597 5479 7065 597 3E75 726E 597 3A73 6368 598 .LC36: 599 0256 3C73 6572 .string "urn:upnp-org:serviceId:%s:1\r\n" 599 7669 6365 599 4964 3E75 599 726E 3A75 599 706E 702D 600 .LC37: 601 028b 3C53 4350 .string "%s?%s=%s" 601 4455 524C 601 3E25 733F 601 2573 3D25 601 733C 2F53 602 .LC38: 603 02a7 3C63 6F6E .string "%s?%s=%s" 603 7472 6F6C 603 5552 4C3E 603 2573 3F25 603 733D 2573 604 .LC39: 605 02c9 3C65 7665 .string "%s?%s=%s" 605 6E74 5375 605 6255 524C 605 3E25 733F 605 2573 3D25 606 .LC40: 607 02ed 3C2F 7365 .string "\r\n" 607 7276 6963 607 653E 0D0A 607 00 608 .LC41: 609 02fa 3C2F 7365 .string "\r\n" 609 7276 6963 609 654C 6973 609 743E 0D0A 609 00 610 .LC42: 611 030b 7072 6573 .string "presentationURL" 611 656E 7461 611 7469 6F6E 611 5552 4C00 612 .LC43: 613 031b 3C2F 6465 .string "\r\n" 613 7669 6365 613 3E0D 0A00 614 .LC44: 615 0327 3C2F 726F .string "\r\n" 615 6F74 3E0D 615 0A00 616 .LC45: 617 0331 3C72 6F6F .string "\r\n" GAS LISTING /tmp/ccEHcQCQ.s page 14 617 7420 786D 617 6C6E 733D 617 2275 726E 617 3A73 6368 618 .LC46: 619 0362 3C64 6576 .string "\r\n" 619 6963 653E 619 0D0A 00 620 .LC47: 621 036d 3C64 6576 .string "urn:%s:device:%s:1\r\n" 621 6963 6554 621 7970 653E 621 7572 6E3A 621 2573 3A64 622 .LC48: 623 039b 6672 6965 .string "friendlyName" 623 6E64 6C79 623 4E61 6D65 623 00 624 .LC49: 625 03a8 6D61 6E75 .string "manufacturer" 625 6661 6374 625 7572 6572 625 00 626 .LC50: 627 03b5 6874 7470 .string "http://" 627 3A2F 2F00 628 .LC51: 629 03bd 6D61 6E75 .string "manufacturerURL" 629 6661 6374 629 7572 6572 629 5552 4C00 630 .LC52: 631 03cd 6D6F 6465 .string "modelDescription" 631 6C44 6573 631 6372 6970 631 7469 6F6E 631 00 632 .LC53: 633 03de 6D6F 6465 .string "modelName" 633 6C4E 616D 633 6500 634 .LC54: 635 03e8 6D6F 6465 .string "modelNumber" 635 6C4E 756D 635 6265 7200 636 .LC55: 637 03f4 6D6F 6465 .string "modelURL" 637 6C55 524C 637 00 638 .LC56: 639 03fd 5544 4E00 .string "UDN" 640 .section .text.UpnpCgiDeviceDescription,"ax",@progbits 641 .type UpnpCgiDeviceDescription, @function 642 UpnpCgiDeviceDescription: 643 0000 2F92 push r2 644 0002 3F92 push r3 GAS LISTING /tmp/ccEHcQCQ.s page 15 645 0004 4F92 push r4 646 0006 5F92 push r5 647 0008 6F92 push r6 648 000a 7F92 push r7 649 000c 8F92 push r8 650 000e 9F92 push r9 651 0010 AF92 push r10 652 0012 BF92 push r11 653 0014 CF92 push r12 654 0016 DF92 push r13 655 0018 EF92 push r14 656 001a FF92 push r15 657 001c 0F93 push r16 658 001e 1F93 push r17 659 0020 CF93 push r28 660 0022 DF93 push r29 661 /* prologue: function */ 662 /* frame size = 0 */ 663 /* stack size = 18 */ 664 .L__stack_usage = 18 665 0024 8C01 movw r16,r24 666 0026 DC01 movw r26,r24 667 0028 3C90 ld r3,X 668 002a 1196 adiw r26,1 669 002c 2C90 ld r2,X 670 002e 0296 adiw r24,2 671 0030 0E94 0000 call HttpArgParseFirst 672 0034 7C01 movw r14,r24 673 0036 892B or r24,r25 674 0038 01F4 brne .+2 675 003a 00C0 rjmp .L51 676 003c C091 0000 lds r28,device_registration 677 0040 D091 0000 lds r29,device_registration+1 678 .L52: 679 0044 2097 sbiw r28,0 680 0046 01F4 brne .+2 681 0048 00C0 rjmp .L51 682 004a B701 movw r22,r14 683 004c 8C85 ldd r24,Y+12 684 004e 9D85 ldd r25,Y+13 685 0050 0E94 0000 call strcmp 686 0054 892B or r24,r25 687 0056 01F0 breq .L53 688 0058 0990 ld __tmp_reg__,Y+ 689 005a D881 ld r29,Y 690 005c C02D mov r28,__tmp_reg__ 691 005e 00C0 rjmp .L52 692 .L53: 693 0060 E888 ldd r14,Y+16 694 0062 F988 ldd r15,Y+17 695 0064 F801 movw r30,r16 696 0066 8081 ld r24,Z 697 0068 9181 ldd r25,Z+1 698 006a 0E94 0000 call XmlHead 699 006e D801 movw r26,r16 700 0070 6D91 ld r22,X+ 701 0072 7C91 ld r23,X GAS LISTING /tmp/ccEHcQCQ.s page 16 702 0074 80E0 ldi r24,lo8(.LC45) 703 0076 90E0 ldi r25,hi8(.LC45) 704 0078 0E94 0000 call fputs 705 007c 832D mov r24,r3 706 007e 922D mov r25,r2 707 0080 0E94 0000 call SpecVersion 708 0084 632D mov r22,r3 709 0086 722D mov r23,r2 710 0088 80E0 ldi r24,lo8(.LC46) 711 008a 90E0 ldi r25,hi8(.LC46) 712 008c 0E94 0000 call fputs 713 0090 8D85 ldd r24,Y+13 714 0092 8F93 push r24 715 0094 8C85 ldd r24,Y+12 716 0096 8F93 push r24 717 0098 8B85 ldd r24,Y+11 718 009a 8F93 push r24 719 009c 8A85 ldd r24,Y+10 720 009e 8F93 push r24 721 00a0 80E0 ldi r24,lo8(.LC47) 722 00a2 90E0 ldi r25,hi8(.LC47) 723 00a4 9F93 push r25 724 00a6 8F93 push r24 725 00a8 2F92 push r2 726 00aa 3F92 push r3 727 00ac 0E94 0000 call fprintf 728 00b0 F701 movw r30,r14 729 00b2 4081 ld r20,Z 730 00b4 5181 ldd r21,Z+1 731 00b6 60E0 ldi r22,lo8(.LC48) 732 00b8 70E0 ldi r23,hi8(.LC48) 733 00ba 832D mov r24,r3 734 00bc 922D mov r25,r2 735 00be 0E94 0000 call WriteTag 736 00c2 D701 movw r26,r14 737 00c4 1696 adiw r26,6 738 00c6 ED91 ld r30,X+ 739 00c8 FC91 ld r31,X 740 00ca 1797 sbiw r26,6+1 741 00cc 4081 ld r20,Z 742 00ce 5181 ldd r21,Z+1 743 00d0 60E0 ldi r22,lo8(.LC49) 744 00d2 70E0 ldi r23,hi8(.LC49) 745 00d4 832D mov r24,r3 746 00d6 922D mov r25,r2 747 00d8 0E94 0000 call WriteTag 748 00dc D701 movw r26,r14 749 00de 1696 adiw r26,6 750 00e0 ED91 ld r30,X+ 751 00e2 FC91 ld r31,X 752 00e4 1797 sbiw r26,6+1 753 00e6 4281 ldd r20,Z+2 754 00e8 5381 ldd r21,Z+3 755 00ea 20E0 ldi r18,lo8(.LC50) 756 00ec 30E0 ldi r19,hi8(.LC50) 757 00ee 60E0 ldi r22,lo8(.LC51) 758 00f0 70E0 ldi r23,hi8(.LC51) GAS LISTING /tmp/ccEHcQCQ.s page 17 759 00f2 832D mov r24,r3 760 00f4 922D mov r25,r2 761 00f6 0E94 0000 call WritePrepTag 762 00fa D701 movw r26,r14 763 00fc 1496 adiw r26,4 764 00fe ED91 ld r30,X+ 765 0100 FC91 ld r31,X 766 0102 1597 sbiw r26,4+1 767 0104 4481 ldd r20,Z+4 768 0106 5581 ldd r21,Z+5 769 0108 60E0 ldi r22,lo8(.LC52) 770 010a 70E0 ldi r23,hi8(.LC52) 771 010c 832D mov r24,r3 772 010e 922D mov r25,r2 773 0110 0E94 0000 call WriteTag 774 0114 D701 movw r26,r14 775 0116 1496 adiw r26,4 776 0118 ED91 ld r30,X+ 777 011a FC91 ld r31,X 778 011c 1597 sbiw r26,4+1 779 011e 4081 ld r20,Z 780 0120 5181 ldd r21,Z+1 781 0122 60E0 ldi r22,lo8(.LC53) 782 0124 70E0 ldi r23,hi8(.LC53) 783 0126 832D mov r24,r3 784 0128 922D mov r25,r2 785 012a 0E94 0000 call WriteTag 786 012e D701 movw r26,r14 787 0130 1496 adiw r26,4 788 0132 ED91 ld r30,X+ 789 0134 FC91 ld r31,X 790 0136 1597 sbiw r26,4+1 791 0138 4281 ldd r20,Z+2 792 013a 5381 ldd r21,Z+3 793 013c 60E0 ldi r22,lo8(.LC54) 794 013e 70E0 ldi r23,hi8(.LC54) 795 0140 832D mov r24,r3 796 0142 922D mov r25,r2 797 0144 0E94 0000 call WriteTag 798 0148 D701 movw r26,r14 799 014a 1496 adiw r26,4 800 014c ED91 ld r30,X+ 801 014e FC91 ld r31,X 802 0150 1597 sbiw r26,4+1 803 0152 4681 ldd r20,Z+6 804 0154 5781 ldd r21,Z+7 805 0156 20E0 ldi r18,lo8(.LC50) 806 0158 30E0 ldi r19,hi8(.LC50) 807 015a 60E0 ldi r22,lo8(.LC55) 808 015c 70E0 ldi r23,hi8(.LC55) 809 015e 832D mov r24,r3 810 0160 922D mov r25,r2 811 0162 0E94 0000 call WritePrepTag 812 0166 4E81 ldd r20,Y+6 813 0168 5F81 ldd r21,Y+7 814 016a 60E0 ldi r22,lo8(.LC56) 815 016c 70E0 ldi r23,hi8(.LC56) GAS LISTING /tmp/ccEHcQCQ.s page 18 816 016e 832D mov r24,r3 817 0170 922D mov r25,r2 818 0172 0E94 0000 call WriteTag 819 0176 EDB7 in r30,__SP_L__ 820 0178 FEB7 in r31,__SP_H__ 821 017a 3896 adiw r30,8 822 017c 0FB6 in __tmp_reg__,__SREG__ 823 017e F894 cli 824 0180 FEBF out __SP_H__,r31 825 0182 0FBE out __SREG__,__tmp_reg__ 826 0184 EDBF out __SP_L__,r30 827 0186 8C81 ldd r24,Y+4 828 0188 9D81 ldd r25,Y+5 829 018a 892B or r24,r25 830 018c 01F4 brne .+2 831 018e 00C0 rjmp .L58 832 0190 632D mov r22,r3 833 0192 722D mov r23,r2 834 0194 80E0 ldi r24,lo8(.LC33) 835 0196 90E0 ldi r25,hi8(.LC33) 836 0198 0E94 0000 call fputs 837 019c 0C81 ldd r16,Y+4 838 019e 1D81 ldd r17,Y+5 839 01a0 80E0 ldi r24,lo8(.LC36) 840 01a2 482E mov r4,r24 841 01a4 80E0 ldi r24,hi8(.LC36) 842 01a6 582E mov r5,r24 843 01a8 90E0 ldi r25,lo8(.LC37) 844 01aa 692E mov r6,r25 845 01ac 90E0 ldi r25,hi8(.LC37) 846 01ae 792E mov r7,r25 847 01b0 20E0 ldi r18,lo8(.LC38) 848 01b2 A22E mov r10,r18 849 01b4 20E0 ldi r18,hi8(.LC38) 850 01b6 B22E mov r11,r18 851 01b8 30E0 ldi r19,lo8(.LC39) 852 01ba 832E mov r8,r19 853 01bc 30E0 ldi r19,hi8(.LC39) 854 01be 932E mov r9,r19 855 .L55: 856 01c0 0115 cp r16,__zero_reg__ 857 01c2 1105 cpc r17,__zero_reg__ 858 01c4 01F4 brne .+2 859 01c6 00C0 rjmp .L63 860 01c8 EC81 ldd r30,Y+4 861 01ca FD81 ldd r31,Y+5 862 01cc C084 ldd r12,Z+8 863 01ce D184 ldd r13,Z+9 864 01d0 632D mov r22,r3 865 01d2 722D mov r23,r2 866 01d4 80E0 ldi r24,lo8(.LC34) 867 01d6 90E0 ldi r25,hi8(.LC34) 868 01d8 0E94 0000 call fputs 869 01dc EC81 ldd r30,Y+4 870 01de FD81 ldd r31,Y+5 871 01e0 8781 ldd r24,Z+7 872 01e2 8F93 push r24 GAS LISTING /tmp/ccEHcQCQ.s page 19 873 01e4 8681 ldd r24,Z+6 874 01e6 8F93 push r24 875 01e8 A0E0 ldi r26,lo8(.LC35) 876 01ea B0E0 ldi r27,hi8(.LC35) 877 01ec BF93 push r27 878 01ee AF93 push r26 879 01f0 2F92 push r2 880 01f2 3F92 push r3 881 01f4 0E94 0000 call fprintf 882 01f8 EC81 ldd r30,Y+4 883 01fa FD81 ldd r31,Y+5 884 01fc 8781 ldd r24,Z+7 885 01fe 8F93 push r24 886 0200 8681 ldd r24,Z+6 887 0202 8F93 push r24 888 0204 5F92 push r5 889 0206 4F92 push r4 890 0208 2F92 push r2 891 020a 3F92 push r3 892 020c 0E94 0000 call fprintf 893 0210 D801 movw r26,r16 894 0212 1796 adiw r26,7 895 0214 8C91 ld r24,X 896 0216 1797 sbiw r26,7 897 0218 8F93 push r24 898 021a 1696 adiw r26,6 899 021c 8C91 ld r24,X 900 021e 8F93 push r24 901 0220 8D85 ldd r24,Y+13 902 0222 8F93 push r24 903 0224 8C85 ldd r24,Y+12 904 0226 8F93 push r24 905 0228 F601 movw r30,r12 906 022a 8181 ldd r24,Z+1 907 022c 8F93 push r24 908 022e 8081 ld r24,Z 909 0230 8F93 push r24 910 0232 7F92 push r7 911 0234 6F92 push r6 912 0236 2F92 push r2 913 0238 3F92 push r3 914 023a 0E94 0000 call fprintf 915 023e D801 movw r26,r16 916 0240 1796 adiw r26,7 917 0242 8C91 ld r24,X 918 0244 1797 sbiw r26,7 919 0246 8F93 push r24 920 0248 1696 adiw r26,6 921 024a 8C91 ld r24,X 922 024c 8F93 push r24 923 024e 8D85 ldd r24,Y+13 924 0250 8F93 push r24 925 0252 8C85 ldd r24,Y+12 926 0254 8F93 push r24 927 0256 F601 movw r30,r12 928 0258 8381 ldd r24,Z+3 929 025a 8F93 push r24 GAS LISTING /tmp/ccEHcQCQ.s page 20 930 025c 8281 ldd r24,Z+2 931 025e 8F93 push r24 932 0260 BF92 push r11 933 0262 AF92 push r10 934 0264 2F92 push r2 935 0266 3F92 push r3 936 0268 0E94 0000 call fprintf 937 026c 8DB7 in r24,__SP_L__ 938 026e 9EB7 in r25,__SP_H__ 939 0270 8096 adiw r24,32 940 0272 0FB6 in __tmp_reg__,__SREG__ 941 0274 F894 cli 942 0276 9EBF out __SP_H__,r25 943 0278 0FBE out __SREG__,__tmp_reg__ 944 027a 8DBF out __SP_L__,r24 945 027c D801 movw r26,r16 946 027e 1796 adiw r26,7 947 0280 8C91 ld r24,X 948 0282 1797 sbiw r26,7 949 0284 8F93 push r24 950 0286 1696 adiw r26,6 951 0288 8C91 ld r24,X 952 028a 8F93 push r24 953 028c 8D85 ldd r24,Y+13 954 028e 8F93 push r24 955 0290 8C85 ldd r24,Y+12 956 0292 8F93 push r24 957 0294 F601 movw r30,r12 958 0296 8581 ldd r24,Z+5 959 0298 8F93 push r24 960 029a 8481 ldd r24,Z+4 961 029c 8F93 push r24 962 029e 9F92 push r9 963 02a0 8F92 push r8 964 02a2 2F92 push r2 965 02a4 3F92 push r3 966 02a6 0E94 0000 call fprintf 967 02aa 632D mov r22,r3 968 02ac 722D mov r23,r2 969 02ae 80E0 ldi r24,lo8(.LC40) 970 02b0 90E0 ldi r25,hi8(.LC40) 971 02b2 0E94 0000 call fputs 972 02b6 D801 movw r26,r16 973 02b8 0D91 ld r16,X+ 974 02ba 1C91 ld r17,X 975 02bc EDB7 in r30,__SP_L__ 976 02be FEB7 in r31,__SP_H__ 977 02c0 3A96 adiw r30,10 978 02c2 0FB6 in __tmp_reg__,__SREG__ 979 02c4 F894 cli 980 02c6 FEBF out __SP_H__,r31 981 02c8 0FBE out __SREG__,__tmp_reg__ 982 02ca EDBF out __SP_L__,r30 983 02cc 00C0 rjmp .L55 984 .L63: 985 02ce 632D mov r22,r3 986 02d0 722D mov r23,r2 GAS LISTING /tmp/ccEHcQCQ.s page 21 987 02d2 80E0 ldi r24,lo8(.LC41) 988 02d4 90E0 ldi r25,hi8(.LC41) 989 02d6 0E94 0000 call fputs 990 .L58: 991 02da D701 movw r26,r14 992 02dc 1296 adiw r26,2 993 02de 4D91 ld r20,X+ 994 02e0 5C91 ld r21,X 995 02e2 1397 sbiw r26,2+1 996 02e4 60E0 ldi r22,lo8(.LC42) 997 02e6 70E0 ldi r23,hi8(.LC42) 998 02e8 832D mov r24,r3 999 02ea 922D mov r25,r2 1000 02ec 0E94 0000 call WriteTag 1001 02f0 632D mov r22,r3 1002 02f2 722D mov r23,r2 1003 02f4 80E0 ldi r24,lo8(.LC43) 1004 02f6 90E0 ldi r25,hi8(.LC43) 1005 02f8 0E94 0000 call fputs 1006 02fc 632D mov r22,r3 1007 02fe 722D mov r23,r2 1008 0300 80E0 ldi r24,lo8(.LC44) 1009 0302 90E0 ldi r25,hi8(.LC44) 1010 0304 0E94 0000 call fputs 1011 .L51: 1012 0308 832D mov r24,r3 1013 030a 922D mov r25,r2 1014 030c 0E94 0000 call fflush 1015 0310 80E0 ldi r24,0 1016 0312 90E0 ldi r25,0 1017 /* epilogue start */ 1018 0314 DF91 pop r29 1019 0316 CF91 pop r28 1020 0318 1F91 pop r17 1021 031a 0F91 pop r16 1022 031c FF90 pop r15 1023 031e EF90 pop r14 1024 0320 DF90 pop r13 1025 0322 CF90 pop r12 1026 0324 BF90 pop r11 1027 0326 AF90 pop r10 1028 0328 9F90 pop r9 1029 032a 8F90 pop r8 1030 032c 7F90 pop r7 1031 032e 6F90 pop r6 1032 0330 5F90 pop r5 1033 0332 4F90 pop r4 1034 0334 3F90 pop r3 1035 0336 2F90 pop r2 1036 0338 0895 ret 1037 .size UpnpCgiDeviceDescription, .-UpnpCgiDeviceDescription 1038 .section .text.UpnpRegisterDeviceTree,"ax",@progbits 1039 .global UpnpRegisterDeviceTree 1040 .type UpnpRegisterDeviceTree, @function 1041 UpnpRegisterDeviceTree: 1042 0000 CF93 push r28 1043 0002 DF93 push r29 GAS LISTING /tmp/ccEHcQCQ.s page 22 1044 /* prologue: function */ 1045 /* frame size = 0 */ 1046 /* stack size = 2 */ 1047 .L__stack_usage = 2 1048 0004 EB01 movw r28,r22 1049 0006 0097 sbiw r24,0 1050 0008 01F4 brne .L68 1051 000a 8091 0000 lds r24,device_registration 1052 000e 9091 0000 lds r25,device_registration+1 1053 0012 9983 std Y+1,r25 1054 0014 8883 st Y,r24 1055 0016 7093 0000 sts device_registration+1,r23 1056 001a 6093 0000 sts device_registration,r22 1057 001e 60E0 ldi r22,lo8(gs(UpnpCgiDeviceDescription)) 1058 0020 70E0 ldi r23,hi8(gs(UpnpCgiDeviceDescription)) 1059 0022 8885 ldd r24,Y+8 1060 0024 9985 ldd r25,Y+9 1061 0026 0E94 0000 call HttpRegisterCgiFunction 1062 002a EC81 ldd r30,Y+4 1063 002c FD81 ldd r31,Y+5 1064 002e 0084 ldd __tmp_reg__,Z+8 1065 0030 F185 ldd r31,Z+9 1066 0032 E02D mov r30,__tmp_reg__ 1067 0034 60E0 ldi r22,lo8(gs(UpnpCgiServiceDescription)) 1068 0036 70E0 ldi r23,hi8(gs(UpnpCgiServiceDescription)) 1069 0038 8081 ld r24,Z 1070 003a 9181 ldd r25,Z+1 1071 003c 0E94 0000 call HttpRegisterCgiFunction 1072 0040 8091 0000 lds r24,device_registration 1073 0044 9091 0000 lds r25,device_registration+1 1074 /* epilogue start */ 1075 0048 DF91 pop r29 1076 004a CF91 pop r28 1077 004c 0C94 0000 jmp SsdpRegisterDeviceTree 1078 .L68: 1079 0050 FC01 movw r30,r24 1080 0052 7183 std Z+1,r23 1081 0054 6083 st Z,r22 1082 0056 80E0 ldi r24,0 1083 0058 90E0 ldi r25,0 1084 /* epilogue start */ 1085 005a DF91 pop r29 1086 005c CF91 pop r28 1087 005e 0895 ret 1088 .size UpnpRegisterDeviceTree, .-UpnpRegisterDeviceTree 1089 .local device_registration 1090 .comm device_registration,2,1 1091 .ident "GCC: (GNU) 5.3.0" 1092 .global __do_copy_data 1093 .global __do_clear_bss GAS LISTING /tmp/ccEHcQCQ.s page 23 DEFINED SYMBOLS *ABS*:0000000000000000 upnp_dev.c /tmp/ccEHcQCQ.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccEHcQCQ.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccEHcQCQ.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccEHcQCQ.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccEHcQCQ.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccEHcQCQ.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccEHcQCQ.s:19 .text.SpecVersion:0000000000000000 SpecVersion /tmp/ccEHcQCQ.s:54 .text.WritePrepTag:0000000000000000 WritePrepTag /tmp/ccEHcQCQ.s:135 .text.WriteTag:0000000000000000 WriteTag /tmp/ccEHcQCQ.s:155 .text.XmlHead:0000000000000000 XmlHead /tmp/ccEHcQCQ.s:247 .text.UpnpCgiServiceDescription:0000000000000000 UpnpCgiServiceDescription .bss:0000000000000000 device_registration /tmp/ccEHcQCQ.s:642 .text.UpnpCgiDeviceDescription:0000000000000000 UpnpCgiDeviceDescription /tmp/ccEHcQCQ.s:1041 .text.UpnpRegisterDeviceTree:0000000000000000 UpnpRegisterDeviceTree UNDEFINED SYMBOLS fputs fprintf HttpSendStreamHeaderTop HttpSendStreamHeaderBottom HttpArgParseFirst HttpArgValue strcmp UpnpVarTypeString fflush HttpRegisterCgiFunction SsdpRegisterDeviceTree __do_copy_data __do_clear_bss