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