auth.lst 11 KB

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