ftpd.lst 116 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336
  1. GAS LISTING /tmp/cc8KBhV9.s page 1
  2. 1 .file "ftpd.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.NutFtpRespondOk,"ax",@progbits
  10. 9 .global NutFtpRespondOk
  11. 10 .type NutFtpRespondOk, @function
  12. 11 NutFtpRespondOk:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 EC01 movw r28,r24
  20. 19 0006 7F93 push r23
  21. 20 0008 6F93 push r22
  22. 21 000a 80E0 ldi r24,lo8(fmt_P.3055)
  23. 22 000c 90E0 ldi r25,hi8(fmt_P.3055)
  24. 23 000e 9F93 push r25
  25. 24 0010 8F93 push r24
  26. 25 0012 8B81 ldd r24,Y+3
  27. 26 0014 8F93 push r24
  28. 27 0016 8A81 ldd r24,Y+2
  29. 28 0018 8F93 push r24
  30. 29 001a 0E94 0000 call fprintf_P
  31. 30 001e 8A81 ldd r24,Y+2
  32. 31 0020 9B81 ldd r25,Y+3
  33. 32 0022 0E94 0000 call fflush
  34. 33 0026 0F90 pop __tmp_reg__
  35. 34 0028 0F90 pop __tmp_reg__
  36. 35 002a 0F90 pop __tmp_reg__
  37. 36 002c 0F90 pop __tmp_reg__
  38. 37 002e 0F90 pop __tmp_reg__
  39. 38 0030 0F90 pop __tmp_reg__
  40. 39 0032 80E0 ldi r24,0
  41. 40 0034 90E0 ldi r25,0
  42. 41 /* epilogue start */
  43. 42 0036 DF91 pop r29
  44. 43 0038 CF91 pop r28
  45. 44 003a 0895 ret
  46. 45 .size NutFtpRespondOk, .-NutFtpRespondOk
  47. 46 .section .text.NutFtpRespondBad,"ax",@progbits
  48. 47 .global NutFtpRespondBad
  49. 48 .type NutFtpRespondBad, @function
  50. 49 NutFtpRespondBad:
  51. 50 0000 CF93 push r28
  52. 51 0002 DF93 push r29
  53. 52 /* prologue: function */
  54. 53 /* frame size = 0 */
  55. 54 /* stack size = 2 */
  56. 55 .L__stack_usage = 2
  57. 56 0004 EC01 movw r28,r24
  58. 57 0006 7F93 push r23
  59. GAS LISTING /tmp/cc8KBhV9.s page 2
  60. 58 0008 6F93 push r22
  61. 59 000a 80E0 ldi r24,lo8(fmt_P.3060)
  62. 60 000c 90E0 ldi r25,hi8(fmt_P.3060)
  63. 61 000e 9F93 push r25
  64. 62 0010 8F93 push r24
  65. 63 0012 8B81 ldd r24,Y+3
  66. 64 0014 8F93 push r24
  67. 65 0016 8A81 ldd r24,Y+2
  68. 66 0018 8F93 push r24
  69. 67 001a 0E94 0000 call fprintf_P
  70. 68 001e 8A81 ldd r24,Y+2
  71. 69 0020 9B81 ldd r25,Y+3
  72. 70 0022 0E94 0000 call fflush
  73. 71 0026 0F90 pop __tmp_reg__
  74. 72 0028 0F90 pop __tmp_reg__
  75. 73 002a 0F90 pop __tmp_reg__
  76. 74 002c 0F90 pop __tmp_reg__
  77. 75 002e 0F90 pop __tmp_reg__
  78. 76 0030 0F90 pop __tmp_reg__
  79. 77 0032 80E0 ldi r24,0
  80. 78 0034 90E0 ldi r25,0
  81. 79 /* epilogue start */
  82. 80 0036 DF91 pop r29
  83. 81 0038 CF91 pop r28
  84. 82 003a 0895 ret
  85. 83 .size NutFtpRespondBad, .-NutFtpRespondBad
  86. 84 .section .text.NutFtpSendMode,"ax",@progbits
  87. 85 .global NutFtpSendMode
  88. 86 .type NutFtpSendMode, @function
  89. 87 NutFtpSendMode:
  90. 88 0000 0F93 push r16
  91. 89 0002 1F93 push r17
  92. 90 0004 CF93 push r28
  93. 91 0006 DF93 push r29
  94. 92 /* prologue: function */
  95. 93 /* frame size = 0 */
  96. 94 /* stack size = 4 */
  97. 95 .L__stack_usage = 4
  98. 96 0008 EC01 movw r28,r24
  99. 97 000a 8B01 movw r16,r22
  100. 98 000c 6A81 ldd r22,Y+2
  101. 99 000e 7B81 ldd r23,Y+3
  102. 100 0010 80E0 ldi r24,lo8(intro_P.3065)
  103. 101 0012 90E0 ldi r25,hi8(intro_P.3065)
  104. 102 0014 0E94 0000 call fputs_P
  105. 103 0018 6A81 ldd r22,Y+2
  106. 104 001a 7B81 ldd r23,Y+3
  107. 105 001c 012B or r16,r17
  108. 106 001e 01F4 brne .L5
  109. 107 0020 80E0 ldi r24,lo8(amode_P.3066)
  110. 108 0022 90E0 ldi r25,hi8(amode_P.3066)
  111. 109 0024 00C0 rjmp .L4
  112. 110 .L5:
  113. 111 0026 80E0 ldi r24,lo8(bmode_P.3067)
  114. 112 0028 90E0 ldi r25,hi8(bmode_P.3067)
  115. 113 .L4:
  116. 114 002a 0E94 0000 call fputs_P
  117. GAS LISTING /tmp/cc8KBhV9.s page 3
  118. 115 002e 8A81 ldd r24,Y+2
  119. 116 0030 9B81 ldd r25,Y+3
  120. 117 0032 0E94 0000 call fflush
  121. 118 0036 80E0 ldi r24,0
  122. 119 0038 90E0 ldi r25,0
  123. 120 /* epilogue start */
  124. 121 003a DF91 pop r29
  125. 122 003c CF91 pop r28
  126. 123 003e 1F91 pop r17
  127. 124 0040 0F91 pop r16
  128. 125 0042 0895 ret
  129. 126 .size NutFtpSendMode, .-NutFtpSendMode
  130. 127 .section .text.CreateFullPathName,"ax",@progbits
  131. 128 .global CreateFullPathName
  132. 129 .type CreateFullPathName, @function
  133. 130 CreateFullPathName:
  134. 131 0000 6F92 push r6
  135. 132 0002 7F92 push r7
  136. 133 0004 8F92 push r8
  137. 134 0006 9F92 push r9
  138. 135 0008 AF92 push r10
  139. 136 000a BF92 push r11
  140. 137 000c CF92 push r12
  141. 138 000e DF92 push r13
  142. 139 0010 EF92 push r14
  143. 140 0012 FF92 push r15
  144. 141 0014 0F93 push r16
  145. 142 0016 1F93 push r17
  146. 143 0018 CF93 push r28
  147. 144 001a DF93 push r29
  148. 145 /* prologue: function */
  149. 146 /* frame size = 0 */
  150. 147 /* stack size = 14 */
  151. 148 .L__stack_usage = 14
  152. 149 001c 3C01 movw r6,r24
  153. 150 001e 4B01 movw r8,r22
  154. 151 0020 EA01 movw r28,r20
  155. 152 0022 0097 sbiw r24,0
  156. 153 0024 01F0 breq .L38
  157. 154 0026 FC01 movw r30,r24
  158. 155 0:
  159. 156 0028 0190 ld __tmp_reg__,Z+
  160. 157 002a 0020 tst __tmp_reg__
  161. 158 002c 01F4 brne 0b
  162. 159 002e 3197 sbiw r30,1
  163. 160 0030 8F01 movw r16,r30
  164. 161 0032 081B sub r16,r24
  165. 162 0034 190B sbc r17,r25
  166. 163 0036 00C0 rjmp .L8
  167. 164 .L38:
  168. 165 0038 00E0 ldi r16,0
  169. 166 003a 10E0 ldi r17,0
  170. 167 .L8:
  171. 168 003c 8114 cp r8,__zero_reg__
  172. 169 003e 9104 cpc r9,__zero_reg__
  173. 170 0040 01F0 breq .L39
  174. 171 0042 F401 movw r30,r8
  175. GAS LISTING /tmp/cc8KBhV9.s page 4
  176. 172 0:
  177. 173 0044 0190 ld __tmp_reg__,Z+
  178. 174 0046 0020 tst __tmp_reg__
  179. 175 0048 01F4 brne 0b
  180. 176 004a 3197 sbiw r30,1
  181. 177 004c 7F01 movw r14,r30
  182. 178 004e E818 sub r14,r8
  183. 179 0050 F908 sbc r15,r9
  184. 180 0052 00C0 rjmp .L9
  185. 181 .L39:
  186. 182 0054 E12C mov r14,__zero_reg__
  187. 183 0056 F12C mov r15,__zero_reg__
  188. 184 .L9:
  189. 185 0058 2097 sbiw r28,0
  190. 186 005a 01F0 breq .L40
  191. 187 005c FE01 movw r30,r28
  192. 188 0:
  193. 189 005e 0190 ld __tmp_reg__,Z+
  194. 190 0060 0020 tst __tmp_reg__
  195. 191 0062 01F4 brne 0b
  196. 192 0064 3197 sbiw r30,1
  197. 193 0066 6F01 movw r12,r30
  198. 194 0068 CC1A sub r12,r28
  199. 195 006a DD0A sbc r13,r29
  200. 196 006c 00C0 rjmp .L10
  201. 197 .L40:
  202. 198 006e C12C mov r12,__zero_reg__
  203. 199 0070 D12C mov r13,__zero_reg__
  204. 200 .L10:
  205. 201 0072 0115 cp r16,__zero_reg__
  206. 202 0074 1105 cpc r17,__zero_reg__
  207. 203 0076 01F0 breq .L11
  208. 204 0078 C801 movw r24,r16
  209. 205 007a 0197 sbiw r24,1
  210. 206 007c F301 movw r30,r6
  211. 207 007e E80F add r30,r24
  212. 208 0080 F91F adc r31,r25
  213. 209 0082 2081 ld r18,Z
  214. 210 0084 2F32 cpi r18,lo8(47)
  215. 211 0086 01F4 brne .L11
  216. 212 0088 8C01 movw r16,r24
  217. 213 .L11:
  218. 214 008a E114 cp r14,__zero_reg__
  219. 215 008c F104 cpc r15,__zero_reg__
  220. 216 008e 01F0 breq .L12
  221. 217 0090 C701 movw r24,r14
  222. 218 0092 0197 sbiw r24,1
  223. 219 0094 F401 movw r30,r8
  224. 220 0096 E80F add r30,r24
  225. 221 0098 F91F adc r31,r25
  226. 222 009a 2081 ld r18,Z
  227. 223 009c 2F32 cpi r18,lo8(47)
  228. 224 009e 01F4 brne .L12
  229. 225 00a0 7C01 movw r14,r24
  230. 226 .L12:
  231. 227 00a2 C601 movw r24,r12
  232. 228 00a4 0396 adiw r24,3
  233. GAS LISTING /tmp/cc8KBhV9.s page 5
  234. 229 00a6 800F add r24,r16
  235. 230 00a8 911F adc r25,r17
  236. 231 00aa 8E0D add r24,r14
  237. 232 00ac 9F1D adc r25,r15
  238. 233 00ae 0E94 0000 call malloc
  239. 234 00b2 5C01 movw r10,r24
  240. 235 00b4 0097 sbiw r24,0
  241. 236 00b6 01F4 brne .+2
  242. 237 00b8 00C0 rjmp .L56
  243. 238 00ba 0115 cp r16,__zero_reg__
  244. 239 00bc 1105 cpc r17,__zero_reg__
  245. 240 00be 01F0 breq .L43
  246. 241 00c0 B301 movw r22,r6
  247. 242 00c2 0E94 0000 call strcpy
  248. 243 00c6 FC01 movw r30,r24
  249. 244 00c8 E00F add r30,r16
  250. 245 00ca F11F adc r31,r17
  251. 246 00cc 00C0 rjmp .L14
  252. 247 .L43:
  253. 248 00ce FC01 movw r30,r24
  254. 249 .L14:
  255. 250 00d0 C114 cp r12,__zero_reg__
  256. 251 00d2 D104 cpc r13,__zero_reg__
  257. 252 00d4 01F4 brne .+2
  258. 253 00d6 00C0 rjmp .L15
  259. 254 00d8 8881 ld r24,Y
  260. 255 00da 8F32 cpi r24,lo8(47)
  261. 256 00dc 01F0 breq .L17
  262. 257 00de E114 cp r14,__zero_reg__
  263. 258 00e0 F104 cpc r15,__zero_reg__
  264. 259 00e2 01F4 brne .+2
  265. 260 00e4 00C0 rjmp .L80
  266. 261 .L35:
  267. 262 00e6 D401 movw r26,r8
  268. 263 00e8 8C91 ld r24,X
  269. 264 00ea 8F32 cpi r24,lo8(47)
  270. 265 00ec 01F0 breq .L18
  271. 266 00ee 8FE2 ldi r24,lo8(47)
  272. 267 00f0 8083 st Z,r24
  273. 268 00f2 3196 adiw r30,1
  274. 269 .L18:
  275. 270 00f4 B401 movw r22,r8
  276. 271 00f6 CF01 movw r24,r30
  277. 272 00f8 0E94 0000 call strcpy
  278. 273 00fc 8E0D add r24,r14
  279. 274 00fe 9F1D adc r25,r15
  280. 275 0100 FC01 movw r30,r24
  281. 276 0102 3196 adiw r30,1
  282. 277 0104 2FE2 ldi r18,lo8(47)
  283. 278 0106 DC01 movw r26,r24
  284. 279 0108 2C93 st X,r18
  285. 280 010a 0F5F subi r16,-1
  286. 281 010c 1F4F sbci r17,-1
  287. 282 010e CD28 or r12,r13
  288. 283 0110 01F4 brne .+2
  289. 284 0112 00C0 rjmp .L19
  290. 285 .L17:
  291. GAS LISTING /tmp/cc8KBhV9.s page 6
  292. 286 0114 1082 st Z,__zero_reg__
  293. 287 0116 0A0D add r16,r10
  294. 288 0118 1B1D adc r17,r11
  295. 289 011a 3FE2 ldi r19,lo8(47)
  296. 290 .L20:
  297. 291 011c 8881 ld r24,Y
  298. 292 011e 8823 tst r24
  299. 293 0120 01F4 brne .+2
  300. 294 0122 00C0 rjmp .L19
  301. 295 0124 8F32 cpi r24,lo8(47)
  302. 296 0126 01F4 brne .L21
  303. 297 0128 EA15 cp r30,r10
  304. 298 012a FB05 cpc r31,r11
  305. 299 012c 01F0 breq .L22
  306. 300 012e DF01 movw r26,r30
  307. 301 0130 1197 sbiw r26,1
  308. 302 0132 8C91 ld r24,X
  309. 303 0134 8F32 cpi r24,lo8(47)
  310. 304 0136 01F0 breq .L23
  311. 305 .L22:
  312. 306 0138 2196 adiw r28,1
  313. 307 013a 3083 st Z,r19
  314. 308 013c 3196 adiw r30,1
  315. 309 .L23:
  316. 310 013e CE01 movw r24,r28
  317. 311 .L24:
  318. 312 0140 EC01 movw r28,r24
  319. 313 0142 0196 adiw r24,1
  320. 314 0144 2881 ld r18,Y
  321. 315 0146 2F32 cpi r18,lo8(47)
  322. 316 0148 01F0 breq .L24
  323. 317 .L21:
  324. 318 014a 8881 ld r24,Y
  325. 319 014c 8E32 cpi r24,lo8(46)
  326. 320 014e 01F0 breq .L25
  327. 321 .L29:
  328. 322 0150 DF01 movw r26,r30
  329. 323 0152 00C0 rjmp .L26
  330. 324 .L25:
  331. 325 0154 8981 ldd r24,Y+1
  332. 326 0156 8F32 cpi r24,lo8(47)
  333. 327 0158 01F4 brne .L27
  334. 328 015a CE01 movw r24,r28
  335. 329 015c 0296 adiw r24,2
  336. 330 015e 00C0 rjmp .L28
  337. 331 .L27:
  338. 332 0160 8823 tst r24
  339. 333 0162 01F0 breq .L19
  340. 334 0164 8E32 cpi r24,lo8(46)
  341. 335 0166 01F4 brne .L29
  342. 336 0168 CE01 movw r24,r28
  343. 337 016a 0296 adiw r24,2
  344. 338 016c 2A81 ldd r18,Y+2
  345. 339 016e 2F32 cpi r18,lo8(47)
  346. 340 0170 01F0 breq .L30
  347. 341 0172 2111 cpse r18,__zero_reg__
  348. 342 0174 00C0 rjmp .L29
  349. GAS LISTING /tmp/cc8KBhV9.s page 7
  350. 343 .L30:
  351. 344 0176 E017 cp r30,r16
  352. 345 0178 F107 cpc r31,r17
  353. 346 017a 01F0 breq .L28
  354. 347 017c 3197 sbiw r30,1
  355. 348 .L31:
  356. 349 017e E017 cp r30,r16
  357. 350 0180 F107 cpc r31,r17
  358. 351 0182 01F0 breq .L28
  359. 352 0184 2291 ld r18,-Z
  360. 353 0186 2F32 cpi r18,lo8(47)
  361. 354 0188 01F4 brne .L31
  362. 355 018a 00C0 rjmp .L28
  363. 356 .L81:
  364. 357 018c 2F32 cpi r18,lo8(47)
  365. 358 018e 01F0 breq .L28
  366. 359 0190 2D93 st X+,r18
  367. 360 .L26:
  368. 361 0192 FD01 movw r30,r26
  369. 362 0194 CE01 movw r24,r28
  370. 363 0196 2991 ld r18,Y+
  371. 364 0198 2111 cpse r18,__zero_reg__
  372. 365 019a 00C0 rjmp .L81
  373. 366 .L28:
  374. 367 019c EC01 movw r28,r24
  375. 368 019e 00C0 rjmp .L20
  376. 369 .L15:
  377. 370 01a0 E114 cp r14,__zero_reg__
  378. 371 01a2 F104 cpc r15,__zero_reg__
  379. 372 01a4 01F0 breq .+2
  380. 373 01a6 00C0 rjmp .L35
  381. 374 01a8 8FE2 ldi r24,lo8(47)
  382. 375 01aa 8083 st Z,r24
  383. 376 01ac 3196 adiw r30,1
  384. 377 .L19:
  385. 378 01ae 1082 st Z,__zero_reg__
  386. 379 01b0 00C0 rjmp .L56
  387. 380 .L80:
  388. 381 01b2 8FE2 ldi r24,lo8(47)
  389. 382 01b4 8083 st Z,r24
  390. 383 01b6 0F5F subi r16,-1
  391. 384 01b8 1F4F sbci r17,-1
  392. 385 01ba 3196 adiw r30,1
  393. 386 01bc 00C0 rjmp .L17
  394. 387 .L56:
  395. 388 01be C501 movw r24,r10
  396. 389 /* epilogue start */
  397. 390 01c0 DF91 pop r29
  398. 391 01c2 CF91 pop r28
  399. 392 01c4 1F91 pop r17
  400. 393 01c6 0F91 pop r16
  401. 394 01c8 FF90 pop r15
  402. 395 01ca EF90 pop r14
  403. 396 01cc DF90 pop r13
  404. 397 01ce CF90 pop r12
  405. 398 01d0 BF90 pop r11
  406. 399 01d2 AF90 pop r10
  407. GAS LISTING /tmp/cc8KBhV9.s page 8
  408. 400 01d4 9F90 pop r9
  409. 401 01d6 8F90 pop r8
  410. 402 01d8 7F90 pop r7
  411. 403 01da 6F90 pop r6
  412. 404 01dc 0895 ret
  413. 405 .size CreateFullPathName, .-CreateFullPathName
  414. 406 .section .text.NutFtpDataConnect,"ax",@progbits
  415. 407 .global NutFtpDataConnect
  416. 408 .type NutFtpDataConnect, @function
  417. 409 NutFtpDataConnect:
  418. 410 0000 EF92 push r14
  419. 411 0002 FF92 push r15
  420. 412 0004 0F93 push r16
  421. 413 0006 1F93 push r17
  422. 414 0008 CF93 push r28
  423. 415 000a DF93 push r29
  424. 416 000c 00D0 rcall .
  425. 417 000e 1F92 push __zero_reg__
  426. 418 0010 CDB7 in r28,__SP_L__
  427. 419 0012 DEB7 in r29,__SP_H__
  428. 420 /* prologue: function */
  429. 421 /* frame size = 4 */
  430. 422 /* stack size = 10 */
  431. 423 .L__stack_usage = 10
  432. 424 0014 7C01 movw r14,r24
  433. 425 0016 0E94 0000 call NutTcpCreateSocket
  434. 426 001a 8C01 movw r16,r24
  435. 427 001c 892B or r24,r25
  436. 428 001e 01F4 brne .+2
  437. 429 0020 00C0 rjmp .L83
  438. 430 0022 F701 movw r30,r14
  439. 431 0024 8485 ldd r24,Z+12
  440. 432 0026 9585 ldd r25,Z+13
  441. 433 0028 892B or r24,r25
  442. 434 002a 01F0 breq .L84
  443. 435 002c 22E0 ldi r18,lo8(2)
  444. 436 002e 30E0 ldi r19,0
  445. 437 0030 A701 movw r20,r14
  446. 438 0032 445F subi r20,-12
  447. 439 0034 5F4F sbci r21,-1
  448. 440 0036 62E0 ldi r22,lo8(2)
  449. 441 0038 70E0 ldi r23,0
  450. 442 003a C801 movw r24,r16
  451. 443 003c 0E94 0000 call NutTcpSetSockOpt
  452. 444 .L84:
  453. 445 0040 24E0 ldi r18,lo8(4)
  454. 446 0042 30E0 ldi r19,0
  455. 447 0044 AE01 movw r20,r28
  456. 448 0046 4F5F subi r20,-1
  457. 449 0048 5F4F sbci r21,-1
  458. 450 004a 66E0 ldi r22,lo8(6)
  459. 451 004c 70E1 ldi r23,lo8(16)
  460. 452 004e F701 movw r30,r14
  461. 453 0050 8081 ld r24,Z
  462. 454 0052 9181 ldd r25,Z+1
  463. 455 0054 0E94 0000 call NutTcpGetSockOpt
  464. 456 0058 24E0 ldi r18,lo8(4)
  465. GAS LISTING /tmp/cc8KBhV9.s page 9
  466. 457 005a 30E0 ldi r19,0
  467. 458 005c AE01 movw r20,r28
  468. 459 005e 4F5F subi r20,-1
  469. 460 0060 5F4F sbci r21,-1
  470. 461 0062 66E0 ldi r22,lo8(6)
  471. 462 0064 70E1 ldi r23,lo8(16)
  472. 463 0066 C801 movw r24,r16
  473. 464 0068 0E94 0000 call NutTcpSetSockOpt
  474. 465 006c F701 movw r30,r14
  475. 466 006e 8089 ldd r24,Z+16
  476. 467 0070 2285 ldd r18,Z+10
  477. 468 0072 3385 ldd r19,Z+11
  478. 469 0074 8823 tst r24
  479. 470 0076 01F0 breq .L85
  480. 471 0078 B901 movw r22,r18
  481. 472 007a C801 movw r24,r16
  482. 473 007c 0E94 0000 call NutTcpAccept
  483. 474 0080 00C0 rjmp .L86
  484. 475 .L85:
  485. 476 0082 F701 movw r30,r14
  486. 477 0084 4681 ldd r20,Z+6
  487. 478 0086 5781 ldd r21,Z+7
  488. 479 0088 6085 ldd r22,Z+8
  489. 480 008a 7185 ldd r23,Z+9
  490. 481 008c C801 movw r24,r16
  491. 482 008e 0E94 0000 call NutTcpConnect
  492. 483 .L86:
  493. 484 0092 892B or r24,r25
  494. 485 0094 01F0 breq .L83
  495. 486 0096 C801 movw r24,r16
  496. 487 0098 0E94 0000 call NutTcpCloseSocket
  497. 488 009c 00E0 ldi r16,0
  498. 489 009e 10E0 ldi r17,0
  499. 490 .L83:
  500. 491 00a0 C801 movw r24,r16
  501. 492 /* epilogue start */
  502. 493 00a2 0F90 pop __tmp_reg__
  503. 494 00a4 0F90 pop __tmp_reg__
  504. 495 00a6 0F90 pop __tmp_reg__
  505. 496 00a8 0F90 pop __tmp_reg__
  506. 497 00aa DF91 pop r29
  507. 498 00ac CF91 pop r28
  508. 499 00ae 1F91 pop r17
  509. 500 00b0 0F91 pop r16
  510. 501 00b2 FF90 pop r15
  511. 502 00b4 EF90 pop r14
  512. 503 00b6 0895 ret
  513. 504 .size NutFtpDataConnect, .-NutFtpDataConnect
  514. 505 .section .rodata.str1.1,"aMS",@progbits,1
  515. 506 .LC0:
  516. 507 0000 504E 5554 .string "PNUT:"
  517. 507 3A00
  518. 508 .section .text.NutRegisterFtpRoot,"ax",@progbits
  519. 509 .global NutRegisterFtpRoot
  520. 510 .type NutRegisterFtpRoot, @function
  521. 511 NutRegisterFtpRoot:
  522. 512 0000 0F93 push r16
  523. GAS LISTING /tmp/cc8KBhV9.s page 10
  524. 513 0002 1F93 push r17
  525. 514 0004 CF93 push r28
  526. 515 0006 DF93 push r29
  527. 516 /* prologue: function */
  528. 517 /* frame size = 0 */
  529. 518 /* stack size = 4 */
  530. 519 .L__stack_usage = 4
  531. 520 0008 8C01 movw r16,r24
  532. 521 000a 0097 sbiw r24,0
  533. 522 000c 01F0 breq .L97
  534. 523 000e DC01 movw r26,r24
  535. 524 0010 8C91 ld r24,X
  536. 525 0012 8111 cpse r24,__zero_reg__
  537. 526 0014 00C0 rjmp .L98
  538. 527 .L97:
  539. 528 0016 8091 0000 lds r24,ftp_root
  540. 529 001a 9091 0000 lds r25,ftp_root+1
  541. 530 001e 0097 sbiw r24,0
  542. 531 0020 01F0 breq .L99
  543. 532 0022 0E94 0000 call free
  544. 533 .L99:
  545. 534 0026 86E0 ldi r24,lo8(6)
  546. 535 0028 90E0 ldi r25,0
  547. 536 002a 0E94 0000 call malloc
  548. 537 002e 9093 0000 sts ftp_root+1,r25
  549. 538 0032 8093 0000 sts ftp_root,r24
  550. 539 0036 0097 sbiw r24,0
  551. 540 0038 01F4 brne .L100
  552. 541 .L102:
  553. 542 003a 8FEF ldi r24,lo8(-1)
  554. 543 003c 9FEF ldi r25,lo8(-1)
  555. 544 003e 00C0 rjmp .L101
  556. 545 .L100:
  557. 546 0040 60E0 ldi r22,lo8(.LC0)
  558. 547 0042 70E0 ldi r23,hi8(.LC0)
  559. 548 0044 0E94 0000 call strcpy
  560. 549 0048 00C0 rjmp .L105
  561. 550 .L98:
  562. 551 004a 6AE3 ldi r22,lo8(58)
  563. 552 004c 70E0 ldi r23,0
  564. 553 004e C801 movw r24,r16
  565. 554 0050 0E94 0000 call strchr
  566. 555 0054 F801 movw r30,r16
  567. 556 0:
  568. 557 0056 0190 ld __tmp_reg__,Z+
  569. 558 0058 0020 tst __tmp_reg__
  570. 559 005a 01F4 brne 0b
  571. 560 005c 3197 sbiw r30,1
  572. 561 005e E01B sub r30,r16
  573. 562 0060 F10B sbc r31,r17
  574. 563 0062 E230 cpi r30,2
  575. 564 0064 F105 cpc r31,__zero_reg__
  576. 565 0066 04F0 brlt .L102
  577. 566 0068 0097 sbiw r24,0
  578. 567 006a 01F0 breq .L102
  579. 568 006c DC01 movw r26,r24
  580. 569 006e 1196 adiw r26,1
  581. GAS LISTING /tmp/cc8KBhV9.s page 11
  582. 570 0070 8C91 ld r24,X
  583. 571 0072 8823 tst r24
  584. 572 0074 01F0 breq .L103
  585. 573 0076 8F32 cpi r24,lo8(47)
  586. 574 0078 01F4 brne .L102
  587. 575 .L103:
  588. 576 007a CF01 movw r24,r30
  589. 577 007c 0196 adiw r24,1
  590. 578 007e 0E94 0000 call malloc
  591. 579 0082 EC01 movw r28,r24
  592. 580 0084 0097 sbiw r24,0
  593. 581 0086 01F0 breq .L102
  594. 582 0088 B801 movw r22,r16
  595. 583 008a 0E94 0000 call strcpy
  596. 584 008e 8091 0000 lds r24,ftp_root
  597. 585 0092 9091 0000 lds r25,ftp_root+1
  598. 586 0096 0097 sbiw r24,0
  599. 587 0098 01F0 breq .L104
  600. 588 009a 0E94 0000 call free
  601. 589 .L104:
  602. 590 009e D093 0000 sts ftp_root+1,r29
  603. 591 00a2 C093 0000 sts ftp_root,r28
  604. 592 0:
  605. 593 00a6 0990 ld __tmp_reg__,Y+
  606. 594 00a8 0020 tst __tmp_reg__
  607. 595 00aa 01F4 brne 0b
  608. 596 00ac 2297 sbiw r28,2
  609. 597 00ae 8881 ld r24,Y
  610. 598 00b0 8F32 cpi r24,lo8(47)
  611. 599 00b2 01F4 brne .L105
  612. 600 00b4 1882 st Y,__zero_reg__
  613. 601 .L105:
  614. 602 00b6 80E0 ldi r24,0
  615. 603 00b8 90E0 ldi r25,0
  616. 604 .L101:
  617. 605 /* epilogue start */
  618. 606 00ba DF91 pop r29
  619. 607 00bc CF91 pop r28
  620. 608 00be 1F91 pop r17
  621. 609 00c0 0F91 pop r16
  622. 610 00c2 0895 ret
  623. 611 .size NutRegisterFtpRoot, .-NutRegisterFtpRoot
  624. 612 .section .text.NutRegisterFtpUser,"ax",@progbits
  625. 613 .global NutRegisterFtpUser
  626. 614 .type NutRegisterFtpUser, @function
  627. 615 NutRegisterFtpUser:
  628. 616 0000 0F93 push r16
  629. 617 0002 1F93 push r17
  630. 618 0004 CF93 push r28
  631. 619 0006 DF93 push r29
  632. 620 /* prologue: function */
  633. 621 /* frame size = 0 */
  634. 622 /* stack size = 4 */
  635. 623 .L__stack_usage = 4
  636. 624 0008 8C01 movw r16,r24
  637. 625 000a EB01 movw r28,r22
  638. 626 000c 8091 0000 lds r24,ftp_user
  639. GAS LISTING /tmp/cc8KBhV9.s page 12
  640. 627 0010 9091 0000 lds r25,ftp_user+1
  641. 628 0014 0097 sbiw r24,0
  642. 629 0016 01F0 breq .L125
  643. 630 0018 0E94 0000 call free
  644. 631 001c 1092 0000 sts ftp_user+1,__zero_reg__
  645. 632 0020 1092 0000 sts ftp_user,__zero_reg__
  646. 633 .L125:
  647. 634 0024 0115 cp r16,__zero_reg__
  648. 635 0026 1105 cpc r17,__zero_reg__
  649. 636 0028 01F4 brne .L126
  650. 637 .L129:
  651. 638 002a 8091 0000 lds r24,ftp_pass
  652. 639 002e 9091 0000 lds r25,ftp_pass+1
  653. 640 0032 0097 sbiw r24,0
  654. 641 0034 01F0 breq .L128
  655. 642 0036 0E94 0000 call free
  656. 643 003a 1092 0000 sts ftp_pass+1,__zero_reg__
  657. 644 003e 1092 0000 sts ftp_pass,__zero_reg__
  658. 645 0042 00C0 rjmp .L128
  659. 646 .L126:
  660. 647 0044 F801 movw r30,r16
  661. 648 0046 8081 ld r24,Z
  662. 649 0048 8823 tst r24
  663. 650 004a 01F0 breq .L129
  664. 651 004c C801 movw r24,r16
  665. 652 004e 0E94 0000 call strdup
  666. 653 0052 9093 0000 sts ftp_user+1,r25
  667. 654 0056 8093 0000 sts ftp_user,r24
  668. 655 005a 892B or r24,r25
  669. 656 005c 01F4 brne .L129
  670. 657 005e 8FEF ldi r24,lo8(-1)
  671. 658 0060 9FEF ldi r25,lo8(-1)
  672. 659 0062 00C0 rjmp .L130
  673. 660 .L128:
  674. 661 0064 2097 sbiw r28,0
  675. 662 0066 01F0 breq .L134
  676. 663 0068 8881 ld r24,Y
  677. 664 006a 8823 tst r24
  678. 665 006c 01F0 breq .L134
  679. 666 006e CE01 movw r24,r28
  680. 667 0070 0E94 0000 call strdup
  681. 668 0074 9093 0000 sts ftp_pass+1,r25
  682. 669 0078 8093 0000 sts ftp_pass,r24
  683. 670 007c 21E0 ldi r18,lo8(1)
  684. 671 007e 30E0 ldi r19,0
  685. 672 0080 892B or r24,r25
  686. 673 0082 01F0 breq .L131
  687. 674 0084 20E0 ldi r18,0
  688. 675 0086 30E0 ldi r19,0
  689. 676 .L131:
  690. 677 0088 8827 clr r24
  691. 678 008a 9927 clr r25
  692. 679 008c 821B sub r24,r18
  693. 680 008e 930B sbc r25,r19
  694. 681 0090 00C0 rjmp .L130
  695. 682 .L134:
  696. 683 0092 80E0 ldi r24,0
  697. GAS LISTING /tmp/cc8KBhV9.s page 13
  698. 684 0094 90E0 ldi r25,0
  699. 685 .L130:
  700. 686 /* epilogue start */
  701. 687 0096 DF91 pop r29
  702. 688 0098 CF91 pop r28
  703. 689 009a 1F91 pop r17
  704. 690 009c 0F91 pop r16
  705. 691 009e 0895 ret
  706. 692 .size NutRegisterFtpUser, .-NutRegisterFtpUser
  707. 693 .section .rodata.str1.1
  708. 694 .LC1:
  709. 695 0006 722B 6200 .string "r+b"
  710. 696 .section .text.NutFtpOpenSession,"ax",@progbits
  711. 697 .global NutFtpOpenSession
  712. 698 .type NutFtpOpenSession, @function
  713. 699 NutFtpOpenSession:
  714. 700 0000 0F93 push r16
  715. 701 0002 1F93 push r17
  716. 702 0004 CF93 push r28
  717. 703 0006 DF93 push r29
  718. 704 /* prologue: function */
  719. 705 /* frame size = 0 */
  720. 706 /* stack size = 4 */
  721. 707 .L__stack_usage = 4
  722. 708 0008 8C01 movw r16,r24
  723. 709 000a 83E1 ldi r24,lo8(19)
  724. 710 000c 90E0 ldi r25,0
  725. 711 000e 0E94 0000 call malloc
  726. 712 0012 EC01 movw r28,r24
  727. 713 0014 892B or r24,r25
  728. 714 0016 01F0 breq .L145
  729. 715 0018 83E1 ldi r24,lo8(19)
  730. 716 001a FE01 movw r30,r28
  731. 717 0:
  732. 718 001c 1192 st Z+,__zero_reg__
  733. 719 001e 8A95 dec r24
  734. 720 0020 01F4 brne 0b
  735. 721 0022 84E1 ldi r24,lo8(20)
  736. 722 0024 90E0 ldi r25,0
  737. 723 0026 9B87 std Y+11,r25
  738. 724 0028 8A87 std Y+10,r24
  739. 725 002a F801 movw r30,r16
  740. 726 002c E75A subi r30,-89
  741. 727 002e FF4F sbci r31,-1
  742. 728 0030 8081 ld r24,Z
  743. 729 0032 9181 ldd r25,Z+1
  744. 730 0034 9D87 std Y+13,r25
  745. 731 0036 8C87 std Y+12,r24
  746. 732 0038 1983 std Y+1,r17
  747. 733 003a 0883 st Y,r16
  748. 734 003c 82E0 ldi r24,lo8(2)
  749. 735 003e 90E0 ldi r25,0
  750. 736 0040 0E94 0000 call malloc
  751. 737 0044 9D83 std Y+5,r25
  752. 738 0046 8C83 std Y+4,r24
  753. 739 0048 0097 sbiw r24,0
  754. 740 004a 01F0 breq .L150
  755. GAS LISTING /tmp/cc8KBhV9.s page 14
  756. 741 004c 2FE2 ldi r18,lo8(47)
  757. 742 004e FC01 movw r30,r24
  758. 743 0050 2083 st Z,r18
  759. 744 0052 1182 std Z+1,__zero_reg__
  760. 745 0054 60E0 ldi r22,lo8(.LC1)
  761. 746 0056 70E0 ldi r23,hi8(.LC1)
  762. 747 0058 C801 movw r24,r16
  763. 748 005a 0E94 0000 call _fdopen
  764. 749 005e 9B83 std Y+3,r25
  765. 750 0060 8A83 std Y+2,r24
  766. 751 0062 892B or r24,r25
  767. 752 0064 01F4 brne .L145
  768. 753 0066 8C81 ldd r24,Y+4
  769. 754 0068 9D81 ldd r25,Y+5
  770. 755 006a 0E94 0000 call free
  771. 756 .L150:
  772. 757 006e CE01 movw r24,r28
  773. 758 0070 0E94 0000 call free
  774. 759 0074 C0E0 ldi r28,0
  775. 760 0076 D0E0 ldi r29,0
  776. 761 .L145:
  777. 762 0078 CE01 movw r24,r28
  778. 763 /* epilogue start */
  779. 764 007a DF91 pop r29
  780. 765 007c CF91 pop r28
  781. 766 007e 1F91 pop r17
  782. 767 0080 0F91 pop r16
  783. 768 0082 0895 ret
  784. 769 .size NutFtpOpenSession, .-NutFtpOpenSession
  785. 770 .section .text.NutFtpCloseSession,"ax",@progbits
  786. 771 .global NutFtpCloseSession
  787. 772 .type NutFtpCloseSession, @function
  788. 773 NutFtpCloseSession:
  789. 774 0000 CF93 push r28
  790. 775 0002 DF93 push r29
  791. 776 /* prologue: function */
  792. 777 /* frame size = 0 */
  793. 778 /* stack size = 2 */
  794. 779 .L__stack_usage = 2
  795. 780 0004 EC01 movw r28,r24
  796. 781 0006 892B or r24,r25
  797. 782 0008 01F0 breq .L151
  798. 783 000a 8A81 ldd r24,Y+2
  799. 784 000c 9B81 ldd r25,Y+3
  800. 785 000e 0E94 0000 call fclose
  801. 786 0012 8C81 ldd r24,Y+4
  802. 787 0014 9D81 ldd r25,Y+5
  803. 788 0016 0097 sbiw r24,0
  804. 789 0018 01F0 breq .L153
  805. 790 001a 0E94 0000 call free
  806. 791 .L153:
  807. 792 001e 8989 ldd r24,Y+17
  808. 793 0020 9A89 ldd r25,Y+18
  809. 794 0022 0097 sbiw r24,0
  810. 795 0024 01F0 breq .L154
  811. 796 0026 0E94 0000 call free
  812. 797 .L154:
  813. GAS LISTING /tmp/cc8KBhV9.s page 15
  814. 798 002a CE01 movw r24,r28
  815. 799 /* epilogue start */
  816. 800 002c DF91 pop r29
  817. 801 002e CF91 pop r28
  818. 802 0030 0C94 0000 jmp free
  819. 803 .L151:
  820. 804 /* epilogue start */
  821. 805 0034 DF91 pop r29
  822. 806 0036 CF91 pop r28
  823. 807 0038 0895 ret
  824. 808 .size NutFtpCloseSession, .-NutFtpCloseSession
  825. 809 .section .rodata.str1.1
  826. 810 .LC2:
  827. 811 000a 2F00 .string "/"
  828. 812 .section .text.NutFtpProcessCwd,"ax",@progbits
  829. 813 .global NutFtpProcessCwd
  830. 814 .type NutFtpProcessCwd, @function
  831. 815 NutFtpProcessCwd:
  832. 816 0000 CF92 push r12
  833. 817 0002 DF92 push r13
  834. 818 0004 EF92 push r14
  835. 819 0006 FF92 push r15
  836. 820 0008 0F93 push r16
  837. 821 000a 1F93 push r17
  838. 822 000c CF93 push r28
  839. 823 000e DF93 push r29
  840. 824 0010 CDB7 in r28,__SP_L__
  841. 825 0012 DEB7 in r29,__SP_H__
  842. 826 0014 2D97 sbiw r28,13
  843. 827 0016 0FB6 in __tmp_reg__,__SREG__
  844. 828 0018 F894 cli
  845. 829 001a DEBF out __SP_H__,r29
  846. 830 001c 0FBE out __SREG__,__tmp_reg__
  847. 831 001e CDBF out __SP_L__,r28
  848. 832 /* prologue: function */
  849. 833 /* frame size = 13 */
  850. 834 /* stack size = 21 */
  851. 835 .L__stack_usage = 21
  852. 836 0020 7C01 movw r14,r24
  853. 837 0022 6B01 movw r12,r22
  854. 838 0024 A091 0000 lds r26,ftp_root
  855. 839 0028 B091 0000 lds r27,ftp_root+1
  856. 840 002c FD01 movw r30,r26
  857. 841 0:
  858. 842 002e 0190 ld __tmp_reg__,Z+
  859. 843 0030 0020 tst __tmp_reg__
  860. 844 0032 01F4 brne 0b
  861. 845 0034 3197 sbiw r30,1
  862. 846 0036 8F01 movw r16,r30
  863. 847 0038 0A1B sub r16,r26
  864. 848 003a 1B0B sbc r17,r27
  865. 849 003c 060F add r16,r22
  866. 850 003e 171F adc r17,r23
  867. 851 0040 F801 movw r30,r16
  868. 852 0042 8081 ld r24,Z
  869. 853 0044 8823 tst r24
  870. 854 0046 01F0 breq .L162
  871. GAS LISTING /tmp/cc8KBhV9.s page 16
  872. 855 0048 60E0 ldi r22,lo8(.LC2)
  873. 856 004a 70E0 ldi r23,hi8(.LC2)
  874. 857 004c C801 movw r24,r16
  875. 858 004e 0E94 0000 call strcmp
  876. 859 0052 892B or r24,r25
  877. 860 0054 01F0 breq .L162
  878. 861 0056 BE01 movw r22,r28
  879. 862 0058 6F5F subi r22,-1
  880. 863 005a 7F4F sbci r23,-1
  881. 864 005c C601 movw r24,r12
  882. 865 005e 0E94 0000 call stat
  883. 866 0062 892B or r24,r25
  884. 867 0064 01F4 brne .L177
  885. 868 0066 8B81 ldd r24,Y+3
  886. 869 0068 8823 tst r24
  887. 870 006a 01F0 breq .L177
  888. 871 .L162:
  889. 872 006c F801 movw r30,r16
  890. 873 006e 8081 ld r24,Z
  891. 874 0070 8111 cpse r24,__zero_reg__
  892. 875 0072 00C0 rjmp .L165
  893. 876 0074 00E0 ldi r16,lo8(.LC2)
  894. 877 0076 10E0 ldi r17,hi8(.LC2)
  895. 878 .L165:
  896. 879 0078 F701 movw r30,r14
  897. 880 007a 8481 ldd r24,Z+4
  898. 881 007c 9581 ldd r25,Z+5
  899. 882 007e 0097 sbiw r24,0
  900. 883 0080 01F0 breq .L166
  901. 884 0082 0E94 0000 call free
  902. 885 .L166:
  903. 886 0086 C801 movw r24,r16
  904. 887 0088 0E94 0000 call strdup
  905. 888 008c F701 movw r30,r14
  906. 889 008e 9583 std Z+5,r25
  907. 890 0090 8483 std Z+4,r24
  908. 891 0092 892B or r24,r25
  909. 892 0094 01F4 brne .L167
  910. 893 .L177:
  911. 894 0096 66E2 ldi r22,lo8(38)
  912. 895 0098 72E0 ldi r23,lo8(2)
  913. 896 009a C701 movw r24,r14
  914. 897 009c 0E94 0000 call NutFtpRespondBad
  915. 898 00a0 00C0 rjmp .L164
  916. 899 .L167:
  917. 900 00a2 6AEF ldi r22,lo8(-6)
  918. 901 00a4 70E0 ldi r23,0
  919. 902 00a6 C701 movw r24,r14
  920. 903 00a8 0E94 0000 call NutFtpRespondOk
  921. 904 .L164:
  922. 905 /* epilogue start */
  923. 906 00ac 2D96 adiw r28,13
  924. 907 00ae 0FB6 in __tmp_reg__,__SREG__
  925. 908 00b0 F894 cli
  926. 909 00b2 DEBF out __SP_H__,r29
  927. 910 00b4 0FBE out __SREG__,__tmp_reg__
  928. 911 00b6 CDBF out __SP_L__,r28
  929. GAS LISTING /tmp/cc8KBhV9.s page 17
  930. 912 00b8 DF91 pop r29
  931. 913 00ba CF91 pop r28
  932. 914 00bc 1F91 pop r17
  933. 915 00be 0F91 pop r16
  934. 916 00c0 FF90 pop r15
  935. 917 00c2 EF90 pop r14
  936. 918 00c4 DF90 pop r13
  937. 919 00c6 CF90 pop r12
  938. 920 00c8 0895 ret
  939. 921 .size NutFtpProcessCwd, .-NutFtpProcessCwd
  940. 922 .section .text.NutFtpProcessDelete,"ax",@progbits
  941. 923 .global NutFtpProcessDelete
  942. 924 .type NutFtpProcessDelete, @function
  943. 925 NutFtpProcessDelete:
  944. 926 0000 CF93 push r28
  945. 927 0002 DF93 push r29
  946. 928 /* prologue: function */
  947. 929 /* frame size = 0 */
  948. 930 /* stack size = 2 */
  949. 931 .L__stack_usage = 2
  950. 932 0004 EC01 movw r28,r24
  951. 933 0006 CB01 movw r24,r22
  952. 934 0008 0E94 0000 call unlink
  953. 935 000c 892B or r24,r25
  954. 936 000e 01F0 breq .L179
  955. 937 0010 66E2 ldi r22,lo8(38)
  956. 938 0012 72E0 ldi r23,lo8(2)
  957. 939 0014 CE01 movw r24,r28
  958. 940 /* epilogue start */
  959. 941 0016 DF91 pop r29
  960. 942 0018 CF91 pop r28
  961. 943 001a 0C94 0000 jmp NutFtpRespondBad
  962. 944 .L179:
  963. 945 001e 6AEF ldi r22,lo8(-6)
  964. 946 0020 70E0 ldi r23,0
  965. 947 0022 CE01 movw r24,r28
  966. 948 /* epilogue start */
  967. 949 0024 DF91 pop r29
  968. 950 0026 CF91 pop r28
  969. 951 0028 0C94 0000 jmp NutFtpRespondOk
  970. 952 .size NutFtpProcessDelete, .-NutFtpProcessDelete
  971. 953 .section .text.NutFtpTransferFile,"ax",@progbits
  972. 954 .global NutFtpTransferFile
  973. 955 .type NutFtpTransferFile, @function
  974. 956 NutFtpTransferFile:
  975. 957 0000 2F92 push r2
  976. 958 0002 3F92 push r3
  977. 959 0004 4F92 push r4
  978. 960 0006 5F92 push r5
  979. 961 0008 6F92 push r6
  980. 962 000a 7F92 push r7
  981. 963 000c 8F92 push r8
  982. 964 000e 9F92 push r9
  983. 965 0010 AF92 push r10
  984. 966 0012 BF92 push r11
  985. 967 0014 CF92 push r12
  986. 968 0016 DF92 push r13
  987. GAS LISTING /tmp/cc8KBhV9.s page 18
  988. 969 0018 EF92 push r14
  989. 970 001a FF92 push r15
  990. 971 001c 0F93 push r16
  991. 972 001e 1F93 push r17
  992. 973 0020 CF93 push r28
  993. 974 0022 DF93 push r29
  994. 975 0024 CDB7 in r28,__SP_L__
  995. 976 0026 DEB7 in r29,__SP_H__
  996. 977 0028 6297 sbiw r28,18
  997. 978 002a 0FB6 in __tmp_reg__,__SREG__
  998. 979 002c F894 cli
  999. 980 002e DEBF out __SP_H__,r29
  1000. 981 0030 0FBE out __SREG__,__tmp_reg__
  1001. 982 0032 CDBF out __SP_L__,r28
  1002. 983 /* prologue: function */
  1003. 984 /* frame size = 18 */
  1004. 985 /* stack size = 36 */
  1005. 986 .L__stack_usage = 36
  1006. 987 0034 5C01 movw r10,r24
  1007. 988 0036 4B01 movw r8,r22
  1008. 989 0038 5F87 std Y+15,r21
  1009. 990 003a 4E87 std Y+14,r20
  1010. 991 003c 452B or r20,r21
  1011. 992 003e 01F0 breq .L181
  1012. 993 0040 BE01 movw r22,r28
  1013. 994 0042 6F5F subi r22,-1
  1014. 995 0044 7F4F sbci r23,-1
  1015. 996 0046 C401 movw r24,r8
  1016. 997 0048 0E94 0000 call stat
  1017. 998 004c 892B or r24,r25
  1018. 999 004e 01F4 brne .L204
  1019. 1000 0050 8B81 ldd r24,Y+3
  1020. 1001 0052 8111 cpse r24,__zero_reg__
  1021. 1002 0054 00C0 rjmp .L204
  1022. 1003 0056 60E0 ldi r22,0
  1023. 1004 0058 70E8 ldi r23,lo8(-128)
  1024. 1005 005a 00C0 rjmp .L219
  1025. 1006 .L204:
  1026. 1007 005c 0FEF ldi r16,lo8(-1)
  1027. 1008 005e 1FEF ldi r17,lo8(-1)
  1028. 1009 0060 00C0 rjmp .L183
  1029. 1010 .L181:
  1030. 1011 0062 60E0 ldi r22,0
  1031. 1012 0064 73E0 ldi r23,lo8(3)
  1032. 1013 .L219:
  1033. 1014 0066 C401 movw r24,r8
  1034. 1015 0068 0E94 0000 call _open
  1035. 1016 006c 8C01 movw r16,r24
  1036. 1017 .L183:
  1037. 1018 006e 0F3F cpi r16,-1
  1038. 1019 0070 8FEF ldi r24,-1
  1039. 1020 0072 1807 cpc r17,r24
  1040. 1021 0074 01F4 brne .+2
  1041. 1022 0076 00C0 rjmp .L205
  1042. 1023 0078 F501 movw r30,r10
  1043. 1024 007a 6785 ldd r22,Z+15
  1044. 1025 007c 70E0 ldi r23,0
  1045. GAS LISTING /tmp/cc8KBhV9.s page 19
  1046. 1026 007e C501 movw r24,r10
  1047. 1027 0080 0E94 0000 call NutFtpSendMode
  1048. 1028 0084 C501 movw r24,r10
  1049. 1029 0086 0E94 0000 call NutFtpDataConnect
  1050. 1030 008a 6C01 movw r12,r24
  1051. 1031 008c 0097 sbiw r24,0
  1052. 1032 008e 01F4 brne .+2
  1053. 1033 0090 00C0 rjmp .L206
  1054. 1034 0092 FC01 movw r30,r24
  1055. 1035 0094 E75A subi r30,-89
  1056. 1036 0096 FF4F sbci r31,-1
  1057. 1037 0098 6080 ld r6,Z
  1058. 1038 009a 7180 ldd r7,Z+1
  1059. 1039 009c FFEF ldi r31,-1
  1060. 1040 009e 6F16 cp r6,r31
  1061. 1041 00a0 7104 cpc r7,__zero_reg__
  1062. 1042 00a2 01F0 breq .+2
  1063. 1043 00a4 00F4 brsh .L186
  1064. 1044 00a6 612C mov r6,__zero_reg__
  1065. 1045 00a8 7724 clr r7
  1066. 1046 00aa 7394 inc r7
  1067. 1047 .L186:
  1068. 1048 00ac C301 movw r24,r6
  1069. 1049 00ae 0E94 0000 call malloc
  1070. 1050 00b2 7C01 movw r14,r24
  1071. 1051 00b4 892B or r24,r25
  1072. 1052 00b6 01F4 brne .+2
  1073. 1053 00b8 00C0 rjmp .L208
  1074. 1054 00ba 8E85 ldd r24,Y+14
  1075. 1055 00bc 9F85 ldd r25,Y+15
  1076. 1056 00be 892B or r24,r25
  1077. 1057 00c0 01F0 breq .L189
  1078. 1058 .L215:
  1079. 1059 00c2 A301 movw r20,r6
  1080. 1060 00c4 B701 movw r22,r14
  1081. 1061 00c6 C801 movw r24,r16
  1082. 1062 00c8 0E94 0000 call _read
  1083. 1063 00cc 1C01 movw r2,r24
  1084. 1064 00ce 1816 cp __zero_reg__,r24
  1085. 1065 00d0 1906 cpc __zero_reg__,r25
  1086. 1066 00d2 04F4 brge .L197
  1087. 1067 00d4 20E0 ldi r18,0
  1088. 1068 00d6 412C mov r4,__zero_reg__
  1089. 1069 00d8 512C mov r5,__zero_reg__
  1090. 1070 .L198:
  1091. 1071 00da A101 movw r20,r2
  1092. 1072 00dc 4419 sub r20,r4
  1093. 1073 00de 5509 sbc r21,r5
  1094. 1074 00e0 B701 movw r22,r14
  1095. 1075 00e2 640D add r22,r4
  1096. 1076 00e4 751D adc r23,r5
  1097. 1077 00e6 C601 movw r24,r12
  1098. 1078 00e8 2A8B std Y+18,r18
  1099. 1079 00ea 0E94 0000 call NutTcpSend
  1100. 1080 00ee AC01 movw r20,r24
  1101. 1081 00f0 480E add r4,r24
  1102. 1082 00f2 591E adc r5,r25
  1103. GAS LISTING /tmp/cc8KBhV9.s page 20
  1104. 1083 00f4 2A89 ldd r18,Y+18
  1105. 1084 00f6 4114 cp r4,__zero_reg__
  1106. 1085 00f8 5104 cpc r5,__zero_reg__
  1107. 1086 00fa 01F4 brne .L190
  1108. 1087 00fc 2F5F subi r18,lo8(-(1))
  1109. 1088 00fe 6AE0 ldi r22,lo8(10)
  1110. 1089 0100 70E0 ldi r23,0
  1111. 1090 0102 80E0 ldi r24,0
  1112. 1091 0104 90E0 ldi r25,0
  1113. 1092 0106 2A8B std Y+18,r18
  1114. 1093 0108 488B std Y+16,r20
  1115. 1094 010a 598B std Y+17,r21
  1116. 1095 010c 0E94 0000 call NutSleep
  1117. 1096 0110 4889 ldd r20,Y+16
  1118. 1097 0112 5989 ldd r21,Y+17
  1119. 1098 0114 2A89 ldd r18,Y+18
  1120. 1099 0116 57FF sbrs r21,7
  1121. 1100 0118 00C0 rjmp .L191
  1122. 1101 .L194:
  1123. 1102 011a 47E2 ldi r20,lo8(39)
  1124. 1103 011c 642E mov r6,r20
  1125. 1104 011e 42E0 ldi r20,lo8(2)
  1126. 1105 0120 742E mov r7,r20
  1127. 1106 0122 00C0 rjmp .L192
  1128. 1107 .L190:
  1129. 1108 0124 4214 cp r4,r2
  1130. 1109 0126 5304 cpc r5,r3
  1131. 1110 0128 04F4 brge .+2
  1132. 1111 012a 00C0 rjmp .L193
  1133. 1112 .L196:
  1134. 1113 012c 1416 cp __zero_reg__,r20
  1135. 1114 012e 1506 cpc __zero_reg__,r21
  1136. 1115 0130 04F0 brlt .L215
  1137. 1116 0132 00C0 rjmp .L194
  1138. 1117 .L191:
  1139. 1118 0134 283C cpi r18,lo8(-56)
  1140. 1119 0136 00F0 brlo .L198
  1141. 1120 0138 00C0 rjmp .L196
  1142. 1121 .L189:
  1143. 1122 013a A301 movw r20,r6
  1144. 1123 013c B701 movw r22,r14
  1145. 1124 013e C601 movw r24,r12
  1146. 1125 0140 0E94 0000 call NutTcpReceive
  1147. 1126 0144 2C01 movw r4,r24
  1148. 1127 0146 1816 cp __zero_reg__,r24
  1149. 1128 0148 1906 cpc __zero_reg__,r25
  1150. 1129 014a 04F0 brlt .L199
  1151. 1130 .L197:
  1152. 1131 014c 612C mov r6,__zero_reg__
  1153. 1132 014e 712C mov r7,__zero_reg__
  1154. 1133 0150 00C0 rjmp .L192
  1155. 1134 .L199:
  1156. 1135 0152 A201 movw r20,r4
  1157. 1136 0154 B701 movw r22,r14
  1158. 1137 0156 C801 movw r24,r16
  1159. 1138 0158 0E94 0000 call _write
  1160. 1139 015c 4816 cp r4,r24
  1161. GAS LISTING /tmp/cc8KBhV9.s page 21
  1162. 1140 015e 5906 cpc r5,r25
  1163. 1141 0160 01F0 breq .L189
  1164. 1142 0162 38E2 ldi r19,lo8(40)
  1165. 1143 0164 632E mov r6,r19
  1166. 1144 0166 32E0 ldi r19,lo8(2)
  1167. 1145 0168 732E mov r7,r19
  1168. 1146 .L192:
  1169. 1147 016a C701 movw r24,r14
  1170. 1148 016c 0E94 0000 call free
  1171. 1149 0170 00C0 rjmp .L187
  1172. 1150 .L208:
  1173. 1151 0172 26E2 ldi r18,lo8(38)
  1174. 1152 0174 622E mov r6,r18
  1175. 1153 0176 22E0 ldi r18,lo8(2)
  1176. 1154 0178 722E mov r7,r18
  1177. 1155 .L187:
  1178. 1156 017a C601 movw r24,r12
  1179. 1157 017c 0E94 0000 call NutTcpCloseSocket
  1180. 1158 0180 00C0 rjmp .L185
  1181. 1159 .L206:
  1182. 1160 0182 96E2 ldi r25,lo8(38)
  1183. 1161 0184 692E mov r6,r25
  1184. 1162 0186 92E0 ldi r25,lo8(2)
  1185. 1163 0188 792E mov r7,r25
  1186. 1164 .L185:
  1187. 1165 018a C801 movw r24,r16
  1188. 1166 018c 0E94 0000 call _close
  1189. 1167 0190 EE85 ldd r30,Y+14
  1190. 1168 0192 FF85 ldd r31,Y+15
  1191. 1169 0194 EF2B or r30,r31
  1192. 1170 0196 01F4 brne .L200
  1193. 1171 0198 6114 cp r6,__zero_reg__
  1194. 1172 019a 7104 cpc r7,__zero_reg__
  1195. 1173 019c 01F0 breq .L201
  1196. 1174 019e C401 movw r24,r8
  1197. 1175 01a0 0E94 0000 call unlink
  1198. 1176 01a4 00C0 rjmp .L184
  1199. 1177 .L200:
  1200. 1178 01a6 6114 cp r6,__zero_reg__
  1201. 1179 01a8 7104 cpc r7,__zero_reg__
  1202. 1180 01aa 01F0 breq .L201
  1203. 1181 01ac 00C0 rjmp .L184
  1204. 1182 .L205:
  1205. 1183 01ae 86E2 ldi r24,lo8(38)
  1206. 1184 01b0 682E mov r6,r24
  1207. 1185 01b2 82E0 ldi r24,lo8(2)
  1208. 1186 01b4 782E mov r7,r24
  1209. 1187 .L184:
  1210. 1188 01b6 B301 movw r22,r6
  1211. 1189 01b8 C501 movw r24,r10
  1212. 1190 01ba 0E94 0000 call NutFtpRespondBad
  1213. 1191 01be 00C0 rjmp .L218
  1214. 1192 .L201:
  1215. 1193 01c0 62EE ldi r22,lo8(-30)
  1216. 1194 01c2 70E0 ldi r23,0
  1217. 1195 01c4 C501 movw r24,r10
  1218. 1196 01c6 0E94 0000 call NutFtpRespondOk
  1219. GAS LISTING /tmp/cc8KBhV9.s page 22
  1220. 1197 01ca 00C0 rjmp .L218
  1221. 1198 .L193:
  1222. 1199 01cc 97FD sbrc r25,7
  1223. 1200 01ce 00C0 rjmp .L194
  1224. 1201 01d0 20E0 ldi r18,0
  1225. 1202 01d2 00C0 rjmp .L198
  1226. 1203 .L218:
  1227. 1204 /* epilogue start */
  1228. 1205 01d4 6296 adiw r28,18
  1229. 1206 01d6 0FB6 in __tmp_reg__,__SREG__
  1230. 1207 01d8 F894 cli
  1231. 1208 01da DEBF out __SP_H__,r29
  1232. 1209 01dc 0FBE out __SREG__,__tmp_reg__
  1233. 1210 01de CDBF out __SP_L__,r28
  1234. 1211 01e0 DF91 pop r29
  1235. 1212 01e2 CF91 pop r28
  1236. 1213 01e4 1F91 pop r17
  1237. 1214 01e6 0F91 pop r16
  1238. 1215 01e8 FF90 pop r15
  1239. 1216 01ea EF90 pop r14
  1240. 1217 01ec DF90 pop r13
  1241. 1218 01ee CF90 pop r12
  1242. 1219 01f0 BF90 pop r11
  1243. 1220 01f2 AF90 pop r10
  1244. 1221 01f4 9F90 pop r9
  1245. 1222 01f6 8F90 pop r8
  1246. 1223 01f8 7F90 pop r7
  1247. 1224 01fa 6F90 pop r6
  1248. 1225 01fc 5F90 pop r5
  1249. 1226 01fe 4F90 pop r4
  1250. 1227 0200 3F90 pop r3
  1251. 1228 0202 2F90 pop r2
  1252. 1229 0204 0895 ret
  1253. 1230 .size NutFtpTransferFile, .-NutFtpTransferFile
  1254. 1231 .section .rodata.str1.1
  1255. 1232 .LC3:
  1256. 1233 000c 4A61 6E46 .string "JanFebMarAprMayJunJulAugSepOctNovDec"
  1257. 1233 6562 4D61
  1258. 1233 7241 7072
  1259. 1233 4D61 794A
  1260. 1233 756E 4A75
  1261. 1234 .LC4:
  1262. 1235 0031 0D0A 00 .string "\r\n"
  1263. 1236 .section .text.NutFtpTransferDirectoryOptions,"ax",@progbits
  1264. 1237 .global NutFtpTransferDirectoryOptions
  1265. 1238 .type NutFtpTransferDirectoryOptions, @function
  1266. 1239 NutFtpTransferDirectoryOptions:
  1267. 1240 0000 2F92 push r2
  1268. 1241 0002 3F92 push r3
  1269. 1242 0004 4F92 push r4
  1270. 1243 0006 5F92 push r5
  1271. 1244 0008 6F92 push r6
  1272. 1245 000a 7F92 push r7
  1273. 1246 000c 8F92 push r8
  1274. 1247 000e 9F92 push r9
  1275. 1248 0010 AF92 push r10
  1276. 1249 0012 BF92 push r11
  1277. GAS LISTING /tmp/cc8KBhV9.s page 23
  1278. 1250 0014 CF92 push r12
  1279. 1251 0016 DF92 push r13
  1280. 1252 0018 EF92 push r14
  1281. 1253 001a FF92 push r15
  1282. 1254 001c 0F93 push r16
  1283. 1255 001e 1F93 push r17
  1284. 1256 0020 CF93 push r28
  1285. 1257 0022 DF93 push r29
  1286. 1258 0024 CDB7 in r28,__SP_L__
  1287. 1259 0026 DEB7 in r29,__SP_H__
  1288. 1260 0028 6397 sbiw r28,19
  1289. 1261 002a 0FB6 in __tmp_reg__,__SREG__
  1290. 1262 002c F894 cli
  1291. 1263 002e DEBF out __SP_H__,r29
  1292. 1264 0030 0FBE out __SREG__,__tmp_reg__
  1293. 1265 0032 CDBF out __SP_L__,r28
  1294. 1266 /* prologue: function */
  1295. 1267 /* frame size = 19 */
  1296. 1268 /* stack size = 37 */
  1297. 1269 .L__stack_usage = 37
  1298. 1270 0034 6C01 movw r12,r24
  1299. 1271 0036 3B01 movw r6,r22
  1300. 1272 0038 7A01 movw r14,r20
  1301. 1273 003a CB01 movw r24,r22
  1302. 1274 003c 0E94 0000 call opendir
  1303. 1275 0040 5C01 movw r10,r24
  1304. 1276 0042 892B or r24,r25
  1305. 1277 0044 01F4 brne .+2
  1306. 1278 0046 00C0 rjmp .L236
  1307. 1279 0048 60E0 ldi r22,0
  1308. 1280 004a 70E0 ldi r23,0
  1309. 1281 004c C601 movw r24,r12
  1310. 1282 004e 0E94 0000 call NutFtpSendMode
  1311. 1283 0052 C601 movw r24,r12
  1312. 1284 0054 0E94 0000 call NutFtpDataConnect
  1313. 1285 0058 4C01 movw r8,r24
  1314. 1286 005a 0097 sbiw r24,0
  1315. 1287 005c 01F4 brne .+2
  1316. 1288 005e 00C0 rjmp .L237
  1317. 1289 0060 60E0 ldi r22,lo8(.LC1)
  1318. 1290 0062 70E0 ldi r23,hi8(.LC1)
  1319. 1291 0064 0E94 0000 call _fdopen
  1320. 1292 0068 8C01 movw r16,r24
  1321. 1293 006a 892B or r24,r25
  1322. 1294 006c 01F4 brne .+2
  1323. 1295 006e 00C0 rjmp .L238
  1324. 1296 0070 F301 movw r30,r6
  1325. 1297 0:
  1326. 1298 0072 0190 ld __tmp_reg__,Z+
  1327. 1299 0074 0020 tst __tmp_reg__
  1328. 1300 0076 01F4 brne 0b
  1329. 1301 0078 3197 sbiw r30,1
  1330. 1302 007a 9F01 movw r18,r30
  1331. 1303 007c 2619 sub r18,r6
  1332. 1304 007e 3709 sbc r19,r7
  1333. 1305 0080 3F87 std Y+15,r19
  1334. 1306 0082 2E87 std Y+14,r18
  1335. GAS LISTING /tmp/cc8KBhV9.s page 24
  1336. 1307 0084 2E5F subi r18,-2
  1337. 1308 0086 3F4F sbci r19,-1
  1338. 1309 0088 398B std Y+17,r19
  1339. 1310 008a 288B std Y+16,r18
  1340. 1311 008c 9701 movw r18,r14
  1341. 1312 008e 2170 andi r18,1
  1342. 1313 0090 3327 clr r19
  1343. 1314 0092 3B8B std Y+19,r19
  1344. 1315 0094 2A8B std Y+18,r18
  1345. 1316 .L224:
  1346. 1317 0096 C501 movw r24,r10
  1347. 1318 0098 0E94 0000 call readdir
  1348. 1319 009c 0097 sbiw r24,0
  1349. 1320 009e 01F4 brne .+2
  1350. 1321 00a0 00C0 rjmp .L248
  1351. 1322 00a2 DC01 movw r26,r24
  1352. 1323 00a4 1896 adiw r26,8
  1353. 1324 00a6 2C91 ld r18,X
  1354. 1325 00a8 2E32 cpi r18,lo8(46)
  1355. 1326 00aa 01F4 brne .L225
  1356. 1327 00ac 2A89 ldd r18,Y+18
  1357. 1328 00ae 3B89 ldd r19,Y+19
  1358. 1329 00b0 232B or r18,r19
  1359. 1330 00b2 01F0 breq .L224
  1360. 1331 .L225:
  1361. 1332 00b4 1C01 movw r2,r24
  1362. 1333 00b6 38E0 ldi r19,8
  1363. 1334 00b8 230E add r2,r19
  1364. 1335 00ba 311C adc r3,__zero_reg__
  1365. 1336 00bc F101 movw r30,r2
  1366. 1337 0:
  1367. 1338 00be 0190 ld __tmp_reg__,Z+
  1368. 1339 00c0 0020 tst __tmp_reg__
  1369. 1340 00c2 01F4 brne 0b
  1370. 1341 00c4 3197 sbiw r30,1
  1371. 1342 00c6 CF01 movw r24,r30
  1372. 1343 00c8 8219 sub r24,r2
  1373. 1344 00ca 9309 sbc r25,r3
  1374. 1345 00cc 2889 ldd r18,Y+16
  1375. 1346 00ce 3989 ldd r19,Y+17
  1376. 1347 00d0 820F add r24,r18
  1377. 1348 00d2 931F adc r25,r19
  1378. 1349 00d4 0E94 0000 call malloc
  1379. 1350 00d8 7C01 movw r14,r24
  1380. 1351 00da 0097 sbiw r24,0
  1381. 1352 00dc 01F0 breq .L224
  1382. 1353 00de B301 movw r22,r6
  1383. 1354 00e0 0E94 0000 call strcpy
  1384. 1355 00e4 2E85 ldd r18,Y+14
  1385. 1356 00e6 3F85 ldd r19,Y+15
  1386. 1357 00e8 2115 cp r18,__zero_reg__
  1387. 1358 00ea 3105 cpc r19,__zero_reg__
  1388. 1359 00ec 01F0 breq .L228
  1389. 1360 00ee F901 movw r30,r18
  1390. 1361 00f0 EE0D add r30,r14
  1391. 1362 00f2 FF1D adc r31,r15
  1392. 1363 00f4 3197 sbiw r30,1
  1393. GAS LISTING /tmp/cc8KBhV9.s page 25
  1394. 1364 00f6 8081 ld r24,Z
  1395. 1365 00f8 8F32 cpi r24,lo8(47)
  1396. 1366 00fa 01F0 breq .L229
  1397. 1367 .L228:
  1398. 1368 00fc 60E0 ldi r22,lo8(.LC2)
  1399. 1369 00fe 70E0 ldi r23,hi8(.LC2)
  1400. 1370 0100 C701 movw r24,r14
  1401. 1371 0102 0E94 0000 call strcat
  1402. 1372 .L229:
  1403. 1373 0106 B101 movw r22,r2
  1404. 1374 0108 C701 movw r24,r14
  1405. 1375 010a 0E94 0000 call strcat
  1406. 1376 010e BE01 movw r22,r28
  1407. 1377 0110 6F5F subi r22,-1
  1408. 1378 0112 7F4F sbci r23,-1
  1409. 1379 0114 C701 movw r24,r14
  1410. 1380 0116 0E94 0000 call stat
  1411. 1381 011a 892B or r24,r25
  1412. 1382 011c 01F0 breq .+2
  1413. 1383 011e 00C0 rjmp .L230
  1414. 1384 0120 8B81 ldd r24,Y+3
  1415. 1385 0122 B801 movw r22,r16
  1416. 1386 0124 8823 tst r24
  1417. 1387 0126 01F0 breq .L231
  1418. 1388 0128 84E6 ldi r24,lo8(100)
  1419. 1389 012a 90E0 ldi r25,0
  1420. 1390 012c 0E94 0000 call fputc
  1421. 1391 0130 80E0 ldi r24,0
  1422. 1392 0132 90E0 ldi r25,0
  1423. 1393 0134 20E0 ldi r18,0
  1424. 1394 0136 30E0 ldi r19,0
  1425. 1395 0138 00C0 rjmp .L232
  1426. 1396 .L231:
  1427. 1397 013a 8DE2 ldi r24,lo8(45)
  1428. 1398 013c 90E0 ldi r25,0
  1429. 1399 013e 0E94 0000 call fputc
  1430. 1400 0142 8E81 ldd r24,Y+6
  1431. 1401 0144 9F81 ldd r25,Y+7
  1432. 1402 0146 2885 ldd r18,Y+8
  1433. 1403 0148 3985 ldd r19,Y+9
  1434. 1404 .L232:
  1435. 1405 014a 3F93 push r19
  1436. 1406 014c 2F93 push r18
  1437. 1407 014e 9F93 push r25
  1438. 1408 0150 8F93 push r24
  1439. 1409 0152 A0E0 ldi r26,lo8(fileattributes_P.3151)
  1440. 1410 0154 B0E0 ldi r27,hi8(fileattributes_P.3151)
  1441. 1411 0156 BF93 push r27
  1442. 1412 0158 AF93 push r26
  1443. 1413 015a 1F93 push r17
  1444. 1414 015c 0F93 push r16
  1445. 1415 015e 0E94 0000 call fprintf_P
  1446. 1416 0162 CE01 movw r24,r28
  1447. 1417 0164 0A96 adiw r24,10
  1448. 1418 0166 0E94 0000 call gmtime
  1449. 1419 016a 2C01 movw r4,r24
  1450. 1420 016c DC01 movw r26,r24
  1451. GAS LISTING /tmp/cc8KBhV9.s page 26
  1452. 1421 016e 1796 adiw r26,7
  1453. 1422 0170 8C91 ld r24,X
  1454. 1423 0172 1797 sbiw r26,7
  1455. 1424 0174 8F93 push r24
  1456. 1425 0176 1696 adiw r26,6
  1457. 1426 0178 8C91 ld r24,X
  1458. 1427 017a 1697 sbiw r26,6
  1459. 1428 017c 8F93 push r24
  1460. 1429 017e 1896 adiw r26,8
  1461. 1430 0180 8D91 ld r24,X+
  1462. 1431 0182 9C91 ld r25,X
  1463. 1432 0184 1997 sbiw r26,8+1
  1464. 1433 0186 9C01 movw r18,r24
  1465. 1434 0188 220F lsl r18
  1466. 1435 018a 331F rol r19
  1467. 1436 018c 820F add r24,r18
  1468. 1437 018e 931F adc r25,r19
  1469. 1438 0190 8050 subi r24,lo8(-(.LC3))
  1470. 1439 0192 9040 sbci r25,hi8(-(.LC3))
  1471. 1440 0194 9F93 push r25
  1472. 1441 0196 8F93 push r24
  1473. 1442 0198 A0E0 ldi r26,lo8(dateattribute_P.3152)
  1474. 1443 019a B0E0 ldi r27,hi8(dateattribute_P.3152)
  1475. 1444 019c BF93 push r27
  1476. 1445 019e AF93 push r26
  1477. 1446 01a0 1F93 push r17
  1478. 1447 01a2 0F93 push r16
  1479. 1448 01a4 0E94 0000 call fprintf_P
  1480. 1449 01a8 D201 movw r26,r4
  1481. 1450 01aa 1396 adiw r26,3
  1482. 1451 01ac 8C91 ld r24,X
  1483. 1452 01ae 1397 sbiw r26,3
  1484. 1453 01b0 8F93 push r24
  1485. 1454 01b2 1296 adiw r26,2
  1486. 1455 01b4 8C91 ld r24,X
  1487. 1456 01b6 1297 sbiw r26,2
  1488. 1457 01b8 8F93 push r24
  1489. 1458 01ba 1596 adiw r26,5
  1490. 1459 01bc 8C91 ld r24,X
  1491. 1460 01be 1597 sbiw r26,5
  1492. 1461 01c0 8F93 push r24
  1493. 1462 01c2 1496 adiw r26,4
  1494. 1463 01c4 8C91 ld r24,X
  1495. 1464 01c6 8F93 push r24
  1496. 1465 01c8 A0E0 ldi r26,lo8(timeattribute_P.3153)
  1497. 1466 01ca B0E0 ldi r27,hi8(timeattribute_P.3153)
  1498. 1467 01cc BF93 push r27
  1499. 1468 01ce AF93 push r26
  1500. 1469 01d0 1F93 push r17
  1501. 1470 01d2 0F93 push r16
  1502. 1471 01d4 0E94 0000 call fprintf_P
  1503. 1472 01d8 B801 movw r22,r16
  1504. 1473 01da C101 movw r24,r2
  1505. 1474 01dc 0E94 0000 call fputs
  1506. 1475 01e0 B801 movw r22,r16
  1507. 1476 01e2 80E0 ldi r24,lo8(.LC4)
  1508. 1477 01e4 90E0 ldi r25,hi8(.LC4)
  1509. GAS LISTING /tmp/cc8KBhV9.s page 27
  1510. 1478 01e6 0E94 0000 call fputs
  1511. 1479 01ea 0FB6 in __tmp_reg__,__SREG__
  1512. 1480 01ec F894 cli
  1513. 1481 01ee DEBF out __SP_H__,r29
  1514. 1482 01f0 0FBE out __SREG__,__tmp_reg__
  1515. 1483 01f2 CDBF out __SP_L__,r28
  1516. 1484 .L230:
  1517. 1485 01f4 C701 movw r24,r14
  1518. 1486 01f6 0E94 0000 call free
  1519. 1487 01fa 00C0 rjmp .L224
  1520. 1488 .L248:
  1521. 1489 01fc C801 movw r24,r16
  1522. 1490 01fe 0E94 0000 call fclose
  1523. 1491 0202 00E0 ldi r16,0
  1524. 1492 0204 10E0 ldi r17,0
  1525. 1493 0206 00C0 rjmp .L223
  1526. 1494 .L238:
  1527. 1495 0208 06E2 ldi r16,lo8(38)
  1528. 1496 020a 12E0 ldi r17,lo8(2)
  1529. 1497 .L223:
  1530. 1498 020c C401 movw r24,r8
  1531. 1499 020e 0E94 0000 call NutTcpCloseSocket
  1532. 1500 0212 00C0 rjmp .L222
  1533. 1501 .L237:
  1534. 1502 0214 06E2 ldi r16,lo8(38)
  1535. 1503 0216 12E0 ldi r17,lo8(2)
  1536. 1504 .L222:
  1537. 1505 0218 C501 movw r24,r10
  1538. 1506 021a 0E94 0000 call closedir
  1539. 1507 021e 0115 cp r16,__zero_reg__
  1540. 1508 0220 1105 cpc r17,__zero_reg__
  1541. 1509 0222 01F0 breq .L234
  1542. 1510 0224 00C0 rjmp .L221
  1543. 1511 .L236:
  1544. 1512 0226 06E2 ldi r16,lo8(38)
  1545. 1513 0228 12E0 ldi r17,lo8(2)
  1546. 1514 .L221:
  1547. 1515 022a B801 movw r22,r16
  1548. 1516 022c C601 movw r24,r12
  1549. 1517 022e 0E94 0000 call NutFtpRespondBad
  1550. 1518 0232 00C0 rjmp .L235
  1551. 1519 .L234:
  1552. 1520 0234 62EE ldi r22,lo8(-30)
  1553. 1521 0236 70E0 ldi r23,0
  1554. 1522 0238 C601 movw r24,r12
  1555. 1523 023a 0E94 0000 call NutFtpRespondOk
  1556. 1524 .L235:
  1557. 1525 /* epilogue start */
  1558. 1526 023e 6396 adiw r28,19
  1559. 1527 0240 0FB6 in __tmp_reg__,__SREG__
  1560. 1528 0242 F894 cli
  1561. 1529 0244 DEBF out __SP_H__,r29
  1562. 1530 0246 0FBE out __SREG__,__tmp_reg__
  1563. 1531 0248 CDBF out __SP_L__,r28
  1564. 1532 024a DF91 pop r29
  1565. 1533 024c CF91 pop r28
  1566. 1534 024e 1F91 pop r17
  1567. GAS LISTING /tmp/cc8KBhV9.s page 28
  1568. 1535 0250 0F91 pop r16
  1569. 1536 0252 FF90 pop r15
  1570. 1537 0254 EF90 pop r14
  1571. 1538 0256 DF90 pop r13
  1572. 1539 0258 CF90 pop r12
  1573. 1540 025a BF90 pop r11
  1574. 1541 025c AF90 pop r10
  1575. 1542 025e 9F90 pop r9
  1576. 1543 0260 8F90 pop r8
  1577. 1544 0262 7F90 pop r7
  1578. 1545 0264 6F90 pop r6
  1579. 1546 0266 5F90 pop r5
  1580. 1547 0268 4F90 pop r4
  1581. 1548 026a 3F90 pop r3
  1582. 1549 026c 2F90 pop r2
  1583. 1550 026e 0895 ret
  1584. 1551 .size NutFtpTransferDirectoryOptions, .-NutFtpTransferDirectoryOptions
  1585. 1552 .section .text.NutFtpTransferDirectory,"ax",@progbits
  1586. 1553 .global NutFtpTransferDirectory
  1587. 1554 .type NutFtpTransferDirectory, @function
  1588. 1555 NutFtpTransferDirectory:
  1589. 1556 /* prologue: function */
  1590. 1557 /* frame size = 0 */
  1591. 1558 /* stack size = 0 */
  1592. 1559 .L__stack_usage = 0
  1593. 1560 0000 40E0 ldi r20,0
  1594. 1561 0002 50E0 ldi r21,0
  1595. 1562 0004 0C94 0000 jmp NutFtpTransferDirectoryOptions
  1596. 1563 .size NutFtpTransferDirectory, .-NutFtpTransferDirectory
  1597. 1564 .section .text.NutFtpProcessMkd,"ax",@progbits
  1598. 1565 .global NutFtpProcessMkd
  1599. 1566 .type NutFtpProcessMkd, @function
  1600. 1567 NutFtpProcessMkd:
  1601. 1568 0000 CF93 push r28
  1602. 1569 0002 DF93 push r29
  1603. 1570 /* prologue: function */
  1604. 1571 /* frame size = 0 */
  1605. 1572 /* stack size = 2 */
  1606. 1573 .L__stack_usage = 2
  1607. 1574 0004 EC01 movw r28,r24
  1608. 1575 0006 CB01 movw r24,r22
  1609. 1576 0008 6FEF ldi r22,lo8(-1)
  1610. 1577 000a 71E0 ldi r23,lo8(1)
  1611. 1578 000c 0E94 0000 call mkdir
  1612. 1579 0010 892B or r24,r25
  1613. 1580 0012 01F0 breq .L251
  1614. 1581 0014 66E2 ldi r22,lo8(38)
  1615. 1582 0016 72E0 ldi r23,lo8(2)
  1616. 1583 0018 CE01 movw r24,r28
  1617. 1584 /* epilogue start */
  1618. 1585 001a DF91 pop r29
  1619. 1586 001c CF91 pop r28
  1620. 1587 001e 0C94 0000 jmp NutFtpRespondBad
  1621. 1588 .L251:
  1622. 1589 0022 61E0 ldi r22,lo8(1)
  1623. 1590 0024 71E0 ldi r23,lo8(1)
  1624. 1591 0026 CE01 movw r24,r28
  1625. GAS LISTING /tmp/cc8KBhV9.s page 29
  1626. 1592 /* epilogue start */
  1627. 1593 0028 DF91 pop r29
  1628. 1594 002a CF91 pop r28
  1629. 1595 002c 0C94 0000 jmp NutFtpRespondOk
  1630. 1596 .size NutFtpProcessMkd, .-NutFtpProcessMkd
  1631. 1597 .section .text.NutFtpRenamePrepare,"ax",@progbits
  1632. 1598 .global NutFtpRenamePrepare
  1633. 1599 .type NutFtpRenamePrepare, @function
  1634. 1600 NutFtpRenamePrepare:
  1635. 1601 0000 EF92 push r14
  1636. 1602 0002 FF92 push r15
  1637. 1603 0004 0F93 push r16
  1638. 1604 0006 1F93 push r17
  1639. 1605 0008 CF93 push r28
  1640. 1606 000a DF93 push r29
  1641. 1607 000c CDB7 in r28,__SP_L__
  1642. 1608 000e DEB7 in r29,__SP_H__
  1643. 1609 0010 2D97 sbiw r28,13
  1644. 1610 0012 0FB6 in __tmp_reg__,__SREG__
  1645. 1611 0014 F894 cli
  1646. 1612 0016 DEBF out __SP_H__,r29
  1647. 1613 0018 0FBE out __SREG__,__tmp_reg__
  1648. 1614 001a CDBF out __SP_L__,r28
  1649. 1615 /* prologue: function */
  1650. 1616 /* frame size = 13 */
  1651. 1617 /* stack size = 19 */
  1652. 1618 .L__stack_usage = 19
  1653. 1619 001c 8C01 movw r16,r24
  1654. 1620 001e 7B01 movw r14,r22
  1655. 1621 0020 FC01 movw r30,r24
  1656. 1622 0022 8189 ldd r24,Z+17
  1657. 1623 0024 9289 ldd r25,Z+18
  1658. 1624 0026 0097 sbiw r24,0
  1659. 1625 0028 01F0 breq .L253
  1660. 1626 002a 0E94 0000 call free
  1661. 1627 002e F801 movw r30,r16
  1662. 1628 0030 128A std Z+18,__zero_reg__
  1663. 1629 0032 118A std Z+17,__zero_reg__
  1664. 1630 .L253:
  1665. 1631 0034 E114 cp r14,__zero_reg__
  1666. 1632 0036 F104 cpc r15,__zero_reg__
  1667. 1633 0038 01F0 breq .L254
  1668. 1634 003a BE01 movw r22,r28
  1669. 1635 003c 6F5F subi r22,-1
  1670. 1636 003e 7F4F sbci r23,-1
  1671. 1637 0040 C701 movw r24,r14
  1672. 1638 0042 0E94 0000 call stat
  1673. 1639 0046 892B or r24,r25
  1674. 1640 0048 01F4 brne .L255
  1675. 1641 004a C701 movw r24,r14
  1676. 1642 004c 0E94 0000 call strdup
  1677. 1643 0050 F801 movw r30,r16
  1678. 1644 0052 928B std Z+18,r25
  1679. 1645 0054 818B std Z+17,r24
  1680. 1646 0056 892B or r24,r25
  1681. 1647 0058 01F0 breq .L254
  1682. 1648 005a 6EE5 ldi r22,lo8(94)
  1683. GAS LISTING /tmp/cc8KBhV9.s page 30
  1684. 1649 005c 71E0 ldi r23,lo8(1)
  1685. 1650 005e C801 movw r24,r16
  1686. 1651 0060 0E94 0000 call NutFtpRespondOk
  1687. 1652 0064 00C0 rjmp .L258
  1688. 1653 .L255:
  1689. 1654 0066 62EC ldi r22,lo8(-62)
  1690. 1655 0068 71E0 ldi r23,lo8(1)
  1691. 1656 006a 00C0 rjmp .L268
  1692. 1657 .L254:
  1693. 1658 006c 65EF ldi r22,lo8(-11)
  1694. 1659 006e 71E0 ldi r23,lo8(1)
  1695. 1660 .L268:
  1696. 1661 0070 C801 movw r24,r16
  1697. 1662 0072 0E94 0000 call NutFtpRespondBad
  1698. 1663 .L258:
  1699. 1664 /* epilogue start */
  1700. 1665 0076 2D96 adiw r28,13
  1701. 1666 0078 0FB6 in __tmp_reg__,__SREG__
  1702. 1667 007a F894 cli
  1703. 1668 007c DEBF out __SP_H__,r29
  1704. 1669 007e 0FBE out __SREG__,__tmp_reg__
  1705. 1670 0080 CDBF out __SP_L__,r28
  1706. 1671 0082 DF91 pop r29
  1707. 1672 0084 CF91 pop r28
  1708. 1673 0086 1F91 pop r17
  1709. 1674 0088 0F91 pop r16
  1710. 1675 008a FF90 pop r15
  1711. 1676 008c EF90 pop r14
  1712. 1677 008e 0895 ret
  1713. 1678 .size NutFtpRenamePrepare, .-NutFtpRenamePrepare
  1714. 1679 .section .text.NutFtpRenameAction,"ax",@progbits
  1715. 1680 .global NutFtpRenameAction
  1716. 1681 .type NutFtpRenameAction, @function
  1717. 1682 NutFtpRenameAction:
  1718. 1683 0000 0F93 push r16
  1719. 1684 0002 1F93 push r17
  1720. 1685 0004 CF93 push r28
  1721. 1686 0006 DF93 push r29
  1722. 1687 /* prologue: function */
  1723. 1688 /* frame size = 0 */
  1724. 1689 /* stack size = 4 */
  1725. 1690 .L__stack_usage = 4
  1726. 1691 0008 EC01 movw r28,r24
  1727. 1692 000a 8989 ldd r24,Y+17
  1728. 1693 000c 9A89 ldd r25,Y+18
  1729. 1694 000e 0097 sbiw r24,0
  1730. 1695 0010 01F0 breq .L271
  1731. 1696 0012 6115 cp r22,__zero_reg__
  1732. 1697 0014 7105 cpc r23,__zero_reg__
  1733. 1698 0016 01F0 breq .L272
  1734. 1699 0018 0E94 0000 call rename
  1735. 1700 001c 8C01 movw r16,r24
  1736. 1701 001e 8989 ldd r24,Y+17
  1737. 1702 0020 9A89 ldd r25,Y+18
  1738. 1703 0022 0E94 0000 call free
  1739. 1704 0026 1A8A std Y+18,__zero_reg__
  1740. 1705 0028 198A std Y+17,__zero_reg__
  1741. GAS LISTING /tmp/cc8KBhV9.s page 31
  1742. 1706 002a 012B or r16,r17
  1743. 1707 002c 01F4 brne .L273
  1744. 1708 002e 6AEF ldi r22,lo8(-6)
  1745. 1709 0030 70E0 ldi r23,0
  1746. 1710 0032 CE01 movw r24,r28
  1747. 1711 /* epilogue start */
  1748. 1712 0034 DF91 pop r29
  1749. 1713 0036 CF91 pop r28
  1750. 1714 0038 1F91 pop r17
  1751. 1715 003a 0F91 pop r16
  1752. 1716 003c 0C94 0000 jmp NutFtpRespondOk
  1753. 1717 .L271:
  1754. 1718 0040 67EF ldi r22,lo8(-9)
  1755. 1719 0042 71E0 ldi r23,lo8(1)
  1756. 1720 0044 00C0 rjmp .L270
  1757. 1721 .L272:
  1758. 1722 0046 65EF ldi r22,lo8(-11)
  1759. 1723 0048 71E0 ldi r23,lo8(1)
  1760. 1724 004a 00C0 rjmp .L270
  1761. 1725 .L273:
  1762. 1726 004c 66E2 ldi r22,lo8(38)
  1763. 1727 004e 72E0 ldi r23,lo8(2)
  1764. 1728 .L270:
  1765. 1729 0050 CE01 movw r24,r28
  1766. 1730 /* epilogue start */
  1767. 1731 0052 DF91 pop r29
  1768. 1732 0054 CF91 pop r28
  1769. 1733 0056 1F91 pop r17
  1770. 1734 0058 0F91 pop r16
  1771. 1735 005a 0C94 0000 jmp NutFtpRespondBad
  1772. 1736 .size NutFtpRenameAction, .-NutFtpRenameAction
  1773. 1737 .section .text.NutFtpProcessPass,"ax",@progbits
  1774. 1738 .global NutFtpProcessPass
  1775. 1739 .type NutFtpProcessPass, @function
  1776. 1740 NutFtpProcessPass:
  1777. 1741 0000 CF93 push r28
  1778. 1742 0002 DF93 push r29
  1779. 1743 /* prologue: function */
  1780. 1744 /* frame size = 0 */
  1781. 1745 /* stack size = 2 */
  1782. 1746 .L__stack_usage = 2
  1783. 1747 0004 EC01 movw r28,r24
  1784. 1748 0006 8091 0000 lds r24,ftp_pass
  1785. 1749 000a 9091 0000 lds r25,ftp_pass+1
  1786. 1750 000e 0097 sbiw r24,0
  1787. 1751 0010 01F0 breq .L275
  1788. 1752 0012 FC01 movw r30,r24
  1789. 1753 0014 2081 ld r18,Z
  1790. 1754 0016 2223 tst r18
  1791. 1755 0018 01F0 breq .L275
  1792. 1756 001a 2E85 ldd r18,Y+14
  1793. 1757 001c 2130 cpi r18,lo8(1)
  1794. 1758 001e 01F4 brne .L276
  1795. 1759 0020 0E94 0000 call strcmp
  1796. 1760 0024 892B or r24,r25
  1797. 1761 0026 01F0 breq .L275
  1798. 1762 .L276:
  1799. GAS LISTING /tmp/cc8KBhV9.s page 32
  1800. 1763 0028 1E86 std Y+14,__zero_reg__
  1801. 1764 002a 66E2 ldi r22,lo8(38)
  1802. 1765 002c 72E0 ldi r23,lo8(2)
  1803. 1766 002e CE01 movw r24,r28
  1804. 1767 /* epilogue start */
  1805. 1768 0030 DF91 pop r29
  1806. 1769 0032 CF91 pop r28
  1807. 1770 0034 0C94 0000 jmp NutFtpRespondBad
  1808. 1771 .L275:
  1809. 1772 0038 82E0 ldi r24,lo8(2)
  1810. 1773 003a 8E87 std Y+14,r24
  1811. 1774 003c 66EE ldi r22,lo8(-26)
  1812. 1775 003e 70E0 ldi r23,0
  1813. 1776 0040 CE01 movw r24,r28
  1814. 1777 /* epilogue start */
  1815. 1778 0042 DF91 pop r29
  1816. 1779 0044 CF91 pop r28
  1817. 1780 0046 0C94 0000 jmp NutFtpRespondOk
  1818. 1781 .size NutFtpProcessPass, .-NutFtpProcessPass
  1819. 1782 .section .text.NutFtpProcessPassiv,"ax",@progbits
  1820. 1783 .global NutFtpProcessPassiv
  1821. 1784 .type NutFtpProcessPassiv, @function
  1822. 1785 NutFtpProcessPassiv:
  1823. 1786 0000 CF93 push r28
  1824. 1787 0002 DF93 push r29
  1825. 1788 /* prologue: function */
  1826. 1789 /* frame size = 0 */
  1827. 1790 /* stack size = 2 */
  1828. 1791 .L__stack_usage = 2
  1829. 1792 0004 EC01 movw r28,r24
  1830. 1793 0006 E881 ld r30,Y
  1831. 1794 0008 F981 ldd r31,Y+1
  1832. 1795 000a 8689 ldd r24,Z+22
  1833. 1796 000c 9789 ldd r25,Z+23
  1834. 1797 000e A08D ldd r26,Z+24
  1835. 1798 0010 B18D ldd r27,Z+25
  1836. 1799 0012 1F92 push __zero_reg__
  1837. 1800 0014 24E1 ldi r18,lo8(20)
  1838. 1801 0016 2F93 push r18
  1839. 1802 0018 1F92 push __zero_reg__
  1840. 1803 001a 1F92 push __zero_reg__
  1841. 1804 001c 4B2F mov r20,r27
  1842. 1805 001e 5527 clr r21
  1843. 1806 0020 6627 clr r22
  1844. 1807 0022 7727 clr r23
  1845. 1808 0024 5F93 push r21
  1846. 1809 0026 4F93 push r20
  1847. 1810 0028 1F92 push __zero_reg__
  1848. 1811 002a AF93 push r26
  1849. 1812 002c 1F92 push __zero_reg__
  1850. 1813 002e 9F93 push r25
  1851. 1814 0030 1F92 push __zero_reg__
  1852. 1815 0032 8F93 push r24
  1853. 1816 0034 80E0 ldi r24,lo8(passiveprint_P.3193)
  1854. 1817 0036 90E0 ldi r25,hi8(passiveprint_P.3193)
  1855. 1818 0038 9F93 push r25
  1856. 1819 003a 8F93 push r24
  1857. GAS LISTING /tmp/cc8KBhV9.s page 33
  1858. 1820 003c 8B81 ldd r24,Y+3
  1859. 1821 003e 8F93 push r24
  1860. 1822 0040 8A81 ldd r24,Y+2
  1861. 1823 0042 8F93 push r24
  1862. 1824 0044 0E94 0000 call fprintf_P
  1863. 1825 0048 8A81 ldd r24,Y+2
  1864. 1826 004a 9B81 ldd r25,Y+3
  1865. 1827 004c 0E94 0000 call fflush
  1866. 1828 0050 81E0 ldi r24,lo8(1)
  1867. 1829 0052 888B std Y+16,r24
  1868. 1830 0054 8DB7 in r24,__SP_L__
  1869. 1831 0056 9EB7 in r25,__SP_H__
  1870. 1832 0058 4096 adiw r24,16
  1871. 1833 005a 0FB6 in __tmp_reg__,__SREG__
  1872. 1834 005c F894 cli
  1873. 1835 005e 9EBF out __SP_H__,r25
  1874. 1836 0060 0FBE out __SREG__,__tmp_reg__
  1875. 1837 0062 8DBF out __SP_L__,r24
  1876. 1838 0064 80E0 ldi r24,0
  1877. 1839 0066 90E0 ldi r25,0
  1878. 1840 /* epilogue start */
  1879. 1841 0068 DF91 pop r29
  1880. 1842 006a CF91 pop r28
  1881. 1843 006c 0895 ret
  1882. 1844 .size NutFtpProcessPassiv, .-NutFtpProcessPassiv
  1883. 1845 .section .text.NutFtpProcessPort,"ax",@progbits
  1884. 1846 .global NutFtpProcessPort
  1885. 1847 .type NutFtpProcessPort, @function
  1886. 1848 NutFtpProcessPort:
  1887. 1849 0000 8F92 push r8
  1888. 1850 0002 9F92 push r9
  1889. 1851 0004 AF92 push r10
  1890. 1852 0006 BF92 push r11
  1891. 1853 0008 CF92 push r12
  1892. 1854 000a DF92 push r13
  1893. 1855 000c EF92 push r14
  1894. 1856 000e FF92 push r15
  1895. 1857 0010 0F93 push r16
  1896. 1858 0012 1F93 push r17
  1897. 1859 0014 CF93 push r28
  1898. 1860 0016 DF93 push r29
  1899. 1861 /* prologue: function */
  1900. 1862 /* frame size = 0 */
  1901. 1863 /* stack size = 12 */
  1902. 1864 .L__stack_usage = 12
  1903. 1865 0018 EC01 movw r28,r24
  1904. 1866 001a 8B01 movw r16,r22
  1905. 1867 001c 1E82 std Y+6,__zero_reg__
  1906. 1868 001e 1F82 std Y+7,__zero_reg__
  1907. 1869 0020 1886 std Y+8,__zero_reg__
  1908. 1870 0022 1986 std Y+9,__zero_reg__
  1909. 1871 0024 1B86 std Y+11,__zero_reg__
  1910. 1872 0026 1A86 std Y+10,__zero_reg__
  1911. 1873 0028 812C mov r8,__zero_reg__
  1912. 1874 002a 912C mov r9,__zero_reg__
  1913. 1875 .L294:
  1914. 1876 002c F801 movw r30,r16
  1915. GAS LISTING /tmp/cc8KBhV9.s page 34
  1916. 1877 002e 8081 ld r24,Z
  1917. 1878 0030 8053 subi r24,lo8(-(-48))
  1918. 1879 0032 8A30 cpi r24,lo8(10)
  1919. 1880 0034 00F0 brlo .+2
  1920. 1881 0036 00C0 rjmp .L288
  1921. 1882 0038 F4E0 ldi r31,4
  1922. 1883 003a 8F16 cp r8,r31
  1923. 1884 003c 9104 cpc r9,__zero_reg__
  1924. 1885 003e 04F4 brge .L289
  1925. 1886 0040 CE80 ldd r12,Y+6
  1926. 1887 0042 DF80 ldd r13,Y+7
  1927. 1888 0044 E884 ldd r14,Y+8
  1928. 1889 0046 F984 ldd r15,Y+9
  1929. 1890 0048 CD2C mov r12,r13
  1930. 1891 004a DE2C mov r13,r14
  1931. 1892 004c EF2C mov r14,r15
  1932. 1893 004e FF24 clr r15
  1933. 1894 0050 CE82 std Y+6,r12
  1934. 1895 0052 DF82 std Y+7,r13
  1935. 1896 0054 E886 std Y+8,r14
  1936. 1897 0056 F986 std Y+9,r15
  1937. 1898 0058 C801 movw r24,r16
  1938. 1899 005a 0E94 0000 call atol
  1939. 1900 005e B62F mov r27,r22
  1940. 1901 0060 AA27 clr r26
  1941. 1902 0062 9927 clr r25
  1942. 1903 0064 8827 clr r24
  1943. 1904 0066 C80E add r12,r24
  1944. 1905 0068 D91E adc r13,r25
  1945. 1906 006a EA1E adc r14,r26
  1946. 1907 006c FB1E adc r15,r27
  1947. 1908 006e CE82 std Y+6,r12
  1948. 1909 0070 DF82 std Y+7,r13
  1949. 1910 0072 E886 std Y+8,r14
  1950. 1911 0074 F986 std Y+9,r15
  1951. 1912 .L291:
  1952. 1913 0076 C801 movw r24,r16
  1953. 1914 0078 00C0 rjmp .L290
  1954. 1915 .L289:
  1955. 1916 007a BA84 ldd r11,Y+10
  1956. 1917 007c A12C mov r10,__zero_reg__
  1957. 1918 007e BB86 std Y+11,r11
  1958. 1919 0080 AA86 std Y+10,r10
  1959. 1920 0082 C801 movw r24,r16
  1960. 1921 0084 0E94 0000 call atoi
  1961. 1922 0088 8A0D add r24,r10
  1962. 1923 008a 9B1D adc r25,r11
  1963. 1924 008c 9B87 std Y+11,r25
  1964. 1925 008e 8A87 std Y+10,r24
  1965. 1926 0090 00C0 rjmp .L291
  1966. 1927 .L290:
  1967. 1928 0092 8C01 movw r16,r24
  1968. 1929 0094 FC01 movw r30,r24
  1969. 1930 0096 2081 ld r18,Z
  1970. 1931 0098 0196 adiw r24,1
  1971. 1932 009a 2223 tst r18
  1972. 1933 009c 01F0 breq .L292
  1973. GAS LISTING /tmp/cc8KBhV9.s page 35
  1974. 1934 009e 2C32 cpi r18,lo8(44)
  1975. 1935 00a0 01F4 brne .L290
  1976. 1936 00a2 8C01 movw r16,r24
  1977. 1937 .L292:
  1978. 1938 00a4 FFEF ldi r31,-1
  1979. 1939 00a6 8F1A sub r8,r31
  1980. 1940 00a8 9F0A sbc r9,r31
  1981. 1941 00aa 86E0 ldi r24,6
  1982. 1942 00ac 8816 cp r8,r24
  1983. 1943 00ae 9104 cpc r9,__zero_reg__
  1984. 1944 00b0 01F0 breq .+2
  1985. 1945 00b2 00C0 rjmp .L294
  1986. 1946 00b4 E881 ld r30,Y
  1987. 1947 00b6 F981 ldd r31,Y+1
  1988. 1948 00b8 448D ldd r20,Z+28
  1989. 1949 00ba 558D ldd r21,Z+29
  1990. 1950 00bc 668D ldd r22,Z+30
  1991. 1951 00be 778D ldd r23,Z+31
  1992. 1952 00c0 8E81 ldd r24,Y+6
  1993. 1953 00c2 9F81 ldd r25,Y+7
  1994. 1954 00c4 A885 ldd r26,Y+8
  1995. 1955 00c6 B985 ldd r27,Y+9
  1996. 1956 00c8 4817 cp r20,r24
  1997. 1957 00ca 5907 cpc r21,r25
  1998. 1958 00cc 6A07 cpc r22,r26
  1999. 1959 00ce 7B07 cpc r23,r27
  2000. 1960 00d0 01F4 brne .L305
  2001. 1961 00d2 68EC ldi r22,lo8(-56)
  2002. 1962 00d4 70E0 ldi r23,0
  2003. 1963 00d6 CE01 movw r24,r28
  2004. 1964 /* epilogue start */
  2005. 1965 00d8 DF91 pop r29
  2006. 1966 00da CF91 pop r28
  2007. 1967 00dc 1F91 pop r17
  2008. 1968 00de 0F91 pop r16
  2009. 1969 00e0 FF90 pop r15
  2010. 1970 00e2 EF90 pop r14
  2011. 1971 00e4 DF90 pop r13
  2012. 1972 00e6 CF90 pop r12
  2013. 1973 00e8 BF90 pop r11
  2014. 1974 00ea AF90 pop r10
  2015. 1975 00ec 9F90 pop r9
  2016. 1976 00ee 8F90 pop r8
  2017. 1977 00f0 0C94 0000 jmp NutFtpRespondOk
  2018. 1978 .L305:
  2019. 1979 00f4 69EA ldi r22,lo8(-87)
  2020. 1980 00f6 71E0 ldi r23,lo8(1)
  2021. 1981 00f8 00C0 rjmp .L306
  2022. 1982 .L288:
  2023. 1983 00fa 65EF ldi r22,lo8(-11)
  2024. 1984 00fc 71E0 ldi r23,lo8(1)
  2025. 1985 .L306:
  2026. 1986 00fe CE01 movw r24,r28
  2027. 1987 /* epilogue start */
  2028. 1988 0100 DF91 pop r29
  2029. 1989 0102 CF91 pop r28
  2030. 1990 0104 1F91 pop r17
  2031. GAS LISTING /tmp/cc8KBhV9.s page 36
  2032. 1991 0106 0F91 pop r16
  2033. 1992 0108 FF90 pop r15
  2034. 1993 010a EF90 pop r14
  2035. 1994 010c DF90 pop r13
  2036. 1995 010e CF90 pop r12
  2037. 1996 0110 BF90 pop r11
  2038. 1997 0112 AF90 pop r10
  2039. 1998 0114 9F90 pop r9
  2040. 1999 0116 8F90 pop r8
  2041. 2000 0118 0C94 0000 jmp NutFtpRespondBad
  2042. 2001 .size NutFtpProcessPort, .-NutFtpProcessPort
  2043. 2002 .section .text.NutFtpProcessPwd,"ax",@progbits
  2044. 2003 .global NutFtpProcessPwd
  2045. 2004 .type NutFtpProcessPwd, @function
  2046. 2005 NutFtpProcessPwd:
  2047. 2006 /* prologue: function */
  2048. 2007 /* frame size = 0 */
  2049. 2008 /* stack size = 0 */
  2050. 2009 .L__stack_usage = 0
  2051. 2010 0000 FC01 movw r30,r24
  2052. 2011 0002 8581 ldd r24,Z+5
  2053. 2012 0004 8F93 push r24
  2054. 2013 0006 8481 ldd r24,Z+4
  2055. 2014 0008 8F93 push r24
  2056. 2015 000a 80E0 ldi r24,lo8(pwdanswer_P.3203)
  2057. 2016 000c 90E0 ldi r25,hi8(pwdanswer_P.3203)
  2058. 2017 000e 9F93 push r25
  2059. 2018 0010 8F93 push r24
  2060. 2019 0012 8381 ldd r24,Z+3
  2061. 2020 0014 8F93 push r24
  2062. 2021 0016 8281 ldd r24,Z+2
  2063. 2022 0018 8F93 push r24
  2064. 2023 001a 0E94 0000 call fprintf_P
  2065. 2024 001e 0F90 pop __tmp_reg__
  2066. 2025 0020 0F90 pop __tmp_reg__
  2067. 2026 0022 0F90 pop __tmp_reg__
  2068. 2027 0024 0F90 pop __tmp_reg__
  2069. 2028 0026 0F90 pop __tmp_reg__
  2070. 2029 0028 0F90 pop __tmp_reg__
  2071. 2030 002a 80E0 ldi r24,0
  2072. 2031 002c 90E0 ldi r25,0
  2073. 2032 002e 0895 ret
  2074. 2033 .size NutFtpProcessPwd, .-NutFtpProcessPwd
  2075. 2034 .section .text.NutFtpProcessRmd,"ax",@progbits
  2076. 2035 .global NutFtpProcessRmd
  2077. 2036 .type NutFtpProcessRmd, @function
  2078. 2037 NutFtpProcessRmd:
  2079. 2038 0000 CF93 push r28
  2080. 2039 0002 DF93 push r29
  2081. 2040 /* prologue: function */
  2082. 2041 /* frame size = 0 */
  2083. 2042 /* stack size = 2 */
  2084. 2043 .L__stack_usage = 2
  2085. 2044 0004 EC01 movw r28,r24
  2086. 2045 0006 CB01 movw r24,r22
  2087. 2046 0008 0E94 0000 call rmdir
  2088. 2047 000c 892B or r24,r25
  2089. GAS LISTING /tmp/cc8KBhV9.s page 37
  2090. 2048 000e 01F0 breq .L309
  2091. 2049 0010 63EC ldi r22,lo8(-61)
  2092. 2050 0012 71E0 ldi r23,lo8(1)
  2093. 2051 0014 CE01 movw r24,r28
  2094. 2052 /* epilogue start */
  2095. 2053 0016 DF91 pop r29
  2096. 2054 0018 CF91 pop r28
  2097. 2055 001a 0C94 0000 jmp NutFtpRespondBad
  2098. 2056 .L309:
  2099. 2057 001e 61E0 ldi r22,lo8(1)
  2100. 2058 0020 71E0 ldi r23,lo8(1)
  2101. 2059 0022 CE01 movw r24,r28
  2102. 2060 /* epilogue start */
  2103. 2061 0024 DF91 pop r29
  2104. 2062 0026 CF91 pop r28
  2105. 2063 0028 0C94 0000 jmp NutFtpRespondOk
  2106. 2064 .size NutFtpProcessRmd, .-NutFtpProcessRmd
  2107. 2065 .section .text.NutFtpProcessSystem,"ax",@progbits
  2108. 2066 .global NutFtpProcessSystem
  2109. 2067 .type NutFtpProcessSystem, @function
  2110. 2068 NutFtpProcessSystem:
  2111. 2069 /* prologue: function */
  2112. 2070 /* frame size = 0 */
  2113. 2071 /* stack size = 0 */
  2114. 2072 .L__stack_usage = 0
  2115. 2073 0000 FC01 movw r30,r24
  2116. 2074 0002 6281 ldd r22,Z+2
  2117. 2075 0004 7381 ldd r23,Z+3
  2118. 2076 0006 80E0 ldi r24,lo8(unixtype_P.3211)
  2119. 2077 0008 90E0 ldi r25,hi8(unixtype_P.3211)
  2120. 2078 000a 0E94 0000 call fputs_P
  2121. 2079 000e 80E0 ldi r24,0
  2122. 2080 0010 90E0 ldi r25,0
  2123. 2081 0012 0895 ret
  2124. 2082 .size NutFtpProcessSystem, .-NutFtpProcessSystem
  2125. 2083 .section .text.NutFtpProcessType,"ax",@progbits
  2126. 2084 .global NutFtpProcessType
  2127. 2085 .type NutFtpProcessType, @function
  2128. 2086 NutFtpProcessType:
  2129. 2087 /* prologue: function */
  2130. 2088 /* frame size = 0 */
  2131. 2089 /* stack size = 0 */
  2132. 2090 .L__stack_usage = 0
  2133. 2091 0000 FC01 movw r30,r24
  2134. 2092 0002 DB01 movw r26,r22
  2135. 2093 0004 9C91 ld r25,X
  2136. 2094 0006 9F7D andi r25,lo8(-33)
  2137. 2095 0008 81E0 ldi r24,lo8(1)
  2138. 2096 000a 9134 cpi r25,lo8(65)
  2139. 2097 000c 01F4 brne .L312
  2140. 2098 000e 80E0 ldi r24,0
  2141. 2099 .L312:
  2142. 2100 0010 8787 std Z+15,r24
  2143. 2101 0012 68EC ldi r22,lo8(-56)
  2144. 2102 0014 70E0 ldi r23,0
  2145. 2103 0016 CF01 movw r24,r30
  2146. 2104 0018 0C94 0000 jmp NutFtpRespondOk
  2147. GAS LISTING /tmp/cc8KBhV9.s page 38
  2148. 2105 .size NutFtpProcessType, .-NutFtpProcessType
  2149. 2106 .section .text.NutFtpProcessUser,"ax",@progbits
  2150. 2107 .global NutFtpProcessUser
  2151. 2108 .type NutFtpProcessUser, @function
  2152. 2109 NutFtpProcessUser:
  2153. 2110 0000 CF93 push r28
  2154. 2111 0002 DF93 push r29
  2155. 2112 /* prologue: function */
  2156. 2113 /* frame size = 0 */
  2157. 2114 /* stack size = 2 */
  2158. 2115 .L__stack_usage = 2
  2159. 2116 0004 EC01 movw r28,r24
  2160. 2117 0006 8091 0000 lds r24,ftp_user
  2161. 2118 000a 9091 0000 lds r25,ftp_user+1
  2162. 2119 000e 0097 sbiw r24,0
  2163. 2120 0010 01F0 breq .L314
  2164. 2121 0012 FC01 movw r30,r24
  2165. 2122 0014 2081 ld r18,Z
  2166. 2123 0016 2223 tst r18
  2167. 2124 0018 01F0 breq .L314
  2168. 2125 001a 2E85 ldd r18,Y+14
  2169. 2126 001c 2223 tst r18
  2170. 2127 001e 01F0 breq .L314
  2171. 2128 0020 0E94 0000 call strcmp
  2172. 2129 0024 892B or r24,r25
  2173. 2130 0026 01F0 breq .L314
  2174. 2131 0028 1E86 std Y+14,__zero_reg__
  2175. 2132 002a 66E2 ldi r22,lo8(38)
  2176. 2133 002c 72E0 ldi r23,lo8(2)
  2177. 2134 002e CE01 movw r24,r28
  2178. 2135 /* epilogue start */
  2179. 2136 0030 DF91 pop r29
  2180. 2137 0032 CF91 pop r28
  2181. 2138 0034 0C94 0000 jmp NutFtpRespondBad
  2182. 2139 .L314:
  2183. 2140 0038 E091 0000 lds r30,ftp_pass
  2184. 2141 003c F091 0000 lds r31,ftp_pass+1
  2185. 2142 0040 3097 sbiw r30,0
  2186. 2143 0042 01F0 breq .L315
  2187. 2144 0044 8081 ld r24,Z
  2188. 2145 0046 8823 tst r24
  2189. 2146 0048 01F0 breq .L315
  2190. 2147 004a 81E0 ldi r24,lo8(1)
  2191. 2148 004c 8E87 std Y+14,r24
  2192. 2149 004e 6BE4 ldi r22,lo8(75)
  2193. 2150 0050 71E0 ldi r23,lo8(1)
  2194. 2151 0052 00C0 rjmp .L334
  2195. 2152 .L315:
  2196. 2153 0054 82E0 ldi r24,lo8(2)
  2197. 2154 0056 8E87 std Y+14,r24
  2198. 2155 0058 66EE ldi r22,lo8(-26)
  2199. 2156 005a 70E0 ldi r23,0
  2200. 2157 .L334:
  2201. 2158 005c CE01 movw r24,r28
  2202. 2159 /* epilogue start */
  2203. 2160 005e DF91 pop r29
  2204. 2161 0060 CF91 pop r28
  2205. GAS LISTING /tmp/cc8KBhV9.s page 39
  2206. 2162 0062 0C94 0000 jmp NutFtpRespondOk
  2207. 2163 .size NutFtpProcessUser, .-NutFtpProcessUser
  2208. 2164 .section .rodata.str1.1
  2209. 2165 .LC5:
  2210. 2166 0034 00 .string ""
  2211. 2167 .section .text.NutFtpProcessRequest,"ax",@progbits
  2212. 2168 .global NutFtpProcessRequest
  2213. 2169 .type NutFtpProcessRequest, @function
  2214. 2170 NutFtpProcessRequest:
  2215. 2171 0000 CF92 push r12
  2216. 2172 0002 DF92 push r13
  2217. 2173 0004 EF92 push r14
  2218. 2174 0006 FF92 push r15
  2219. 2175 0008 0F93 push r16
  2220. 2176 000a 1F93 push r17
  2221. 2177 000c CF93 push r28
  2222. 2178 000e DF93 push r29
  2223. 2179 /* prologue: function */
  2224. 2180 /* frame size = 0 */
  2225. 2181 /* stack size = 8 */
  2226. 2182 .L__stack_usage = 8
  2227. 2183 0010 8C01 movw r16,r24
  2228. 2184 .L337:
  2229. 2185 0012 EB01 movw r28,r22
  2230. 2186 0014 8881 ld r24,Y
  2231. 2187 0016 6F5F subi r22,-1
  2232. 2188 0018 7F4F sbci r23,-1
  2233. 2189 001a 8823 tst r24
  2234. 2190 001c 01F0 breq .L373
  2235. 2191 001e 8132 cpi r24,lo8(33)
  2236. 2192 0020 04F0 brlt .L337
  2237. 2193 0022 FE01 movw r30,r28
  2238. 2194 .L338:
  2239. 2195 0024 8081 ld r24,Z
  2240. 2196 0026 8132 cpi r24,lo8(33)
  2241. 2197 0028 04F0 brlt .L412
  2242. 2198 002a 9FE9 ldi r25,lo8(-97)
  2243. 2199 002c 980F add r25,r24
  2244. 2200 002e 9A31 cpi r25,lo8(26)
  2245. 2201 0030 00F4 brsh .L339
  2246. 2202 0032 8052 subi r24,lo8(-(-32))
  2247. 2203 0034 8083 st Z,r24
  2248. 2204 .L339:
  2249. 2205 0036 3196 adiw r30,1
  2250. 2206 0038 00C0 rjmp .L338
  2251. 2207 .L412:
  2252. 2208 003a 8823 tst r24
  2253. 2209 003c 01F0 breq .L342
  2254. 2210 003e 1082 st Z,__zero_reg__
  2255. 2211 0040 3196 adiw r30,1
  2256. 2212 0042 00C0 rjmp .L342
  2257. 2213 .L373:
  2258. 2214 0044 FE01 movw r30,r28
  2259. 2215 0046 00C0 rjmp .L342
  2260. 2216 .L413:
  2261. 2217 0048 8132 cpi r24,lo8(33)
  2262. 2218 004a 04F4 brge .L343
  2263. GAS LISTING /tmp/cc8KBhV9.s page 40
  2264. 2219 004c FD01 movw r30,r26
  2265. 2220 .L342:
  2266. 2221 004e 7F01 movw r14,r30
  2267. 2222 0050 DF01 movw r26,r30
  2268. 2223 0052 8D91 ld r24,X+
  2269. 2224 0054 8111 cpse r24,__zero_reg__
  2270. 2225 0056 00C0 rjmp .L413
  2271. 2226 0058 00C0 rjmp .L374
  2272. 2227 .L414:
  2273. 2228 005a 8D30 cpi r24,lo8(13)
  2274. 2229 005c 01F0 breq .L341
  2275. 2230 005e 8A30 cpi r24,lo8(10)
  2276. 2231 0060 01F0 breq .L341
  2277. 2232 .L343:
  2278. 2233 0062 DF01 movw r26,r30
  2279. 2234 0064 8191 ld r24,Z+
  2280. 2235 0066 8111 cpse r24,__zero_reg__
  2281. 2236 0068 00C0 rjmp .L414
  2282. 2237 006a 00C0 rjmp .L341
  2283. 2238 .L374:
  2284. 2239 006c DF01 movw r26,r30
  2285. 2240 .L341:
  2286. 2241 006e 1C92 st X,__zero_reg__
  2287. 2242 0070 F801 movw r30,r16
  2288. 2243 0072 C188 ldd r12,Z+17
  2289. 2244 0074 D288 ldd r13,Z+18
  2290. 2245 0076 C114 cp r12,__zero_reg__
  2291. 2246 0078 D104 cpc r13,__zero_reg__
  2292. 2247 007a 01F0 breq .L344
  2293. 2248 007c 60E0 ldi r22,lo8(cmd_rename2_P)
  2294. 2249 007e 70E0 ldi r23,hi8(cmd_rename2_P)
  2295. 2250 0080 CE01 movw r24,r28
  2296. 2251 0082 0E94 0000 call strcmp_P
  2297. 2252 0086 892B or r24,r25
  2298. 2253 0088 01F0 breq .L344
  2299. 2254 008a C601 movw r24,r12
  2300. 2255 008c 0E94 0000 call free
  2301. 2256 0090 F801 movw r30,r16
  2302. 2257 0092 128A std Z+18,__zero_reg__
  2303. 2258 0094 118A std Z+17,__zero_reg__
  2304. 2259 .L344:
  2305. 2260 0096 60E0 ldi r22,lo8(cmd_quit_P)
  2306. 2261 0098 70E0 ldi r23,hi8(cmd_quit_P)
  2307. 2262 009a CE01 movw r24,r28
  2308. 2263 009c 0E94 0000 call strcmp_P
  2309. 2264 00a0 892B or r24,r25
  2310. 2265 00a2 01F4 brne .L345
  2311. 2266 00a4 6DED ldi r22,lo8(-35)
  2312. 2267 00a6 70E0 ldi r23,0
  2313. 2268 00a8 C801 movw r24,r16
  2314. 2269 00aa 0E94 0000 call NutFtpRespondOk
  2315. 2270 00ae CFEF ldi r28,lo8(-1)
  2316. 2271 00b0 DFEF ldi r29,lo8(-1)
  2317. 2272 00b2 00C0 rjmp .L408
  2318. 2273 .L345:
  2319. 2274 00b4 60E0 ldi r22,lo8(cmd_user_P)
  2320. 2275 00b6 70E0 ldi r23,hi8(cmd_user_P)
  2321. GAS LISTING /tmp/cc8KBhV9.s page 41
  2322. 2276 00b8 CE01 movw r24,r28
  2323. 2277 00ba 0E94 0000 call strcmp_P
  2324. 2278 00be 892B or r24,r25
  2325. 2279 00c0 01F4 brne .L347
  2326. 2280 00c2 B701 movw r22,r14
  2327. 2281 00c4 C801 movw r24,r16
  2328. 2282 /* epilogue start */
  2329. 2283 00c6 DF91 pop r29
  2330. 2284 00c8 CF91 pop r28
  2331. 2285 00ca 1F91 pop r17
  2332. 2286 00cc 0F91 pop r16
  2333. 2287 00ce FF90 pop r15
  2334. 2288 00d0 EF90 pop r14
  2335. 2289 00d2 DF90 pop r13
  2336. 2290 00d4 CF90 pop r12
  2337. 2291 00d6 0C94 0000 jmp NutFtpProcessUser
  2338. 2292 .L347:
  2339. 2293 00da 60E0 ldi r22,lo8(cmd_pass_P)
  2340. 2294 00dc 70E0 ldi r23,hi8(cmd_pass_P)
  2341. 2295 00de CE01 movw r24,r28
  2342. 2296 00e0 0E94 0000 call strcmp_P
  2343. 2297 00e4 892B or r24,r25
  2344. 2298 00e6 01F4 brne .L348
  2345. 2299 00e8 B701 movw r22,r14
  2346. 2300 00ea C801 movw r24,r16
  2347. 2301 /* epilogue start */
  2348. 2302 00ec DF91 pop r29
  2349. 2303 00ee CF91 pop r28
  2350. 2304 00f0 1F91 pop r17
  2351. 2305 00f2 0F91 pop r16
  2352. 2306 00f4 FF90 pop r15
  2353. 2307 00f6 EF90 pop r14
  2354. 2308 00f8 DF90 pop r13
  2355. 2309 00fa CF90 pop r12
  2356. 2310 00fc 0C94 0000 jmp NutFtpProcessPass
  2357. 2311 .L348:
  2358. 2312 0100 60E0 ldi r22,lo8(cmd_noop_P)
  2359. 2313 0102 70E0 ldi r23,hi8(cmd_noop_P)
  2360. 2314 0104 CE01 movw r24,r28
  2361. 2315 0106 0E94 0000 call strcmp_P
  2362. 2316 010a 892B or r24,r25
  2363. 2317 010c 01F4 brne .L349
  2364. 2318 010e 68EC ldi r22,lo8(-56)
  2365. 2319 0110 70E0 ldi r23,0
  2366. 2320 0112 C801 movw r24,r16
  2367. 2321 0114 0E94 0000 call NutFtpRespondOk
  2368. 2322 0118 C0E0 ldi r28,0
  2369. 2323 011a D0E0 ldi r29,0
  2370. 2324 011c 00C0 rjmp .L408
  2371. 2325 .L349:
  2372. 2326 011e F801 movw r30,r16
  2373. 2327 0120 8685 ldd r24,Z+14
  2374. 2328 0122 8230 cpi r24,lo8(2)
  2375. 2329 0124 00F4 brsh .L350
  2376. 2330 0126 62E1 ldi r22,lo8(18)
  2377. 2331 0128 72E0 ldi r23,lo8(2)
  2378. 2332 012a 00C0 rjmp .L410
  2379. GAS LISTING /tmp/cc8KBhV9.s page 42
  2380. 2333 .L350:
  2381. 2334 012c 60E0 ldi r22,lo8(cmd_pasv_P)
  2382. 2335 012e 70E0 ldi r23,hi8(cmd_pasv_P)
  2383. 2336 0130 CE01 movw r24,r28
  2384. 2337 0132 0E94 0000 call strcmp_P
  2385. 2338 0136 892B or r24,r25
  2386. 2339 0138 01F4 brne .L351
  2387. 2340 013a C801 movw r24,r16
  2388. 2341 /* epilogue start */
  2389. 2342 013c DF91 pop r29
  2390. 2343 013e CF91 pop r28
  2391. 2344 0140 1F91 pop r17
  2392. 2345 0142 0F91 pop r16
  2393. 2346 0144 FF90 pop r15
  2394. 2347 0146 EF90 pop r14
  2395. 2348 0148 DF90 pop r13
  2396. 2349 014a CF90 pop r12
  2397. 2350 014c 0C94 0000 jmp NutFtpProcessPassiv
  2398. 2351 .L351:
  2399. 2352 0150 60E0 ldi r22,lo8(cmd_port_P)
  2400. 2353 0152 70E0 ldi r23,hi8(cmd_port_P)
  2401. 2354 0154 CE01 movw r24,r28
  2402. 2355 0156 0E94 0000 call strcmp_P
  2403. 2356 015a 892B or r24,r25
  2404. 2357 015c 01F4 brne .L352
  2405. 2358 015e B701 movw r22,r14
  2406. 2359 0160 C801 movw r24,r16
  2407. 2360 /* epilogue start */
  2408. 2361 0162 DF91 pop r29
  2409. 2362 0164 CF91 pop r28
  2410. 2363 0166 1F91 pop r17
  2411. 2364 0168 0F91 pop r16
  2412. 2365 016a FF90 pop r15
  2413. 2366 016c EF90 pop r14
  2414. 2367 016e DF90 pop r13
  2415. 2368 0170 CF90 pop r12
  2416. 2369 0172 0C94 0000 jmp NutFtpProcessPort
  2417. 2370 .L352:
  2418. 2371 0176 60E0 ldi r22,lo8(cmd_pwd_P)
  2419. 2372 0178 70E0 ldi r23,hi8(cmd_pwd_P)
  2420. 2373 017a CE01 movw r24,r28
  2421. 2374 017c 0E94 0000 call strcmp_P
  2422. 2375 0180 892B or r24,r25
  2423. 2376 0182 01F0 breq .L353
  2424. 2377 0184 60E0 ldi r22,lo8(cmd_xpwd_P)
  2425. 2378 0186 70E0 ldi r23,hi8(cmd_xpwd_P)
  2426. 2379 0188 CE01 movw r24,r28
  2427. 2380 018a 0E94 0000 call strcmp_P
  2428. 2381 018e 892B or r24,r25
  2429. 2382 0190 01F4 brne .L354
  2430. 2383 .L353:
  2431. 2384 0192 C801 movw r24,r16
  2432. 2385 /* epilogue start */
  2433. 2386 0194 DF91 pop r29
  2434. 2387 0196 CF91 pop r28
  2435. 2388 0198 1F91 pop r17
  2436. 2389 019a 0F91 pop r16
  2437. GAS LISTING /tmp/cc8KBhV9.s page 43
  2438. 2390 019c FF90 pop r15
  2439. 2391 019e EF90 pop r14
  2440. 2392 01a0 DF90 pop r13
  2441. 2393 01a2 CF90 pop r12
  2442. 2394 01a4 0C94 0000 jmp NutFtpProcessPwd
  2443. 2395 .L354:
  2444. 2396 01a8 60E0 ldi r22,lo8(cmd_syst_P)
  2445. 2397 01aa 70E0 ldi r23,hi8(cmd_syst_P)
  2446. 2398 01ac CE01 movw r24,r28
  2447. 2399 01ae 0E94 0000 call strcmp_P
  2448. 2400 01b2 892B or r24,r25
  2449. 2401 01b4 01F4 brne .L355
  2450. 2402 01b6 C801 movw r24,r16
  2451. 2403 /* epilogue start */
  2452. 2404 01b8 DF91 pop r29
  2453. 2405 01ba CF91 pop r28
  2454. 2406 01bc 1F91 pop r17
  2455. 2407 01be 0F91 pop r16
  2456. 2408 01c0 FF90 pop r15
  2457. 2409 01c2 EF90 pop r14
  2458. 2410 01c4 DF90 pop r13
  2459. 2411 01c6 CF90 pop r12
  2460. 2412 01c8 0C94 0000 jmp NutFtpProcessSystem
  2461. 2413 .L355:
  2462. 2414 01cc 60E0 ldi r22,lo8(cmd_type_P)
  2463. 2415 01ce 70E0 ldi r23,hi8(cmd_type_P)
  2464. 2416 01d0 CE01 movw r24,r28
  2465. 2417 01d2 0E94 0000 call strcmp_P
  2466. 2418 01d6 892B or r24,r25
  2467. 2419 01d8 01F4 brne .L356
  2468. 2420 01da B701 movw r22,r14
  2469. 2421 01dc C801 movw r24,r16
  2470. 2422 /* epilogue start */
  2471. 2423 01de DF91 pop r29
  2472. 2424 01e0 CF91 pop r28
  2473. 2425 01e2 1F91 pop r17
  2474. 2426 01e4 0F91 pop r16
  2475. 2427 01e6 FF90 pop r15
  2476. 2428 01e8 EF90 pop r14
  2477. 2429 01ea DF90 pop r13
  2478. 2430 01ec CF90 pop r12
  2479. 2431 01ee 0C94 0000 jmp NutFtpProcessType
  2480. 2432 .L356:
  2481. 2433 01f2 F701 movw r30,r14
  2482. 2434 01f4 8081 ld r24,Z
  2483. 2435 01f6 8D32 cpi r24,lo8(45)
  2484. 2436 01f8 01F4 brne .L376
  2485. 2437 01fa 61E6 ldi r22,lo8(97)
  2486. 2438 01fc 70E0 ldi r23,0
  2487. 2439 01fe C701 movw r24,r14
  2488. 2440 0200 0E94 0000 call strchr
  2489. 2441 0204 21E0 ldi r18,lo8(1)
  2490. 2442 0206 D12C mov r13,__zero_reg__
  2491. 2443 0208 892B or r24,r25
  2492. 2444 020a 01F4 brne .L358
  2493. 2445 020c 20E0 ldi r18,0
  2494. 2446 .L358:
  2495. GAS LISTING /tmp/cc8KBhV9.s page 44
  2496. 2447 020e C22E mov r12,r18
  2497. 2448 0210 60E2 ldi r22,lo8(32)
  2498. 2449 0212 70E0 ldi r23,0
  2499. 2450 0214 C701 movw r24,r14
  2500. 2451 0216 0E94 0000 call strchr
  2501. 2452 021a 0097 sbiw r24,0
  2502. 2453 021c 01F0 breq .L378
  2503. 2454 021e FC01 movw r30,r24
  2504. 2455 0220 2081 ld r18,Z
  2505. 2456 0222 2223 tst r18
  2506. 2457 0224 01F0 breq .L378
  2507. 2458 0226 7C01 movw r14,r24
  2508. 2459 0228 FFEF ldi r31,-1
  2509. 2460 022a EF1A sub r14,r31
  2510. 2461 022c FF0A sbc r15,r31
  2511. 2462 022e 00C0 rjmp .L357
  2512. 2463 .L376:
  2513. 2464 0230 C12C mov r12,__zero_reg__
  2514. 2465 0232 D12C mov r13,__zero_reg__
  2515. 2466 0234 00C0 rjmp .L357
  2516. 2467 .L378:
  2517. 2468 0236 80E0 ldi r24,lo8(.LC5)
  2518. 2469 0238 E82E mov r14,r24
  2519. 2470 023a 80E0 ldi r24,hi8(.LC5)
  2520. 2471 023c F82E mov r15,r24
  2521. 2472 .L357:
  2522. 2473 023e F801 movw r30,r16
  2523. 2474 0240 6481 ldd r22,Z+4
  2524. 2475 0242 7581 ldd r23,Z+5
  2525. 2476 0244 A701 movw r20,r14
  2526. 2477 0246 8091 0000 lds r24,ftp_root
  2527. 2478 024a 9091 0000 lds r25,ftp_root+1
  2528. 2479 024e 0E94 0000 call CreateFullPathName
  2529. 2480 0252 7C01 movw r14,r24
  2530. 2481 0254 892B or r24,r25
  2531. 2482 0256 01F4 brne .L359
  2532. 2483 0258 63EC ldi r22,lo8(-61)
  2533. 2484 025a 71E0 ldi r23,lo8(1)
  2534. 2485 .L410:
  2535. 2486 025c C801 movw r24,r16
  2536. 2487 /* epilogue start */
  2537. 2488 025e DF91 pop r29
  2538. 2489 0260 CF91 pop r28
  2539. 2490 0262 1F91 pop r17
  2540. 2491 0264 0F91 pop r16
  2541. 2492 0266 FF90 pop r15
  2542. 2493 0268 EF90 pop r14
  2543. 2494 026a DF90 pop r13
  2544. 2495 026c CF90 pop r12
  2545. 2496 026e 0C94 0000 jmp NutFtpRespondBad
  2546. 2497 .L359:
  2547. 2498 0272 60E0 ldi r22,lo8(cmd_cwd_P)
  2548. 2499 0274 70E0 ldi r23,hi8(cmd_cwd_P)
  2549. 2500 0276 CE01 movw r24,r28
  2550. 2501 0278 0E94 0000 call strcmp_P
  2551. 2502 027c 892B or r24,r25
  2552. 2503 027e 01F4 brne .L360
  2553. GAS LISTING /tmp/cc8KBhV9.s page 45
  2554. 2504 0280 B701 movw r22,r14
  2555. 2505 0282 C801 movw r24,r16
  2556. 2506 0284 0E94 0000 call NutFtpProcessCwd
  2557. 2507 0288 00C0 rjmp .L409
  2558. 2508 .L360:
  2559. 2509 028a 60E0 ldi r22,lo8(cmd_dele_P)
  2560. 2510 028c 70E0 ldi r23,hi8(cmd_dele_P)
  2561. 2511 028e CE01 movw r24,r28
  2562. 2512 0290 0E94 0000 call strcmp_P
  2563. 2513 0294 892B or r24,r25
  2564. 2514 0296 01F4 brne .L362
  2565. 2515 0298 B701 movw r22,r14
  2566. 2516 029a C801 movw r24,r16
  2567. 2517 029c 0E94 0000 call NutFtpProcessDelete
  2568. 2518 02a0 00C0 rjmp .L409
  2569. 2519 .L362:
  2570. 2520 02a2 60E0 ldi r22,lo8(cmd_list_P)
  2571. 2521 02a4 70E0 ldi r23,hi8(cmd_list_P)
  2572. 2522 02a6 CE01 movw r24,r28
  2573. 2523 02a8 0E94 0000 call strcmp_P
  2574. 2524 02ac 892B or r24,r25
  2575. 2525 02ae 01F0 breq .L363
  2576. 2526 02b0 60E0 ldi r22,lo8(cmd_nlst_P)
  2577. 2527 02b2 70E0 ldi r23,hi8(cmd_nlst_P)
  2578. 2528 02b4 CE01 movw r24,r28
  2579. 2529 02b6 0E94 0000 call strcmp_P
  2580. 2530 02ba 892B or r24,r25
  2581. 2531 02bc 01F4 brne .L364
  2582. 2532 .L363:
  2583. 2533 02be A601 movw r20,r12
  2584. 2534 02c0 B701 movw r22,r14
  2585. 2535 02c2 C801 movw r24,r16
  2586. 2536 02c4 0E94 0000 call NutFtpTransferDirectoryOptions
  2587. 2537 02c8 00C0 rjmp .L409
  2588. 2538 .L364:
  2589. 2539 02ca 60E0 ldi r22,lo8(cmd_mkd_P)
  2590. 2540 02cc 70E0 ldi r23,hi8(cmd_mkd_P)
  2591. 2541 02ce CE01 movw r24,r28
  2592. 2542 02d0 0E94 0000 call strcmp_P
  2593. 2543 02d4 892B or r24,r25
  2594. 2544 02d6 01F0 breq .L365
  2595. 2545 02d8 60E0 ldi r22,lo8(cmd_xmkd_P)
  2596. 2546 02da 70E0 ldi r23,hi8(cmd_xmkd_P)
  2597. 2547 02dc CE01 movw r24,r28
  2598. 2548 02de 0E94 0000 call strcmp_P
  2599. 2549 02e2 892B or r24,r25
  2600. 2550 02e4 01F4 brne .L366
  2601. 2551 .L365:
  2602. 2552 02e6 B701 movw r22,r14
  2603. 2553 02e8 C801 movw r24,r16
  2604. 2554 02ea 0E94 0000 call NutFtpProcessMkd
  2605. 2555 02ee 00C0 rjmp .L409
  2606. 2556 .L366:
  2607. 2557 02f0 60E0 ldi r22,lo8(cmd_retr_P)
  2608. 2558 02f2 70E0 ldi r23,hi8(cmd_retr_P)
  2609. 2559 02f4 CE01 movw r24,r28
  2610. 2560 02f6 0E94 0000 call strcmp_P
  2611. GAS LISTING /tmp/cc8KBhV9.s page 46
  2612. 2561 02fa 892B or r24,r25
  2613. 2562 02fc 01F4 brne .L367
  2614. 2563 02fe 41E0 ldi r20,lo8(1)
  2615. 2564 0300 50E0 ldi r21,0
  2616. 2565 0302 00C0 rjmp .L411
  2617. 2566 .L367:
  2618. 2567 0304 60E0 ldi r22,lo8(cmd_rmd_P)
  2619. 2568 0306 70E0 ldi r23,hi8(cmd_rmd_P)
  2620. 2569 0308 CE01 movw r24,r28
  2621. 2570 030a 0E94 0000 call strcmp_P
  2622. 2571 030e 892B or r24,r25
  2623. 2572 0310 01F0 breq .L368
  2624. 2573 0312 60E0 ldi r22,lo8(cmd_xrmd_P)
  2625. 2574 0314 70E0 ldi r23,hi8(cmd_xrmd_P)
  2626. 2575 0316 CE01 movw r24,r28
  2627. 2576 0318 0E94 0000 call strcmp_P
  2628. 2577 031c 892B or r24,r25
  2629. 2578 031e 01F4 brne .L369
  2630. 2579 .L368:
  2631. 2580 0320 B701 movw r22,r14
  2632. 2581 0322 C801 movw r24,r16
  2633. 2582 0324 0E94 0000 call NutFtpProcessRmd
  2634. 2583 0328 00C0 rjmp .L409
  2635. 2584 .L369:
  2636. 2585 032a 60E0 ldi r22,lo8(cmd_stor_P)
  2637. 2586 032c 70E0 ldi r23,hi8(cmd_stor_P)
  2638. 2587 032e CE01 movw r24,r28
  2639. 2588 0330 0E94 0000 call strcmp_P
  2640. 2589 0334 892B or r24,r25
  2641. 2590 0336 01F4 brne .L370
  2642. 2591 0338 40E0 ldi r20,0
  2643. 2592 033a 50E0 ldi r21,0
  2644. 2593 .L411:
  2645. 2594 033c B701 movw r22,r14
  2646. 2595 033e C801 movw r24,r16
  2647. 2596 0340 0E94 0000 call NutFtpTransferFile
  2648. 2597 0344 00C0 rjmp .L409
  2649. 2598 .L370:
  2650. 2599 0346 60E0 ldi r22,lo8(cmd_rename1_P)
  2651. 2600 0348 70E0 ldi r23,hi8(cmd_rename1_P)
  2652. 2601 034a CE01 movw r24,r28
  2653. 2602 034c 0E94 0000 call strcmp_P
  2654. 2603 0350 892B or r24,r25
  2655. 2604 0352 01F4 brne .L371
  2656. 2605 0354 B701 movw r22,r14
  2657. 2606 0356 C801 movw r24,r16
  2658. 2607 0358 0E94 0000 call NutFtpRenamePrepare
  2659. 2608 035c 00C0 rjmp .L409
  2660. 2609 .L371:
  2661. 2610 035e 60E0 ldi r22,lo8(cmd_rename2_P)
  2662. 2611 0360 70E0 ldi r23,hi8(cmd_rename2_P)
  2663. 2612 0362 CE01 movw r24,r28
  2664. 2613 0364 0E94 0000 call strcmp_P
  2665. 2614 0368 892B or r24,r25
  2666. 2615 036a 01F4 brne .L372
  2667. 2616 036c B701 movw r22,r14
  2668. 2617 036e C801 movw r24,r16
  2669. GAS LISTING /tmp/cc8KBhV9.s page 47
  2670. 2618 0370 0E94 0000 call NutFtpRenameAction
  2671. 2619 0374 00C0 rjmp .L409
  2672. 2620 .L372:
  2673. 2621 0376 66EF ldi r22,lo8(-10)
  2674. 2622 0378 71E0 ldi r23,lo8(1)
  2675. 2623 037a C801 movw r24,r16
  2676. 2624 037c 0E94 0000 call NutFtpRespondBad
  2677. 2625 .L409:
  2678. 2626 0380 EC01 movw r28,r24
  2679. 2627 0382 C701 movw r24,r14
  2680. 2628 0384 0E94 0000 call free
  2681. 2629 .L408:
  2682. 2630 0388 CE01 movw r24,r28
  2683. 2631 /* epilogue start */
  2684. 2632 038a DF91 pop r29
  2685. 2633 038c CF91 pop r28
  2686. 2634 038e 1F91 pop r17
  2687. 2635 0390 0F91 pop r16
  2688. 2636 0392 FF90 pop r15
  2689. 2637 0394 EF90 pop r14
  2690. 2638 0396 DF90 pop r13
  2691. 2639 0398 CF90 pop r12
  2692. 2640 039a 0895 ret
  2693. 2641 .size NutFtpProcessRequest, .-NutFtpProcessRequest
  2694. 2642 .section .text.NutFtpServerSession,"ax",@progbits
  2695. 2643 .global NutFtpServerSession
  2696. 2644 .type NutFtpServerSession, @function
  2697. 2645 NutFtpServerSession:
  2698. 2646 0000 4F92 push r4
  2699. 2647 0002 5F92 push r5
  2700. 2648 0004 6F92 push r6
  2701. 2649 0006 7F92 push r7
  2702. 2650 0008 8F92 push r8
  2703. 2651 000a 9F92 push r9
  2704. 2652 000c AF92 push r10
  2705. 2653 000e BF92 push r11
  2706. 2654 0010 CF92 push r12
  2707. 2655 0012 DF92 push r13
  2708. 2656 0014 EF92 push r14
  2709. 2657 0016 FF92 push r15
  2710. 2658 0018 0F93 push r16
  2711. 2659 001a 1F93 push r17
  2712. 2660 001c CF93 push r28
  2713. 2661 001e DF93 push r29
  2714. 2662 0020 00D0 rcall .
  2715. 2663 0022 1F92 push __zero_reg__
  2716. 2664 0024 CDB7 in r28,__SP_L__
  2717. 2665 0026 DEB7 in r29,__SP_H__
  2718. 2666 /* prologue: function */
  2719. 2667 /* frame size = 4 */
  2720. 2668 /* stack size = 20 */
  2721. 2669 .L__stack_usage = 20
  2722. 2670 0028 8C01 movw r16,r24
  2723. 2671 002a 8091 0000 lds r24,ftp_root
  2724. 2672 002e 9091 0000 lds r25,ftp_root+1
  2725. 2673 0032 0E94 0000 call NutRegisterFtpRoot
  2726. 2674 0036 892B or r24,r25
  2727. GAS LISTING /tmp/cc8KBhV9.s page 48
  2728. 2675 0038 01F4 brne .L449
  2729. 2676 003a 80E8 ldi r24,lo8(-128)
  2730. 2677 003c 90E0 ldi r25,0
  2731. 2678 003e 0E94 0000 call malloc
  2732. 2679 0042 7C01 movw r14,r24
  2733. 2680 0044 892B or r24,r25
  2734. 2681 0046 01F0 breq .L449
  2735. 2682 0048 C801 movw r24,r16
  2736. 2683 004a 0E94 0000 call NutFtpOpenSession
  2737. 2684 004e 8C01 movw r16,r24
  2738. 2685 0050 892B or r24,r25
  2739. 2686 0052 01F4 brne .L419
  2740. 2687 0054 C701 movw r24,r14
  2741. 2688 0056 0E94 0000 call free
  2742. 2689 .L449:
  2743. 2690 005a 8FEF ldi r24,lo8(-1)
  2744. 2691 005c 9FEF ldi r25,lo8(-1)
  2745. 2692 005e 00C0 rjmp .L447
  2746. 2693 .L419:
  2747. 2694 0060 CE01 movw r24,r28
  2748. 2695 0062 0196 adiw r24,1
  2749. 2696 0064 0E94 0000 call time
  2750. 2697 0068 CE01 movw r24,r28
  2751. 2698 006a 0196 adiw r24,1
  2752. 2699 006c 0E94 0000 call localtime
  2753. 2700 0070 FC01 movw r30,r24
  2754. 2701 0072 5080 ld r5,Z
  2755. 2702 0074 4180 ldd r4,Z+1
  2756. 2703 0076 7280 ldd r7,Z+2
  2757. 2704 0078 6380 ldd r6,Z+3
  2758. 2705 007a 9480 ldd r9,Z+4
  2759. 2706 007c 8580 ldd r8,Z+5
  2760. 2707 007e B680 ldd r11,Z+6
  2761. 2708 0080 A780 ldd r10,Z+7
  2762. 2709 0082 C084 ldd r12,Z+8
  2763. 2710 0084 D184 ldd r13,Z+9
  2764. 2711 0086 C601 movw r24,r12
  2765. 2712 0088 880F lsl r24
  2766. 2713 008a 991F rol r25
  2767. 2714 008c 8C0D add r24,r12
  2768. 2715 008e 9D1D adc r25,r13
  2769. 2716 0090 9C01 movw r18,r24
  2770. 2717 0092 2050 subi r18,lo8(-(.LC3))
  2771. 2718 0094 3040 sbci r19,hi8(-(.LC3))
  2772. 2719 0096 6901 movw r12,r18
  2773. 2720 0098 0E94 0000 call NutVersionString
  2774. 2721 009c 4F92 push r4
  2775. 2722 009e 5F92 push r5
  2776. 2723 00a0 6F92 push r6
  2777. 2724 00a2 7F92 push r7
  2778. 2725 00a4 8F92 push r8
  2779. 2726 00a6 9F92 push r9
  2780. 2727 00a8 AF92 push r10
  2781. 2728 00aa BF92 push r11
  2782. 2729 00ac DF92 push r13
  2783. 2730 00ae CF92 push r12
  2784. 2731 00b0 9F93 push r25
  2785. GAS LISTING /tmp/cc8KBhV9.s page 49
  2786. 2732 00b2 8F93 push r24
  2787. 2733 00b4 80E0 ldi r24,lo8(rep_banner)
  2788. 2734 00b6 90E0 ldi r25,hi8(rep_banner)
  2789. 2735 00b8 9F93 push r25
  2790. 2736 00ba 8F93 push r24
  2791. 2737 00bc F801 movw r30,r16
  2792. 2738 00be 8381 ldd r24,Z+3
  2793. 2739 00c0 8F93 push r24
  2794. 2740 00c2 8281 ldd r24,Z+2
  2795. 2741 00c4 8F93 push r24
  2796. 2742 00c6 0E94 0000 call fprintf_P
  2797. 2743 00ca 0FB6 in __tmp_reg__,__SREG__
  2798. 2744 00cc F894 cli
  2799. 2745 00ce DEBF out __SP_H__,r29
  2800. 2746 00d0 0FBE out __SREG__,__tmp_reg__
  2801. 2747 00d2 CDBF out __SP_L__,r28
  2802. 2748 .L426:
  2803. 2749 00d4 F801 movw r30,r16
  2804. 2750 00d6 8281 ldd r24,Z+2
  2805. 2751 00d8 9381 ldd r25,Z+3
  2806. 2752 00da 0E94 0000 call fflush
  2807. 2753 00de F801 movw r30,r16
  2808. 2754 00e0 4281 ldd r20,Z+2
  2809. 2755 00e2 5381 ldd r21,Z+3
  2810. 2756 00e4 60E8 ldi r22,lo8(-128)
  2811. 2757 00e6 70E0 ldi r23,0
  2812. 2758 00e8 C701 movw r24,r14
  2813. 2759 00ea 0E94 0000 call fgets
  2814. 2760 00ee 892B or r24,r25
  2815. 2761 00f0 01F4 brne .L420
  2816. 2762 .L423:
  2817. 2763 00f2 CC24 clr r12
  2818. 2764 00f4 CA94 dec r12
  2819. 2765 00f6 DC2C mov r13,r12
  2820. 2766 00f8 00C0 rjmp .L421
  2821. 2767 .L420:
  2822. 2768 00fa F701 movw r30,r14
  2823. 2769 0:
  2824. 2770 00fc 0190 ld __tmp_reg__,Z+
  2825. 2771 00fe 0020 tst __tmp_reg__
  2826. 2772 0100 01F4 brne 0b
  2827. 2773 0102 3297 sbiw r30,2
  2828. 2774 0104 8081 ld r24,Z
  2829. 2775 0106 8A30 cpi r24,lo8(10)
  2830. 2776 0108 01F0 breq .L422
  2831. 2777 010a 8D30 cpi r24,lo8(13)
  2832. 2778 010c 01F0 breq .L422
  2833. 2779 .L439:
  2834. 2780 010e F801 movw r30,r16
  2835. 2781 0110 4281 ldd r20,Z+2
  2836. 2782 0112 5381 ldd r21,Z+3
  2837. 2783 0114 60E8 ldi r22,lo8(-128)
  2838. 2784 0116 70E0 ldi r23,0
  2839. 2785 0118 C701 movw r24,r14
  2840. 2786 011a 0E94 0000 call fgets
  2841. 2787 011e 892B or r24,r25
  2842. 2788 0120 01F0 breq .L423
  2843. GAS LISTING /tmp/cc8KBhV9.s page 50
  2844. 2789 0122 F701 movw r30,r14
  2845. 2790 0:
  2846. 2791 0124 0190 ld __tmp_reg__,Z+
  2847. 2792 0126 0020 tst __tmp_reg__
  2848. 2793 0128 01F4 brne 0b
  2849. 2794 012a 3297 sbiw r30,2
  2850. 2795 012c 8081 ld r24,Z
  2851. 2796 012e 8A30 cpi r24,lo8(10)
  2852. 2797 0130 01F0 breq .L424
  2853. 2798 0132 8D30 cpi r24,lo8(13)
  2854. 2799 0134 01F4 brne .L439
  2855. 2800 0136 00C0 rjmp .L424
  2856. 2801 .L422:
  2857. 2802 0138 B701 movw r22,r14
  2858. 2803 013a C801 movw r24,r16
  2859. 2804 013c 0E94 0000 call NutFtpProcessRequest
  2860. 2805 .L448:
  2861. 2806 0140 6C01 movw r12,r24
  2862. 2807 0142 892B or r24,r25
  2863. 2808 0144 01F0 breq .L426
  2864. 2809 .L421:
  2865. 2810 0146 C801 movw r24,r16
  2866. 2811 0148 0E94 0000 call NutFtpCloseSession
  2867. 2812 014c C701 movw r24,r14
  2868. 2813 014e 0E94 0000 call free
  2869. 2814 0152 C601 movw r24,r12
  2870. 2815 0154 00C0 rjmp .L447
  2871. 2816 .L424:
  2872. 2817 0156 64EF ldi r22,lo8(-12)
  2873. 2818 0158 71E0 ldi r23,lo8(1)
  2874. 2819 015a C801 movw r24,r16
  2875. 2820 015c 0E94 0000 call NutFtpRespondBad
  2876. 2821 0160 00C0 rjmp .L448
  2877. 2822 .L447:
  2878. 2823 /* epilogue start */
  2879. 2824 0162 0F90 pop __tmp_reg__
  2880. 2825 0164 0F90 pop __tmp_reg__
  2881. 2826 0166 0F90 pop __tmp_reg__
  2882. 2827 0168 0F90 pop __tmp_reg__
  2883. 2828 016a DF91 pop r29
  2884. 2829 016c CF91 pop r28
  2885. 2830 016e 1F91 pop r17
  2886. 2831 0170 0F91 pop r16
  2887. 2832 0172 FF90 pop r15
  2888. 2833 0174 EF90 pop r14
  2889. 2834 0176 DF90 pop r13
  2890. 2835 0178 CF90 pop r12
  2891. 2836 017a BF90 pop r11
  2892. 2837 017c AF90 pop r10
  2893. 2838 017e 9F90 pop r9
  2894. 2839 0180 8F90 pop r8
  2895. 2840 0182 7F90 pop r7
  2896. 2841 0184 6F90 pop r6
  2897. 2842 0186 5F90 pop r5
  2898. 2843 0188 4F90 pop r4
  2899. 2844 018a 0895 ret
  2900. 2845 .size NutFtpServerSession, .-NutFtpServerSession
  2901. GAS LISTING /tmp/cc8KBhV9.s page 51
  2902. 2846 .section .progmem.data,"a",@progbits
  2903. 2847 .type unixtype_P.3211, @object
  2904. 2848 .size unixtype_P.3211, 20
  2905. 2849 unixtype_P.3211:
  2906. 2850 0000 3231 3520 .string "215 UNIX Type: L8\r\n"
  2907. 2850 554E 4958
  2908. 2850 2054 7970
  2909. 2850 653A 204C
  2910. 2850 380D 0A00
  2911. 2851 .type pwdanswer_P.3203, @object
  2912. 2852 .size pwdanswer_P.3203, 11
  2913. 2853 pwdanswer_P.3203:
  2914. 2854 0014 3235 3720 .string "257 \"%s\"\r\n"
  2915. 2854 2225 7322
  2916. 2854 0D0A 00
  2917. 2855 .type passiveprint_P.3193, @object
  2918. 2856 .size passiveprint_P.3193, 35
  2919. 2857 passiveprint_P.3193:
  2920. 2858 001f 3232 3720 .string "227 Passive (%u,%u,%u,%u,%u,%u).\r\n"
  2921. 2858 5061 7373
  2922. 2858 6976 6520
  2923. 2858 2825 752C
  2924. 2858 2575 2C25
  2925. 2859 .type timeattribute_P.3153, @object
  2926. 2860 .size timeattribute_P.3153, 11
  2927. 2861 timeattribute_P.3153:
  2928. 2862 0042 2530 3275 .string "%02u:%02u "
  2929. 2862 3A25 3032
  2930. 2862 7520 00
  2931. 2863 .type dateattribute_P.3152, @object
  2932. 2864 .size dateattribute_P.3152, 9
  2933. 2865 dateattribute_P.3152:
  2934. 2866 004d 252E 3373 .string "%.3s %u "
  2935. 2866 2025 7520
  2936. 2866 00
  2937. 2867 .type fileattributes_P.3151, @object
  2938. 2868 .size fileattributes_P.3151, 23
  2939. 2869 fileattributes_P.3151:
  2940. 2870 0056 7277 2D72 .string "rw-rw-rw- 1 0 0 %6lu "
  2941. 2870 772D 7277
  2942. 2870 2D20 2031
  2943. 2870 2030 2030
  2944. 2870 2025 366C
  2945. 2871 .type amode_P.3066, @object
  2946. 2872 .size amode_P.3066, 9
  2947. 2873 amode_P.3066:
  2948. 2874 006d 4153 4349 .string "ASCII.\r\n"
  2949. 2874 492E 0D0A
  2950. 2874 00
  2951. 2875 .type bmode_P.3067, @object
  2952. 2876 .size bmode_P.3067, 10
  2953. 2877 bmode_P.3067:
  2954. 2878 0076 4249 4E41 .string "BINARY.\r\n"
  2955. 2878 5259 2E0D
  2956. 2878 0A00
  2957. 2879 .type intro_P.3065, @object
  2958. 2880 .size intro_P.3065, 13
  2959. GAS LISTING /tmp/cc8KBhV9.s page 52
  2960. 2881 intro_P.3065:
  2961. 2882 0080 3135 3020 .string "150 Opening "
  2962. 2882 4F70 656E
  2963. 2882 696E 6720
  2964. 2882 00
  2965. 2883 .type fmt_P.3060, @object
  2966. 2884 .size fmt_P.3060, 12
  2967. 2885 fmt_P.3060:
  2968. 2886 008d 2564 2046 .string "%d Failed\r\n"
  2969. 2886 6169 6C65
  2970. 2886 640D 0A00
  2971. 2887 .type fmt_P.3055, @object
  2972. 2888 .size fmt_P.3055, 8
  2973. 2889 fmt_P.3055:
  2974. 2890 0099 2564 204F .string "%d OK\r\n"
  2975. 2890 4B0D 0A00
  2976. 2891 .type rep_banner, @object
  2977. 2892 .size rep_banner, 52
  2978. 2893 rep_banner:
  2979. 2894 00a1 3232 3020 .string "220 Nut/OS FTP %s ready at %.3s%3d %02d:%02d:%02d\r\n"
  2980. 2894 4E75 742F
  2981. 2894 4F53 2046
  2982. 2894 5450 2025
  2983. 2894 7320 7265
  2984. 2895 .type cmd_rename2_P, @object
  2985. 2896 .size cmd_rename2_P, 5
  2986. 2897 cmd_rename2_P:
  2987. 2898 00d5 524E 544F .string "RNTO"
  2988. 2898 00
  2989. 2899 .type cmd_rename1_P, @object
  2990. 2900 .size cmd_rename1_P, 5
  2991. 2901 cmd_rename1_P:
  2992. 2902 00da 524E 4652 .string "RNFR"
  2993. 2902 00
  2994. 2903 .type cmd_user_P, @object
  2995. 2904 .size cmd_user_P, 5
  2996. 2905 cmd_user_P:
  2997. 2906 00df 5553 4552 .string "USER"
  2998. 2906 00
  2999. 2907 .type cmd_type_P, @object
  3000. 2908 .size cmd_type_P, 5
  3001. 2909 cmd_type_P:
  3002. 2910 00e4 5459 5045 .string "TYPE"
  3003. 2910 00
  3004. 2911 .type cmd_syst_P, @object
  3005. 2912 .size cmd_syst_P, 5
  3006. 2913 cmd_syst_P:
  3007. 2914 00e9 5359 5354 .string "SYST"
  3008. 2914 00
  3009. 2915 .type cmd_stor_P, @object
  3010. 2916 .size cmd_stor_P, 5
  3011. 2917 cmd_stor_P:
  3012. 2918 00ee 5354 4F52 .string "STOR"
  3013. 2918 00
  3014. 2919 .type cmd_xrmd_P, @object
  3015. 2920 .size cmd_xrmd_P, 5
  3016. 2921 cmd_xrmd_P:
  3017. GAS LISTING /tmp/cc8KBhV9.s page 53
  3018. 2922 00f3 5852 4D44 .string "XRMD"
  3019. 2922 00
  3020. 2923 .type cmd_rmd_P, @object
  3021. 2924 .size cmd_rmd_P, 4
  3022. 2925 cmd_rmd_P:
  3023. 2926 00f8 524D 4400 .string "RMD"
  3024. 2927 .type cmd_retr_P, @object
  3025. 2928 .size cmd_retr_P, 5
  3026. 2929 cmd_retr_P:
  3027. 2930 00fc 5245 5452 .string "RETR"
  3028. 2930 00
  3029. 2931 .type cmd_quit_P, @object
  3030. 2932 .size cmd_quit_P, 5
  3031. 2933 cmd_quit_P:
  3032. 2934 0101 5155 4954 .string "QUIT"
  3033. 2934 00
  3034. 2935 .type cmd_xpwd_P, @object
  3035. 2936 .size cmd_xpwd_P, 5
  3036. 2937 cmd_xpwd_P:
  3037. 2938 0106 5850 5744 .string "XPWD"
  3038. 2938 00
  3039. 2939 .type cmd_pwd_P, @object
  3040. 2940 .size cmd_pwd_P, 4
  3041. 2941 cmd_pwd_P:
  3042. 2942 010b 5057 4400 .string "PWD"
  3043. 2943 .type cmd_port_P, @object
  3044. 2944 .size cmd_port_P, 5
  3045. 2945 cmd_port_P:
  3046. 2946 010f 504F 5254 .string "PORT"
  3047. 2946 00
  3048. 2947 .type cmd_pasv_P, @object
  3049. 2948 .size cmd_pasv_P, 5
  3050. 2949 cmd_pasv_P:
  3051. 2950 0114 5041 5356 .string "PASV"
  3052. 2950 00
  3053. 2951 .type cmd_pass_P, @object
  3054. 2952 .size cmd_pass_P, 5
  3055. 2953 cmd_pass_P:
  3056. 2954 0119 5041 5353 .string "PASS"
  3057. 2954 00
  3058. 2955 .type cmd_noop_P, @object
  3059. 2956 .size cmd_noop_P, 5
  3060. 2957 cmd_noop_P:
  3061. 2958 011e 4E4F 4F50 .string "NOOP"
  3062. 2958 00
  3063. 2959 .type cmd_nlst_P, @object
  3064. 2960 .size cmd_nlst_P, 5
  3065. 2961 cmd_nlst_P:
  3066. 2962 0123 4E4C 5354 .string "NLST"
  3067. 2962 00
  3068. 2963 .type cmd_xmkd_P, @object
  3069. 2964 .size cmd_xmkd_P, 5
  3070. 2965 cmd_xmkd_P:
  3071. 2966 0128 584D 4B44 .string "XMKD"
  3072. 2966 00
  3073. 2967 .type cmd_mkd_P, @object
  3074. 2968 .size cmd_mkd_P, 4
  3075. GAS LISTING /tmp/cc8KBhV9.s page 54
  3076. 2969 cmd_mkd_P:
  3077. 2970 012d 4D4B 4400 .string "MKD"
  3078. 2971 .type cmd_list_P, @object
  3079. 2972 .size cmd_list_P, 5
  3080. 2973 cmd_list_P:
  3081. 2974 0131 4C49 5354 .string "LIST"
  3082. 2974 00
  3083. 2975 .type cmd_dele_P, @object
  3084. 2976 .size cmd_dele_P, 5
  3085. 2977 cmd_dele_P:
  3086. 2978 0136 4445 4C45 .string "DELE"
  3087. 2978 00
  3088. 2979 .type cmd_cwd_P, @object
  3089. 2980 .size cmd_cwd_P, 4
  3090. 2981 cmd_cwd_P:
  3091. 2982 013b 4357 4400 .string "CWD"
  3092. 2983 .local ftp_pass
  3093. 2984 .comm ftp_pass,2,1
  3094. 2985 .local ftp_user
  3095. 2986 .comm ftp_user,2,1
  3096. 2987 .local ftp_root
  3097. 2988 .comm ftp_root,2,1
  3098. 2989 .ident "GCC: (GNU) 5.3.0"
  3099. 2990 .global __do_copy_data
  3100. 2991 .global __do_clear_bss
  3101. GAS LISTING /tmp/cc8KBhV9.s page 55
  3102. DEFINED SYMBOLS
  3103. *ABS*:0000000000000000 ftpd.c
  3104. /tmp/cc8KBhV9.s:2 *ABS*:000000000000003e __SP_H__
  3105. /tmp/cc8KBhV9.s:3 *ABS*:000000000000003d __SP_L__
  3106. /tmp/cc8KBhV9.s:4 *ABS*:000000000000003f __SREG__
  3107. /tmp/cc8KBhV9.s:5 *ABS*:000000000000003b __RAMPZ__
  3108. /tmp/cc8KBhV9.s:6 *ABS*:0000000000000000 __tmp_reg__
  3109. /tmp/cc8KBhV9.s:7 *ABS*:0000000000000001 __zero_reg__
  3110. /tmp/cc8KBhV9.s:11 .text.NutFtpRespondOk:0000000000000000 NutFtpRespondOk
  3111. /tmp/cc8KBhV9.s:2889 .progmem.data:0000000000000099 fmt_P.3055
  3112. /tmp/cc8KBhV9.s:49 .text.NutFtpRespondBad:0000000000000000 NutFtpRespondBad
  3113. /tmp/cc8KBhV9.s:2885 .progmem.data:000000000000008d fmt_P.3060
  3114. /tmp/cc8KBhV9.s:87 .text.NutFtpSendMode:0000000000000000 NutFtpSendMode
  3115. /tmp/cc8KBhV9.s:2881 .progmem.data:0000000000000080 intro_P.3065
  3116. /tmp/cc8KBhV9.s:2873 .progmem.data:000000000000006d amode_P.3066
  3117. /tmp/cc8KBhV9.s:2877 .progmem.data:0000000000000076 bmode_P.3067
  3118. /tmp/cc8KBhV9.s:130 .text.CreateFullPathName:0000000000000000 CreateFullPathName
  3119. /tmp/cc8KBhV9.s:409 .text.NutFtpDataConnect:0000000000000000 NutFtpDataConnect
  3120. /tmp/cc8KBhV9.s:511 .text.NutRegisterFtpRoot:0000000000000000 NutRegisterFtpRoot
  3121. /tmp/cc8KBhV9.s:2986 .bss:0000000000000004 ftp_root
  3122. /tmp/cc8KBhV9.s:615 .text.NutRegisterFtpUser:0000000000000000 NutRegisterFtpUser
  3123. /tmp/cc8KBhV9.s:2984 .bss:0000000000000002 ftp_user
  3124. .bss:0000000000000000 ftp_pass
  3125. /tmp/cc8KBhV9.s:699 .text.NutFtpOpenSession:0000000000000000 NutFtpOpenSession
  3126. /tmp/cc8KBhV9.s:773 .text.NutFtpCloseSession:0000000000000000 NutFtpCloseSession
  3127. /tmp/cc8KBhV9.s:815 .text.NutFtpProcessCwd:0000000000000000 NutFtpProcessCwd
  3128. /tmp/cc8KBhV9.s:925 .text.NutFtpProcessDelete:0000000000000000 NutFtpProcessDelete
  3129. /tmp/cc8KBhV9.s:956 .text.NutFtpTransferFile:0000000000000000 NutFtpTransferFile
  3130. /tmp/cc8KBhV9.s:1239 .text.NutFtpTransferDirectoryOptions:0000000000000000 NutFtpTransferDirectoryOptions
  3131. /tmp/cc8KBhV9.s:2869 .progmem.data:0000000000000056 fileattributes_P.3151
  3132. /tmp/cc8KBhV9.s:2865 .progmem.data:000000000000004d dateattribute_P.3152
  3133. /tmp/cc8KBhV9.s:2861 .progmem.data:0000000000000042 timeattribute_P.3153
  3134. /tmp/cc8KBhV9.s:1555 .text.NutFtpTransferDirectory:0000000000000000 NutFtpTransferDirectory
  3135. /tmp/cc8KBhV9.s:1567 .text.NutFtpProcessMkd:0000000000000000 NutFtpProcessMkd
  3136. /tmp/cc8KBhV9.s:1600 .text.NutFtpRenamePrepare:0000000000000000 NutFtpRenamePrepare
  3137. /tmp/cc8KBhV9.s:1682 .text.NutFtpRenameAction:0000000000000000 NutFtpRenameAction
  3138. /tmp/cc8KBhV9.s:1740 .text.NutFtpProcessPass:0000000000000000 NutFtpProcessPass
  3139. /tmp/cc8KBhV9.s:1785 .text.NutFtpProcessPassiv:0000000000000000 NutFtpProcessPassiv
  3140. /tmp/cc8KBhV9.s:2857 .progmem.data:000000000000001f passiveprint_P.3193
  3141. /tmp/cc8KBhV9.s:1848 .text.NutFtpProcessPort:0000000000000000 NutFtpProcessPort
  3142. /tmp/cc8KBhV9.s:2005 .text.NutFtpProcessPwd:0000000000000000 NutFtpProcessPwd
  3143. /tmp/cc8KBhV9.s:2853 .progmem.data:0000000000000014 pwdanswer_P.3203
  3144. /tmp/cc8KBhV9.s:2037 .text.NutFtpProcessRmd:0000000000000000 NutFtpProcessRmd
  3145. /tmp/cc8KBhV9.s:2068 .text.NutFtpProcessSystem:0000000000000000 NutFtpProcessSystem
  3146. /tmp/cc8KBhV9.s:2849 .progmem.data:0000000000000000 unixtype_P.3211
  3147. /tmp/cc8KBhV9.s:2086 .text.NutFtpProcessType:0000000000000000 NutFtpProcessType
  3148. /tmp/cc8KBhV9.s:2109 .text.NutFtpProcessUser:0000000000000000 NutFtpProcessUser
  3149. /tmp/cc8KBhV9.s:2170 .text.NutFtpProcessRequest:0000000000000000 NutFtpProcessRequest
  3150. /tmp/cc8KBhV9.s:2897 .progmem.data:00000000000000d5 cmd_rename2_P
  3151. /tmp/cc8KBhV9.s:2933 .progmem.data:0000000000000101 cmd_quit_P
  3152. /tmp/cc8KBhV9.s:2905 .progmem.data:00000000000000df cmd_user_P
  3153. /tmp/cc8KBhV9.s:2953 .progmem.data:0000000000000119 cmd_pass_P
  3154. /tmp/cc8KBhV9.s:2957 .progmem.data:000000000000011e cmd_noop_P
  3155. /tmp/cc8KBhV9.s:2949 .progmem.data:0000000000000114 cmd_pasv_P
  3156. /tmp/cc8KBhV9.s:2945 .progmem.data:000000000000010f cmd_port_P
  3157. /tmp/cc8KBhV9.s:2941 .progmem.data:000000000000010b cmd_pwd_P
  3158. /tmp/cc8KBhV9.s:2937 .progmem.data:0000000000000106 cmd_xpwd_P
  3159. GAS LISTING /tmp/cc8KBhV9.s page 56
  3160. /tmp/cc8KBhV9.s:2913 .progmem.data:00000000000000e9 cmd_syst_P
  3161. /tmp/cc8KBhV9.s:2909 .progmem.data:00000000000000e4 cmd_type_P
  3162. /tmp/cc8KBhV9.s:2981 .progmem.data:000000000000013b cmd_cwd_P
  3163. /tmp/cc8KBhV9.s:2977 .progmem.data:0000000000000136 cmd_dele_P
  3164. /tmp/cc8KBhV9.s:2973 .progmem.data:0000000000000131 cmd_list_P
  3165. /tmp/cc8KBhV9.s:2961 .progmem.data:0000000000000123 cmd_nlst_P
  3166. /tmp/cc8KBhV9.s:2969 .progmem.data:000000000000012d cmd_mkd_P
  3167. /tmp/cc8KBhV9.s:2965 .progmem.data:0000000000000128 cmd_xmkd_P
  3168. /tmp/cc8KBhV9.s:2929 .progmem.data:00000000000000fc cmd_retr_P
  3169. /tmp/cc8KBhV9.s:2925 .progmem.data:00000000000000f8 cmd_rmd_P
  3170. /tmp/cc8KBhV9.s:2921 .progmem.data:00000000000000f3 cmd_xrmd_P
  3171. /tmp/cc8KBhV9.s:2917 .progmem.data:00000000000000ee cmd_stor_P
  3172. /tmp/cc8KBhV9.s:2901 .progmem.data:00000000000000da cmd_rename1_P
  3173. /tmp/cc8KBhV9.s:2645 .text.NutFtpServerSession:0000000000000000 NutFtpServerSession
  3174. /tmp/cc8KBhV9.s:2893 .progmem.data:00000000000000a1 rep_banner
  3175. UNDEFINED SYMBOLS
  3176. fprintf_P
  3177. fflush
  3178. fputs_P
  3179. malloc
  3180. strcpy
  3181. NutTcpCreateSocket
  3182. NutTcpSetSockOpt
  3183. NutTcpGetSockOpt
  3184. NutTcpAccept
  3185. NutTcpConnect
  3186. NutTcpCloseSocket
  3187. free
  3188. strchr
  3189. strdup
  3190. _fdopen
  3191. fclose
  3192. strcmp
  3193. stat
  3194. unlink
  3195. _open
  3196. _read
  3197. NutTcpSend
  3198. NutSleep
  3199. NutTcpReceive
  3200. _write
  3201. _close
  3202. opendir
  3203. readdir
  3204. strcat
  3205. fputc
  3206. gmtime
  3207. fputs
  3208. closedir
  3209. mkdir
  3210. rename
  3211. atol
  3212. atoi
  3213. rmdir
  3214. strcmp_P
  3215. time
  3216. GAS LISTING /tmp/cc8KBhV9.s page 57
  3217. localtime
  3218. NutVersionString
  3219. fgets
  3220. __do_copy_data
  3221. __do_clear_bss