| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- GAS LISTING /tmp/ccLx3M3I.s page 1
- 1 .file "auth.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 .text.NutHttpAuthLookup,"ax",@progbits
- 9 .type NutHttpAuthLookup, @function
- 10 NutHttpAuthLookup:
- 11 0000 EF92 push r14
- 12 0002 FF92 push r15
- 13 0004 0F93 push r16
- 14 0006 1F93 push r17
- 15 0008 CF93 push r28
- 16 000a DF93 push r29
- 17 /* prologue: function */
- 18 /* frame size = 0 */
- 19 /* stack size = 6 */
- 20 .L__stack_usage = 6
- 21 000c 8C01 movw r16,r24
- 22 000e 7B01 movw r14,r22
- 23 0010 C091 0000 lds r28,authList
- 24 0014 D091 0000 lds r29,authList+1
- 25 .L2:
- 26 0018 2097 sbiw r28,0
- 27 001a 01F0 breq .L5
- 28 001c 0115 cp r16,__zero_reg__
- 29 001e 1105 cpc r17,__zero_reg__
- 30 0020 01F0 breq .L3
- 31 0022 6A81 ldd r22,Y+2
- 32 0024 7B81 ldd r23,Y+3
- 33 0026 C801 movw r24,r16
- 34 0028 0E94 0000 call strstr
- 35 002c 0817 cp r16,r24
- 36 002e 1907 cpc r17,r25
- 37 0030 01F4 brne .L4
- 38 .L3:
- 39 0032 E114 cp r14,__zero_reg__
- 40 0034 F104 cpc r15,__zero_reg__
- 41 0036 01F0 breq .L5
- 42 0038 6C81 ldd r22,Y+4
- 43 003a 7D81 ldd r23,Y+5
- 44 003c C701 movw r24,r14
- 45 003e 0E94 0000 call strcmp
- 46 0042 892B or r24,r25
- 47 0044 01F0 breq .L5
- 48 .L4:
- 49 0046 0990 ld __tmp_reg__,Y+
- 50 0048 D881 ld r29,Y
- 51 004a C02D mov r28,__tmp_reg__
- 52 004c 00C0 rjmp .L2
- 53 .L5:
- 54 004e CE01 movw r24,r28
- 55 /* epilogue start */
- 56 0050 DF91 pop r29
- 57 0052 CF91 pop r28
- GAS LISTING /tmp/ccLx3M3I.s page 2
- 58 0054 1F91 pop r17
- 59 0056 0F91 pop r16
- 60 0058 FF90 pop r15
- 61 005a EF90 pop r14
- 62 005c 0895 ret
- 63 .size NutHttpAuthLookup, .-NutHttpAuthLookup
- 64 .section .text.NutRegisterAuth,"ax",@progbits
- 65 .global NutRegisterAuth
- 66 .type NutRegisterAuth, @function
- 67 NutRegisterAuth:
- 68 0000 EF92 push r14
- 69 0002 FF92 push r15
- 70 0004 0F93 push r16
- 71 0006 1F93 push r17
- 72 0008 CF93 push r28
- 73 000a DF93 push r29
- 74 /* prologue: function */
- 75 /* frame size = 0 */
- 76 /* stack size = 6 */
- 77 .L__stack_usage = 6
- 78 000c 8C01 movw r16,r24
- 79 000e 7B01 movw r14,r22
- 80 0010 86E0 ldi r24,lo8(6)
- 81 0012 90E0 ldi r25,0
- 82 0014 0E94 0000 call malloc
- 83 0018 EC01 movw r28,r24
- 84 001a 892B or r24,r25
- 85 001c 01F0 breq .L21
- 86 001e 8091 0000 lds r24,authList
- 87 0022 9091 0000 lds r25,authList+1
- 88 0026 9983 std Y+1,r25
- 89 0028 8883 st Y,r24
- 90 002a C801 movw r24,r16
- 91 002c 0E94 0000 call strdup
- 92 0030 8C01 movw r16,r24
- 93 0032 9B83 std Y+3,r25
- 94 0034 8A83 std Y+2,r24
- 95 0036 892B or r24,r25
- 96 0038 01F0 breq .L19
- 97 003a C701 movw r24,r14
- 98 003c 0E94 0000 call strdup
- 99 0040 9D83 std Y+5,r25
- 100 0042 8C83 std Y+4,r24
- 101 0044 892B or r24,r25
- 102 0046 01F0 breq .L20
- 103 0048 D093 0000 sts authList+1,r29
- 104 004c C093 0000 sts authList,r28
- 105 0050 80E0 ldi r24,0
- 106 0052 90E0 ldi r25,0
- 107 0054 00C0 rjmp .L18
- 108 .L20:
- 109 0056 C801 movw r24,r16
- 110 0058 0E94 0000 call free
- 111 .L19:
- 112 005c CE01 movw r24,r28
- 113 005e 0E94 0000 call free
- 114 .L21:
- GAS LISTING /tmp/ccLx3M3I.s page 3
- 115 0062 8FEF ldi r24,lo8(-1)
- 116 0064 9FEF ldi r25,lo8(-1)
- 117 .L18:
- 118 /* epilogue start */
- 119 0066 DF91 pop r29
- 120 0068 CF91 pop r28
- 121 006a 1F91 pop r17
- 122 006c 0F91 pop r16
- 123 006e FF90 pop r15
- 124 0070 EF90 pop r14
- 125 0072 0895 ret
- 126 .size NutRegisterAuth, .-NutRegisterAuth
- 127 .section .text.NutClearAuth,"ax",@progbits
- 128 .global NutClearAuth
- 129 .type NutClearAuth, @function
- 130 NutClearAuth:
- 131 0000 CF93 push r28
- 132 0002 DF93 push r29
- 133 /* prologue: function */
- 134 /* frame size = 0 */
- 135 /* stack size = 2 */
- 136 .L__stack_usage = 2
- 137 .L26:
- 138 0004 C091 0000 lds r28,authList
- 139 0008 D091 0000 lds r29,authList+1
- 140 000c 2097 sbiw r28,0
- 141 000e 01F0 breq .L28
- 142 0010 8881 ld r24,Y
- 143 0012 9981 ldd r25,Y+1
- 144 0014 9093 0000 sts authList+1,r25
- 145 0018 8093 0000 sts authList,r24
- 146 001c 8A81 ldd r24,Y+2
- 147 001e 9B81 ldd r25,Y+3
- 148 0020 0E94 0000 call free
- 149 0024 8C81 ldd r24,Y+4
- 150 0026 9D81 ldd r25,Y+5
- 151 0028 0E94 0000 call free
- 152 002c CE01 movw r24,r28
- 153 002e 0E94 0000 call free
- 154 0032 00C0 rjmp .L26
- 155 .L28:
- 156 /* epilogue start */
- 157 0034 DF91 pop r29
- 158 0036 CF91 pop r28
- 159 0038 0895 ret
- 160 .size NutClearAuth, .-NutClearAuth
- 161 .section .rodata.str1.1,"aMS",@progbits,1
- 162 .LC0:
- 163 0000 2E00 .string "."
- 164 .LC1:
- 165 0002 4261 7369 .string "Basic "
- 165 6320 00
- 166 .section .text.NutHttpAuthValidate,"ax",@progbits
- 167 .global NutHttpAuthValidate
- 168 .type NutHttpAuthValidate, @function
- 169 NutHttpAuthValidate:
- 170 0000 CF92 push r12
- GAS LISTING /tmp/ccLx3M3I.s page 4
- 171 0002 DF92 push r13
- 172 0004 EF92 push r14
- 173 0006 FF92 push r15
- 174 0008 0F93 push r16
- 175 000a 1F93 push r17
- 176 000c CF93 push r28
- 177 000e DF93 push r29
- 178 /* prologue: function */
- 179 /* frame size = 0 */
- 180 /* stack size = 8 */
- 181 .L__stack_usage = 8
- 182 0010 7C01 movw r14,r24
- 183 0012 FC01 movw r30,r24
- 184 0014 0085 ldd r16,Z+8
- 185 0016 1185 ldd r17,Z+9
- 186 0018 6FE2 ldi r22,lo8(47)
- 187 001a 70E0 ldi r23,0
- 188 001c C801 movw r24,r16
- 189 001e 0E94 0000 call strrchr
- 190 0022 EC01 movw r28,r24
- 191 0024 892B or r24,r25
- 192 0026 01F0 breq .L34
- 193 0028 1882 st Y,__zero_reg__
- 194 002a 00C0 rjmp .L30
- 195 .L34:
- 196 002c 00E0 ldi r16,lo8(.LC0)
- 197 002e 10E0 ldi r17,hi8(.LC0)
- 198 .L30:
- 199 0030 60E0 ldi r22,0
- 200 0032 70E0 ldi r23,0
- 201 0034 C801 movw r24,r16
- 202 0036 0E94 0000 call NutHttpAuthLookup
- 203 003a 892B or r24,r25
- 204 003c 01F0 breq .L35
- 205 003e F701 movw r30,r14
- 206 0040 C088 ldd r12,Z+16
- 207 0042 D188 ldd r13,Z+17
- 208 0044 C114 cp r12,__zero_reg__
- 209 0046 D104 cpc r13,__zero_reg__
- 210 0048 01F0 breq .L37
- 211 004a 46E0 ldi r20,lo8(6)
- 212 004c 50E0 ldi r21,0
- 213 004e 60E0 ldi r22,lo8(.LC1)
- 214 0050 70E0 ldi r23,hi8(.LC1)
- 215 0052 C601 movw r24,r12
- 216 0054 0E94 0000 call strncmp
- 217 0058 892B or r24,r25
- 218 005a 01F4 brne .L37
- 219 005c C601 movw r24,r12
- 220 005e 0696 adiw r24,6
- 221 0060 0E94 0000 call NutDecodeBase64
- 222 0064 F701 movw r30,r14
- 223 0066 6089 ldd r22,Z+16
- 224 0068 7189 ldd r23,Z+17
- 225 006a 6A5F subi r22,-6
- 226 006c 7F4F sbci r23,-1
- 227 006e C801 movw r24,r16
- GAS LISTING /tmp/ccLx3M3I.s page 5
- 228 0070 0E94 0000 call NutHttpAuthLookup
- 229 0074 21E0 ldi r18,lo8(1)
- 230 0076 30E0 ldi r19,0
- 231 0078 892B or r24,r25
- 232 007a 01F0 breq .L32
- 233 007c 20E0 ldi r18,0
- 234 007e 30E0 ldi r19,0
- 235 .L32:
- 236 0080 8827 clr r24
- 237 0082 9927 clr r25
- 238 0084 821B sub r24,r18
- 239 0086 930B sbc r25,r19
- 240 0088 00C0 rjmp .L31
- 241 .L35:
- 242 008a 80E0 ldi r24,0
- 243 008c 90E0 ldi r25,0
- 244 008e 00C0 rjmp .L31
- 245 .L37:
- 246 0090 8FEF ldi r24,lo8(-1)
- 247 0092 9FEF ldi r25,lo8(-1)
- 248 .L31:
- 249 0094 2097 sbiw r28,0
- 250 0096 01F0 breq .L33
- 251 0098 2FE2 ldi r18,lo8(47)
- 252 009a 2883 st Y,r18
- 253 .L33:
- 254 /* epilogue start */
- 255 009c DF91 pop r29
- 256 009e CF91 pop r28
- 257 00a0 1F91 pop r17
- 258 00a2 0F91 pop r16
- 259 00a4 FF90 pop r15
- 260 00a6 EF90 pop r14
- 261 00a8 DF90 pop r13
- 262 00aa CF90 pop r12
- 263 00ac 0895 ret
- 264 .size NutHttpAuthValidate, .-NutHttpAuthValidate
- 265 .global authList
- 266 .section .bss
- 267 .type authList, @object
- 268 .size authList, 2
- 269 authList:
- 270 0000 0000 .zero 2
- 271 .ident "GCC: (GNU) 5.3.0"
- 272 .global __do_copy_data
- 273 .global __do_clear_bss
- GAS LISTING /tmp/ccLx3M3I.s page 6
- DEFINED SYMBOLS
- *ABS*:0000000000000000 auth.c
- /tmp/ccLx3M3I.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccLx3M3I.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccLx3M3I.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccLx3M3I.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccLx3M3I.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccLx3M3I.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccLx3M3I.s:10 .text.NutHttpAuthLookup:0000000000000000 NutHttpAuthLookup
- /tmp/ccLx3M3I.s:269 .bss:0000000000000000 authList
- /tmp/ccLx3M3I.s:67 .text.NutRegisterAuth:0000000000000000 NutRegisterAuth
- /tmp/ccLx3M3I.s:130 .text.NutClearAuth:0000000000000000 NutClearAuth
- /tmp/ccLx3M3I.s:169 .text.NutHttpAuthValidate:0000000000000000 NutHttpAuthValidate
- UNDEFINED SYMBOLS
- strstr
- strcmp
- malloc
- strdup
- free
- strrchr
- strncmp
- NutDecodeBase64
- __do_copy_data
- __do_clear_bss
|