GAS LISTING /tmp/ccEFj0Vf.s page 1 1 .file "asp.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 6E75 745F .string "nut_version" 10 7665 7273 10 696F 6E00 11 .LC1: 12 000c 6E75 745F .string "nut_mac_addr" 12 6D61 635F 12 6164 6472 12 00 13 .LC2: 14 0019 2530 3258 .string "%02X:%02X:%02X:%02X:%02X:%02X" 14 3A25 3032 14 583A 2530 14 3258 3A25 14 3032 583A 15 .LC3: 16 0037 6E75 745F .string "nut_ip_addr" 16 6970 5F61 16 6464 7200 17 .LC4: 18 0043 6E75 745F .string "nut_ip_mask" 18 6970 5F6D 18 6173 6B00 19 .LC5: 20 004f 6E75 745F .string "nut_gateway" 20 6761 7465 20 7761 7900 21 .section .text.NutHttpProcessAsp,"ax",@progbits 22 .global NutHttpProcessAsp 23 .type NutHttpProcessAsp, @function 24 NutHttpProcessAsp: 25 0000 2F92 push r2 26 0002 3F92 push r3 27 0004 4F92 push r4 28 0006 5F92 push r5 29 0008 6F92 push r6 30 000a 7F92 push r7 31 000c 8F92 push r8 32 000e 9F92 push r9 33 0010 AF92 push r10 34 0012 BF92 push r11 35 0014 CF92 push r12 36 0016 DF92 push r13 37 0018 EF92 push r14 38 001a FF92 push r15 39 001c 0F93 push r16 40 001e 1F93 push r17 41 0020 CF93 push r28 42 0022 DF93 push r29 GAS LISTING /tmp/ccEFj0Vf.s page 2 43 0024 CDB7 in r28,__SP_L__ 44 0026 DEB7 in r29,__SP_H__ 45 0028 2897 sbiw r28,8 46 002a 0FB6 in __tmp_reg__,__SREG__ 47 002c F894 cli 48 002e DEBF out __SP_H__,r29 49 0030 0FBE out __SREG__,__tmp_reg__ 50 0032 CDBF out __SP_L__,r28 51 /* prologue: function */ 52 /* frame size = 8 */ 53 /* stack size = 26 */ 54 .L__stack_usage = 26 55 0034 382E mov r3,r24 56 0036 292E mov r2,r25 57 0038 7E83 std Y+6,r23 58 003a 6D83 std Y+5,r22 59 003c CB01 movw r24,r22 60 003e 0E94 0000 call _filelength 61 0042 2B01 movw r4,r22 62 0044 3C01 movw r6,r24 63 0046 80E4 ldi r24,lo8(64) 64 0048 90E0 ldi r25,0 65 004a 0E94 0000 call malloc 66 004e 7C01 movw r14,r24 67 0050 80E0 ldi r24,0 68 0052 91E0 ldi r25,lo8(1) 69 0054 0E94 0000 call malloc 70 0058 5C01 movw r10,r24 71 005a 81E0 ldi r24,lo8(1) 72 005c 91E0 ldi r25,lo8(1) 73 005e 0E94 0000 call malloc 74 0062 6C01 movw r12,r24 75 0064 A114 cp r10,__zero_reg__ 76 0066 B104 cpc r11,__zero_reg__ 77 0068 01F4 brne .+2 78 006a 00C0 rjmp .L2 79 006c 892B or r24,r25 80 006e 01F4 brne .+2 81 0070 00C0 rjmp .L3 82 0072 E114 cp r14,__zero_reg__ 83 0074 F104 cpc r15,__zero_reg__ 84 0076 01F4 brne .+2 85 0078 00C0 rjmp .L3 86 007a 00E0 ldi r16,0 87 007c 1886 std Y+8,__zero_reg__ 88 007e 1F82 std Y+7,__zero_reg__ 89 0080 10E0 ldi r17,0 90 0082 20E0 ldi r18,0 91 0084 31E0 ldi r19,lo8(1) 92 0086 3A83 std Y+2,r19 93 0088 2983 std Y+1,r18 94 .L4: 95 008a 4114 cp r4,__zero_reg__ 96 008c 5104 cpc r5,__zero_reg__ 97 008e 6104 cpc r6,__zero_reg__ 98 0090 7104 cpc r7,__zero_reg__ 99 0092 01F4 brne .+2 GAS LISTING /tmp/ccEFj0Vf.s page 3 100 0094 00C0 rjmp .L3 101 0096 3FEF ldi r19,-1 102 0098 4316 cp r4,r19 103 009a 5104 cpc r5,__zero_reg__ 104 009c 6104 cpc r6,__zero_reg__ 105 009e 7104 cpc r7,__zero_reg__ 106 00a0 01F0 breq .+2 107 00a2 04F4 brge .L5 108 00a4 5A82 std Y+2,r5 109 00a6 4982 std Y+1,r4 110 .L5: 111 00a8 4981 ldd r20,Y+1 112 00aa 5A81 ldd r21,Y+2 113 00ac B501 movw r22,r10 114 00ae 8D81 ldd r24,Y+5 115 00b0 9E81 ldd r25,Y+6 116 00b2 0E94 0000 call _read 117 00b6 9C83 std Y+4,r25 118 00b8 8B83 std Y+3,r24 119 00ba 4501 movw r8,r10 120 .L6: 121 00bc C401 movw r24,r8 122 00be 8A19 sub r24,r10 123 00c0 9B09 sbc r25,r11 124 00c2 AB81 ldd r26,Y+3 125 00c4 BC81 ldd r27,Y+4 126 00c6 8A17 cp r24,r26 127 00c8 9B07 cpc r25,r27 128 00ca 04F0 brlt .+2 129 00cc 00C0 rjmp .L51 130 00ce D401 movw r26,r8 131 00d0 8D91 ld r24,X+ 132 00d2 4D01 movw r8,r26 133 00d4 1130 cpi r17,lo8(1) 134 00d6 01F0 breq .L8 135 00d8 00F0 brlo .L9 136 00da 1230 cpi r17,lo8(2) 137 00dc 01F0 breq .L10 138 00de 00C0 rjmp .L6 139 .L9: 140 00e0 11E0 ldi r17,lo8(1) 141 00e2 8C33 cpi r24,lo8(60) 142 00e4 01F0 breq .L11 143 00e6 10E0 ldi r17,0 144 .L11: 145 00e8 EF81 ldd r30,Y+7 146 00ea F885 ldd r31,Y+8 147 00ec EC0D add r30,r12 148 00ee FD1D adc r31,r13 149 00f0 8083 st Z,r24 150 00f2 EF81 ldd r30,Y+7 151 00f4 F885 ldd r31,Y+8 152 00f6 3196 adiw r30,1 153 00f8 F887 std Y+8,r31 154 00fa EF83 std Y+7,r30 155 00fc 00C0 rjmp .L6 156 .L8: GAS LISTING /tmp/ccEFj0Vf.s page 4 157 00fe 8532 cpi r24,lo8(37) 158 0100 01F4 brne .L12 159 0102 2F81 ldd r18,Y+7 160 0104 3885 ldd r19,Y+8 161 0106 2115 cp r18,__zero_reg__ 162 0108 3105 cpc r19,__zero_reg__ 163 010a 01F4 brne .+2 164 010c 00C0 rjmp .L27 165 010e 2150 subi r18,1 166 0110 3109 sbc r19,__zero_reg__ 167 0112 3887 std Y+8,r19 168 0114 2F83 std Y+7,r18 169 0116 232B or r18,r19 170 0118 01F4 brne .+2 171 011a 00C0 rjmp .L27 172 011c 232D mov r18,r3 173 011e 322D mov r19,r2 174 0120 4F81 ldd r20,Y+7 175 0122 5885 ldd r21,Y+8 176 0124 61E0 ldi r22,lo8(1) 177 0126 70E0 ldi r23,0 178 0128 C601 movw r24,r12 179 012a 0E94 0000 call fwrite 180 012e 1886 std Y+8,__zero_reg__ 181 0130 1F82 std Y+7,__zero_reg__ 182 0132 00C0 rjmp .L27 183 .L12: 184 0134 EF81 ldd r30,Y+7 185 0136 F885 ldd r31,Y+8 186 0138 EC0D add r30,r12 187 013a FD1D adc r31,r13 188 013c 8083 st Z,r24 189 013e 8F81 ldd r24,Y+7 190 0140 9885 ldd r25,Y+8 191 0142 0196 adiw r24,1 192 0144 9887 std Y+8,r25 193 0146 8F83 std Y+7,r24 194 0148 00C0 rjmp .L47 195 .L10: 196 014a 202F mov r18,r16 197 014c 30E0 ldi r19,0 198 014e 8E33 cpi r24,lo8(62) 199 0150 01F0 breq .+2 200 0152 00C0 rjmp .L13 201 0154 F701 movw r30,r14 202 0156 E20F add r30,r18 203 0158 F31F adc r31,r19 204 015a 1082 st Z,__zero_reg__ 205 015c 60E0 ldi r22,lo8(.LC0) 206 015e 70E0 ldi r23,hi8(.LC0) 207 0160 C701 movw r24,r14 208 0162 0E94 0000 call strstr 209 0166 892B or r24,r25 210 0168 01F0 breq .L14 211 016a 0E94 0000 call NutVersionString 212 016e 00C0 rjmp .L48 213 .L14: GAS LISTING /tmp/ccEFj0Vf.s page 5 214 0170 60E0 ldi r22,lo8(.LC1) 215 0172 70E0 ldi r23,hi8(.LC1) 216 0174 C701 movw r24,r14 217 0176 0E94 0000 call strstr 218 017a 892B or r24,r25 219 017c 01F0 breq .L15 220 017e 8091 0000 lds r24,confnet+15 221 0182 1F92 push __zero_reg__ 222 0184 8F93 push r24 223 0186 8091 0000 lds r24,confnet+14 224 018a 1F92 push __zero_reg__ 225 018c 8F93 push r24 226 018e 8091 0000 lds r24,confnet+13 227 0192 1F92 push __zero_reg__ 228 0194 8F93 push r24 229 0196 8091 0000 lds r24,confnet+12 230 019a 1F92 push __zero_reg__ 231 019c 8F93 push r24 232 019e 8091 0000 lds r24,confnet+11 233 01a2 1F92 push __zero_reg__ 234 01a4 8F93 push r24 235 01a6 8091 0000 lds r24,confnet+10 236 01aa 1F92 push __zero_reg__ 237 01ac 8F93 push r24 238 01ae A0E0 ldi r26,lo8(.LC2) 239 01b0 B0E0 ldi r27,hi8(.LC2) 240 01b2 BF93 push r27 241 01b4 AF93 push r26 242 01b6 2F92 push r2 243 01b8 3F92 push r3 244 01ba 0E94 0000 call fprintf 245 01be 0FB6 in __tmp_reg__,__SREG__ 246 01c0 F894 cli 247 01c2 DEBF out __SP_H__,r29 248 01c4 0FBE out __SREG__,__tmp_reg__ 249 01c6 CDBF out __SP_L__,r28 250 01c8 00C0 rjmp .L28 251 .L15: 252 01ca 60E0 ldi r22,lo8(.LC3) 253 01cc 70E0 ldi r23,hi8(.LC3) 254 01ce C701 movw r24,r14 255 01d0 0E94 0000 call strstr 256 01d4 892B or r24,r25 257 01d6 01F0 breq .L16 258 01d8 6091 0000 lds r22,confnet+16 259 01dc 7091 0000 lds r23,confnet+16+1 260 01e0 8091 0000 lds r24,confnet+16+2 261 01e4 9091 0000 lds r25,confnet+16+3 262 01e8 00C0 rjmp .L49 263 .L16: 264 01ea 60E0 ldi r22,lo8(.LC4) 265 01ec 70E0 ldi r23,hi8(.LC4) 266 01ee C701 movw r24,r14 267 01f0 0E94 0000 call strstr 268 01f4 892B or r24,r25 269 01f6 01F0 breq .L17 270 01f8 6091 0000 lds r22,confnet+20 GAS LISTING /tmp/ccEFj0Vf.s page 6 271 01fc 7091 0000 lds r23,confnet+20+1 272 0200 8091 0000 lds r24,confnet+20+2 273 0204 9091 0000 lds r25,confnet+20+3 274 0208 00C0 rjmp .L49 275 .L17: 276 020a 60E0 ldi r22,lo8(.LC5) 277 020c 70E0 ldi r23,hi8(.LC5) 278 020e C701 movw r24,r14 279 0210 0E94 0000 call strstr 280 0214 892B or r24,r25 281 0216 01F0 breq .L18 282 0218 6091 0000 lds r22,confnet+24 283 021c 7091 0000 lds r23,confnet+24+1 284 0220 8091 0000 lds r24,confnet+24+2 285 0224 9091 0000 lds r25,confnet+24+3 286 .L49: 287 0228 0E94 0000 call inet_ntoa 288 .L48: 289 022c 632D mov r22,r3 290 022e 722D mov r23,r2 291 0230 0E94 0000 call fputs 292 0234 00C0 rjmp .L28 293 .L18: 294 0236 E091 0000 lds r30,asp_callback 295 023a F091 0000 lds r31,asp_callback+1 296 023e 3097 sbiw r30,0 297 0240 01F0 breq .L28 298 0242 632D mov r22,r3 299 0244 722D mov r23,r2 300 0246 C701 movw r24,r14 301 0248 1995 eicall 302 024a 00C0 rjmp .L28 303 .L13: 304 024c 8532 cpi r24,lo8(37) 305 024e 01F4 brne .L19 306 0250 80E0 ldi r24,0 307 .L19: 308 0252 F701 movw r30,r14 309 0254 E20F add r30,r18 310 0256 F31F adc r31,r19 311 0258 8083 st Z,r24 312 025a 0F5F subi r16,lo8(-(1)) 313 025c 0034 cpi r16,lo8(64) 314 025e 00F4 brsh .+2 315 0260 00C0 rjmp .L6 316 0262 00E0 ldi r16,0 317 0264 00C0 rjmp .L6 318 .L27: 319 0266 12E0 ldi r17,lo8(2) 320 0268 00C0 rjmp .L6 321 .L28: 322 026a 00E0 ldi r16,0 323 .L47: 324 026c 10E0 ldi r17,0 325 026e 00C0 rjmp .L6 326 .L51: 327 0270 EF81 ldd r30,Y+7 GAS LISTING /tmp/ccEFj0Vf.s page 7 328 0272 F885 ldd r31,Y+8 329 0274 3097 sbiw r30,0 330 0276 01F0 breq .L21 331 0278 EC0D add r30,r12 332 027a FD1D adc r31,r13 333 027c 3197 sbiw r30,1 334 027e 9080 ld r9,Z 335 0280 FCE3 ldi r31,lo8(60) 336 0282 9F12 cpse r9,r31 337 0284 00C0 rjmp .L22 338 0286 4F81 ldd r20,Y+7 339 0288 5885 ldd r21,Y+8 340 028a 4150 subi r20,1 341 028c 5109 sbc r21,__zero_reg__ 342 028e 232D mov r18,r3 343 0290 322D mov r19,r2 344 0292 61E0 ldi r22,lo8(1) 345 0294 70E0 ldi r23,0 346 0296 C601 movw r24,r12 347 0298 0E94 0000 call fwrite 348 029c D601 movw r26,r12 349 029e 9C92 st X,r9 350 02a0 E1E0 ldi r30,lo8(1) 351 02a2 F0E0 ldi r31,0 352 02a4 F887 std Y+8,r31 353 02a6 EF83 std Y+7,r30 354 02a8 00C0 rjmp .L21 355 .L22: 356 02aa 232D mov r18,r3 357 02ac 322D mov r19,r2 358 02ae 4F81 ldd r20,Y+7 359 02b0 5885 ldd r21,Y+8 360 02b2 61E0 ldi r22,lo8(1) 361 02b4 70E0 ldi r23,0 362 02b6 C601 movw r24,r12 363 02b8 0E94 0000 call fwrite 364 02bc 1886 std Y+8,__zero_reg__ 365 02be 1F82 std Y+7,__zero_reg__ 366 .L21: 367 02c0 2B81 ldd r18,Y+3 368 02c2 3C81 ldd r19,Y+4 369 02c4 C901 movw r24,r18 370 02c6 330F lsl r19 371 02c8 AA0B sbc r26,r26 372 02ca BB0B sbc r27,r27 373 02cc 481A sub r4,r24 374 02ce 590A sbc r5,r25 375 02d0 6A0A sbc r6,r26 376 02d2 7B0A sbc r7,r27 377 02d4 00C0 rjmp .L4 378 .L3: 379 02d6 C501 movw r24,r10 380 02d8 0E94 0000 call free 381 .L2: 382 02dc C114 cp r12,__zero_reg__ 383 02de D104 cpc r13,__zero_reg__ 384 02e0 01F0 breq .L24 GAS LISTING /tmp/ccEFj0Vf.s page 8 385 02e2 C601 movw r24,r12 386 02e4 0E94 0000 call free 387 .L24: 388 02e8 E114 cp r14,__zero_reg__ 389 02ea F104 cpc r15,__zero_reg__ 390 02ec 01F0 breq .L1 391 02ee C701 movw r24,r14 392 /* epilogue start */ 393 02f0 2896 adiw r28,8 394 02f2 0FB6 in __tmp_reg__,__SREG__ 395 02f4 F894 cli 396 02f6 DEBF out __SP_H__,r29 397 02f8 0FBE out __SREG__,__tmp_reg__ 398 02fa CDBF out __SP_L__,r28 399 02fc DF91 pop r29 400 02fe CF91 pop r28 401 0300 1F91 pop r17 402 0302 0F91 pop r16 403 0304 FF90 pop r15 404 0306 EF90 pop r14 405 0308 DF90 pop r13 406 030a CF90 pop r12 407 030c BF90 pop r11 408 030e AF90 pop r10 409 0310 9F90 pop r9 410 0312 8F90 pop r8 411 0314 7F90 pop r7 412 0316 6F90 pop r6 413 0318 5F90 pop r5 414 031a 4F90 pop r4 415 031c 3F90 pop r3 416 031e 2F90 pop r2 417 0320 0C94 0000 jmp free 418 .L1: 419 /* epilogue start */ 420 0324 2896 adiw r28,8 421 0326 0FB6 in __tmp_reg__,__SREG__ 422 0328 F894 cli 423 032a DEBF out __SP_H__,r29 424 032c 0FBE out __SREG__,__tmp_reg__ 425 032e CDBF out __SP_L__,r28 426 0330 DF91 pop r29 427 0332 CF91 pop r28 428 0334 1F91 pop r17 429 0336 0F91 pop r16 430 0338 FF90 pop r15 431 033a EF90 pop r14 432 033c DF90 pop r13 433 033e CF90 pop r12 434 0340 BF90 pop r11 435 0342 AF90 pop r10 436 0344 9F90 pop r9 437 0346 8F90 pop r8 438 0348 7F90 pop r7 439 034a 6F90 pop r6 440 034c 5F90 pop r5 441 034e 4F90 pop r4 GAS LISTING /tmp/ccEFj0Vf.s page 9 442 0350 3F90 pop r3 443 0352 2F90 pop r2 444 0354 0895 ret 445 .size NutHttpProcessAsp, .-NutHttpProcessAsp 446 .section .text.NutRegisterAspCallback,"ax",@progbits 447 .global NutRegisterAspCallback 448 .type NutRegisterAspCallback, @function 449 NutRegisterAspCallback: 450 /* prologue: function */ 451 /* frame size = 0 */ 452 /* stack size = 0 */ 453 .L__stack_usage = 0 454 0000 2091 0000 lds r18,asp_callback 455 0004 3091 0000 lds r19,asp_callback+1 456 0008 232B or r18,r19 457 000a 01F4 brne .L54 458 000c 9093 0000 sts asp_callback+1,r25 459 0010 8093 0000 sts asp_callback,r24 460 0014 80E0 ldi r24,0 461 0016 90E0 ldi r25,0 462 0018 0895 ret 463 .L54: 464 001a 8FEF ldi r24,lo8(-1) 465 001c 9FEF ldi r25,lo8(-1) 466 001e 0895 ret 467 .size NutRegisterAspCallback, .-NutRegisterAspCallback 468 .section .rodata.str1.1 469 .LC6: 470 005b 2E61 7370 .string ".asp" 470 00 471 .section .text.NutRegisterAsp,"ax",@progbits 472 .global NutRegisterAsp 473 .type NutRegisterAsp, @function 474 NutRegisterAsp: 475 /* prologue: function */ 476 /* frame size = 0 */ 477 /* stack size = 0 */ 478 .L__stack_usage = 0 479 0000 60E0 ldi r22,lo8(gs(NutHttpProcessAsp)) 480 0002 70E0 ldi r23,hi8(gs(NutHttpProcessAsp)) 481 0004 80E0 ldi r24,lo8(.LC6) 482 0006 90E0 ldi r25,hi8(.LC6) 483 0008 0C94 0000 jmp NutSetMimeHandler 484 .size NutRegisterAsp, .-NutRegisterAsp 485 .local asp_callback 486 .comm asp_callback,2,1 487 .ident "GCC: (GNU) 5.3.0" 488 .global __do_copy_data 489 .global __do_clear_bss GAS LISTING /tmp/ccEFj0Vf.s page 10 DEFINED SYMBOLS *ABS*:0000000000000000 asp.c /tmp/ccEFj0Vf.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccEFj0Vf.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccEFj0Vf.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccEFj0Vf.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccEFj0Vf.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccEFj0Vf.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccEFj0Vf.s:24 .text.NutHttpProcessAsp:0000000000000000 NutHttpProcessAsp .bss:0000000000000000 asp_callback /tmp/ccEFj0Vf.s:449 .text.NutRegisterAspCallback:0000000000000000 NutRegisterAspCallback /tmp/ccEFj0Vf.s:474 .text.NutRegisterAsp:0000000000000000 NutRegisterAsp UNDEFINED SYMBOLS _filelength malloc _read fwrite strstr NutVersionString confnet fprintf inet_ntoa fputs free NutSetMimeHandler __do_copy_data __do_clear_bss